喬富強
【摘要】 隨著科技水平的發展,嵌入式的網絡通信也隨之發展了起來,因此,我們要更加深入地對嵌入式TCP/IP協議進行探究和更深層次的功能實現。本文對TCP/IP協議棧進行了分析,論述如何實現嵌入式以太網數據通信。
【關鍵詞】 嵌入式 TCP/IP協議 以太網
一、引言
嵌入式網絡通信在各個方面都得到了非常廣泛的運用。目前最常見的就是總線和USB數據傳輸方式,傳輸速度即使可以達到較快的水平,但是其并不能夠滿足長距離的數據傳輸。因此,以太網能夠彌補其在數據傳輸方面的缺陷。以太網能夠實現一百米距離點對點的數據傳輸,如果要實現更加遠距離的數據傳輸,則需要使用路由器或者交換機來完成。此文基于對CP2200嵌入式TCP/IP協議進行探究,并實現以太網嵌入式系統設計。
二、嵌入式TCP/IP協議的探究與實現
TCP/IP協議棧從上到下分別是由應用層、運輸層、網絡層和網絡接口層所組成的四層結構,每一層各司其職,都有著不同的網絡協議。依據軟件實際使用的情況,在嵌入式系統當中為了達到網絡通信的目的,需要對TCP/IP協議族進行裁剪。在對軟件進行初始化的時候,也對單片機同時進行了初始化,其中包括對系統時鐘、定時器、端口和串口進行了初始化。當然還有CP2200進行初始化,其中包括對MAC層和物理層進行初始化,并且中斷使能。
在TCP/IP協議棧當中,運用層包含HTTP協議,運輸層包含TCP協議和UDP協議,網絡層包含ARP協議、IP協議和ICMP協議。以下是嵌入式TCP/IP協議的每個模塊的實現流程:
1、HTTP協議模塊。HTTP協議的發送函數http_send()即是TCP協議的發送函數和數據信息的結合,但是http_ send()函數主要是實現設計網頁內容,JPEG的圖片和HTML(超文本標記語言)等信息的使用依靠其函數實現。
2、TCP協議模塊。TCP協議的發送函數tcp_send()是需要發送一個不包含任何數據的TCP報文,其作用是能夠對字節頭和校驗和進行處理。通過對時間功能的設定,TCP協議的重傳函數tcp_retransmit()能夠實現對數據最多為兩次重傳的傳輸功能,實現傳輸功能的應用程序是依靠傳送頁數據而實現的,即是HTTP服務程序。TCP協議的保活函數tcp_ inacivity()是沒半秒運行一次,當連接正在建立的狀態下,保活期滿了的時候并且沒能被再次使用,就會中斷連接。TCP協議的接收函數tcp_rcve()實現對字節頭和校驗和的運算,進而對HTTP服務程序和其連接狀態等情況進行斷定,最后進行TCP有限的狀態機判斷數據包的程序。
3、UDP協議模塊。UDP協議的發送函數udp_send()能夠實現對字節頭和校驗和進行處理,其接收函數udp_rcve()是對所接收的UDP報文進行處理,如果沒有受到UDP報文數據,就需要發送ICMP終點不可到達報文。
4、ARP協議模塊。ARP協議的發送函數arp_send(),在發送請求報文的時候,對于不清楚目的物理地址的,則是廣播報文;在發送應答報文的時候,接收的一方的目的物理地址需要添加物理地址。ARP協議的重傳函數arp_retransmit()能夠實現當其發出ARP請求之后的半秒時間內沒有任何響應,則進行再一次發送的功能,但是當兩次發送沒有得到響應就會對報文進行刪除。ARP協議的緩存更新函數age_ arp_cache()能夠每一分鐘更新一次。ARP的解析函數arp_ resolve()能夠對所發送的IP報文目的IP地址進行解析,如果發送IP地址和目的IP地址都不在相同的一個網絡當中,那么此IP地址是網關IP地址,然后在緩存表當中對其進行查找,如果找不到就需要發送ARP請求報文。ARP協議的接收函數arp_rcve()能夠實現對報文進行接收或者應答,對緩存表需要進行更新和重新定時,如果所接受的報文是應答報文,則需要發送等候地址解析的IP報文,但是所接收到的報文是請求報文 ,則需要發送ARP應答報文。
5、IP協議模塊。IP協議的發送函數ip_send9()能夠實現對發送IP報文的20字節頭和校驗和進行處理,進而使用網絡接口層進行發送。IP協議接收函數ip_rcve()能夠根據版本情況和所接收報文的種類轉移到相應的接收函數來處理。
6、ICMP協議模塊。ICMP協議模塊的接收函數icmp_ rcve()是實現對ping請求的接收進行處理,并且處理ICMP不同種類的報文。其中Ping命令請求信息函數ping_send()是用來檢測發送接收兩方的接收情況。
三、結言
綜上所述,此文對TCP/IP的網絡結構中的各層協議模塊進行探究,基于網絡控制芯片CP2200的以太網接口和單片機C8051F340,并用編程語言來實現嵌入式以太網通信,同時進一步通過對各個層協議的裁剪,實現嵌入式以太網的數據通信。根據現階段來看,嵌入式網絡通信基本上都是依靠TCP/IP協議來實現的,嵌入式設備和網絡兩者相結合是嵌入式系統今后發展的主要方向。因此,我們要更加深入地對嵌入式TCP/IP協議進行探究以及更深層次的功能實現。
參 考 文 獻
[1]王樹森,王希杰,劉秋菊.嵌入式Web遠程糧情監控系統的研究與實現[J].自動化儀表,2013(10):243-247.
[2]王寶寶,余世明,王振宇.嵌入式Internet中Nagle算法及其應用研究[J].中國工程科學,2014(02):101-105.