分布式时钟是EtherCAT技术的亮点之一。由分布式时钟带来的精准同步可以使得整个系统都运行在统一的时钟下,每个设备的同步性远小于1微秒。在接下来的几篇文章中,我将从分布式时钟的原理定义,实现手段以及具体应用这几方面去阐述分布式时钟对于设备的意义。
分布式时钟是EtherCAT网络中的内置时钟。从命名来看,分布式时钟分散于每个从站的硬件中,属于EtherCAT自带的本地时钟系统。本地时钟系统这一概念非常重要,当然EtherCAT可以从外部接入IEEE1588或者其他的时钟,但这不是必须的。从本质上说,分布式时钟(DC)就是一个控制系统内部的本地时钟。我们以倍福提供的从站控制器,ET1100为例(其他公司的从站产品同理,本质上EtherCAT从站都具有相同的结构)。所有的从站控制器都有分布式时钟硬件,如下图1中红框部分为分布式时钟。可以看到分布式时钟是从站中相对独立的一个单元,对外输出SYNC信号或者接收LATCH信号。
分布式时钟内部可以分为DC控制单元和同步/锁存单元。这其中DC Control单元负责对本地时钟的调整,包括初始时钟偏差,线路延时偏差和晶振偏差的微调。而Sync/Latch Unit单元负责对外信号的交互,包括同步信号输出或者输入信号的锁存。
对于一个EtherCAT系统来说,主站就是命令的发起者,所有的EtherCAT指令(当然包括同步指令)都由主站发起,理所应当的,从站只提供分布式时钟硬件部分,所有的同步算法都由主站负责。
主站在初始化阶段会对各个从站内部的时钟进行同步,以消除每个时钟本身的初始偏差和线路上的延时导致的偏差。在系统运行时,由于每个从站的晶振频率本身微小的差别,需要在每个周期对时钟进行微调。这一过程中,相当于每个从站已经对好了各自的“表”,SYNC信号就是“表”对从站发出的时间信号,如此一来主站发送的命令就可以严格按照时间来触发,从而使得每个从站都能够同步于系统时钟进行动作。
对于一个EtherCAT从站,分布式时钟是一个内嵌于从站芯片中的硬件,需要配合从站的代码来一起实现分布式时钟的功能。基本上所有从站都具备此硬件,但是仅有部分从站设备实现了此功能。以普通数字量IO为例,虽然它内部也有DC,但是并不提供此功能,而大部分伺服都具备DC功能。这两类的设备很显然必须在一个系统中同时共存,在这种情况下不支持DC的从站的延时将由其两端的支持DC的从站来承担。
从站不具备DC功能,由于EtherCAT数据帧传输经过这些设备时会有一定的延时,此时这些延时由两个红色箭头所指的具备DC功能的从站分摊。
分布式时钟还具有主从概念,所有的时钟都分散于单个设备中,必须将其中一个设定为主时钟(系统时钟),以此为基础将其他时钟都统一于这个设备之下,主时钟的选择就成为我们关心的问题。由于在EtherCAT网络中,主站的硬件具有不确定性,最低只需要一张以太网卡即可,所以在主站中强制规定硬件时钟是不现实也是不可行的,这违反了EtherCAT开放性的特点。从站的硬件设备是内嵌分布式时钟的,我们将默认主时钟设置为支持分布式时钟功能的第一个从站,此处“第一个”指的是按照EtherCAT数据帧传输顺序,首次最先经过的从站设备。
参考下图,
“M”就是主时钟,在主时钟之前的从站设备不具有DC功能。注意这一选择是经过权衡后的最优选择,EtherCAT协议本身并未规定必须按照此规则确定主时钟。所以在实际应用时,我们可以选择对工艺最优的主时钟,而不一定使用默认的选项。甚至某些厂商会在主站中嵌入分布式时钟,以主站作为主时钟,这样也可以实现同样的功能
最后,我们总结一下本章的论述。首先分布式时钟是一个本地时钟,可以外接时钟系统但是不必须;其次本章介绍了三种分布式时钟误差的来源,将来我们在算法中会详细介绍这几种误差的补偿方法;本章还对主时钟的选择方法做了概念性的介绍。