国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ARM的嵌入式TCP/IP協(xié)議的實現(xiàn)

2009-05-12 03:14韓黨群儲海燕
現(xiàn)代電子技術(shù) 2009年2期
關(guān)鍵詞:嵌入式系統(tǒng)以太網(wǎng)

肖 軍 韓黨群 儲海燕 畢 楊

摘 要:分析嵌入式TCP/IP協(xié)議的選取原則,采用ARM芯片和網(wǎng)絡(luò)接口控制芯片設(shè)計以太網(wǎng)接口,介紹ARM芯片對網(wǎng)絡(luò)接口控制芯片的控制過程和TCP/IP協(xié)議棧處理數(shù)據(jù)包的流程,完成嵌入式TCP/IP系統(tǒng)的開發(fā)。該系統(tǒng)可以將數(shù)據(jù)按網(wǎng)絡(luò)協(xié)議處理,實現(xiàn)數(shù)據(jù)的以太網(wǎng)傳輸。其是一套基于嵌入式實時操作系統(tǒng)的嵌入式網(wǎng)絡(luò)軟件開發(fā)平臺,即在μC/OS-Ⅱ的平臺上,實現(xiàn)ARM微處理器的TCP/IP協(xié)議,在此平臺之上,可以方便地進(jìn)行嵌入式應(yīng)用系統(tǒng)的開發(fā)。

關(guān)鍵詞:ARM;嵌入式系統(tǒng);TCP/IP;以太網(wǎng)

中圖分類號:TP273文獻(xiàn)標(biāo)識碼: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 引 言

以太網(wǎng)具有通用性強(qiáng)、技術(shù)成熟、帶寬迅速增加等特性,工業(yè)控制領(lǐng)域出現(xiàn)嵌入式技術(shù),尤其是ARM技術(shù)的發(fā)展和DSP在工業(yè)控制領(lǐng)域的廣泛應(yīng)用,利用嵌入式技術(shù)實現(xiàn)以太網(wǎng)通信已經(jīng)不難見到。嵌入式實時操作系統(tǒng)接入網(wǎng)絡(luò)后將使遠(yuǎn)程監(jiān)測、遠(yuǎn)程控制、遠(yuǎn)程診斷和遠(yuǎn)程維護(hù)變得越來越容易。從根本上講,嵌入式設(shè)備接入網(wǎng)絡(luò),當(dāng)前基本采用基于TCP/IP的通信協(xié)議。該方案以LPC2210為核心元件研究基于ARM的嵌入式TCP/IP協(xié)議的實現(xiàn)的硬件電路,同時在μC/OS-Ⅱ平臺上編寫應(yīng)用軟件程序。下面對系統(tǒng)做詳實的闡述,并重點介紹嵌入式實時操作系統(tǒng)μC/OS-Ⅱ[1]應(yīng)用于TCP/IP時應(yīng)進(jìn)行合理的裁減。

1 系統(tǒng)硬件設(shè)計

基于ARM的嵌入式TCP/IP網(wǎng)絡(luò)通信系統(tǒng)主要包括ARM芯片和以太網(wǎng)控制器等芯片組成的以太網(wǎng)接口、驅(qū)動軟件和嵌入式TCP/IP協(xié)議棧。硬件原理圖如圖1所示。

該方案設(shè)計相對簡單,硬件電路中采用的LPC2210[2]是Philips公司推出的微處理器,帶有16 KB RAM,76個通用I/O口,12個獨立外部中斷引腳,集成有8通道的10位A/D,能夠基于芯片設(shè)計復(fù)雜的系統(tǒng)。雖然LPC2210具有較快的訪問速度,但片內(nèi)沒有集成FLASH,所以這里擴(kuò)展1片16 Mb FLASH SST 39VF160來保存用戶程序。其架構(gòu)滿足μC/OS-Ⅱ正常運行的基本要求。

