基于ARM7實(shí)時(shí)網(wǎng)絡(luò)的設(shè)計(jì)和實(shí)現(xiàn)
隨著基于TCP/ IP 協(xié)議的Internet 網(wǎng)絡(luò)技術(shù)的日益發(fā)展和普及, 各種信息網(wǎng)紛紛采用T CP/ 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é)議采用了T CP 和U DP。并以KEIL uVisiON3 的RT L 實(shí)時(shí)庫(kù)為軟件平臺(tái), 基于ATMEL公司ARM7 系列處理器, 實(shí)現(xiàn)了完整的功能。
本文引用地址:http://butianyuan.cn/article/149797.htm1 系統(tǒng)的硬件構(gòu)成
1. 1 系統(tǒng)的硬件
系統(tǒng)的三個(gè)采集節(jié)點(diǎn)都采用ATMEL 的A T91SAM7X256, 該微控制器具備嵌入式10/ 100 以太網(wǎng)(Ethernet) MA C、CA N、全速( 12Mbps) U SB 2. 0。它針對(duì)廣泛的網(wǎng)絡(luò)化實(shí)時(shí)嵌入式系統(tǒng)而設(shè)計(jì)的,AT 91SAM7X256 還具備一個(gè)10 位模數(shù)轉(zhuǎn)換器( ADC) 、兩個(gè)串行外圍接口( SPI) 、同步串行接口( SSC) 、雙線接口( TWI) 、三個(gè)通用異步收發(fā)器( UART) 、一個(gè)8 級(jí)( 8- level) 優(yōu)先中斷控制器( pr ior ity inter rupt controller ) 和眾多的監(jiān)管功能。這個(gè)新型的50 MIPS MCU 擁有64KB 的靜態(tài)存儲(chǔ)器和256K B 的25ns 閃存, 這種閃存支持實(shí)時(shí)控制系統(tǒng)所需的可確定性處理能力。
主控機(jī)用PC 機(jī), 操作系統(tǒng)用RedHat9. 0, 它主要用于輪詢各個(gè)采集節(jié)點(diǎn), 并將從它們那里收到的數(shù)據(jù)包儲(chǔ)存和顯示出來。
1. 2 系統(tǒng)的拓?fù)浣Y(jié)構(gòu)
實(shí)時(shí)以太網(wǎng)的拓?fù)浣Y(jié)構(gòu)與以太網(wǎng)相同。主機(jī)通過以太網(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ì)為向傳輸層提供無連接無確認(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í)及通信問題而設(shè)計(jì)的緊密耦合庫(kù)集合。
它可以非常方便地應(yīng)用于所有A RM7、ARM9 和Cort ex-M3 系列的處理器, 使得在ARM 處理器上運(yùn)行實(shí)時(shí)程序非常容易。它包含四個(gè)部分: RT X 實(shí)時(shí)內(nèi)核、Flash 文件系統(tǒng)、TCP/ IP 協(xié)議簇、RT L - CAN ( 控制域網(wǎng)絡(luò)) , Real??
V iew 實(shí)時(shí)庫(kù)可以解決嵌入式開發(fā)中的如下幾個(gè)常見問題:
( 1) 多任務(wù)( 可以在單CPU 上管理幾個(gè)工作或任務(wù)) ;( 2) 實(shí)時(shí)控制( 可以控制任務(wù)在既定時(shí)間內(nèi)完成) ;( 3) 任務(wù)間通信( 可以實(shí)現(xiàn)系統(tǒng)中的任務(wù)間通信) ;( 4) Internet 連接( 通過以太網(wǎng)或串口( Modem) ) ;( 5) 嵌入式Web 服務(wù)器( 包括CGI 腳本) ;( 6)E- mail 公告( 通過SMT P) 。
系統(tǒng)的網(wǎng)絡(luò)功能正是構(gòu)建在RT L 實(shí)時(shí)庫(kù)之上的。下面簡(jiǎn)述一些RTL 實(shí)時(shí)庫(kù)的網(wǎng)絡(luò)函數(shù)。
( 1) TCP 發(fā)送函數(shù)BOOL t cp_ send ( U8 Socket , U8* buf, U16 dlen) ;其中Socket 為通信TCP Socket, 它包含了對(duì)方的IP和端口信息, buf 為要發(fā)送數(shù)據(jù)的首地址, dlen 為發(fā)送數(shù)據(jù)包的最大值。
( 2)U DP 的發(fā)送函數(shù)udp _ send ( U8 Socket , U8 *remip, U16 rempor t, U 8 * buf, U16 dlen) , 其中Socket 為通信U DP S ocket , remip 為對(duì)方的IP 地址, rempor t 為對(duì)方的通信端口, buf 為要發(fā)送數(shù)據(jù)的首地址, dlen 為發(fā)送數(shù)據(jù)包的最大值。
( 3) 接收數(shù)據(jù)時(shí), RT L 實(shí)時(shí)庫(kù)不像BSD Socket 一樣有專門的接收函數(shù), 而是利用回調(diào)機(jī)制, 即收到數(shù)據(jù)時(shí), 就觸發(fā)相應(yīng)的回調(diào)函數(shù)。另外, 對(duì)于T CP, 在回調(diào)函數(shù)里它有多個(gè)響應(yīng)事件, 如TCP_EVT _CON REQ ( 連接請(qǐng)求) ; T CP_EVT_CONN ECT( 已建立連接) ; T CP_EVT _CLOSE( 連接已關(guān)閉) ; T CP_EV T_ABORT ( 連接異常終止) ; TCP_EV T_ACK( 發(fā)送的數(shù)據(jù)已被對(duì)方響應(yīng)) ; T CP_EVT _DATA ( 收到數(shù)據(jù)包) , 提取收到的數(shù)據(jù)并進(jìn)行處理就是在該事件下完成的。然而, 對(duì)于UDP, 它沒有各個(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 )
表2 PC 對(duì)3 個(gè)SAM7( 基于UDP)
對(duì)照發(fā)現(xiàn), U DP 的傳輸速率可以達(dá)到TCP 的約2. 5倍。由于U DP 協(xié)議并不提供數(shù)據(jù)傳送的保證機(jī)制, 如果在從發(fā)送方到接收方的傳遞過程中出現(xiàn)數(shù)據(jù)報(bào)的丟失, 協(xié)議本身并不能做出任何檢測(cè)或提示。因此, 我們把U DP協(xié)議稱為不可靠的傳輸協(xié)議。而T CP 協(xié)議中包含了專門的傳遞保證機(jī)制, 當(dāng)數(shù)據(jù)接收方收到發(fā)送方傳來的信息時(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é)束語
保證網(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)行也是要考慮的問題。
評(píng)論