《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于ARM7實(shí)時(shí)網(wǎng)絡(luò)的設(shè)計(jì)和實(shí)現(xiàn)[圖]
基于ARM7實(shí)時(shí)網(wǎng)絡(luò)的設(shè)計(jì)和實(shí)現(xiàn)[圖]
摘要: 隨著基于TCP/IP協(xié)議的Internet網(wǎng)絡(luò)技術(shù)的日益發(fā)展和普及,各種信息網(wǎng)紛紛采用TCP/IP協(xié)議,并接入Internet網(wǎng),。傳統(tǒng)的測(cè)控系統(tǒng)由于其封閉性有被基于TCP/IP的網(wǎng)上測(cè)控系統(tǒng)取代,。由于IP尋址簡(jiǎn)單,適于異構(gòu)網(wǎng)互連,為實(shí)現(xiàn)分布式處理、實(shí)時(shí)監(jiān)控的測(cè)控系統(tǒng)的實(shí)現(xiàn)提供了很好的條件。本文所構(gòu)建的系統(tǒng)被用于將多個(gè)采集點(diǎn)的數(shù)據(jù)傳給主控機(jī),,實(shí)時(shí)網(wǎng)絡(luò)還有其他三個(gè)采集節(jié)點(diǎn),主控機(jī)按順序給各個(gè)節(jié)點(diǎn)發(fā)指令字,,并依次從它們那里接收數(shù)據(jù)包,,其通信協(xié)議采用了TCP和UDP。并以KEIL uVision3的RTL實(shí)時(shí)庫(kù)為軟件平臺(tái),,基于ATMEL公司ARM7系列處理器,,實(shí)現(xiàn)了完整的功能。
Abstract:
Key words :
隨著基于TCP/IP協(xié)議的Internet網(wǎng)絡(luò)技術(shù)的日益發(fā)展和普及,,各種信息網(wǎng)紛紛采用TCP/IP協(xié)議,,并接入Internet網(wǎng)。傳統(tǒng)的測(cè)控系統(tǒng)由于其封閉性有被基于TCP/IP的網(wǎng)上測(cè)控系統(tǒng)取代,。由于IP尋址簡(jiǎn)單,,適于異構(gòu)網(wǎng)互連,,為實(shí)現(xiàn)分布式處理、實(shí)時(shí)監(jiān)控的測(cè)控系統(tǒng)的實(shí)現(xiàn)提供了很好的條件,。本文所構(gòu)建的系統(tǒng)被用于將多個(gè)采集點(diǎn)的數(shù)據(jù)傳給主控機(jī),,實(shí)時(shí)網(wǎng)絡(luò)還有其他三個(gè)采集節(jié)點(diǎn),主控機(jī)按順序給各個(gè)節(jié)點(diǎn)發(fā)指令字,,并依次從它們那里接收數(shù)據(jù)包,,其通信協(xié)議采用了TCP和UDP。并以KEIL uVision3的RTL實(shí)時(shí)庫(kù)為軟件平臺(tái),,基于ATMEL公司ARM7系列處理器,,實(shí)現(xiàn)了完整的功能。

1 系統(tǒng)的硬件構(gòu)成

1.1 系統(tǒng)的硬件

系統(tǒng)的三個(gè)采集節(jié)點(diǎn)都采用ATMEL的AT91SAM7X256,,該微控制器具備嵌入式10/100以太網(wǎng)(Ethernet)MAC,、CAN、全速(12Mbps)USB2.0,。它針對(duì)廣泛的網(wǎng)絡(luò)化實(shí)時(shí)嵌入式系統(tǒng)而設(shè)計(jì)的,,AT91SAM7X256還具備一個(gè)10位模數(shù)轉(zhuǎn)換器(ADC)、兩個(gè)串行外圍接口(SPI),、同步串行接口(SSC)、雙線接口(TWI),、三個(gè)通用異步收發(fā)器(UART),、一個(gè)8級(jí)(8-level)優(yōu)先中斷控制器(priority inter rupt controller)和眾多的監(jiān)管功能。這個(gè)新型的50 MIPSMCU擁有64KB的靜態(tài)存儲(chǔ)器和256KB的25ns閃存,,這種閃存支持實(shí)時(shí)控制系統(tǒng)所需的可確定性處理能力,。

