基于ARM的嵌入式TCP/IP協議的實現
傳輸層主要是在2臺主機之間提供端到端的通信。傳輸層有2種不相同的傳輸協議:TCP(傳輸控制協議)和UDP(用戶數據報協議)。TCP是面向連接的,在不可靠的網絡服務上提供端到端的可靠字節流。TCP協議設計了嚴格的3次建立連接握手過程、4次關閉連接握手過程以及捎帶確認信息并通過滑動窗口進行流量控制的數據傳輸過程。UDP協議是不面向連接的,它只是簡單地把數據報從一臺主機發送到另一臺主機,但并不保證該數據報能到達另一端,可靠性必須由應用層來提供。考慮到系統中數據傳輸質量,這里采用TCP協議。應用層協議主要是指用戶進程。其包括:HTTP協議、FTP協議、POP3協議、SMTP協議、SNMP協議。本文引用地址:http://www.j9360.com/article/152520.htm
3 系統軟件設計
該TCP/IP網絡通信系統為了具有較好的實時性和穩定性,采用μC/OS一Ⅱ設計系統軟件。在μC/OS一Ⅱ平臺上,軟件設計工作主要包括:μC/OS一Ⅱ在LPC2210上的移植和TCP/IP協議在μC/OS一Ⅱ上的實現以及系統應用程序的編寫。μC/OS一Ⅱ的移植工作主要集中在下面幾個文件中:OS_CPU.H,OS_CPU_A.ASM,OS_CPU_C.C。另外,在INCLUDES.H中必須包括LPC2210文件LPC2210.H;OS_CFG.H用于系統應用μC/OS一Ⅱ中的初始化配置。OS_CPU.H主要包括一些與處理器和編譯器相關的常量和類型定義等,而且需注意LPC2210的堆棧方向是由高到低,用OS_STK_GROWTH來設置堆棧的增長方向。因此將OS_STK_GROWTH設為1。OS_CPU_A.ASM中需編寫4個匯編語言函數:OS_TASK_SW(),OS_IntCtxSw(),OSStartHighRdy()和OSTieklSR()。
以太網鏈路層遵循的IEEE802.3協議的CSMA/CD和CRC校驗等功能由網絡控制芯片Rtl8019AS完成,LPC2210芯片則完成其他TCP/IP協議的解釋和執行。LPC2210控制RTL8019AS完成通信任務時,首先要對RTL8019AS復位,并對RTL8019As的寄存器進行初始化,確定發送和接收的條件,然后才能發送數據或接收數據。當一幀數據發送結束、接收到1幀數據或出錯等事件發生時,RTL8019As向LPC2210申請中斷,LPC2210響應中斷后根據中斷狀態寄存器的內容進行相應的處理。
在LPC2210內部,ARM程序完成對數據的打包解包。系統復位后,系統首先發送ARP請求,建立地址映射,并內部中斷進行定時更新。ARM芯片根據情況將采集或收集到數據按照TCP協議或UDP協議格式打包,送入網卡芯片,由網卡芯片將數據輸出到局域網中。ARM芯片對數據報進行分析,如果是ARP(物理地址解析)數據包,則程序轉入ARP處理程序。如果是IP數據包則進一步判斷是哪個協議向IP傳送數據。如果是ICMP協議,判斷是否為Ping請求,是則應答,不是丟棄該數據包;如果是TCP或UDP協議,且端口正確則按相應的協議處理數據,端口不正確丟棄數據包。TCP/IP系統框圖如圖3所示。
TCP/IP在μC/OS一Ⅱ上的設計結束后,剩下的工作就是編寫應用程序。將系統劃分成若干個任務,每個任務對應一個獨立的無限循環的主程序,完成一個特定的功能。為簡化設計,應用程序采用靜態優先級,即應用程序在執行的過程中各個任務優先級保持不變。
4 結 語
基于ARM的嵌入式TCP/IP協議的設計方案,論述了軟、硬件的設計方法和協議的選擇。該設計方案在硬件實現上簡潔可靠;軟件實現上可維護性好;可擴展性好,有利于系統的后續開發,降低了系統設計的復雜性。實驗證明該方案可行性強,可以直接把系統的處理數據送到以太網上傳輸。可以看出,ARM和嵌入式TCP/IP協議將會得到更大的發展和更廣闊的應用。
tcp/ip相關文章:tcp/ip是什么
評論