?

精簡TCP/IP協議簇在單片機中的應用

2013-11-06 09:08郭耀泉閩西職業技術學院電氣工程系福建龍巖364021
長江大學學報(自科版) 2013年25期
關鍵詞:精簡校驗以太網

郭耀泉 (閩西職業技術學院電氣工程系,福建 龍巖 364021)

精簡TCP/IP協議簇在單片機中的應用

郭耀泉 (閩西職業技術學院電氣工程系,福建 龍巖 364021)

為了能夠在單片機系統中采用計算機網絡傳輸相關數據,使系統能夠遠程采集數據、傳輸數據,對TCP/IP協議簇的組成進行分析。采用TCP/IP協議簇,刪除無關協議,并對具體協議根據功能需要進行精簡,使單片機系統能夠使用TCP/IP協議簇進行數據傳輸。對精簡的TCP/IP協議簇進行PING命令驗證,表明精簡后的TCP/IP協議簇能夠進行正常工作,通信效果良好。

單片機;TCP/IP協議;數據傳輸

單片機系統需要解決數據的傳送任務,即實現數據發送與接收(包括數據的封裝、拆包、編碼、解碼);同時單片機系統的外部設備需要同步控制,依靠這些外部設備來實現數據的測量和外設的控制任務[1]。由于上述過程只需要利用TCP/IP協議簇的部份功能,因而必須對其進行精簡以適應單片機系統的要求。此外,精簡后TCP/IP協議簇占用的系統資源少,可以有效增加單片機的處理效率。下面,筆者對精簡TCP/IP協議簇在單片機中的應用進行了研究。

1 TCP/IP協議簇的精簡

圖1 TCP/IP協議簇

TCP/IP協議簇包含有多種協議(見圖1),其中TCP和UDP是2種常用的網絡傳輸協議,兩者作為傳輸層的應用協議都可以為應用層提供所需的服務[2]。TCP提供面向數據流的傳輸服務和可靠的虛電路服務,數據包的傳輸可靠而有序。TCP服務通過可靠的進程間通信機制能夠在分組發生丟失、破壞、重復、延遲或者失序的情況下自動糾正差錯。此外,TCP的可靠性以復雜措施和增加處理器開銷作為前提[3]。UDP也可以為應用程序發送和接收數據報文,并依靠IP來傳送報文,其服務不進行流量控制、不對報文進行排序、不用確認,同時會出現丟失、重復、失序等現象[4],因而UDP的可靠服務必須由應用層來完成。

保證傳輸率和數據傳輸的可靠性是單片機系統編程設計中經常面臨的特殊要求,這就需要在編程過程中加以分析??紤]到單片機執行效率比較低,存儲器的容量比較小,在編程時使用UDP作為傳輸控制層協議同時增加應用層的可靠性代碼,從而滿足測控系統的要求。因此,在單片機嵌入系統中可以將TCP刪除,只由UDP來完成數據傳輸過程。

根據單片機系統的特點,在UDP中去除了建立連接和等待確認以加快數據的傳輸。為了保證數據傳輸的正確性,在UDP校驗中與來自IP的字段一起參與校驗。雖然上述構成破壞了嚴格的分層結構和加大了協議的復雜性,但保證了數據的可靠性。

IP(因特網協議)是網絡層的主要協議,同時為TCP和UDP提供服務,其提供全網通用的地址格式,并在統一管理下進行地址分配,保證一個地址對應一臺主機,并對物理地址的差異進行屏蔽。

ICMP(因特網控制消息協議)是IP協議的一部份,必須包含在每一個IP實現中。ICMP數據報通過IP送出,其包括多種類型并提供多種服務。錯誤報文和其他重要信息也是由IP通過ICMP協議來與其他主機或路由器進行交換。地址解析服務由ARP協議進行,包括IP和網絡接口層使用的地址信息的轉換。

IP協議使用IP地址來傳輸數據,以太網通過唯一的48位MAC地址完成數據包的收發,為了將上述地址統一起來,可以通過ARP(地址解析協議)請求廣播、ARP應答接收、ARP響應等操作,從而能夠在IP地址和MAC地址之間進行相互轉換。

數據包的發送和接收(包括數據包的形成、校驗、編碼、解碼等)任務選用現有的網絡芯片來完成,減輕了MCU的負擔。由于處理器減少了數據發送和接收校驗工作,其主要任務是數據采集和過程控制,由此提高系統的實時性。同時,使用現成的網絡接口芯片還可以縮短開發時間并降低開發成本。

2 實例分析

