一、三种抖动三件不同的事1**. 周期抖动Cycle Jitter—— 主站的心跳稳不稳**主站每隔固定时间发一帧过程数据比如 1ms。实际发送间隔可能是 999.4μs、1002.8μs、1000.1μs……这些值与 1000μs 的偏差就是周期抖动。它只由主站决定——你的 MCU、你的 OS、你的代码。跟从站没关系跟线缆也没关系。来源从大到小排操作系统调度Linux 非实时内核能到几百 μsRT 补丁压到几十 μs中断延迟与其他中断抢占Cache 命中与否代码/数据放在 Flash、普通 SRAM、DTCM差别是数量级的DMA 传输与总线争用协议栈自身的执行时间波动参考量级某国产 EtherCAT 主站卡在 32 轴配置下周期抖动最大 1.2μs、平均0.3μsSTM32F767 裸机移植 SOEM500μs 插补周期下帧周期稳定在 68μs±1μs。2. 同步抖动DC Sync Jitter—— 从站之间对齐得准不准这个是各从站 SYNC0 信号彼此之间的对齐精度。多个伺服轴要同时动靠的就是这个。量级完全不同倍福官方口径是 EtherCAT DC 系统精度 100ns实际常在两位数纳秒优化后可达 ±35nsETG 给的典型值是 ±20ns。3. 从站输出抖动 —— 从站自己的事从站收到 SYNC0 中断到它真正把信号驱动到端子上这中间有延迟。取决于从站硬件ESC 芯片、PHY、输出电路的质量。这一项你控制不了是买设备时选的。选型时看从站是否支持 DC、DC 周期支持到多少。还有一个伪装成抖动的家伙时钟漂移这个不是抖动但现场表现最像抖一下而且是最坑人的那种。周期性相位漂移主站本地时钟比如 STM32 的定时器和参考从站时钟之间有固定频率偏差两边的相位差会线性累积。累积到一个周期就跳变一次——表现为电机每隔几十秒或几分钟规律性抖一下。裸机和定时器中断驱动的主站特别容易中招。非周期性相位抖动Linux 这类非实时系统的任务调度导致的SM2 周期本身就不稳。怎么区分看示波器上 SYNC0 相对主站周期拍的相位差——线性单调漂移是时钟频率偏差要调 DC 补偿滤波系数随机跳变是调度抖动要提高实时性。