EtherCAT分布式时钟同步过程的理解

分布式时钟(Distributed Clock,DC)可以使所有EtherCAT设备使用相同的系统时间,从而控制各个设备任务的同步执行。从站可以根据同步的系统时间产生同步信号,用于中断控制或触发数字量输入/输出。支持分布式时钟的从站称为DC从站。

 

时钟术语的描述

  1. Local system time  即本地系统时间,每个DC从站的本地时钟经过补偿和同步之后,都产生本地系统时间,分布时钟同步机制就是使各个从站的本地系统时间保持一致。参考时钟与本地系统时钟对应。
  2. 参考时钟从时钟  EtherCAT协议规定主站连接的第一个具有分布时钟功能的从站的时钟作为参考时钟,其他它从站的时钟称为从时钟。参考时钟用于同步其它从时钟和主站时钟。
  3. 本地时钟时钟初始偏移时钟漂移 ,每个DC从站都有本地时钟,它独立运行,使用本地的时钟信号计时。从站上电后就开始运行,每个从站的本地时钟之间都有差值(初始值不同),所以与参考时钟的差值称为时钟初始偏移量。运行过程中,由于各个从站时钟源(晶振)的差异,所以本地时钟还存在时钟漂移的现象(类似于钟表累积误差),因此需要对时钟漂移补偿。
  4. 传输延时  数据帧在从站之间传输会产生一定的延时,包括内部处理延时延时(虽然EtherCAT信号由硬件实时处理,也存在纳秒级的延时) 和物理连接的延时(信号传输延时),所以需要进行补偿和修正,保证从站时钟精度。
  5. 主站时钟  主站也具有计时功能。在初始化阶段,主站按照系统时间格式发送主站时间给参考时钟从站(第一个DC从站)。
  6. 系统时间格式 从2000年1月1日零点开始,使用64bit二进制变量表示,单位为纳秒(ns),最大可以计时500年(也可以选择使用32bit变量,最大计时4.2秒)。

 

 

分布式时钟校验过程如下

  1. 主站发送广播命令写数据帧,从机收到该帧后(Port0收到数据前导位第一位时),将本地时钟写入参数Receive time Port0,计T1(n),n为从机序号,下同。
  2. 数据帧回传时(Port2收到数据前导位第一位时),此时再将本地时钟写入参数Receive time Port1,计为T2(n)。
  3. 主站根据读取从站的Receive time Port0可计算出本地偏移时间 (主站发送时间 – 从站记录的Receive time Port0),可以得到初始偏移时间 Toffset = 主站时钟– 本地时钟,然后将该数值写入从站的System Time offset寄存器(远程写命令)
  4. 主站根据读取的Receive time Port0,Receive time Port1数值T1(n) T2(n) 可计算出各个从站相对于参考时钟(第一个DC从站)的延时,计算公式为[T2(1) – T1(1) – (T2(n) – T1(n))] / 2,这里假设传输时间均匀,由主站推计算出的延时时间,主站将该参数写入到从站的寄存器System time transmission delay参数中(参考上表)。

         时间同步过程演示如下图所示

 

从机部分的时间记录又硬件自动完成。为了快速补偿时钟的初始偏差,主站应在测量传输延时和偏移补偿之后,在独立的数据帧中发送很多ARMV/FRAM报文,完成分布式时钟初始化。随后在周期运行阶段,可以随着过程数据周期性发送ARMV/FRAM报文命令读取参考时钟,动态补偿时钟漂移。发送时钟同步数据帧的周期时间必须满足从机时钟漂移量小于控制应用所规定的最大漂移量的限制。