恩智浦i.MX RT1180跨界MCU驱动EtherCAT的工作流程

描述

上周的分享已经介绍了整个参考设计的概况和相关硬件资源。那么,本次会从软件工程角度进行分享。首先来了解EtherCAT Slave工作流程。    

EtherCAT Slave工作流程

EtherCAT共有四种工作模式:

1. Free Run模式:

每个从站的应用层(如控制器)独立运行,与 EtherCAT 总线的周期无关。

优点:实现简单,适用于对同步要求不高的场景。

缺点:无法保证所有设备同步运行,可能导致控制误差。

2. SM Sync 模式

(SyncManager Synchronization)

使用 SyncManager 的事件触发机制来同步数据处理。

从站在接收到新的过程数据后触发中断或事件,通知应用层处理。

适用于中等同步要求的场景。

3. DC 模式(Distributed Clocks)

所有从站的内部时钟通过主站进行同步,达到纳秒级精度。

从站在精确的时间点处理数据,确保整个系统同步。

适用于高精度运动控制、测量系统等场景。

4. Mailbox 模式

用于非周期性数据通信,如参数配置、诊断信息等。

通信通过 Mailbox 通道进行,通常与 CoE、FoE、SoE 等协议结合使用。

不是过程数据同步模式,但常与其他模式配合使用。

在伺服控制应用中,出于对实时性能的考虑,我们选用基于DC模式+Mailbox模式相结合,在DC模式下,所有的Slave节点会进行时钟同步校准,Master会根据用户设定,周期性的收发数据给到所有的从站节点,并且会在完成数据交互后的某一时刻,在所有从站节点上产生Sync信号,用于系统同步。

其中,同步周期时间,和从站节点完成数据交互后至产生sync之间的时间,通常称为shift time,都需要根据实际环路传输延迟和主站处理时间来确定。该参考设计,EtherCAT的同步周期设定为250us,sync信号的shift time为50us。

下图为从站的整个工作流程图:

总线

当片内的EtherCAT从站控制器接收到来自主站的数据,并处理完成后,CM33核会触发PDI中断。在该中断内会完成两件事情:

1. 基于Cia402协议完成电机指令提取的相关操作,

2. 将提取到的指令通过MU,从CM33核下发给CM7核。随后会在设定的时间后产生sync信号,将该信号连接至XBAR,通过相关配置,在两个ARM核会各自产生中断,CM33处理EtherCAT相关状态机,更新电机状态;CM7核下发电机指令,通过MU反馈电机状态。

得益于灵活的XBAR外设,EtherCAT从站控制器sync信号能够直接通过总线连接至片内外设,触发中断,拥有更短的触发延迟,能够确保整个系统拥有更好的同步性,在一颗芯片上即可完成所有同步配置,方便客户开发。

EtherCAT从站节点的整个工作流程,涉及到了灵活的XBAR使用。

下篇进一步跟大家介绍如何利用XBAR与以及相关外设去同步电机控制模块与EtherCAT模块。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分