工业以太网确定性调度的设计与实现

时间:2023-03-20作者:佚名

工业控制网络对网络的实时性要求很高,不仅要求传输速度快,数据传输还要具有确定性。以太网的通信存在不确定性,不能满足实时性要求,成为以太网应用于工业控制领域的主要障碍。本设计实现的实时以太网[2]就是网络中每个节点的通信被严格地限定在规定时间内,确保在同一网段内同时只有一台在发送数据。

1. 前言

  工业控制网络是一种特定应用的网络,和商业信息网络相比,它具有自身的要求和特点,其中非常重要的一点就是实时性要求高,不仅要求传输速度快,还要求响应快,并且数据传输要具有确定性。以太网的通信调度方式——带有冲突检测的载波侦听多路访问机制(CSMA/CD),是一种非确定性的通信调度方式。网络每个节点要通过竞争来取得信息的发送权:节点监听信道,只有发现信道空闲时才能发送信息。信息开始发送后,还需要检查是否发生碰撞,如发生碰撞,则需等待,等待的时间取决于“二进制指数退避算法”得出的随机延迟[1][4],这种随机延迟为工业通信的数据传输增加了难以避免的不确定性。

2. 系统模型

  本设计通过在以太网MAC层之上增加确定性调度层,上层采用了EPA[3](Ethernet of Plant Automation)协议的数据封装格式,因此使数据包的类型判断和调度发送时间的获取成为可能。EPA 是一种基于工业以太网的现场总线标准,是在控制系统与现场测量、控制装置之间,以及现场测量、执行机构之间进行通信的分布式数字控制系统。这样对所有的上层数据包在整个实时网段范围内进行数据包统一调度发送,从而避免碰撞现象的发生并确保数据传输的确定性要求。通信模型如图 1所示:

工业以太网确定性调度的设计与实现
图1 实时以太网通信模型

3. 系统设计

  本设计是在嵌入式平台下实现的,利用ARM7处理器和Cs8900网络接口芯片搭建的硬件平台进行开发,在同一网段中,每一个运行的设备等同于一个网络节点。

  上层采用EPA协议封装,分实时数据和非实时数据进行发送和接收。实时数据到达后,通过实时通信服务接口向下递交,对数据进行缓存处理,等待调度发送。下一个发送周期到来后,将用新的实时数据更新相应缓冲区;非实时通信服务通过OS中提供的BSD接口来提供,但是为了实现确定性的调度,非实时数据包穿越TCP/IP协议栈到达数据链路层时,不允许直接调用硬件驱动接口进行数据包收发操作,而是通过一个虚拟的驱动接口将数据包放入相应的发送和接收队列。修改原E-NIC的驱动接口,使其成为虚拟驱动接口,无法直接将数据递交给硬件驱动,而是入非周期队列。对硬件网卡的收发操作在硬件驱动接口中实现。设计图如图2:

工业以太网确定性调度的设计与实现
图2 以太网确定性调度设计图

  确定性调度层负责何时调用硬件驱动接口收发数据帧。当确定性调度层收到数据帧时,根据以太网帧首部的type字段来区分实时数据帧和非实时数据帧。若是实时数据帧,将用收到的实时数据更新相应缓冲区;若是非实时数据,则将其放入相应的接收队列并通过任务通信机制通知上层协议栈数据帧到达事件。确定性调度层的调度表由调度算法生成。

