3. 分布式时钟与同步机制

EtherCAT 的实时性不仅体现在“报文传得快”,更体现在“所有从站动作发生在同一时刻”。分布式时钟(Distributed Clocks,DC)机制就是为此设计的:它让网络中每个从站都维护一个本地时钟,并以某个从站的时钟作为全局参考,通过测量和补偿传播延时与本地漂移,使各从站时钟与参考时钟对齐,再由 SYNC0/SYNC1 信号触发从站执行同步动作。理解 DC,是理解多轴插补、电子凸轮、飞拍等运动控制应用能否稳定运行的关键。

一、参考时钟与从站时钟:谁对齐谁

DC 网络中存在一个“参考时钟”(Reference Clock),通常由第一个支持 DC 的从站(ESC)承担,也可以由主站指定。其余从站的本地时钟称为“从站时钟”。同步的目标是让所有从站时钟在数值上逼近参考时钟,即:

从站时钟 ≈ 参考时钟 + 传播延时补偿 + 漂移补偿

这里要区分两个概念:偏移(Offset)是某一时刻从站时钟与参考时钟的瞬时差值;漂移(Drift)是两者频率不一致导致的差值随时间累积。偏移可以一次性修正,漂移必须持续补偿。晶振精度、温度变化都会引起漂移,典型 ESC 晶振偏差在 ±50 ppm 量级,意味着 1 ms 内就可能产生几十纳秒的累积误差,对高精度同步不可忽略。

二、传播延时测量与偏移补偿

EtherCAT 使用“测量报文”在环网中往返,记录各从站端口的接收与转发时间戳,从而计算出参考时钟到每个从站的传播延时。补偿过程可概括为:

  1. 主站或参考时钟发送带时间戳的测量帧,沿逻辑环依次经过各从站;
  2. 每个从站记录帧到达本地端口的时刻,并写入时间戳寄存器;
  3. 帧返回参考时钟后,结合往返时间计算各段链路延时;
  4. 从站根据系统时间偏移寄存器(System Time Offset)修正本地时钟,使其与参考时钟对齐。

补偿完成后,从站时钟与参考时钟的偏差通常可收敛到亚微秒级,典型系统可达到 <100 ns 量级(具体取决于拓扑、线缆长度和晶振质量)。

三、漂移补偿:让时钟“持续对齐”

偏移补偿只解决“当前差多少”,漂移补偿解决“以后会不会越差越多”。DC 通过周期性地比较从站时钟与参考时钟,计算频率偏差,并调整从站时钟的“步进”速度,使其频率与参考时钟一致。这个过程类似 PLL(锁相环):

  • 若从站时钟走得偏快,则略微减慢其计数速率;
  • 若走得偏慢,则略微加快;
  • 调整量由漂移补偿寄存器控制,通常以纳秒级步长微调。

漂移补偿是持续进行的,因此即使运行数小时,从站时钟仍能保持在参考时钟附近,不会因晶振差异而逐渐发散。

四、SYNC0/SYNC1:把“时间对齐”变成“动作对齐”

时钟对齐只是前提,真正让从站“同时动作”的是 SYNC0/SYNC1 信号。它们由支持 DC 的从站根据本地已同步的时钟产生,可配置为周期脉冲,用于触发从站内的应用任务,例如:

  • SYNC0:通常用于触发周期性过程数据输出(如伺服使能、位置给定更新);
  • SYNC1:可用于第二组同步事件,如采样、锁存或辅助输出。

SYNC0 的周期应与主站通信周期一致,其相位(相对于参考时钟的偏移)可配置。若 SYNC0 相位设置不当,从站可能在数据尚未更新时就执行输出,导致动作抖动或位置跳变。因此,SYNC0 的周期、相位和使能必须与主站周期、从站任务周期严格匹配。

EtherCAT 分布式时钟同步链路 参考时钟 Reference Clock (首个 DC 从站) 从站 1 时钟 Local Clock 偏移 + 漂移补偿 从站 2 时钟 Local Clock 偏移 + 漂移补偿 从站 N Local Clock 同步对齐 测量帧 测量帧 测量帧 补偿计算(每个从站独立执行) 偏移补偿 修正瞬时差值 漂移补偿 修正频率偏差 系统时间偏移寄存器 写入本地时钟 SYNC0 / SYNC1 同步信号生成 t0 t1 t2 t3 t4 SYNC0 SYNC0 SYNC0 SYNC0 SYNC0 SYNC1 SYNC1 SYNC1 SYNC1 SYNC0 周期 = 通信周期;SYNC1 可配置相位偏移,用于采样/锁存等第二事件

五、同步精度对运动控制的影响

在多轴运动控制中,同步误差直接转化为轨迹误差。以两轴插补为例,若 X 轴与 Y 轴的 SYNC0 触发时刻相差 Δt,而轴速度为 v,则产生的轮廓误差约为 v·Δt。假设 v = 500 mm/s,Δt = 1 μs,则误差约 0.5 μm;若 Δt 恶化到 10 μs,误差就达到 5 μm,对高精度加工已不可接受。因此,DC 同步精度通常要求优于 1 μs,高端应用甚至要求 <100 ns。

同步误差还会影响电子凸轮和飞拍:凸轮从轴若未与主轴同步,啮合点会偏移;飞拍若触发时刻不准,拍照位置就会漂移。判断同步是否达标,可观察从站 DC 状态寄存器中的“同步误差”位,或使用示波器测量两个从站 SYNC0 输出的时间差。

六、配置与检查要点

实际配置 DC 时,主站需要完成以下关键设置:

  • 使能参考时钟从站和所有需要同步的从站 DC;
  • 设置 SYNC0 周期(通常等于主站周期,如 1 ms、500 μs、250 μs);
  • 设置 SYNC0 相位偏移,使从站输出更新发生在数据到达之后;
  • 启用漂移补偿,并确认从站进入“同步”状态(而非“自由运行”)。

一个常见的检查方法是:在从站 DC 状态中读取“同步误差”和“同步窗口”标志。若误差持续超出窗口,说明漂移补偿未收敛或 SYNC0 相位设置不合理,需要检查晶振质量、网络负载和主站周期稳定性。

提示:SYNC0 周期必须与主站通信周期一致,否则从站会在数据未更新时触发输出,造成动作抖动。相位偏移一般设置为略大于“报文到达从站”的时间,确保数据已就绪。
注意:并非所有从站都支持 DC。若网络中混用支持与不支持 DC 的从站,不支持 DC 的从站只能自由运行,无法参与同步,可能成为整个系统的同步瓶颈。

总结来说,分布式时钟通过“参考时钟 + 偏移补偿 + 漂移补偿 + SYNC0/SYNC1”四层机制,把 EtherCAT 从“通信实时”提升到“动作同步”。理解每一层的作用和配置方法,才能在运动控制应用中把同步误差控制在工艺允许的范围内。