Ethercat网络实时多任务从站设计方法研究

2014-07-11 07:43涛,徐方,贾
制造业自动化 2014年8期
关键词:应用层中断以太网

杨 涛,徐 方,贾 凯

(1.中国科学院沈阳自动化研究所 机器人学国家重点实验室,沈阳 110016;2.中国科学院大学,北京 100049;3.沈阳新松机器人自动化股份有限公司,沈阳 110168)

0 引言

计算机技术、控制技术尤其是现场总线技术的发展促使网络化运动控制系统逐渐取代集中式运动控制系统。Ethercat作为一种高速高效的实时以太网标准机器人、数控机床等分布式运动控制系统中得到了广泛关注。Ethercat是主从式控制网络,主站负责网络的管理,从站负责完成电机闭环控制等底层实时控制任务。从站各个任务都具有较强的实时性要求,并且从站本身也必须具有很强的稳定性,所以有必要对从站需要完成的各种任务进行合理的规划来提高其实时性、保证系统的稳定性。

传统的基于前后台模式的任务设计,除中断服务程序外,各个任务具有相同的优先级循环执行。这样的程序不但实时性差而且一旦其中任何一个任务的错误执行都将影响整个系统的稳定性。而嵌入式实时操作系统可以管理系统软硬件资源并对对系统和用户任务的实时调度,对提高通信系统等实时多任务系统的实时性和稳定性有较好作用。本文研究了一种基于通用实时操作系统的Ethercat从站实时多任务规划策略,并据此指导从站的设计。

1 实时以太网Ethercat技术分析

1.1 Ethercat基本原理简介

Ethercat是IEC推荐的10种国际通用实时以太网标准之一。Ethercat具有高速高效的实时控制网络,通讯速率达100Mb/s,每帧最多可容纳1486字节。Ethercat网络符合OSI/ISO七层网络架构,其结构如图1所示。Ethercat物理层采用标准的以太网物理器件、数据链路层采用专用的芯片完成,数据链路层提供了邮箱数据交换和缓冲数据交换两种数据交换方式分别适用于实时数据传输和非实时数据传输,为应用层数据传输协议设计提供了有力保证,所以其应用层支持CANpoen、SERCOS、Ethernet等多轴开放的国际标准协议,为用户应用程序设计提供了很大的方便。本文设计的分布式控制系统应用层采用标准的CANopen协议。

Ethercat应用于分布式控制系统中主要负责实时数据通讯和非实时数据通讯。在基于Ethercat的控制系统中实时数据通讯采用的是周期性数据交换方式,数据以固定的周期在主控制器和从站控制器之间交换实时控制信息与设备信息的实时交换。非实时数据通讯应用于系统的配置,一般只在系统启动阶段进行。下面详细介绍Ethercat的实时数据和非实时数据通讯机制。

1.2 Ethercat实时数据传输过程分析

Ethercat实时数据帧到达从站之后,从站控制器ESC对比逻辑内存管理单元FMMU的地址与数据帧的地址,如果一致,则将数据放入相应的ESC内存区域,此时内存同步管理器SM2产生相应的中断通知应用层控制器YLMCU产生实时数据处理事件等待处理,YLMCU查询SM2对应的同步管理器分配对象(索引为0X1C32)中包含的RPDO对象信息,接收相应的数据到RPDO对象指示的PDO应用对象中。

图1 Ethercat实时数据传输原理

1.3 Ethercat非实时数据传输过程分析

Ethercat数据帧到达从站后,从站对比自身的站点地址和数据帧中的站点地址,如果一致,从站控制器ESC则将数据帧中数据载入ESC内部RAM区域,并产生相应的标志位等待应用层控制器YLMCU处理。YLMCU查询到相应的中断标志后,将RAM区域中的数据通过PDI接口读入到YLMCU中,并依此按照邮箱协议、CANopen协议等逐层解析,最终实现非实时数据的处理。

图2 Ethercat非实时数据传输原理

1.4 Ethercat多从站同步运行机制分析

基于Ethercat的控制系统一般具有多个从站,各个从站分别在主站的控制下独立运行,这样各个从站之间存在时间不同步的问题,时间不同步最终将造成控制不同。特别对于多轴联动的运动控制系统,各个轴之间必须保证一定的同步运行精度,Ethercat提供了以下三种同步机制完成从站之间的时间和控制同步运算。

