CanOpen通信----PDO与SDO
服务数据对象SDO
服务数据对象 (SDO) 通过对象索引和子索引与对象字典建立联系, 通过SDO 可以读取对象字典中的对象内容, 或者在允许的情况下修改对象数据。
SDO 传输框架
SDO 传输方式遵循客户端—服务器模式,即一问一答方式。由 CAN 总线网络中的 SDO 客户端发起,SDO 服务器作出应答。因此, SDO 之间的数据交换至少需要两个 CAN 报文才能实现, 而且两个 CAN 报文的 CAN 标识符不一样。
SDO 传输报文
SDO 的传输分为不高于 4 个字节和高于 4 个字节的对象数据传输。 不高于 4 个字节采用加速 SDO 传输方式,高于 4 个字节采用分段传输或块传输方式。SDO 传输报文由 COB-ID 和数据段组成。由下表 可以看出,T_SDO 和R_SDO 报文的 COB-ID 不一致。数据段采用小端模式,即低位在前,高位在后排列。 所有的 SDO 报文数据段都必须是 8 个字节。SDO 传输报文格式如下表:
其中, 命令代码指明了该段 SDO 的传输类型和传输数据长度, 索引和子索引是对象在列表的位置, 数据是该对象的数值。
SDO 加速写传输报文
对于不高于 4 个字