基于A(yíng)RM的嵌入式TCP/IP協(xié)議的實(shí)現
1.3 其它協(xié)議
ARP協(xié)議為32位IP地址到對應的48位以太網(wǎng)地址之間提供動(dòng)態(tài)映射。嵌入式系統中僅響應ARP請求,發(fā)送ARP回答包。請求者廣播出包含ARP請求的以太幀、目的以太網(wǎng)地址為全1的廣播地址。本機收到后,由目的IP地址發(fā)現自己是目的主機,發(fā)送一個(gè)ARP回答。ICMP通過(guò)IP協(xié)議傳輸其報文。IP協(xié)議是無(wú)連接的,它無(wú)法將報文和錯誤信息傳到最初的主機,ICMP將狀態(tài)信息和錯誤信息發(fā)送到發(fā)報文的主機。
2 前端設備的系統設計
TCP/IP協(xié)議擴展到工業(yè)控制級,將企業(yè)內部計算機網(wǎng)絡(luò )應用于工業(yè)現場(chǎng)實(shí)時(shí)信息的發(fā)布和顯示,通過(guò)Internet瀏覽器對現場(chǎng)工業(yè)信息進(jìn)行動(dòng)態(tài)監視。下面是筆者在某公司一分布式監控系統中的應用實(shí)例?;冢裕茫校桑袇f(xié)議的前端設備系統軟件結構如圖3。前端嵌入式設備處理器是Samsung公司的S3C4510B(ARM核)。該芯片是用在基于以太網(wǎng)系統的高性?xún)r(jià)比、高性能的16/32位RISC微控制器。通信部分采用BNC接口方式,信號輸出經(jīng)耦合隔離變壓器由RJ45接頭聯(lián)入集線(xiàn)器,此外還設計了液晶顯示和鍵盤(pán)輸入當地接口功能。
在TCP/IP協(xié)議中多處用到超時(shí)和重發(fā)機制。這種機制對于確保兩個(gè)或多個(gè)彼此獨立的通信結點(diǎn)從通信錯誤或故障狀態(tài)自動(dòng)恢復到正常狀態(tài)是非常有效的,但也增加了軟件結構的復雜性。因為對超時(shí)的處理通常獨立于正常程序流程,也就是與正常的程序流程異步。要實(shí)現的TCP/IP協(xié)議軟件中有四處要用到定時(shí)器:第一是在ARP高速緩存的維護中,被添加到ARP高速緩存中的表項在一段時(shí)間后要置為無(wú)效;第二是在等待對發(fā)出的ARP請求返回響應時(shí),可能會(huì )在指定的超時(shí)時(shí)間內還未收到返回的響應;第三是在IP組裝收到分片時(shí),由于部分分片在一定時(shí)間內沒(méi)有收到而丟棄整個(gè)IP包;第四是在TCP等待接收方對數據段的確認時(shí)。如果在指定時(shí)間內還未收到對某個(gè)數據段的確認,需重新發(fā)送。從上述可見(jiàn),要實(shí)現的定時(shí)器具備以下特點(diǎn):
·對定時(shí)的精度要求都不是很高,基本都是秒級的精度。這樣,完全可以稍滯后一些來(lái)處理定時(shí)器超時(shí),不把超時(shí)處理放在時(shí)鐘中斷處理程序中。
首先,定義一定時(shí)器的數據結構,如圖4所示。每一類(lèi)超時(shí)都是由一個(gè)超時(shí)控制塊和其所屬的一個(gè)由超時(shí)事件項組成的鏈表管理。整個(gè)鏈表按超時(shí)事件將要發(fā)生的時(shí)間順序排列,先發(fā)生的超時(shí)事件排列在前。超時(shí)控制塊中的head_ptr用以指向一個(gè)超時(shí)事件項鏈表的首項;timeout_process是超時(shí)事件發(fā)生時(shí)處理程序的入口地址。在每個(gè)超時(shí)事件項中,next_ptr指向鏈表中的下一項;relative_time是本表項的超時(shí)事件相對于上一表項的超時(shí)事件發(fā)生的相對時(shí)間。所以某個(gè)表項表示的超時(shí)事件距離當前的時(shí)間是它以前所有表項(包括自身)中的relative_time的和。relative_time的基本單位是granularity。
每當時(shí)鐘中斷服務(wù)程序計數到granularity個(gè)時(shí)鐘中斷,給定時(shí)器任務(wù)使用的信號燈作sem_up操作。當定時(shí)器任務(wù)被調度執行時(shí),它遍歷每一個(gè)超時(shí)控制塊,對每一個(gè)超時(shí)控制塊作如圖5所示的處理,最后對信號燈調用sem_down。
tcp/ip相關(guān)文章:tcp/ip是什么
相關(guān)推薦
技術(shù)專(zhuān)區
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線(xiàn)
- 開(kāi)關(guān)電源
- 單片機
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機控制
- 藍牙
- PLC
- PWM
- 汽車(chē)電子
- 轉換器
- 電源管理
- 信號放大器
評論