1.4.1 自由运行模式

从站的自由运行模式是指各个从站采用自身定时器,定时从自身的网络数据缓冲区获取目标位置指令并执行。该方法特点是实现简单,但是各个驱动器上电时间不一致将导致各个时钟的起点不同,所以该方法将造成如图3所示的粗大同步误差。

图3 自由运行模式时间同步误差分析

1.4.2 主站输出同步模式

主站输出同步是指各个从站的运行周期不是由自身定时器决定的,而是在收到主站发送的实时通讯数据后产生中断,依靠中断信号完成一次通讯。这样各个伺服轴进行位置采样的时间差是由数据在网络上的传输延时引起的,而对于高速实时以太网Ethercat而言,该延时是微妙级别的,所以理论上该方法可以达到微妙级别的时间同步。

图4 主站输出同步模式时间误差分析

1.5 网络分布时钟同步模式

网络分布时钟模式是指Ethercat网络中从站使用自身定时器产生的脉冲信号作为时间基准,与网络中的其余从站没有关联。分布时钟机制将Ethercat网络中第一个从站的时钟作为网络系统的参考时钟。通过补偿网络传输延时、系统各个从站的初始化时间偏差、从站时钟漂移等影响系统中各从站时钟不一致的因素,使得 Ethercat网络中主站和各个从站的时钟同步于参考时钟,该模式下各个从站时钟可以达到纳秒级别的同步。这样网络中的从站按照统一的时间进行数据的采样和控制,可以达到高精度的同步控制效果。

图5 分布时钟模式同步时间误差分析

2 实时操作系统任务规划策略和测试方法

基于操作系统的程序是将大的应用程序划分为多个小任务,操作系统负责调度各个任务保证系统稳定运行。实时操作系统除了具有普通操作系统软硬件资源管理的功能外还特别强化了任务、中断的实时处理能力,使之在规定的时间窗口内得到运行。实时操作系统中按照任务执行的特点将操作系统任务分为设备依赖型任务、关键任务、紧迫任务和数据处理任务四种类型。

2.1 设备依赖型任务的调度方法

设备依赖型任务是嵌入式系统中最为常见的任务类型。它的特点是其运行依赖于具体的外部设备,比如AD采样和滤波任务在AD转换器开始运行之后启动,但必须在采样量化之后再次运行才能完成任务,中间需要一定时间等待AD转换结束。通常外设处理速度比CPU处理速度慢很多,所以该类任务需要等待。此时为了提高CPU的利用率操作系统将CPU占用权转交给其它任务进,等待该类任务的外设准备完毕后,再由操作系统采用一定的调度机制使之再次得到运行。该类任务可以为普通任务对待,其的规划运行原理如图6所示。

图6 设备依赖型任务调度原理图

2.2 关键型任务的调度方法

关键型任务的特点是如果它得不到运行会对系统造成毁灭性的冲击,但该类任务允许一定时间的等待或者延时。该类任务作为周期性任务交由操作系统定时调度。该类任务应尽量简单,通常任务仅负责发送信号量,具体的数据处理则交由等待信号量的普通任务执行。

2.3 紧迫型任务的调度方法

紧迫型任务的特点是必须在规定的时间内得到运行,否则没有意义甚至导致整个系统的崩溃。紧迫任务一般通过硬件中断触发,如果处理该任务所耗机时较少则该任务直接在中断服务程序中完成,否则将该部分封装为一个优先级较高的任务,由中断服务函数通过信号量触发。

2.4 数据处理型任务的调度方法

数据处理任务的特点是消耗机时较长但不紧迫。处理该类任务最好的办法是采用时间片轮转的方式,但是大部分实时操作系统不允许多个任务共享同一个优先级不支持时间片轮转算法,可以采取如图7所示的模拟时间片算法进行任务调度。该算法将复杂数据处理任务划分为优先级相近的多个简单数据处理任务,这样在操作系统将CPU使用权交给输出处理任务时,各个优先级相近的数据处理任务按照先后顺序交替运行。从CPU运行机时的角度看,各个复杂的数据任务按照时间片轮流占有CPU使用权。

