| 基于uC/OS-II的适用于EPA网桥的TCP/IP协议 |
| 类别:网文精粹 |
| Implementation of TCP/IP Protocol Based on EPA NetBridge 摘要:分析了EPA网桥原理;参照EPA系统的通信模型,通过对标准TCP/IP协议进行简化,提出了一种基于uC/OS-II的适用于EPA网桥的TCP/IP协议。通过搭建一个典型的工业网络并进行相关测试,证明这种协议的可行性。 关键词:EPA网桥;TCP/IP协议;uC/OS-II;ARM Abstract: The principle of EPA netbridge was analyzed; Referring to the communication model of the EPA system, and cutting down the TCP/IP protocol, the paper provided a TCP/IP protocol based on uC/OS-II, applying for EPA netbridge. The practical constructing of a typical industrial network and the following test testified the feasibility of this protocol. Key words: EPA netbridge; TCP/IP Protocol; uC/OS-II; ARM 随着互联网技术的发展与普及,Ethernet技术也得到了迅速的发展,Ethernet传输速率的提高及其交换技术的发展,给解决Ethernet通信的非确定性问题带来了希望,并使Ethernet全面应用于工业控制领域成为可能。用于工业测量与控制的EPA(Ethernet for plant automation)系统结构和通信标准(简称“EPA标准”)在这种情形下被提出来,它针对工业测量与控制系统网络通信特点,以以太网和无线技术统一管理层、监控层和现场设备层等工业企业综合自动化系统的所有网络层次,实现了各网络层次上信息的无缝集成,即所谓的“E(Ethernet)到底”。 1EPA网桥 EPA网络由现场设备级L1网段和监控级L2网段组成。现场设备级L1网段用于工业生产现场的各种现场设备之间以及现场设备与L2网段的连接,监控级L2网段主要用于控制室仪表、装置以及人机接口之间的连接。 EPA网桥是可以组态的设备,用来在一个L1微网段与其他L1微网段或者与监控级L2网段之间进行互联。EPA网桥至少有两个通信接口,分别连接两个微网段。每个微网段通过EPA网桥与其他网段进行分隔,该微网段内EPA设备间的通信被限制在本控制区域内进行,实现通信隔离的作用。当EPA网桥需要转发报文时,检查报文中的源IP地址与目的IP地址、EPA服务标识等信息,确认是否需要转发及转发路径。因此,任何广播报文的转发也将受到控制,而不会发生采用一般交换机所出现的广播风暴。 2EPA通信模型 从ISO/OSI开放系统互连参考模型来看,以太网和无线通信规范只映射为其中的物理层和数据链路层;网络层和传输层,目前以TCP/IP协议为主;对会话层、表示层、应用层等没有作技术规定。如果只有Ethernet、TCP/IP这低四层协议规范,只能保证连接到以太网上的设备进行互连,不能保证它们之间的信息互访,因此EPA标准定义了应用层规范,以实现基于以太网和无线技术的工业测量和控制仪表与系统之间的可互操作。同时,还定义了相应的机制,实现基于以太网和无线通信的确定性通信。 图1为EPA通信模型与ISO/OSI参考模型之间的关系图。EPA通信模型参照ISO/OSI通信参考模型,取其物理层、数据链路层、网络层、传输层、应用层,并在应用层之上增加用户层,在网络层和MAC层之间增EPA实时通信管理接口,共构成6层结构的通信模型。 500)this.style.width=500;" border=0> 图1 EPA通信模型示意图 3TCP/IP协议的实现 3.1 硬件实现 EPA网桥的硬件部分主要包括微处理器AT91R40008、以太网控制器AX88796、存储器SST39VF160三个部分。其中,微处理器实现特定接口功能及执行相关控制,以太网控制器用来实现现场设备的数据信息传输,微处理器通过外部总线接口(EBI)来和外部的存储器进行数据交换,存储器中保存了协议的实现所必须的相关代码。 TCP/IP协议网络层、传输层和应用层由微处理器来处理,实现与以太网的各种数据报文的交换,控制报文的产生、应答,及相应的打包、拆包等过程,同时完成相应的指令执行等功能。 TCP/IP协议物理层、链路层部分由以太网控制器完成,通过网络隔离器HR61H50L以及RJ45直接连到以太网上。在EPA网桥中选用两片以太网控制器芯片来进行数据转发,以太网控制器接收数据的控制采用中断方式进行。 3.2 uC/OS-II操作系统 TCP/IP协议的特点决定了它要想很好地实现,必须要有一个多任务操作系统的支持。 uC/OS-II是专门为单片机和嵌入式应用设计的实时操作系统内核,它是一种占先式、多任务、移植性强的免费公开源代码的实时操作系统,内核属于抢占式,最多可以管理60个任务,其稳定性和可用性是经过实验验证的。 为了保证软件的可靠运行,本文的设计以uC/OS-II为操作系统,实现了多任务方式。程序在main函数中主要设置了3大类任务:中断服务任务、系统任务和用户任务。 中断服务任务用来保证时间相关性很强的关键操作,在系统设计中充分考虑到微控制器的特点,将两个以太网控制器的接收报文设置为中断,提高了系统响应的实时性。 系统任务中的空闲任务优先级最低,是最基本的系统任务,必须在系统启动前建立。 用户任务的设计是整个系统设计的核心,在优先级最高的任务中,首先初始化定时器、设置中断、建立其他用户任务,然后初始化并启动网卡,进行以太网接收和IP,ARP等过程的处理。 3.3 软件模块的设计与实现 3.3.1 协议的简化 TCP/IP协议把大量的精力花在保证数据传送的可靠性以及数据的流量控制上,使得协议的实现过于复杂,导致在实时性方面做得不够好。 本文协议设计的出发点是采用简化的网络协议:采用模块化设计思想,在不影响网络基本功能和标准的原则上,以满足实用为目的,按照微控制器的性能要求,只在协议的类型以及相关的辅助协议上有一些删节,而具体的协议格式并没有改变,这样即可以保证EPA网桥通过以太网接入EPA系统,也保证了足够小的代码量,满足较少的资源限制。同时为每个模块设计良好的通信接口,保证上层、下层协议的系统调用。针对本设计的特点和功能,采取了下列简化措施: (1)取消RARP响应,简化ARP协议流程,使其成为简单的IP与MAC查询协议;考虑到工业现场设备相对而言比较固定,取消对ARP表的定时刷新,减少系统的刷新开销; (2)根据EPA系统的特点,将数据报文最大长度限制在512字节内,使得无需加入分包程序和算法,简化IP协议负担; (3)对ICMP协议,只实现对收到的echo请求消息产生一个echo应答,用以实现一定的网络诊断功能; (4)在EPA体系结构中,规定EPA应用访问实体与EPA系统管理实体的服务报文均采用UDP协议传送[1]。这里取消TCP协议,只响应UDP协议并采取“应答式停-等流控制技术”技术保证数据可靠性; (5)为了实现各层协议的独立,同时为了减少由于数据拷贝引入的系统开销,对数据报文的处理采取指针形式,系统通过指针操作,不在程序中做复制和移动数据报文的工作。 3.3.2 以太网控制器驱动模块 以太网控制器驱动程序模块包含了微处理器的初始化(包括启动代码、外围设备配置、中断向量设置、堆栈设置等),以太网控制器驱动程序(网络接口初始化以及接收、发送数据)等内容。驱动程序工作在IP协议模型的网络接口层,它提供给上层的接口函数为:uint16 Etherdev_init(uint16 idx) 以太网控制器初始化函数;uint8 InportByte(uint16 idx, uint8 addr) 以太网控制器接受函数,从网络接口接收以太网数据报,并把其中的IP报文向IP层发送;void OutportByte(uint16 idx, uint8 addr, uint8 tempData) 以太网控制器发送函数,给IP层传来的IP报文加上以太网报头;void AT91IRQ1handler(void) 以太网控制器1中断处理函数;void AT91IRQ2handler(void) 以太网控制器2中断处理函数。 3.3.3 ARP模块 ARP模块的主要功能是完成将上层的协议地址(IP地址)到底层的硬件地址(MAC地址)的映射,处理来自网络的ARP数据分组,更新和维护ARP高速缓存,并为发送数据报提供相应的硬件地址绑定。void ARPInit(void) 完成ARP表的初始化;uint8 ARPInput(PSock psock)用于处理来自网络的ARP请求和ARP响应。uint8 ARPOutput(uint32 ip, uint8 mac[], uint16 op)用于发送ARP请求包来寻找对应于IP地址的物理地址; 3.3.4 IP模块 IP模块的主要任务是对数据报文相关的接口信息和IP地址进行分析和处理,接收来自网络的输入数据报和来自上层协议的输出数据报。uint8 IPInput(PSock psock)负责处理收到的IP数据报文,根据IP数据报文头字段的内容,将IP数据报文传递到上层协议模块;uint8 IPOutput(PSock psock, uint8 protocol)负责将上层送下来的、需要发送的数据报文添加一个IP报文头,然后重新封装起来发送下去。 3.3.5 ICMP模块 ICMP模块用来测试系统与网络的连接性能或发现故障,它与IP模块协同工作。uint8 ICMPInput(PSock psock)解释分析接收到的ICMP报文,并进行相应的处理,uint8 ICMPOutput(uint32 ip, uint8 type, uint8 code, uint16 length, Octet data[])生成ICMP回应报文。 3.3.6 UDP模块 UDP模块是用来实现在两个不同进程间进行多路转发数据报文。它把应用程序传给IP层的数据发送出去,但并不能保证他们能达到目的地。uint8 UDPInput(PSock psock) 负责处理收到的UDP数据报文,uint8 UDPOutput(PSock psock) 负责处理要发送的UDP数据报文。 3.3.7 RIP模块 RIP模块是用来与其他的EPA网桥交换有关网络拓扑和可达性的信息。RIP 通过广播UDP报文来交换路由信息,它的首要目标是保证网络中的所有EPA网桥都具有一个完整准确的网络拓扑图。void RouterInit(void)完成路由表的初始化;void RIPInput(PSock psock)负责处理接收到的RIP数据包,void RIPRequest(uint16 dstport, uint32 dstip, uint32 idx)发送RIP请求,void RIPResponse(PSock psock, uint16 dstport, uint32 idx)发送RIP响应。 4EPA网桥应用实例 为了考查和验证上述TCP/IP协议的网络性能,参照EPA标准,搭建了一个比较典型的小型工业控制网络。搭建的EPA网桥的应用网络结构如图2所示: 500)this.style.width=500;" border=0> 图2 EPA网桥应用网络示意图 EPA网桥两个端口分别连接网段2和网段3,端口IP分别设置为128.128.2.202和128.128.3.203,子网掩码均为255.255.255.0;端口2通过Hub连接着上位机,上位机的IP为128.128.2.50,监控软件实现对EPA网络中的设备进行实时监控、组态等功能,监控软件采用重庆邮电大学自主开发的EPAStudio组态软件;端口3通过Hub连接着EPA现场设备, EPA现场设备的IP设置分别如图2中所示。 整个网络的通信过程可分为EPA网桥作为设备与上位机通信和EPA设备通过EPA网桥与上位机进行通信两个过程: (1)EPA网桥作为EPA设备,与上位机进行通信 EPA网桥上电启动后,启动EPA协议栈,经过UDP、IP封装,发送给上位机,通过组态,EPA网桥与上位机建立通信关系;上位机通过EPA网桥不同的ID标识来区分不同的EPA网桥,组态完毕的EPA网桥才能够正常的进行相互通信 (2)EPA网桥实现数据报文转发和控制功能,EPA设备通过EPA网桥与上位机的通信 EPA设备将信息打包成标准的EPA报文格式,通过UDP,IP封装,发送给EPA网桥;EPA网桥解析EPA设备发送来的EPA报文,将本身的ID加到报文的特殊字段中,根据相关的转发机制转发给上位机;上位机的组态软件接收到经过EPA网桥转发的EPA报文后,解析出带有EPA网桥标识ID的特殊字段,即可知道其设备是从属于哪个具体的EPA网桥。这样当现场设备工作异常时,能在组态软件中对该设备实现故障定位和隔离。上位机的组态软件对EPA设备的监控指令打包成EPA报文,通过EPA网桥转发给EPA设备。 运行组态软件后,整个控制网络在组态软件监测下的测试结果如图3所示。 500)this.style.width=500;" border=0> 图3 EPA组态软件示意图 经过不间断的测试,结果表明,EPA网桥的TCP/IP协议,在EPA网桥作为EPA设备与上位机通信,以及EPA网桥在实现EPA设备的报文转发和控制时,均运行良好,实现了预期的目的。 5 结束语 文中介绍了EPA网桥的原理,根据EPA协议的通信特点和要求,利用微处理器和以太网控制器,结合TCP/IP协议规范,给出了一种在EPA网桥上实现的TCP/IP协议。该协议的设计与实现充分考虑系统资源有限性,优化各任务及其优先级以求最佳利用微控制器的资源,测试结果表明EPA网桥的TCP/IP协议实现了EPA标准所规定的要求,测试达到了相应的性能指标,且工作稳定可靠。 本文作者创新点:本文对TCP/IP进行了适当的简化,运用于EPA网桥,较好地解决了TCP/IP协议应用于EPA网桥中所存在的主要问题,保证了EPA系统的正常运行。 |
- B2B搜索“联姻”..
- 2008-9-11
- HOLTEK推出H..
- 2008-9-11
- 关于ISPRO校验..
- 2008-9-11
- 利用适配板实现免制..
- 2008-9-11
- GSMSMS模块客..
- 2008-9-11
- ISPro下载型编..
- 2008-9-11
- C语言之stati..
- 2008-9-11
- 完美结合语音芯片与..
- 2008-9-11
- 又做一工具:ATm..
- 2008-9-11
- QE128的DEM..
- 2008-9-11
- 特别推荐一款高性能..
- 2008-9-11
- SATA硬盘使用解..
- 2008-9-16
- EPoX主板几种前..
- 2008-9-16
- 反其道行之降低电压..
- 2008-9-16
- 基于ATM8051..
- 2008-9-16
- THB6016H测..
- 2008-9-16
- 显示器黑屏的解决办..
- 2008-9-16
- 你会买网络服务器吗..
- 2008-9-16
- 酷漫教你制作只带一..
- 2008-9-16
- 酷漫破解网页右健锁定
- 2008-9-16