RTL8019AS是臺灣Realtek半導(dǎo)體公司生產(chǎn)的以太網(wǎng)控制器,其性能包括:支持EthernetⅡ和IEEE802.3標(biāo)準(zhǔn);支持8/16位數(shù)據(jù)總線;內(nèi)置16 KWord的SRAM;全雙工,收發(fā)同時達(dá)到10 Mb/s;支持BNC,AUI,UTP介質(zhì)。RTL8019AS可提供100腳的TQFP封裝,減少了PCB面積,更適合于嵌入式系統(tǒng)。HR901170A是漢仁電子有限公司生產(chǎn)的RJ45接口連接器(帶網(wǎng)絡(luò)變壓器/濾波器),該連接器滿足IEEE802.3和IEEE902.3ab標(biāo)準(zhǔn),能夠較好地抑制電磁干擾。通過HR901170A系統(tǒng)就可以連接到以太網(wǎng)上。

2 嵌入式協(xié)議的選擇

TCP/IP協(xié)議[3]是一組不同層次上的多個協(xié)議的組合,通常被認(rèn)為是一個包含鏈路層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層的4層協(xié)議系統(tǒng),如圖2所示。嵌入式系統(tǒng)是為完成某種特定的功能而設(shè)計的專用系統(tǒng)。嵌入式系統(tǒng)不要求(也不可能)實現(xiàn)所有的TCP/IP協(xié)議,所以嵌入式TCP/IP是對TCP/IP協(xié)議族進(jìn)行選擇而形成的協(xié)議集合。

首先在鏈路層上,由于采用以太網(wǎng)的接入方式,系統(tǒng)必須實現(xiàn)IEEE802.3所規(guī)定的CDMA/CD(載波監(jiān)聽多路訪問及沖突監(jiān)測)協(xié)議,CDMA/CD協(xié)議不需用戶實現(xiàn),此協(xié)議只要采用通用的NIC(Network Interface Controller,網(wǎng)絡(luò)接口控制)芯片就可支持。為了保證系統(tǒng)在以太網(wǎng)中的通信,系統(tǒng)還需實現(xiàn)ARP應(yīng)答協(xié)議,該協(xié)議用于將IP地址映射成以太網(wǎng)MAC地址。ARP協(xié)議包括ARP請求和ARP響應(yīng)兩部分,系統(tǒng)與其他計算機(jī)通信,就必須要支持ARP響應(yīng)。ARP請求在本地建立了一個IP地址到MAC地址的映射,保證了對外通信的有的放矢。RARP(逆地址解析)協(xié)議主要用于解決如何從MAC地址得到IP地址,主要用于無盤工作站中。

在網(wǎng)絡(luò)層,由于系統(tǒng)要求能夠在Internet中進(jìn)行通信,因此系統(tǒng)要實現(xiàn)IP協(xié)議。在TCP/IP協(xié)議族中,網(wǎng)絡(luò)層協(xié)議包括IP協(xié)議(網(wǎng)際協(xié)議)、ICMP協(xié)議(Internet控制報文協(xié)議)以及IGMP協(xié)議(Internet組管理協(xié)議)等。IP協(xié)議是TCP/IP族的核心協(xié)議,它使異構(gòu)網(wǎng)絡(luò)之間的通信成為可能。因此RTU等系統(tǒng)數(shù)據(jù)跨越不同的網(wǎng)絡(luò)進(jìn)行傳輸就必須要實現(xiàn)IP協(xié)議。ICMP中規(guī)定了多種協(xié)議類型和代碼,如果完全地實現(xiàn)也要耗費不少的系統(tǒng)資源,該嵌入式系統(tǒng)中,在ICMP協(xié)議中能夠測試網(wǎng)絡(luò)的連通情況即可。

傳輸層主要是在2臺主機(jī)之間提供端到端的通信。傳輸層有2種不相同的傳輸協(xié)議:TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報協(xié)議)。TCP是面向連接的,在不可靠的網(wǎng)絡(luò)服務(wù)上提供端到端的可靠字節(jié)流。TCP協(xié)議設(shè)計了嚴(yán)格的3次建立連接握手過程、4次關(guān)閉連接握手過程以及捎帶確認(rèn)信息并通過滑動窗口進(jìn)行流量控制的數(shù)據(jù)傳輸過程。UDP協(xié)議是不面向連接的,它只是簡單地把數(shù)據(jù)報從一臺主機(jī)發(fā)送到另一臺主機(jī),但并不保證該數(shù)據(jù)報能到達(dá)另一端,可靠性必須由應(yīng)用層來提供??紤]到系統(tǒng)中數(shù)據(jù)傳輸質(zhì)量,這里采用TCP協(xié)議。

