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

2025-10-11 23709阅读

上周的分享已经介绍了整个参考设计的概况和相关硬件资源。那么,本次会从软件工程角度进行分享。首先来了解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。

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

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

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

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

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

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

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

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

文章版权声明:除非注明,否则均为天创资讯网原创文章,转载或复制请以超链接形式并注明出处。