PIC18F97J60 微控制器是MICROCHIP公司推出專為單片機嵌入式系統開發而優化的以太網通信外設。PIC18F97J60符合 IEEE802.3 標準,集成了介質訪問控制器 MAC,在物理層集成了物理層收發模塊(PHY)和RAM收發緩沖器。數據包的傳送和接收通過芯片集成的 10BASE-T MAC 和 PHY能夠可靠實現,PIC18F97J60符合以太網標準;數據包的存儲、檢索和修改都使用RAM緩沖器進行操作,大大降低了單片機嵌入式系統RAM容量的要求。

圖2 硬件電路結構圖

2.1硬件電路設計

精簡后的TCP/IP協議簇使用如圖2所示的電路進行ping命令驗證。HR911105A是HanRun 公司開發的RJ-45 網絡接口電路。介質的電磁干擾和共模噪聲的抑制、信號濾波都通過內部集成的耦合變壓器完成。此外,網絡連接/活動狀態與網絡速度狀態分別用2個自帶的LED燈來顯示。

2.2軟件設計

圖3 流程圖

協同式多任務處理(Cooperative Multitasking)是Microchip TCP/IP 協議棧使用的新技術,這種多任務處理機制使TCP/IP 協議的各層不僅在上層要求時提供服務,在數據包超時或新數據包到達時也能完成相關的任務[5]。在這個處理系統中,多個工作任務同時存在,每個任務在執行時獲得系統的控制權,任務完成后自動交回。這種控制權的轉移保證下一任務的順利進行。協同式多任務處理的特點是:在任務中各參數采用全局變量進行傳遞;任何任務都禁止循環等待;任務的執行使用狀態機進行確定和跟蹤;所有任務的優先級相同;任務的執行和當前的硬件結構無關。

介質訪問控制模塊(MAC)、物理層收發模塊(PHY)都集成在PIC18F97J60的硬件中。以太網驅動程序內包含了相關的函數,上層協議只需要使用設計好的MAC初始化、緩沖區發送、接收的函數就可以完成數據包的發送、接收任務,并通過以太網驅動程序的二次開發來實現系統的新功能(見圖3)。

Stack_Task()函數用來對協議簇進行管理,其主要任務如下:數據包的接收與校驗;數據包的類型判斷、存儲、處理;對協議進行應答;丟棄無關的數據報。Stack_Task()函數在接收到新的數據包后將對數據進行解碼,并轉入到相關函數進行下一步處理。

Stack_App()函數為ARP協議服務,其主要任務如下:建立Socket接連;接收數據;對數據進行處理后轉移到緩沖區進行發送;發送完成后關閉Socket連接。

3 應用結果

將生成的hex文件寫入單片機內,單片機系統與PC機使用網絡線連接。利用ping命令進行驗證(見圖4)。從圖4可以看出,沒有數據包丟失現象,數據包發送與接收數量相同;ARP應答能夠返回正確的MAC地址。上述現象表明單片機嵌入式系統網絡狀態良好,與上位機的連接是正常的,能夠準確進行數據信息的傳輸。因此,精簡的TCP/IP簇能夠與上位機進行正常工作,可以勝任單片機嵌入式系統的工作要求。

圖4 對精簡的TCP/IP協議簇進行ping命令驗證

[1]王田苗.嵌入式系統設計與實例開發[M].北京:清華大學出版社,2002.

[2]陳智,李莉.計算機網絡基礎教程[M].北京:中國電力出版社,2008.

[3]朱長清,崔少輝.單片機網絡的組成與控制[J].計算機自動測量與控制,2000,16(8):22-24.

[4]謝希仁.計算機網絡第五版[M].北京:電子工業出版社,2008.

[5]蔣理.計算機網絡理論與實踐[M].北京:中國水利水電出版社,2003.

[編輯] 李啟棟

TP393.04

A

1673-1409(2013)25-0053-02

2013-06-14

郭耀泉(1974-),男,碩士,講師,現主要從事計算機控制方面的教學與研究工作。

猜你喜歡
精簡校驗以太網
基于區域分割的多視角點云精簡算法
基于1500以太網養豬場的智能飼喂控制系統的設計與實現
時常精簡多余物品
爐溫均勻性校驗在鑄鍛企業的應用
一種面向應用的流量監測精簡架構設計
談實時以太網EtherCAT技術在變電站自動化中的應用
結合抓包實例分析校驗和的計算
一種90W高功率以太網供電系統的設計
淺談EPON與工業以太網在貴遵高速公路中的應用
大型電動機高阻抗差動保護穩定校驗研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合