- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于ARM7实时网络的设计和实现
随着基于TCP/IP协议的Internet网络技术的日益发展和普及,各种信息网纷纷采用TCP/IP协议,并接入Internet网。传统的测控系统由于其封闭性有被基于TCP/IP的网上测控系统取代。由于IP寻址简单,适于异构网互连,为实现分布式处理、实时监控的测控系统的实现提供了很好的条件。本文所构建的系统被用于将多个采集点的数据传给主控机,实时网络还有其他三个采集节点,主控机按顺序给各个节点发指令字,并依次从它们那里接收数据包,其通信协议采用了TCP和UDP。并以KEIL uVision3的RTL实时库为软件平台,基于ATMEL公司ARM7系列处理器,实现了完整的功能。
1 系统的硬件构成
1.1 系统的硬件
系统的三个采集节点都采用ATMEL的AT91SAM7X256,该微控制器具备嵌入式10/100以太网(Ethernet)MAC、CAN、全速(12Mbps)USB2.0。它针对广泛的网络化实时嵌入式系统而设计的,AT91SAM7X256还具备一个10位模数转换器(ADC)、两个串行外围接口(SPI)、同步串行接口(SSC)、双线接口(TWI)、三个通用异步收发器(UART)、一个8级(8-level)优先中断控制器(priority inter rupt controller)和众多的监管功能。这个新型的50 MIPSMCU拥有64KB的静态存储器和256KB的25ns闪存,这种闪存支持实时控制系统所需的可确定性处理能力。
主控机用PC机,操作系统用RedHat9.0,它主要用于轮询各个采集节点,并将从它们那里收到的数据包储存和显示出来。
1.2 系统的拓扑结构
实时以太网的拓扑结构与以太网相同。主机通过以太网卡连到通信电缆上。通信电缆可以是同轴电缆,也可以用非屏蔽双绞线。如果是非屏蔽双绞线,则需要用HUB。
2 系统的软件构成
2.1 体系结构
实时以太网参照ISO的OSI模型,采用缩减的网络体系结构。网络体系结构分为四层:物理层、数据链路层、传输层和应用层,其中数据链路层又可细分为MAC子层和LLC子层。以太网卡实现了物理层和MAC子层能;LLC子层设计为向传输层提供无连接无确认的服务。传输层实现基于消息的数据传输,并向应用层提供网络中节点间实时数据传输服务。下面将着重讨论传输层协议的设计。
2.2 KEIL uVision3的RTL实时库
RealView RL-ARM是为解决基于ARM MCU的嵌入式系统中的实时及通信问题而设计的紧密耦合库集合。
它可以非常方便地应用于所有ARM7、ARM9和Cortex-M3系列的处理器,使得在ARM处理器上运行实时程序非常容易。它包含四个部分:RTX实时内核、Flash文件系统、TCP/IP协议簇、RTL-CAN (控制域网络),Real??
View实时库可以解决嵌入式开发中的如下几个常见问题:
(1)多任务(可以在单CPU上管理几个工作或任务);(2)实时控制(可以控制任务在既定时间内完成);(3)任务间通信(可以实现系统中的任务间通信);(4)Internet连接(通过以太网或串口(Modem));(5)嵌入式Web服务器(包括CGI脚本);(6)E-mail公告(通过SMTP)。
系统的网络功能正是构建在RTL实时库之上的。下面简述一些RTL实时库的网络函数。
(1)TCP发送函数BOOL tcp_send(U8 Socket,U8* buf,U16 dlen);其中Socket为通信TCP Socket,它包含了对方的IP和端口信息,buf为要发送数据的首地址,dlen为发送数据包的最大值。
(2)UDP的发送函数udp_send(U8 Socket,U8 *remip,U16 remport,U8 * buf,U16 dlen),其中Socket为通信UDP Socket,remip为对方的IP地址,remport为对方的通信端口,buf为要发送数据的首地址,dlen为发送数据包的最大值。
(3)接收数据时,RTL实时库不像BSD Socket一样有专门的接收函数,而是利用回调机制,即收到数据时,就触发相应的回调函数。另外,对于TCP,在回调函数里它有多个响应事件,如TCP_EVT_CONREQ (连接请求);TCP_EVT_CONNECT(已建立连接);TCP_EVT _CLOSE(连接已关闭);TCP_EVT_ABORT (连接异常终止);TCP_EVT_ACK(发送的数据已被对方响应);TCP_EVT _DATA (收到数据包),提取收到的数据并进行处理就是在该事件下完成的。然而,对于UDP,它没有各个响应事件。
2.3 主控机的功能及系统的性能分析
主控机的运行环境为RedH at9.0,采用标准的BSDSocket,它按顺序给各点发指令字,然后依次从它们那里接收数据包并进行存储和显示。
按照上述的硬件和软件构建后,调试和测试后可得系统的通信速率如表1和表2所示。
表1 PC对3个SAM7(基于TCP)
表2 PC对3个SAM7(基于UDP)
对照发现,UDP的传输速率可以达到TCP的约2.5倍。由于UDP协议并不提供数据传送的保证机制,如果在从发送方到接收方的传递过程中出现数据报的丢失,协议本身并不能做出任何检测或提示。因此,我们把UDP协议称为不可靠的传输协议。而TCP协议中包含了专门的传递保证机制,当数据接收方收到发送方传来的信息时,会自动向发送方发出确认消息;发送方只有在接收到该确认消息之后才继续传送其它信息,否则将一直等待直到收到确认信息为止。鉴于此,我们在系统在采用了以下的机制,即在PC先采集节点发送指令字时用TCP协议,而在传输采集数据包是就用UDP协议。
3 结束语
保证网络通信的实时性,对整个实时系统的正常可靠运转起着决定性作用。实时以太网具有实时、高速、价格便宜等优点。但也有其不足之处。如抗恶劣环境能力差;传输层在主机实现,占用了主机的资源;与主机上程序的协调运行也是要考虑的问题。
作者:胡博 韩菲帆 来源:《信息通信》2011年02期