主控機(jī)用PC機(jī),操作系統(tǒng)用RedHat9.0,,它主要用于輪詢各個(gè)采集節(jié)點(diǎn),,并將從它們那里收到的數(shù)據(jù)包儲(chǔ)存和顯示出來(lái)。

1.2 系統(tǒng)的拓?fù)浣Y(jié)構(gòu)

實(shí)時(shí)以太網(wǎng)的拓?fù)浣Y(jié)構(gòu)與以太網(wǎng)相同,。主機(jī)通過(guò)以太網(wǎng)卡連到通信電纜上,。通信電纜可以是同軸電纜,也可以用非屏蔽雙絞線,。如果是非屏蔽雙絞線,,則需要用HUB。

2 系統(tǒng)的軟件構(gòu)成

2.1 體系結(jié)構(gòu)

實(shí)時(shí)以太網(wǎng)參照ISO的OSI模型,,采用縮減的網(wǎng)絡(luò)體系結(jié)構(gòu),。網(wǎng)絡(luò)體系結(jié)構(gòu)分為四層:物理層、數(shù)據(jù)鏈路層,、傳輸層和應(yīng)用層,,其中數(shù)據(jù)鏈路層又可細(xì)分為MAC子層和LLC子層,。以太網(wǎng)卡實(shí)現(xiàn)了物理層和MAC子層能;LLC子層設(shè)計(jì)為向傳輸層提供無(wú)連接無(wú)確認(rèn)的服務(wù),。傳輸層實(shí)現(xiàn)基于消息的數(shù)據(jù)傳輸,,并向應(yīng)用層提供網(wǎng)絡(luò)中節(jié)點(diǎn)間實(shí)時(shí)數(shù)據(jù)傳輸服務(wù)。下面將著重討論傳輸層協(xié)議的設(shè)計(jì),。

2.2 KEIL uVision3的RTL實(shí)時(shí)庫(kù)

RealView RL-ARM是為解決基于ARM MCU的嵌入式系統(tǒng)中的實(shí)時(shí)及通信問(wèn)題而設(shè)計(jì)的緊密耦合庫(kù)集合,。

它可以非常方便地應(yīng)用于所有ARM7、ARM9和Cortex-M3系列的處理器,,使得在ARM處理器上運(yùn)行實(shí)時(shí)程序非常容易,。它包含四個(gè)部分:RTX實(shí)時(shí)內(nèi)核、Flash文件系統(tǒng),、TCP/IP協(xié)議簇,、RTL-CAN (控制域網(wǎng)絡(luò)),Real??

View實(shí)時(shí)庫(kù)可以解決嵌入式開(kāi)發(fā)中的如下幾個(gè)常見(jiàn)問(wèn)題:

(1)多任務(wù)(可以在單CPU上管理幾個(gè)工作或任務(wù)),;(2)實(shí)時(shí)控制(可以控制任務(wù)在既定時(shí)間內(nèi)完成),;(3)任務(wù)間通信(可以實(shí)現(xiàn)系統(tǒng)中的任務(wù)間通信);(4)Internet連接(通過(guò)以太網(wǎng)或串口(Modem)),;(5)嵌入式Web服務(wù)器(包括CGI腳本),;(6)E-mail公告(通過(guò)SMTP)。

系統(tǒng)的網(wǎng)絡(luò)功能正是構(gòu)建在RTL實(shí)時(shí)庫(kù)之上的,。下面簡(jiǎn)述一些RTL實(shí)時(shí)庫(kù)的網(wǎng)絡(luò)函數(shù),。

(1)TCP發(fā)送函數(shù)BOOL tcp_send(U8 Socket,U8* buf,,U16 dlen),;其中Socket為通信TCP Socket,它包含了對(duì)方的IP和端口信息,,buf為要發(fā)送數(shù)據(jù)的首地址,,dlen為發(fā)送數(shù)據(jù)包的最大值。

(2)UDP的發(fā)送函數(shù)udp_send(U8 Socket,,U8 *remip,,U16 remport,U8 * buf,,U16 dlen),,其中Socket為通信UDP Socket,remip為對(duì)方的IP地址,,remport為對(duì)方的通信端口,,buf為要發(fā)送數(shù)據(jù)的首地址,dlen為發(fā)送數(shù)據(jù)包的最大值,。