4. 主要模块描述

  实时通信服务接口、虚拟驱动接口、时钟同步服务和实时调度算法为本设计的四个主要模块。

  4.1 实时通信服务接口

  实时通信服务接口负责为上层应用(协议)提供周期性实时消息的实时通信服务。

  周期性实时消息的发送和接收采用缓冲机制,即为本节点在运行过程中要发送的每个周期性实时消息在内存中定义相应的缓冲区,每当上层应用通过实时通信服务接口发送新的消息时,即用该新消息值更新其对应缓冲区中的旧消息值;为本节点在运行过程中要接收的每个周期性实时消息在内存中定义相应的缓冲,每当上层应用通过实时通信服务接口接收新的消息时,则将对应缓冲区中的消息值返回。节点在运行过程中将要发送的每个周期性实时消息必须要有与其对应的已知的目标地址(包括目标MAC地址-用于识别节点,端口号-用于识别实时消息所对应的缓冲区元素)。

  实时通信服务接口要提供以下接口函数:

  (1)RtAppInterface()

  创建实时接口函数,用于实时周期性消息的发送和接收。

  (2)RtMapping()

  将由RtAppInterface()函数创建的接口进程映射到特定的地址(MAC,端口号(即缓冲元素的索引))。

  (3)RtSend()

  使用已创建和映射完毕的实时接口进程进行实时消息的发送。

  (4)RtRecv()

  使用已创建和绑定完毕的实时接口进程进行实时消息的接收。

  4.2 虚拟驱动接口

  虚拟驱动接口负责为上层TCP/UDP/IP协议栈提供一套虚拟的驱动程序接口,该接口必须与上层协议栈所使用的原硬件驱动接口一致,但需改变该接口中的具体函数实现,使得虚拟驱动接口所对应的具体函数无法直接实现对硬件的控制(如打开,关闭设备,收发数据包等)。必须确保用虚拟驱动接口替换原硬件驱动接口后,从TCP/IP协议栈使用驱动接口的角度来看,和使用原硬件接口一样,即用虚拟驱动接口替换原硬件驱动接口的改动对于上层协议栈的使用而言必须是透明的。对上层协议栈发下来的数据包以FIFO的顺序缓存到消息队列,何时调用硬件驱动接口发送这些数据包由确定性调度层决定。

  虚拟驱动接口提供的主要函数:

  (1)RtVirtualIn( )

  接收IP层的发送数据包,根据数据包类型确定转存入队列还是向下递交。

  (2)RtVirtualOut( )

  调用驱动层的发送函数发送数据,接收发送返回信息。

  (3)RtVirtualPacketType()

  取对应字段,判断到来包类型(EPA类型字段 以太网类型字段)。

  4.3 时钟同步

  在实时网段内,时钟同步是非常关键的,因为实时网段内各节点上的任务运行和消息发送都是基于时间基准的,特别是总线上的消息调度,为了避免碰撞,消息间必须留出足够的间隙来容纳节点间的同步误差。为了提高时钟同步精度,应把时钟同步功能放在协议栈中尽可能靠近硬件的位置。本系统中时钟同步功能由确定性调度层来提供。时钟同步协议采用IEEE 1588协议[6]。

  在实时网段内选定一节点作为主时钟,主时钟定期发布时钟同步消息,时钟同步消息作为主时钟节点上的周期性消息。由于时钟同步消息在调度好的同步窗口中发送,可以保证时钟消息的发送独立于当前网络负载而无碰撞的发送,因而时钟消息从发布节点到各个接收节点的延迟对各个接收节点而言为一常量。

  4.4实时调度算法

  本设计采用的算法根据RM和EDF算法改进而成的[7],每个基本周期开始时动态生成此基本调度单位(ESU)的调度时间表。整个链路时间由连续等长的基本调度单位(ESU)组成,通常ESU为实时网段内所有周期性实时消息的周期的最大公约数HCF。每个ESU被分成周期性实时消息窗口(PW)和非周期性消息窗口(AW),如图3所示。PW中的调度根据事先由周期性实时消息调度算法生成的调度表来进行,调度表的长度为所有周期性实时消息的周期的最小公倍数LCM,调度表中与各个节点相关的部分被存放在各个节点中,各节点根据调度表中规定的时刻,以宏周期为循环单位周而复始的执行周期性实时消息的发送动作。在AW中,数据采用优先级队列节点轮询的方式发送。按照非周期数据实时要求将非周期数据划分为i个优先级,每个优先级在节点中维护一个非周期优先级队列,因此每个节点中的非实时优先级队列为i个。发送时采用节点轮询的方式按优先级从高到低的顺序进行发送,每次被轮询节点将指定优先级队列中的数据全部发送。