图7 模拟时间片轮转算法示意图

2.5 实时操作系统任务可调度性分析

基于实时操作系统的程序,完成任务划分后需要进行任务的可调性分析,以确定每个任务是否可以被操作系统及时调度。目前对于实时操作系统的任务可调度性分析普遍采用的分析方法是速率单调分析(RMA),该方法基于以下假设:

所有任务都是周期性运行的;

任务独立,互不交叉;

每个任务执行的时间是固定的;

每个任务都可以在下个周期到来前完成规定的任务;

RMA的测试公式为:

式中n为任务总个数,Ci为任务i执行一次的最长时间。Ti为任务i的周期;U(n)为CPU利用系数的上限。任务总个数与最大可利用系数的关系如表1所示。

表1 任务总个数与最大可利用系数表

如果完成操作系统任务规划之后计算出的RMA值小于上表所计算出的利用系数上限并留有一定的裕量,则操作系统可以正常调度各个任务,实时性和稳定性可得到保障,否则需要重新规划。

3 从站任务划分

Ethercat从站负责主要周期性数据链路/应用层状态机切换、输入输出、非周期性数据输入输出、用户数据处理与设备控制等任务。

3.1 有限状态控制任务规划

Ethercat状态机和应用层状态机的控制着数据链路层和应用层的功能,必须定时得到刷新。但是此类任务的执行时间窗口一般比较宽,所以将该类任务作为关键任务,通过操作系统提供的定时器软中断方式触发,中断服务程序通过信号量机制启动相应的状态切换任务,此类任务的优先级设计比周期性处理任务优先级低。

3.2 实时非数据通讯任务规划

从站的非实时数据通讯主要用于完成系统配置工作,一般在系统正常运行之前完成,不存在多任务抢占CPU的问题。所以可以将非周期性数据传输任务划分为低优先级的普通任务。

3.3 实时数据通讯任务规划

Ethercat控制网络通过实时数据通讯任务必须周期性运行,不允许超时或者丢包,否则将对系统造成较大冲击。该任务为紧迫任务。Ethercat标准为了满足控制系统多个从站高精度同步运行的需求,采用中断方式响应同步信号(时间同步信号、IO同步信号、分布时钟同步信号)。由于实时通讯任务需要做的运算占用机器较多,不能在中断服务程序中完成,所以在中断服务程序中通过启动相应的信号量分配机制。通过信号量分配任务分发相应信号量启动数据处理任务。同时为了使数据处理任务及时运行,将数据处理任务划分为几个比较小的任务,并赋予比较高的优先级。

图8 实时数据通讯任务调度原理

3.4 实时数据通讯任务规划

Ethercat从站一般需要完成特定的控制功能。完成这些功能需要与进行信号采样和数据处理,所以该类任务属于数据处理类任务,可采用模拟时间片轮转的方式进行规划,并且使各个任务的优先级均低于状态转换任务。

4 Ethercat从站设计实例

4.1 机器人IO系统简介

机器人控制系统的IO控制系统负责机器人上下电控制、运行状态指示、安全保护、外设扩展等功能,所以IO系统是机器人安全运行的保证,必须能长时间稳定运行,并具有足够高的实时性能。基于Ethercat的机器人控制系统中的IO控制系统是Ethercat 从站之一IO从站。本文设计的IO从站应用层支持标准CANopen DS401 IO行规,支持多种格式输入输出的64路可配置IO信号。

4.2 IO从站硬件设计

Ethercat从站是特殊的网络设备,采用网络设备常用的分层方法完成物理层、数据链路层、应用层和外部设备硬件设计,从站整体结构如图9所示。

图9 IO从站硬件结构图

Ethercat IO从站物理层采用普通网络设备的物理层,使用工业加固型RJ45接口,普通网络变压器、不带数据缓冲区的PHY设备(为了提高系统的实时性,不需要数据缓冲区),物理层PHY通过标准接口MII与数据链路层设备相连。

Ethercat数据链路层需要使用的专业的电路芯片,这里数据链路层采用是BECKHOFF公司生产的Ethercat从站控制器ESC ET1100,它通过I2C接口与外部EEROM连接,在EEROM中存储ESC基本配置信息和启动信息。ESC还可以配置它与应用层设备连接方式,这里选用通用的SPI串行接口与高层设备进行数据交换。

