工业以太网确定性调度的设计与实现.docx
工业以太网确定性调度的设计与实现ronggang导语:工业控制网络对网络的实时性要求很高,不仅要求传输速度快,数据传输还要具有确定性。以太网的通讯存在不确定性,不能知足实时性要求,成为以太网应用于工业控制领域的主要障碍摘要:工业控制网络对网络的实时性要求很高,不仅要求传输速度快,数据传输还要具有确定性。以太网的通讯存在不确定性,不能知足实时性要求,成为以太网应用于工业控制领域的主要障碍。本设计实现的实时以太网2就是网络中每个节点的通讯被严格地限定在规定时间内,确保在同一网段内同时只有一台在发送数据。关键词:工业以太网;确定性;调度;实时1.前言工业控制网络是一种特定应用的网络,和贸易信息网络相比,它具有自身的要求和特点,其中非常重要的一点就是实时性要求高,不仅要求传输速度快,还要求响应快,并且数据传输要具有确定性。以太网的通讯调度方式带有冲突检测的载波侦听多路访问机制CSMA/CD,是一种非确定性的通讯调度方式。网络每个节点要通过竞争来获得信息的发送权:节点监听信道,只有发现信道空闲时才能发送信息。信息开场发送后,还需要检查是否发生碰撞,如发生碰撞,那么需等待,等待的时间取决于二进制指数退避算法得出的随机延迟14,这种随机延迟为工业通讯的数据传输增加了难以防止的不确定性。2.系统模型本设计通过在以太网MAC层之上增加确定性调度层,上层采用了EPA3EthernetofPlantAutomation协议的数据封装格式,因此使数据包的类型判定和调度发送时间的获取成为可能。EPA是一种基于的现场总线标准,是在控制系统与现场测量、控制装置之间,以及现场测量、之间进展通讯的分布式数字控制系统。这样对所有的上层数据包在整个实时网段范围内进展数据包统一调度发送,进而防止碰撞现象的发生并确保数据传输确实定性要求。通讯模型如图1所示:图1实时以太网通讯模型3.系统设计本设计是在嵌入式平台下实现的,利用ARM7处理器和Cs8900网络接口芯片搭建的硬件平台进展开发,在同一网段中,每一个运行的设备等同于一个网络节点。上层采用EPA协议封装,分实时数据和非实时数据进展发送和接收。实时数据到达后,通过实时通讯效劳接口向下递交,对数据进展缓存处理,等待调度发送。下一个发送周期到来后,将用新的实时数据更新相应缓冲区;非实时通讯效劳通过OS中提供的BSD接口来提供,但是为了实现确定性的调度,非实时数据包穿越TCP/IP协议栈到达数据链路层时,不允许直接调用硬件驱动接口进展数据包收发操纵,而是通过一个虚拟的驱动接口将数据包放入相应的发送和接收队列。修改原E-NIC的驱动接口,使其成为虚拟驱动接口,无法直接将数据递交给硬件驱动,而是入非周期队列。对硬件网卡的收发操纵在硬件驱动接口中实现。设计图如图2:图2以太网确定性调度设计图确定性调度层负责何时调用硬件驱动接口收发数据帧。当确定性调度层收到数据帧时,根据以太网帧首部的type字段来区分实时数据帧和非实时数据帧。假设是实时数据帧,将用收到的实时数据更新相应缓冲区;假设是非实时数据,那么将其放入相应的接收队列并通过任务通讯机制通知上层协议栈数据帧到达事件。确定性调度层的调度表由调度算法生成。4.主要模块描绘实时通讯效劳接口、虚拟驱动接口、时钟同步效劳和实时调度算法为本设计的四个主要模块。4.1实时通讯效劳接口实时通讯效劳接口负责为上层应用协议提供周期性实时消息的实时通讯效劳。周期性实时消息的发送和接收采用缓冲机制,即为本节点在运行经过中要发送的每个周期性实时消息在内存中定义相应的缓冲区,每当上层应用通过实时通讯效劳接口发送新的消息时,即用该新消息值更新其对应缓冲区中的旧消息值;为本节点在运行经过中要接收的每个周期性实时消息在内存中定义相应的缓冲,每当上层应用通过实时通讯效劳接口接收新的消息时,那么将对应缓冲区中的消息值返回。节点在运行经过中将要发送的每个周期性实时消息必需要有与其对应的已知的目的地址包括目的MAC地址-用于识别节点,端口号-用于识别实时消息所对应的缓冲区元素。实时通讯效劳接口要提供以下接口函数:1RtAppInterface创立实时接口函数,用于实时周期性消息的发送和接收。2RtMapping将由RtAppInterface函数创立的接口进程映射到特定的地址MAC,端口号即缓冲元素的索引。3RtSend使用已创立和映射完毕的实时接口进程进展实时消息的发送。4RtRecv使用已创立和绑定完毕的实时接口进程进展实时消息的接收。4.2虚拟驱动接口虚拟驱动接口负责为上层TCP/UDP/IP协议栈提供一套虚拟的驱动程序接口,该接口必须与上层协议栈所使用的原硬件驱动接口一致,但需改变该接口中的详细函数实现,使得虚拟驱动接口所对应的详细函数无法直接实现对硬件的控制如翻开,关闭设备,收发数据包等。必须确保用虚拟驱动接口交换原硬件驱动接口后,从TCP/IP协议栈使用驱动接口的角度来看,和使用原硬件接口一样,即用虚拟驱动接口交换原硬件驱动接口的改动对于上层协议栈的使用而言必须是透明的。对上层协议栈发下来的数据包以FIFO的顺序缓存到消息队列,何时调用硬件驱动接口发送这些数据包由确定性调度层决定。虚拟驱动接口提供的主要函数:1RtVirtualIn接收IP层的发送数据包,根据数据包类型确定转存入队列还是向下递交。2RtVirtualOut调用驱动层的发送函数发送数据,接收发送返回信息。3RtVirtualPacketType取对应字段,判定到来包类型EPA类型字段以太网类型字段。4.3时钟同步在实时网段内,时钟同步是非常关键的,由于实时网段内各节点上的任务运行和消息发送都是基于时间基准的,十分是总线上的消息调度,为了防止碰撞,消息间必须留出足够的间隙来包容节点间的同步误差。为了进步时钟同步精度,应把时钟同步功能放在协议栈中尽可能靠近硬件的位置。本系统中时钟同步功能由确定性调度层来提供。时钟同步协议采用IEEE1588协议6。在实时网段内选定一节点作为主时钟,主时钟定期发布时钟同步消息,时钟同步消息作为主时钟节点上的周期性消息。由于时钟同步消息在调度好的同步窗口中发送,可以保证时钟消息的发送独立于当前网络负载而无碰撞的发送,因此时钟消息从发布节点到各个接收节点的延迟对各个接收节点而言为一常量。4.4实时调度算法本设计采用的算法根据RM和EDF算法改良而成的7,每个根本周期开场时动态生成此根本调度单位ESU的调度时间表。整个链路时间由连续等长的根本调度单位ESU组成,通常ESU为实时网段内所有周期性实时消息的周期的最大公约数HCF。每个ESU被分成周期性实时消息窗口PW和非周期性消息窗口AW,如图3所示。PW中的调度根据事先由周期性实时消息调度算法生成的调度表来进展,调度表的长度为所有周期性实时消息的周期的最小公倍数LCM,调度表中与各个节点相关的局部被存放在各个节点中,各节点根据调度表中规定的时刻,以宏周期为循环单位周而复始的执行周期性实时消息的发送动作。在AW中,数据采用优先级队列节点轮询的方式发送。按照非周期数据实时要求将非周期数据划分为i个优先级,每个优先级在节点中维护一个非周期优先级队列,因此每个节点中的非实时优先级队列为i个。发送时采用节点轮询的方式按优先级从高到低的顺序进展发送,每次被轮询节点将指定优先级队列中的数据全部发送。图3根本周期内数据发送窗口5.结论本系统所实现的实时以太网可以完成网段内数据的调度发送,基于本设计的实时以太网完全可以应用于一般的经过控制工业领域。通过改良原型系统的时钟同步机制等来可以进一步进步系统的实时性以及时钟精度,基于本设计的实时以太网改良的目的是把时钟精度进步到微秒级,进而应用于时间精度要求较高的工业领域,如运动控制等。参考文献 1徐皑冬,王宏,杨志家.基于以太网的工业控制网络.()信息与控制),2000,292 2徐皑冬,王宏,邢志浩,工业以太网实时通讯技术.()信息与控制),2005,341 3冯冬芹,金建祥,王为民,褚健.基于EPA的分布式网络控制系统构造.自动化仪表,2003,249 4IEEEStd802.3,2000Edition,Part3:CarrierSenseMultipleAccesswithCollisionDetectionCSMA/CDAccessMethodandPhysicalLayerSpecifications,ISO/EEC8802-3:2000E,2000 5Y.Rajendra,P.Prashant,F.Raphael.Areservation-basedCSMAProtocolforintegratedmanufacturingnetworks.IEEETrans.onSystem,ManandCybernetics,Vol24no8,Aug1994,pp1247-1258 6IEEEStandard1588-2002,StandardforaPrecisionClockSynchronizationProtocolforNetworkedMeasurementandControlSystems,November2002,NewYork,USA. 7E.Tover,F.Vasques,A.Burns.CommunicationresponsetimeinP-NetNetwork:worst-caseanalysisconsideringtheactualtokenutilization.JSAReportYCS312UniversityofYork,1999