在发送和接收之间必须相互协调和同步,为此,CANopen引入同步的概念。
同步报文:包含一个数据字节或者不含数据字节的CAN报文。数据字节中包含一个从1开始递增计数的同步计数器。溢出值可在参数(索引1019h)来设置,同步报文的发送和接收方都必须使用同步计数器(可避免双方计数有差,达不到同步目的)
标识符:标识符是每条报文(帧)的优先级标志,标准为11位,扩展为29位。同步报文的标识符为80h,该值保存在对象字典Sync-COB-ID(索引1005h),可配置。
同步窗口和同步周期:两个参数用户可以设置(具体如何设置,还不知道),同步PDO发送方必须在同步窗口内发送完PDO。在大多数情况下,同步窗口==同步周期不会有太大影响。在许多实现方式中,均以同步时间窗口长度等于循环周期考虑的。
同步的机制:在同步对象1发送后,设备A发送同步PDO,设备B接收到A发送的同步PDO,则B只能在下一个同步对象到来时,才能响应此数据。在某些情况下,此数据会失效。只将TPDO设置成同步传输,把RPDO定义为事件驱动类型,就可以使数据及时得到响应。
同步计数溢出:就像单片机定时器,定义一个初值,到某个值溢出为0。