肖 軍 韓黨群 儲海燕 畢 楊
摘 要:分析嵌入式TCP/IP協議的選取原則,采用ARM芯片和網絡接口控制芯片設計以太網接口,介紹ARM芯片對網絡接口控制芯片的控制過程和TCP/IP協議棧處理數據包的流程,完成嵌入式TCP/IP系統(tǒng)的開發(fā)。該系統(tǒng)可以將數據按網絡協議處理,實現數據的以太網傳輸。其是一套基于嵌入式實時操作系統(tǒng)的嵌入式網絡軟件開發(fā)平臺,即在μC/OS-Ⅱ的平臺上,實現ARM微處理器的TCP/IP協議,在此平臺之上,可以方便地進行嵌入式應用系統(tǒng)的開發(fā)。
關鍵詞:ARM;嵌入式系統(tǒng);TCP/IP;以太網
中圖分類號:TP273文獻標識碼:B
文章編號:1004 373X(2009)02 045 03
Implement of Embedded TCP/IP Protocol Based on ARM
XIAO Jun,HAN Dangqun,CHU Haiyan,BI Yang
(Xi′an Aerotechnical College,Xi′an,710077,China)
Abstract:The embedded TCP/IP protocol of selection principle is analysed,which adopts ARM chip and network interface control chip to design an ethernet interface,introduces ARM chip to pick up control process of network interface control chip and process of TCP/IP protocol stack processing data wrap,embedded TCP/IP development is finished.That system can process the data by network protocol which carries out a data deliver.Solution of the embedded system access to the network is actually a network software platform based on an embedded real-time operating systems,and applications development based on this platform must be convenient.On the platform ofμC/OS-Ⅱ,the TCP/IP protocol of ARM microprocessor is realized.
Keywords:ARM;embedded system;TCP/IP;ethernet
0 引 言
以太網具有通用性強、技術成熟、帶寬迅速增加等特性,工業(yè)控制領域出現嵌入式技術,尤其是ARM技術的發(fā)展和DSP在工業(yè)控制領域的廣泛應用,利用嵌入式技術實現以太網通信已經不難見到。嵌入式實時操作系統(tǒng)接入網絡后將使遠程監(jiān)測、遠程控制、遠程診斷和遠程維護變得越來越容易。從根本上講,嵌入式設備接入網絡,當前基本采用基于TCP/IP的通信協議。該方案以LPC2210為核心元件研究基于ARM的嵌入式TCP/IP協議的實現的硬件電路,同時在μC/OS-Ⅱ平臺上編寫應用軟件程序。下面對系統(tǒng)做詳實的闡述,并重點介紹嵌入式實時操作系統(tǒng)μC/OS-Ⅱ[1]應用于TCP/IP時應進行合理的裁減。
1 系統(tǒng)硬件設計
基于ARM的嵌入式TCP/IP網絡通信系統(tǒng)主要包括ARM芯片和以太網控制器等芯片組成的以太網接口、驅動軟件和嵌入式TCP/IP協議棧。硬件原理圖如圖1所示。
該方案設計相對簡單,硬件電路中采用的LPC2210[2]是Philips公司推出的微處理器,帶有16 KB RAM,76個通用I/O口,12個獨立外部中斷引腳,集成有8通道的10位A/D,能夠基于芯片設計復雜的系統(tǒng)。雖然LPC2210具有較快的訪問速度,但片內沒有集成FLASH,所以這里擴展1片16 Mb FLASH SST 39VF160來保存用戶程序。其架構滿足μC/OS-Ⅱ正常運行的基本要求。
RTL8019AS是臺灣Realtek半導體公司生產的以太網控制器,其性能包括:支持EthernetⅡ和IEEE802.3標準;支持8/16位數據總線;內置16 KWord的SRAM;全雙工,收發(fā)同時達到10 Mb/s;支持BNC,AUI,UTP介質。RTL8019AS可提供100腳的TQFP封裝,減少了PCB面積,更適合于嵌入式系統(tǒng)。HR901170A是漢仁電子有限公司生產的RJ45接口連接器(帶網絡變壓器/濾波器),該連接器滿足IEEE802.3和IEEE902.3ab標準,能夠較好地抑制電磁干擾。通過HR901170A系統(tǒng)就可以連接到以太網上。
2 嵌入式協議的選擇
TCP/IP協議[3]是一組不同層次上的多個協議的組合,通常被認為是一個包含鏈路層、網絡層、傳輸層和應用層的4層協議系統(tǒng),如圖2所示。嵌入式系統(tǒng)是為完成某種特定的功能而設計的專用系統(tǒng)。嵌入式系統(tǒng)不要求(也不可能)實現所有的TCP/IP協議,所以嵌入式TCP/IP是對TCP/IP協議族進行選擇而形成的協議集合。
首先在鏈路層上,由于采用以太網的接入方式,系統(tǒng)必須實現IEEE802.3所規(guī)定的CDMA/CD(載波監(jiān)聽多路訪問及沖突監(jiān)測)協議,CDMA/CD協議不需用戶實現,此協議只要采用通用的NIC(Network Interface Controller,網絡接口控制)芯片就可支持。為了保證系統(tǒng)在以太網中的通信,系統(tǒng)還需實現ARP應答協議,該協議用于將IP地址映射成以太網MAC地址。ARP協議包括ARP請求和ARP響應兩部分,系統(tǒng)與其他計算機通信,就必須要支持ARP響應。ARP請求在本地建立了一個IP地址到MAC地址的映射,保證了對外通信的有的放矢。RARP(逆地址解析)協議主要用于解決如何從MAC地址得到IP地址,主要用于無盤工作站中。
在網絡層,由于系統(tǒng)要求能夠在Internet中進行通信,因此系統(tǒng)要實現IP協議。在TCP/IP協議族中,網絡層協議包括IP協議(網際協議)、ICMP協議(Internet控制報文協議)以及IGMP協議(Internet組管理協議)等。IP協議是TCP/IP族的核心協議,它使異構網絡之間的通信成為可能。因此RTU等系統(tǒng)數據跨越不同的網絡進行傳輸就必須要實現IP協議。ICMP中規(guī)定了多種協議類型和代碼,如果完全地實現也要耗費不少的系統(tǒng)資源,該嵌入式系統(tǒng)中,在ICMP協議中能夠測試網絡的連通情況即可。
傳輸層主要是在2臺主機之間提供端到端的通信。傳輸層有2種不相同的傳輸協議:TCP(傳輸控制協議)和UDP(用戶數據報協議)。TCP是面向連接的,在不可靠的網絡服務上提供端到端的可靠字節(jié)流。TCP協議設計了嚴格的3次建立連接握手過程、4次關閉連接握手過程以及捎帶確認信息并通過滑動窗口進行流量控制的數據傳輸過程。UDP協議是不面向連接的,它只是簡單地把數據報從一臺主機發(fā)送到另一臺主機,但并不保證該數據報能到達另一端,可靠性必須由應用層來提供。考慮到系統(tǒng)中數據傳輸質量,這里采用TCP協議。
應用層協議主要是指用戶進程。其包括:HTTP協議、FTP協議、POP3協議、SMTP協議、SNMP協議。
3 系統(tǒng)軟件設計
該TCP/IP網絡通信系統(tǒng)為了具有較好的實時性和穩(wěn)定性,采用μC/OS-Ⅱ設計系統(tǒng)軟件。在μC/OS-Ⅱ平臺上,軟件設計工作主要包括:μC/OS-Ⅱ在LPC2210上的移植和TCP/IP協議在μC/OS-Ⅱ上的實現以及系統(tǒng)應用程序的編寫。
μC/OS-Ⅱ的移植[4]工作主要集中在下面幾個文件中:OS_CPU.H,OS_CPU_A.ASM,OS_CPU_C.C。另外,在INCLUDES.H中必須包括LPC2210文件LPC2210.H;OS_CFG.H用于系統(tǒng)應用μC/OS-Ⅱ中的初始化配置。OS_CPU.H主要包括一些與處理器和編譯器相關的常量和類型定義等,而且需注意LPC2210的堆棧方向是由高到低,用OS_STK_GROWTH來設置堆棧的增長方向。因此將OS_STK_GROWTH設為1。OS_CPU_A.ASM中需編寫4個匯編語言函數:OS_TASK_SW(),OS_IntCtxSw(),OSStartHighRdy()和OSTickISR()。
以太網鏈路層遵循的IEEE802.3協議的CSMA/CD和CRC校驗等功能由網絡控制芯片Rtl8019AS完成,LPC2210芯片則完成其他TCP/IP協議的解釋和執(zhí)行。LPC2210控制RTL8019AS完成通信任務時,首先要對RTL8019AS復位,并對RTL8019AS的寄存器進行初始化,確定發(fā)送和接收的條件,然后才能發(fā)送數據或接收數據。當一幀數據發(fā)送結束、接收到1幀數據或出錯等事件發(fā)生時,RTL8019AS向LPC2210申請中斷,LPC2210響應中斷后根據中斷狀態(tài)寄存器的內容進行相應的處理。
在LPC2210內部,ARM程序完成對數據的打包解包。系統(tǒng)復位后,系統(tǒng)首先發(fā)送ARP請求,建立地址映射,并內部中斷進行定時更新。ARM芯片根據情況將采集或收集到數據按照TCP協議或UDP協議格式打包,送入網卡芯片,由網卡芯片將數據輸出到局域網中。ARM芯片對數據報進行分析,如果是ARP(物理地址解析)數據包,則程序轉入ARP處理程序。如果是IP數據包則進一步判斷是哪個協議向IP傳送數據。如果是ICMP協議,判斷是否為Ping請求,是則應答,不是丟棄該數據包;如果是TCP或UDP協議,且端口正確則按相應的協議處理數據,端口不正確丟棄數據包。TCP/IP系統(tǒng)框圖如圖3所示。
TCP/IP在μC/OS-Ⅱ上的設計結束后,剩下的工作就是編寫應用程序。將系統(tǒng)劃分成若干個任務,每個任務對應一個獨立的無限循環(huán)的主程序,完成一個特定的功能。為簡化設計,應用程序采用靜態(tài)優(yōu)先級,即應用程序在執(zhí)行的過程中各個任務優(yōu)先級保持不變。
4 結 語
基于ARM的嵌入式TCP/IP協議的設計方案,論述了軟、硬件的設計方法和協議的選擇。該設計方案在硬件實現上簡潔可靠;軟件實現上可維護性好;可擴展性好,有利于系統(tǒng)的后續(xù)開發(fā),降低了系統(tǒng)設計的復雜性。實驗證明該方案可行性強,可以直接把系統(tǒng)的處理數據送到以太網上傳輸。可以看出,ARM和嵌入式TCP/IP協議將會得到更大的發(fā)展和更廣闊的應用。
參考文獻
[1]Jean J Labrosse.嵌入式實時操作系統(tǒng)μC/OS-Ⅱ[M].2版.北京:北京航空航天大學出版社,2003.
[2]周立功.ARM嵌入式系統(tǒng)基礎教程[M].北京:北京航空航天大學出版社,2005.
[3]周立功.ARM嵌入式系統(tǒng)軟件開發(fā)實例(一)[M].北京:北京航空航天大學出版社,2004.
[4]任哲.嵌入式實時操作系統(tǒng)μC/OS-Ⅱ原理及應用[M].北京:北京航空航天大學出版社,2005.
[5]杜春雷.ARM體系結構與編程[M].北京:清華大學出版社,2003.
[6]季昱,林俊超,宋飛.ARM嵌入式應用系統(tǒng)開發(fā)典型實例[M].北京:中國電力出版社,2005.
[7]馬忠梅,馬廣云.ARM嵌入式處理器結構與應用基礎[M].北京:北京航空航天大學出版社,2002.
[8]王田苗.嵌入式系統(tǒng)設計與實例開發(fā)基于ARM微處理器與μC/OS-Ⅱ實時操作系統(tǒng)[M].北京:清華大學出版社,2002.
[9]田澤.嵌入式系統(tǒng)開發(fā)與應用教程[M].北京:北京航空航天大學出版社,2005.
[10]肖軍,邵景峰,馬輝,等.嵌入式實時操作系統(tǒng)與網絡構件的設計[J].可編程控制器與工廠自動化,2006(10):70-72,48.
[11]邵貝貝.單片機嵌入式應用的在線開發(fā)方法[M].北京:清華大學出版社,2004.
作者簡介 肖 軍 男,1981年出生,陜西西安人,西安航空技術高等??茖W校,助教,碩士。研究方向為嵌入式系統(tǒng)的開發(fā)。