EtherCAT的同步模式介绍与SSC Tool设置
EtherCAT同步模式说明
主站设备和从站设备上的应用主要是由周期性执行的代码组成, 主站和从站之间周期性的交换过程数据。
根据主站循环和从站循环之间的时间关系,分为不同的同步模式. EtherCAT定义了3种主要的同步模式
- Free Run: 从站的过程数据处理, 由内部循环\内部事件控制, 与主站循环无关, 非同步模式
- SM-Synchron: 从站的过程数据处理,由接收到携带过程数据的周期性数据帧时所产生的硬件中断(SyncManger)触发, 由于数据帧到达各从站的时间存在不同,存在传输延时问题, 各个从站的同步存在传输延时的误差
- DC-Synchron: 从站的过程数据处理,由基于分布时钟和系统时间的硬件(DC)中断触发,DC时钟经过同步后能够补偿初始时间偏差, 传输延时偏差和从站时钟漂移等误差
根据补偿后DC信号,能够保证所有从站的动作时间是同步的
在DC同步模式下需要设置合适的shift time, 保证在产生DC信号前收到主站发出的数据
SSC Tool中配置同步模式参数
- 在使用SSC生成从站协议栈代码时, 可以通过修改配置使生成的协议栈代码支持不同的同步模式
- 通过使能SSC工具中的"AL_EVENT_ENABLED"支持PDI中断, 在从站接收到数据帧时产生中断, 即SM-Synchron同步模式
- 通过使能SSC工具中的"DC_SUPPORTED"支持DC中断, 在从站根据DC同步时钟产生中断, 即DC-Synchron同步模式
- 除典型同步模式以外, 还支持不使用PDI中断, 仅使用DC中断的同步模式, 设置AL_EVENT_ENABLED = 0和DC_SUPPORTED = 1,生成的协议栈将在Sync0_Isr中处理数据数据交换任务
- 更多同步设置和同步模式请参考SSC Tool的文档"AN_ET9300"