Etheract应用层设备不仅是应用层协议实现的载体,也是用户控制程序的载体。为了减小实时操作系统移植开发的时间、提高操作系统的稳定性,采用TI公司开发的支持实时操作系统TI/BIOS的TMS320F2812 DSP芯片作为从站的应用层硬件设备。DSP和从站控制器ESC之间采用SPI接口连接,IO从站的外部设备IO模块对驱动能力没有过高要求,它仅作为信号模块所用,所以IO设备可以直接采用DSP芯片的GPIO接口配合高速光耦完成。

4.3 IO从站软件任务规划

IO从站软件在DSP/BIOS操作系统上开发。DSP/BIOS是TI公司特别为其TMS320C5000TM和TMS320C28xTM等DSP平台设计开发的尺寸可裁剪的实时多任务操作系统内核。DSP/BIOS以模块化方式提供给用户对线程、中断、定时器、内存资源、所有外设资源的管理能力都可以根据需要剪裁。实际应用中需要的定制算法作为一个线程插入DSP/BIOS的调度队列,由DSP/BIOS进行调度。

IO从站的任务是按照主站发送的命令正确的读写IO信息,所以IO从站除了完成必须通讯任务之外还需要完成IO的定时刷新功能。按照前文所述的任务划分原理对IO从站任务进行划分,结果如表2所示。

表2 IO从站任务规划列表

根据上表所述的任务划分方法,结合TI/BIOS操作系统任务调度的特点,设计IO从站的软件结构如图10所示。

图10 Ethercta从站软件结构图

利用TI/BIOS单次可执行的任务main函数完成DSP时钟、中断、外设的初始化工作和Ethercat协议变量的初始化。利用周期性执行PRD任务完成Ethercat状态机刷新(周期为0.5ms,任务优先级为6)、CANopen状态机刷新(周期为1ms任务优先级为5)、IO外设刷新(周期为2ms,任务优先级为4)。将Ethercat实时数据通讯任务作为优先级为2的普通任务并处于堵塞状态,等待Ethercat同步信号,不同的同步模式下同步信号也不相同。将Ethercat的非实时数据通讯任务设计为优先级为1的普通任务,并处于阻塞状态等待相应信号量触发。

5 结论

通过TI/BISO计算和统计得知各个任务的RMA测试参数如表3所示。

表3 IO从站RMA参数测试实验数据表

7个任务总共占用28.1%的CPU机时,远小于U(5)(74.3%),满足RMA测试公式的要求,所以操作系统可以稳定的调度这些任务,证明本文提出的基于实时操作系统的Ethercat从站实时多任务规划策略可以满足从站设计需求,并且简化了从站设计的难度。

[1] 德国BECKHOFF公司.实时以太网.IO层超高速以太网.工业以太网与现场总线[Z].

[2] 陈积明,王智,孙优贤.工业以太网的研究现状及展望[J].化工自动化及仪表,2001,28.

[3] 周航慈.基于嵌入式实时操作系统的程序设计技术[M].北京:北京航空航天大学出版社,2000.

[4] 德国BECKHOFF公司.Ethercat specification part3 data link layer service definition.ETG[Z].

[5] 德国BECKHOFF公司.Ethercat specification part4 data link layer protocols .ETG[Z].

[6] 德国BECKHOFF公司.Ethercat specification part5 application layer service definition . ETG[Z].

[7] 德国BECKHOFF公司.EtherCAT Specification – Part 6 Application Layer protocol.ETG[Z].

[8] 马军贤,周侗,杨志家.Ethercat 从站的设计与实现[J].总线与网络.2011,8.

猜你喜欢
应用层中断以太网
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
基于FPGA的中断控制器设计*
Linux中断线程化分析及中断延时测试
跟踪导练(二)(5)
千里移防,卫勤保障不中断
基于分级保护的OA系统应用层访问控制研究
谈实时以太网EtherCAT技术在变电站自动化中的应用
物联网技术在信息机房制冷系统中的应用
浅谈EPON与工业以太网在贵遵高速公路中的应用
万兆以太网在连徐高速公路通信系统改造中的应用