應(yīng)用層協(xié)議主要是指用戶進(jìn)程。其包括:HTTP協(xié)議、FTP協(xié)議、POP3協(xié)議、SMTP協(xié)議、SNMP協(xié)議。

3 系統(tǒng)軟件設(shè)計

該TCP/IP網(wǎng)絡(luò)通信系統(tǒng)為了具有較好的實時性和穩(wěn)定性,采用μC/OS-Ⅱ設(shè)計系統(tǒng)軟件。在μC/OS-Ⅱ平臺上,軟件設(shè)計工作主要包括:μC/OS-Ⅱ在LPC2210上的移植和TCP/IP協(xié)議在μC/OS-Ⅱ上的實現(xiàn)以及系統(tǒng)應(yī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)應(yīng)用μC/OS-Ⅱ中的初始化配置。OS_CPU.H主要包括一些與處理器和編譯器相關(guān)的常量和類型定義等,而且需注意LPC2210的堆棧方向是由高到低,用OS_STK_GROWTH來設(shè)置堆棧的增長方向。因此將OS_STK_GROWTH設(shè)為1。OS_CPU_A.ASM中需編寫4個匯編語言函數(shù):OS_TASK_SW(),OS_IntCtxSw(),OSStartHighRdy()和OSTickISR()。

以太網(wǎng)鏈路層遵循的IEEE802.3協(xié)議的CSMA/CD和CRC校驗等功能由網(wǎng)絡(luò)控制芯片Rtl8019AS完成,LPC2210芯片則完成其他TCP/IP協(xié)議的解釋和執(zhí)行。LPC2210控制RTL8019AS完成通信任務(wù)時,首先要對RTL8019AS復(fù)位,并對RTL8019AS的寄存器進(jìn)行初始化,確定發(fā)送和接收的條件,然后才能發(fā)送數(shù)據(jù)或接收數(shù)據(jù)。當(dāng)一幀數(shù)據(jù)發(fā)送結(jié)束、接收到1幀數(shù)據(jù)或出錯等事件發(fā)生時,RTL8019AS向LPC2210申請中斷,LPC2210響應(yīng)中斷后根據(jù)中斷狀態(tài)寄存器的內(nèi)容進(jìn)行相應(yīng)的處理。

在LPC2210內(nèi)部,ARM程序完成對數(shù)據(jù)的打包解包。系統(tǒng)復(fù)位后,系統(tǒng)首先發(fā)送ARP請求,建立地址映射,并內(nèi)部中斷進(jìn)行定時更新。ARM芯片根據(jù)情況將采集或收集到數(shù)據(jù)按照TCP協(xié)議或UDP協(xié)議格式打包,送入網(wǎng)卡芯片,由網(wǎng)卡芯片將數(shù)據(jù)輸出到局域網(wǎng)中。ARM芯片對數(shù)據(jù)報進(jìn)行分析,如果是ARP(物理地址解析)數(shù)據(jù)包,則程序轉(zhuǎn)入ARP處理程序。如果是IP數(shù)據(jù)包則進(jìn)一步判斷是哪個協(xié)議向IP傳送數(shù)據(jù)。如果是ICMP協(xié)議,判斷是否為Ping請求,是則應(yīng)答,不是丟棄該數(shù)據(jù)包;如果是TCP或UDP協(xié)議,且端口正確則按相應(yīng)的協(xié)議處理數(shù)據(jù),端口不正確丟棄數(shù)據(jù)包。TCP/IP系統(tǒng)框圖如圖3所示。