工业以太网确定性调度的设计与实现
图3 基本周期内数据发送窗口

5.结论

  本系统所实现的实时以太网可以完成网段内数据的调度发送,基于本设计的实时以太网完全可以应用于一般的过程控制工业领域。通过改进原型系统的时钟同步机制等来可以进一步提高系统的实时性以及时钟精度,基于本设计的实时以太网改进的目标是把时钟精度提高到微秒级,进而应用于时间精度要求较高的工业领域,如运动控制等。

相关阅读

普通二极管能代替快恢复二极管吗

普通整流二极管由于频率很低,故只对耐压值,最大整流电流有要求,通常在频率较低的电路使用。快恢复二极管由于频率较高,常在开关电源次级整流频率高的电路中用。因此普通整...
2023-04-03
普通二极管能代替快恢复二极管吗

热继电器选型闭坑指南

热继电器(常称“热继”)是三相异步电机最常用的过载“保镖”,依靠双金属片受热变形触发保护,专治电机过载、堵转、断相引发的烧机故障。但在实际应用中,80%...
2026-06-08

电气工程施工流程的工艺示例,现场就是这样干!

电气工程 是机电安装五大分部之一,也是贯穿建筑工程施工全过程的重要内容,本文是基于工程实例对电气工程施工主要流程的工艺解读,可供大家参考实施! 电气工程施工工艺流程...
2023-06-11
电气工程施工流程的工艺示例,现场就是这样干!

招高级电工陷入两难:有证没能力,有能力没证!

在电工行业招聘圈里,最近流传着一句特别扎心的话:想招一个靠谱的高级电工,比找技术工程师还难。一边是手持高级电工证、特种作业证的求职者,理论背得滚瓜烂熟,一到现场实操就手忙...
2026-04-15

电工操作证怎么办理

在这个电气化日益普及的时代,电工成为了社会中不可或缺的重要角色,无论是家庭电路维修、工厂设备调试还是大型工程项目,都离不开电工们的专业操作。然而,想要成为一名合格的电工...
2024-08-09
电工操作证怎么办理

热销商品

连发瓦斯枪通用瓦斯射钉钢钉枪瓦斯气体高强度瓦斯射钉枪165气罐

连发瓦斯枪是一款专为高强度瓦斯射钉设计的工具,其特点在于能够连续发射瓦斯气体,适用于多种需要快速穿透和固定材料的场景。这款瓦斯枪配备了165气罐,容量足够满足...
4.5

黄铜镀镍金属电缆防水接头EWM密封格兰头HSM电线固定填料函M20M16

黄铜镀镍金属电缆防水接头EWM密封格兰头(HSM型)是一款高性能电线固定与密封装置,适用于M16和M20螺纹规格。采用优质黄铜材质并表面镀镍处理,具备优异的防腐蚀性、机械...
1.14

消防配件二氧化碳灭火器2 3 5 7KG弯头喷管24Kg干冰CO2外喷头喷嘴

二氧化碳灭火器配件中的2357KG弯头喷管与24Kg干冰CO₂外喷头喷嘴,是专业消防设备的重要组成部分。该弯头喷管采用高强度耐腐蚀材料制造,连接灵活,适用于高压CO₂灭火...
4.5

雷士照明led筒灯孔灯客厅吊顶天花灯嵌入式过道筒灯射灯桶灯家用

雷士照明LED筒灯是一款专为现代家居设计的嵌入式照明产品,适用于客厅、吊顶、过道、卧室等空间。采用高品质LED光源,光线柔和均匀,显色指数高,有效还原真实色彩,营造舒...
5.78

雷士照明嵌入式防眩筒灯射灯窄边过道灯深杯客厅无主灯天花灯米雪

雷士照明嵌入式防眩筒灯射灯——“米雪”系列,专为现代无主灯设计打造。采用窄边深杯结构,有效控制杂散光,实现精准防眩,营造舒适柔和的光环境。适用于客厅、过道、天...
25.67

网站栏目