Class A - Master Synchronization (DCM)

主站和从站之间的同步

分布式时钟原理

为了从站设备的同步,EtherCAT的采用了分布式时钟(DC)的特性。
参考时钟被定义为,这个总线中第一个有DC能力的从站的时钟。
参考时钟的时间通过EtherCAT主站分发给所有从站。因此,EtherCAT主站周期发送一个ARMW命令,以便读取存储在适当的寄存器中的相对于ESC(EtherCAT从站控制器)主时钟的总线时间,并将此值写入相应的DC从站寄存器。
通过一个集成在他们ESC上的控制器来给这些DC从站更新他们的本地时间。
另外,为了确保所要求的精度(可以实现小于1us的值),必须补偿EtherCAT在特定从站之间的帧的延迟。
对于每个从站,当帧被发送和它被接收之间的时间将被测量。
然后,根据总线拓扑,主站计算从站之间的延迟,并将相应的延迟补偿值写入ESC的寄存器0x928中。

ESC控制器的DC单元提供两个数字输出信号,SYNCO和SYNC1。
基于总线时间,产生这些同步脉冲,其频率通常与EtherCAT总线时钟相对应。
例如,如果EtherCAT主机以1毫秒的速率发送周期性I/0数据,同步脉冲频率通常也设置为1kHz。
这些同步信号在从站端,一方面可以作为数字输出信号(例如激活从站硬件组件),另一方面作为从站软件的中断源。

很明显,在同步脉冲被释放之前,所有的从站都必须提供新的数据。为了实现这一点,必须保证新的循环l/0数据到达时和同步脉冲之间的延迟达到最小。

Master Synchronization

通常,EtherCAT主站基于控制器硬件中的硬件定时器(例如嵌入式x86 PC中的8254定时器)循环发送I/0数据。
当系统需要以1kHz周期运行时,将8254定时器和负责产生同步脉冲的从站定时器设置为1kHz。
但是8254定时器和从定时器都不会运行在一个确切为1kHz的周期速率。
事实上,这两个定时器之间存在漂移,因此没有恒定的距离发送周期1/0数据在主站和产生同步脉冲在从站可以实现。
为了控制这个距离为一个确定的常数,EtherCAT主站必须与DC时钟主同步(这是总线上第一个具有DC能力的从站)。
这种机制称为分布式时钟主同步(DCM)。

它可以通过两种不同的方式实现:
- 重新调整物理定时器(例如8254定时器),在硬件的EtherCAT主站执行(Master Shift)
- 重新调整分布式时钟主时钟的总线时间(Bus Shift)

DCM控制器循环计算EtherCAT主时间和DC时钟主时间之间的差异。
PI控制器算法根据设置值(这是SYNC脉冲到主机中定时器中断的距离)来计算重新调整值。
当使用“主移位”时,重新调整值会影响EtherCAT主站的物理计时器(例如8254),而当使用“总线移位”时,它会影响DC时钟主站的寄存器0x920。

Class A EtherCAT Master支持两种方法(master shift和bus shift)。
主站与从站的同步是EtherCAT最具挑战性的特性之一。
根据我们的经验,我们将建议客户正确的使用他们的应用程序和硬件。