基于ARM7实时网络的设计和实现
扫描二维码
随时随地手机看文章
随着基于TCP/ IP 协议的Internet 网络技术的日益发展和普及, 各种信息网纷纷采用T CP/ IP 协议, 并接入Internet 网。传统的测控系统由于其封闭性有被基于TCP/ IP 的网上测控系统取代。由于IP 寻址简单, 适于异构网互连, 为实现分布式处理、实时监控的测控系统的实现提供了很好的条件。本文所构建的系统被用于将多个采集点的数据传给主控机, 实时网络还有其他三个采集节点, 主控机按顺序给各个节点发指令字, 并依次从它们那里接收数据包, 其通信协议采用了T CP 和U DP。并以KEIL uVision3 的RT L 实时库为软件平台, 基于ATMEL公司ARM7 系列处理器, 实现了完整的功能。
1 系统的硬件构成
1. 1 系统的硬件
系统的三个采集节点都采用ATMEL 的A T91SAM7X256, 该微控制器具备嵌入式10/ 100 以太网(Ethernet) MA C、CA N、全速( 12Mbps) U SB 2. 0。它针对广泛的网络化实时嵌入式系统而设计的,AT 91SAM7X256 还具备一个10 位模数转换器( ADC) 、两个串行外围接口( SPI) 、同步串行接口( SSC) 、双线接口( TWI) 、三个通用异步收发器( UART) 、一个8 级( 8- level) 优先中断控制器( pr ior ity inter rupt controller ) 和众多的监管功能。这个新型的50 MIPS MCU 拥有64KB 的静态存储器和256K B 的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 的嵌入式系统中的实时及通信问题而设计的紧密耦合库集合。
它可以非常方便地应用于所有A RM7、ARM9 和Cort ex-M3 系列的处理器, 使得在ARM 处理器上运行实时程序非常容易。它包含四个部分: RT X 实时内核、Flash 文件系统、TCP/ IP 协议簇、RT L - CAN ( 控制域网络) , Real??
V iew 实时库可以解决嵌入式开发中的如下几个常见问题:
( 1) 多任务( 可以在单CPU 上管理几个工作或任务) ;( 2) 实时控制( 可以控制任务在既定时间内完成) ;( 3) 任务间通信( 可以实现系统中的任务间通信) ;( 4) Internet 连接( 通过以太网或串口( Modem) ) ;( 5) 嵌入式Web 服务器( 包括CGI 脚本) ;( 6)E- mail 公告( 通过SMT P) 。
系统的网络功能正是构建在RT L 实时库之上的。下面简述一些RTL 实时库的网络函数。
( 1) TCP 发送函数BOOL t cp_ send ( U8 Socket , U8* buf, U16 dlen) ;其中Socket 为通信TCP Socket, 它包含了对方的IP和端口信息, buf 为要发送数据的首地址, dlen 为发送数据包的最大值。
( 2)U DP 的发送函数udp _ send ( U8 Socket , U8 *remip, U16 rempor t, U 8 * buf, U16 dlen) , 其中Socket 为通信U DP S ocket , remip 为对方的IP 地址, rempor t 为对方的通信端口, buf 为要发送数据的首地址, dlen 为发送数据包的最大值。
( 3) 接收数据时, RT L 实时库不像BSD Socket 一样有专门的接收函数, 而是利用回调机制, 即收到数据时, 就触发相应的回调函数。另外, 对于T CP, 在回调函数里它有多个响应事件, 如TCP_EVT _CON REQ ( 连接请求) ; T CP_EVT_CONN ECT( 已建立连接) ; T CP_EVT _CLOSE( 连接已关闭) ; T CP_EV T_ABORT ( 连接异常终止) ; TCP_EV T_ACK( 发送的数据已被对方响应) ; T CP_EVT _DATA ( 收到数据包) , 提取收到的数据并进行处理就是在该事件下完成的。然而, 对于UDP, 它没有各个响应事件。[!--empirenews.page--]
2. 3 主控机的功能及系统的性能分析
主控机的运行环境为RedH at9. 0, 采用标准的BSDSocket , 它按顺序给各点发指令字, 然后依次从它们那里接收数据包并进行存储和显示。
按照上述的硬件和软件构建后, 调试和测试后可得系统的通信速率如表1 和表2 所示。
表1 PC 对3 个SAM7( 基于TCP )
表2 PC 对3 个SAM7( 基于UDP)
对照发现, U DP 的传输速率可以达到TCP 的约2. 5倍。由于U DP 协议并不提供数据传送的保证机制, 如果在从发送方到接收方的传递过程中出现数据报的丢失, 协议本身并不能做出任何检测或提示。因此, 我们把U DP协议称为不可靠的传输协议。而T CP 协议中包含了专门的传递保证机制, 当数据接收方收到发送方传来的信息时, 会自动向发送方发出确认消息; 发送方只有在接收到该确认消息之后才继续传送其它信息, 否则将一直等待直到收到确认信息为止。鉴于此, 我们在系统在采用了以下的机制, 即在PC 先采集节点发送指令字时用TCP 协议,而在传输采集数据包是就用UDP 协议。
3 结束语
保证网络通信的实时性, 对整个实时系统的正常可靠运转起着决定性作用。实时以太网具有实时、高速、价格便宜等优点。但也有其不足之处。如抗恶劣环境能力差;传输层在主机实现, 占用了主机的资源; 与主机上程序的协调运行也是要考虑的问题。