TCP/IP在μC/OS-Ⅱ上的設(shè)計結(jié)束后,剩下的工作就是編寫應(yīng)用程序。將系統(tǒng)劃分成若干個任務(wù),每個任務(wù)對應(yīng)一個獨立的無限循環(huán)的主程序,完成一個特定的功能。為簡化設(shè)計,應(yīng)用程序采用靜態(tài)優(yōu)先級,即應(yīng)用程序在執(zhí)行的過程中各個任務(wù)優(yōu)先級保持不變。

4 結(jié) 語

基于ARM的嵌入式TCP/IP協(xié)議的設(shè)計方案,論述了軟、硬件的設(shè)計方法和協(xié)議的選擇。該設(shè)計方案在硬件實現(xiàn)上簡潔可靠;軟件實現(xiàn)上可維護(hù)性好;可擴(kuò)展性好,有利于系統(tǒng)的后續(xù)開發(fā),降低了系統(tǒng)設(shè)計的復(fù)雜性。實驗證明該方案可行性強(qiáng),可以直接把系統(tǒng)的處理數(shù)據(jù)送到以太網(wǎng)上傳輸??梢钥闯觯珹RM和嵌入式TCP/IP協(xié)議將會得到更大的發(fā)展和更廣闊的應(yīng)用。

參考文獻(xiàn)

[1]Jean J Labrosse.嵌入式實時操作系統(tǒng)μC/OS-Ⅱ[M].2版.北京:北京航空航天大學(xué)出版社,2003.

[2]周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,2005.

[3]周立功.ARM嵌入式系統(tǒng)軟件開發(fā)實例(一)[M].北京:北京航空航天大學(xué)出版社,2004.

[4]任哲.嵌入式實時操作系統(tǒng)μC/OS-Ⅱ原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2005.

[5]杜春雷.ARM體系結(jié)構(gòu)與編程[M].北京:清華大學(xué)出版社,2003.

[6]季昱,林俊超,宋飛.ARM嵌入式應(yīng)用系統(tǒng)開發(fā)典型實例[M].北京:中國電力出版社,2005.

[7]馬忠梅,馬廣云.ARM嵌入式處理器結(jié)構(gòu)與應(yīng)用基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,2002.

[8]王田苗.嵌入式系統(tǒng)設(shè)計與實例開發(fā)基于ARM微處理器與μC/OS-Ⅱ?qū)崟r操作系統(tǒng)[M].北京:清華大學(xué)出版社,2002.

[9]田澤.嵌入式系統(tǒng)開發(fā)與應(yīng)用教程[M].北京:北京航空航天大學(xué)出版社,2005.

[10]肖軍,邵景峰,馬輝,等.嵌入式實時操作系統(tǒng)與網(wǎng)絡(luò)構(gòu)件的設(shè)計[J].可編程控制器與工廠自動化,2006(10):70-72,48.

[11]邵貝貝.單片機(jī)嵌入式應(yīng)用的在線開發(fā)方法[M].北京:清華大學(xué)出版社,2004.

作者簡介 肖 軍 男,1981年出生,陜西西安人,西安航空技術(shù)高等??茖W(xué)校,助教,碩士。研究方向為嵌入式系統(tǒng)的開發(fā)。

猜你喜歡
嵌入式系統(tǒng)以太網(wǎng)
基于1500以太網(wǎng)養(yǎng)豬場的智能飼喂控制系統(tǒng)的設(shè)計與實現(xiàn)
談實時以太網(wǎng)EtherCAT技術(shù)在變電站自動化中的應(yīng)用
基于物聯(lián)網(wǎng)項目驅(qū)動的嵌入式系統(tǒng)教學(xué)改革的研究與實踐
嵌入式系統(tǒng)課程“中斷、異常與事件”教學(xué)實踐及啟示
面向?qū)嵺`創(chuàng)新人才培養(yǎng)的嵌入式系統(tǒng)教學(xué)研究
一種90W高功率以太網(wǎng)供電系統(tǒng)的設(shè)計
淺談EPON與工業(yè)以太網(wǎng)在貴遵高速公路中的應(yīng)用