问题描述
我正在编写自己的CAnopen堆栈,并且想使用C实现SDO服务器。
CiA CAnopen应用程序层文档指定SDO请求和确认帧如下所示:
并提供一些解释如下:
基于对这张图片的解码,我发现应该在SDO确认帧中发送8个字节,但是这7个字节将仅包含0。
这正确吗?
PS:如果图像不清楚,抱歉。
解决方法
几乎正确。 SDO CAN帧始终包含8个字节,未使用的字节为0。
但是,确认帧具有4个非零字节。第一个字节是命令说明符(在这种情况下为0x60)。接下来的三个是“多路复用器”:两个字节用于对象索引(little-endian),一个字节用于子索引。