《電子技術應用》
您所在的位置:首頁 > 嵌入式技术 > 设计应用 > 基于ARM7实时网络的设计和实现[图]
基于ARM7实时网络的设计和实现[图]
摘要: 随着基于TCP/IP协议的Internet网络技术的日益发展和普及,各种信息网纷纷采用TCP/IP协议,并接入Internet网。传统的测控系统由于其封闭性有被基于TCP/IP的网上测控系统取代。由于IP寻址简单,适于异构网互连,为实现分布式处理、实时监控的测控系统的实现提供了很好的条件。本文所构建的系统被用于将多个采集点的数据传给主控机,实时网络还有其他三个采集节点,主控机按顺序给各个节点发指令字,并依次从它们那里接收数据包,其通信协议采用了TCP和UDP。并以KEIL uVision3的RTL实时库为软件平台,基于ATMEL公司ARM7系列处理器,实现了完整的功能。
關鍵詞: ARM ARM7 实时网络
Abstract:
Key words :
隨著基于TCP/IP協議的Internet網絡技術的日益發(fā)展和普及,各種信息網紛紛采用TCP/IP協議,并接入Internet網。傳統的測控系統由于其封閉性有被基于TCP/IP的網上測控系統取代。由于IP尋址簡單,適于異構網互連,為實現分布式處理、實時監(jiān)控的測控系統的實現提供了很好的條件。本文所構建的系統被用于將多個采集點的數據傳給主控機,實時網絡還有其他三個采集節(jié)點,主控機按順序給各個節(jié)點發(fā)指令字,并依次從它們那里接收數據包,其通信協議采用了TCP和UDP。并以KEIL uVision3的RTL實時庫為軟件平臺,基于ATMEL公司ARM7系列處理器,實現了完整的功能。

1 系統的硬件構成

1.1 系統的硬件

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

主控機用PC機,操作系統用RedHat9.0,它主要用于輪詢各個采集節(jié)點,并將從它們那里收到的數據包儲存和顯示出來。

1.2 系統的拓撲結構

實時以太網的拓撲結構與以太網相同。主機通過以太網卡連到通信電纜上。通信電纜可以是同軸電纜,也可以用非屏蔽雙絞線。如果是非屏蔽雙絞線,則需要用HUB。

2 系統的軟件構成

2.1 體系結構

實時以太網參照ISO的OSI模型,采用縮減的網絡體系結構。網絡體系結構分為四層:物理層、數據鏈路層、傳輸層和應用層,其中數據鏈路層又可細分為MAC子層和LLC子層。以太網卡實現了物理層和MAC子層能;LLC子層設計為向傳輸層提供無連接無確認的服務。傳輸層實現基于消息的數據傳輸,并向應用層提供網絡中節(jié)點間實時數據傳輸服務。下面將著重討論傳輸層協議的設計。

2.2 KEIL uVision3的RTL實時庫

RealView RL-ARM是為解決基于ARM MCU的嵌入式系統中的實時及通信問題而設計的緊密耦合庫集合。

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

View實時庫可以解決嵌入式開發(fā)中的如下幾個常見問題:

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

系統的網絡功能正是構建在RTL實時庫之上的。下面簡述一些RTL實時庫的網絡函數。

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

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

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

2.3 主控機的功能及系統的性能分析

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

按照上述的硬件和軟件構建后,調試和測試后可得系統的通信速率如表1和表2所示。

表1 PC對3個SAM7(基于TCP)
基于ARM7實時網絡的設計和實現

表2 PC對3個SAM7(基于UDP)
基于ARM7實時網絡的設計和實現

對照發(fā)現,UDP的傳輸速率可以達到TCP的約2.5倍。由于UDP協議并不提供數據傳送的保證機制,如果在從發(fā)送方到接收方的傳遞過程中出現數據報的丟失,協議本身并不能做出任何檢測或提示。因此,我們把UDP協議稱為不可靠的傳輸協議。而TCP協議中包含了專門的傳遞保證機制,當數據接收方收到發(fā)送方傳來的信息時,會自動向發(fā)送方發(fā)出確認消息;發(fā)送方只有在接收到該確認消息之后才繼續(xù)傳送其它信息,否則將一直等待直到收到確認信息為止。鑒于此,我們在系統在采用了以下的機制,即在PC先采集節(jié)點發(fā)送指令字時用TCP協議,而在傳輸采集數據包是就用UDP協議。

3 結束語

保證網絡通信的實時性,對整個實時系統的正??煽窟\轉起著決定性作用。實時以太網具有實時、高速、價格便宜等優(yōu)點。但也有其不足之處。如抗惡劣環(huán)境能力差;傳輸層在主機實現,占用了主機的資源;與主機上程序的協調運行也是要考慮的問題。

作者:胡博 韓菲帆   來源:《信息通信》2011年02期

此內容為AET網站原創(chuàng),未經授權禁止轉載。

相關內容