(3)接收數(shù)據(jù)時(shí),,RTL實(shí)時(shí)庫(kù)不像BSD Socket一樣有專(zhuān)門(mén)的接收函數(shù),,而是利用回調(diào)機(jī)制,即收到數(shù)據(jù)時(shí),,就觸發(fā)相應(yīng)的回調(diào)函數(shù),。另外,對(duì)于TCP,,在回調(diào)函數(shù)里它有多個(gè)響應(yīng)事件,,如TCP_EVT_CONREQ (連接請(qǐng)求);TCP_EVT_CONNECT(已建立連接),;TCP_EVT _CLOSE(連接已關(guān)閉),;TCP_EVT_ABORT (連接異常終止);TCP_EVT_ACK(發(fā)送的數(shù)據(jù)已被對(duì)方響應(yīng)),;TCP_EVT _DATA (收到數(shù)據(jù)包),,提取收到的數(shù)據(jù)并進(jìn)行處理就是在該事件下完成的。然而,,對(duì)于UDP,,它沒(méi)有各個(gè)響應(yīng)事件。

2.3 主控機(jī)的功能及系統(tǒng)的性能分析

主控機(jī)的運(yùn)行環(huán)境為RedH at9.0,,采用標(biāo)準(zhǔn)的BSDSocket,,它按順序給各點(diǎn)發(fā)指令字,然后依次從它們那里接收數(shù)據(jù)包并進(jìn)行存儲(chǔ)和顯示,。

按照上述的硬件和軟件構(gòu)建后,,調(diào)試和測(cè)試后可得系統(tǒng)的通信速率如表1和表2所示。

表1 PC對(duì)3個(gè)SAM7(基于TCP)
基于ARM7實(shí)時(shí)網(wǎng)絡(luò)的設(shè)計(jì)和實(shí)現(xiàn)

表2 PC對(duì)3個(gè)SAM7(基于UDP)
基于ARM7實(shí)時(shí)網(wǎng)絡(luò)的設(shè)計(jì)和實(shí)現(xiàn)

對(duì)照發(fā)現(xiàn),,UDP的傳輸速率可以達(dá)到TCP的約2.5倍。由于UDP協(xié)議并不提供數(shù)據(jù)傳送的保證機(jī)制,,如果在從發(fā)送方到接收方的傳遞過(guò)程中出現(xiàn)數(shù)據(jù)報(bào)的丟失,,協(xié)議本身并不能做出任何檢測(cè)或提示。因此,,我們把UDP協(xié)議稱(chēng)為不可靠的傳輸協(xié)議,。而TCP協(xié)議中包含了專(zhuān)門(mén)的傳遞保證機(jī)制,當(dāng)數(shù)據(jù)接收方收到發(fā)送方傳來(lái)的信息時(shí),,會(huì)自動(dòng)向發(fā)送方發(fā)出確認(rèn)消息,;發(fā)送方只有在接收到該確認(rèn)消息之后才繼續(xù)傳送其它信息,否則將一直等待直到收到確認(rèn)信息為止,。鑒于此,,我們?cè)谙到y(tǒng)在采用了以下的機(jī)制,即在PC先采集節(jié)點(diǎn)發(fā)送指令字時(shí)用TCP協(xié)議,,而在傳輸采集數(shù)據(jù)包是就用UDP協(xié)議,。

3 結(jié)束語(yǔ)

保證網(wǎng)絡(luò)通信的實(shí)時(shí)性,,對(duì)整個(gè)實(shí)時(shí)系統(tǒng)的正常可靠運(yùn)轉(zhuǎn)起著決定性作用,。實(shí)時(shí)以太網(wǎng)具有實(shí)時(shí),、高速、價(jià)格便宜等優(yōu)點(diǎn),。但也有其不足之處,。如抗惡劣環(huán)境能力差;傳輸層在主機(jī)實(shí)現(xiàn),,占用了主機(jī)的資源,;與主機(jī)上程序的協(xié)調(diào)運(yùn)行也是要考慮的問(wèn)題。

作者:胡博 韓菲帆   來(lái)源:《信息通信》2011年02期

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。