当前位置:首页 期刊杂志

基于ZYNQ平台的EtherCAT主站设计及实现

时间:2024-08-31

熊 伟, 丁跃浇, 陈 曦

(湖南理工学院 机械工程学院, 湖南 岳阳 414006)

0 引言

EtherCAT是德国倍福自动化有限公司推出的具有高实时性和同步性的实时以太网协议, 具有性价比高、使用简单、拓扑灵活等显著优点[1,2], 其带宽有效利用率达90%以上, 在我国高端数控系统网络化过程中极具竞争力, 应用也越来越广泛.

目前高端数控系统中使用的EtherCAT主站主要是倍福公司开发的基于传统PC的TwinCAT商业主站, 因其功耗高、体积大、不开源等缺点, 正逐渐被嵌入式主站替代.目前国内对嵌入式主站的研究较少.李备备[3]等基于ARM Cortex-A8内核的AM3358微处理器采用IgH+Linux+RTpatch方式构建了主站, 并测得通信抖动为42 μs.高恩博[4]等基于AM3358 处理器搭载Linux+Xenomai+IgH, 采用标准网卡驱动构建主站, 实现了平均周期通信时间为78.8 μs.孙跃祥[5]等在 ZYNQ-7000 平台上构建嵌入式主站, 实时性能在含大量负载时平均延迟为60 μs.以上嵌入式主站方案均采用ARM加FPGA架构, 但都未完整阐述硬件平台部分, 针对此问题, 本文详细阐述了ZYNQ7020的FPGA硬件编程部分, 并移植Xenomai到Linux内核, 采用开源主站协议栈IgH EtherCAT Master实现了面向高端数控系统的嵌入式EtherCAT主站,并通过实验测试其实时性和周期通信时间.

1 EtherCAT主站总体方案设计

主站硬件部分采Xilinx公司的ZYNQ-7000系列, ZYNQ组合了双核ARM Cortex-A9 处理器和传统的可编程门阵列, 实现了工业标准的AXI接口, 带宽高, 延迟低.系统内核采用Linux 3.18.20开源内核, 由于Linux系统本身的实时性问题, 需要对其添加实时补丁.本文采用Xenomai实时补丁来提升系统的实时性, 以满足工控系统对实时性的要求.目前, EtherCAT开源主站主要有SOEM和IgH EtherCAT Master,SOEM体量小, 占用空间少, 但对EtherCAT的功能支持没有IgH EtherCAT Master完善.为保证主站性能的完整性, 本文采用IgH EtherCAT Master开源协议栈来实现主站功能, 以确保主站系统能适用于各种高端工控环境.

2 主站硬件平台设计

硬件芯片采用7000系列的XC7Z020CLG400-2, 主频766 MHz, PL逻辑资源多达85 K, BRAM存储4.9 Mbit, 完全满足数控系统对硬件的要求.硬件架构实现流程为: (1)用Xilinx公司的Vivado软件创建工程并添加XC7Z020CLG40-2的IP核; (2)在ZYNQ IP核配置模块, 添加网口硬件资源ENET0、ENET1、URAT、EMIO等; (3)创建引脚约束和时钟约束文件, 分析综合生成bit流文件.创建完成的硬件系统框图如图1所示.

图1 硬件系统

3 Linux实时操作系统设计

Linux系统作为分时操作系统, 由于其内核的不完全抢占性, 及其使用的SWAP机制, 使得Linux系统在实时调度方面有很大的不确定性, 在高端数控系统中, 易引发安全事故, 影响生产效率, 故需要对Linux系统进行实时性能优化.实时性能优化有两个方向, 其一是直接对内核进行修改, 其二是采用双内核机制.由于直接修改内核会影响内核的稳定性, 所以本文采用双内核方案, 使用Xenomai来提升Linux系统的实时性.双内核架构系统框图如图2所示.在Linux内核之外运行一个实时内核, 当系统有中断请求时先调度实时核处理, 再调用Linux内核.搭建流程如图3所示.

图2 双内核架构系统

图3 双内核搭建流程

4 EtherCAT协议栈移植及应用程序设计

4.1 EtherCAT协议栈移植

实时Linux系统搭建完成后需要将IgH EtherCAT Master移植到Linux系统, 移植流程如图4所示.

图4 移植流程

4.2 EtherCAT协议应用程序设计

IgH EtherCAT Master协议栈主要由设备驱动模块、应用层模块、主站协议模块组成.设备驱动模块主要是驱动网卡的硬件驱动程序, 通过驱动模块驱动硬件进行数据帧的接收和发送.协议栈模块主要是EtherCAT底层协议, 例如数据包的封装、EtherCAT状态机控制等, 通过EtherCAT底层协议封装应用层接口供EtherCAT应用程序使用.应用程序开发是指通过底层协议接口来进行EtherCAT通信的相关功能.应用程序设计原理如图5所示.

图5 应用程序设计原理

5 实验验证

5.1 实验平台

为了验证本次设计的EtherCAT嵌入式主站的性能, 搭建了如图6所示的测试平台, 主站采用赛灵思ZYNQ XC7Z010CLG4001C, 集成了ARM和FPGA, 从站采用使用EtherCAT协议的IO从站和松下伺服驱动器, 电机、主站与从站之间采用线性拓扑结构.

图6 测试平台

5.2 Linux内核任务调度延时测试

Xenomai移植完成后, 使用Linux内核调度延时测试程序Latency来测试构建的系统实时性能.分别在用户态、内核态、定时器态进行Latency测试, 测试结果如图7所示.

图7 调度延时测试结果

5.3 实时周期任务抖动测试

在高速高精度的数控加工领域, 一般要求系统的响应时间在1 ms及以下[6], 国内外高档数控系统能实现的最小插补周期为 0.125 ms[7].周期性任务执行时间一般与任务预先设计的周期时间存在偏差, 因此在执行任务的过程中会影响数控系统的实时性能, 所以通过测试任务周期是否准确可以反映系统的实时性能.本文采用抓取通信数据包的方法来测试实时性能.在设计的EtherCAT主站和IO从站之间、伺服从站间串连接入倍福公司的多通道网络侦听器ET2000, 使用WireShark获取数据包, 并分析数据包的时间戳信息来计算周期时间抖动, 计算原理如图8所示.通过Python绘制差值散点图, 结果如图9所示.

图8 周期抖动计算原理

图9 周期任务抖动散点图

5.4 实时周期时间测试

高端数控系统中, 运动系统的性能主要表现为能快速实时处理运动控制数据, 这就需要EtherCAT主站在周期任务中有较大的时间裕度来执行运动控制算法, 通过ET2000采集的相邻上行帧和下行帧的时间戳信息, 可以计算出本次搭建平台的主站周期.周期时间测试结果见表1.

表1 周期时间测试结果

由表1可知, 1 ms任务周期内数据帧传输时间为32 μs左右, 占任务周期的3.2%, 满足高端数控系统对通信周期的要求.

6 结论

本文设计实现了基于ZYNQ平台的嵌入式EtherCAT主站, 采用线性拓扑结构搭建主从实验平台, 通过ET2000与WireShark抓包测试其实时性和周期性能.实验结果表明, 本文搭建的主站在1 ms实时任务周期内, 数据帧传输时间在32 μs左右波动, 实时周期任务抖动时间为10 μs以内, 占任务周期的1%, 调度延时稳定在12 μs以内.这说明本文搭建的嵌入式EtherCAT主站具有良好的实时性能, 能满足高端数控系统的实时性要求, 同时由于采用开源方式实现, 满足了低成本要求.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!