一種新的嵌入式Simplified TCP/IP協議棧的研究與實現
1 引言
本文引用地址:http://www.j9360.com/article/148753.htm嵌入式nternet是近幾年隨著嵌入式系統的廣泛應用和計算機網絡技術的發展而興起的一項新興概念和技術。單片機或微控制器(MCU,Micro ControllerUnit)被廣泛應用在家庭和工業的各個領域,通稱嵌入式系統。嵌入式系統具有以應用為中心、以計算機技術為基礎、軟件硬件可裁剪等特點,贏得了巨大的市場,在應用數量上遠遠超過了各種通用計算機。隨著Internet/Intranet的發展,各種家用電器,從空調到微波爐,都產生了連入互聯網的要求。
如何通過Internet共享嵌入式設備的信息,實現設備的遠程訪問、控制和管理,對接入到網絡上各個節點的設備實時監控,這就是設備接入互聯網需要解決的問題。TCP/IP協議是標準的網絡協議,如果能把TCP/IP協議嵌入到設備的MCU中,就可以通過它在設備和Internet之間建立通信鏈路,這樣就解決了設備與網絡互聯的關鍵技術。
2 Simplified TCP/IP協議棧的特點
和嵌入式系統面向特定的應用一樣,分析嵌入式TCP/IP協議棧的特點和對傳統的TCP/IP協議棧進行簡化也要針對特定的系統環境和應用背景。離開了特定的系統環境和應用背景來討論嵌入式TCP/IP協議棧的特點和對TCP/IP協議棧進行簡化是沒有意義的。這里所討論的嵌入式TCP/IP協議棧是針對那些低檔的8位/16位嵌入式系統能支持嵌入式Internet直連體系結構而提出的。
嵌入式系統有限的處理能力以及存儲資源相對缺乏,因此在嵌入式Internet環境里使用標準TCP/IP協議棧是不合適的。把TCP/IP協議棧從普通的PC機移植到MCU,內存和內存管理成了瓶頸。為了既實現相應的網絡功能又節省系統資源,需要對協議棧進行有針對的模塊化裁減。針對家電系統中的8位/16位MCU結構設計了一個TCP/IP協議簇的子集,稱之為Simplified TCP/IP協議棧。其中包括IP、UDP、ARP和ICMP等協議的全部或部分功能,對協議進行了有選擇的實現,盡最大可能保持協議功能和機制上的完整。
Simplified TCP/IP協議棧按照網絡體系分層思想設計,如圖1所示。其中每一層都被設計成一個功能相對獨立的模塊,負責處理各自的數據,通過函數調用把控制權交給上層或下層的模塊。
低檔嵌入式系統中一般沒有實時多任務操作系統支持,所以Simplified TCP/IP協議棧直接面對硬件。MCU中的程序結構一般是順序執行和硬件中斷相配合的方式。嵌入式處理器的時鐘頻率低,地址、數據總線窄,所以一個IP包的處理要花很多的時間。如果采用中斷處理方式,勢必影響其他中斷和任務的執行。當系統中有實時數據采集、串口通信中斷、鍵盤中斷等實時任務時,則會造成沖突。設計時需要合理劃分中斷處理程序,將無實時要求和費時的SimplifiedTCP/IP協議棧處理放在主程序順序循環中。對網絡接口控制芯片采用查詢式,即在其他中斷任務的執行間隙處理Simplified TCP/IP協議棧,以犧牲響應速度換取系統可靠性,如圖2所示。
3 TCP/IP協議棧的裁減
普通操作系統可支持完整的TCP/IP協議族,但嵌入式系統中大多很難做到,也不需做到。嵌入式系統中實現的協議要根據各個系統的特點及功能來進行設計。TCP/IP協議族中,只實現與實際需要有關的部分,而不使用的協議則一概不支持。Simplified TCP/IP協議棧中支持的協議。
3. 1 地址轉換協議—ARP協議
ARP協議是某些網絡接口(如以太網和令牌環網)使用的特殊協議,ARP的地址解析功能是為IP地址和數據鏈路層使用的硬件地址提供動態地址映射。通用計算機系統中,ARP高速緩存一般設計成雙向數據鏈的形式,這樣整個緩存可以方便地動態增減。但是這種非線性存儲的鏈表式緩存結構,在進行表項匹配查找時比較費時,不適用于嵌入式系統。因此ARP的地址緩存采用了線性數組形式的結構。它在內存中是連續線性存儲的,查找速度快。嵌入式應用中節點不是很多,即ARP緩存容量不需要很大,因此將ARP高速緩存設計成固定大小。被動的嵌入式服務器主要是接收來自客戶的服務請求,為客戶提供服務,即嵌入式服務器不會主動向某一主機發數據幀。既然如此始終處于被動狀態的服務器完全不需要向任何主機發送ARP請求,設備只要能處理ARP請求并返回ARP應答即可。鑒于這種情況,ARP協議中選擇對ARP應答部分進行實現。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)tcp/ip相關文章:tcp/ip是什么
評論