未使用的字节是否设置为零以响应 SDO 读取?
Are unused bytes set to zero in response to SDO reads?
我发送 SDO 请求读取一个 1 字节的值,如下所示:
|11 bit COD-ID | byte 0 | byte 1 | byte 2 | byte 3 | byte 4 | byte 5 | byte 6 | byte 7 |
| 0x0601 | 0x40 | index | subindex | 0x00 | 0x00 | 0x00 | 0x00 |
设备响应:
|11 bit COD-ID | byte 0 | byte 1 | byte 2 | byte 3 | byte 4 | byte 5 | byte 6 | byte 7 |
| 0x581 | 0x4F | index | subindex | 0xFF | 0x00 | 0x00 | 0x00 |
0x4F表示返回值只有8位宽,只设置了字节4。字节5、6、7呢?标准保证它们为零吗?
是的,SDO 请求中涉及的 CAN 帧始终具有 8 字节的有效载荷。未使用的字节设置为 0,收件人应忽略。
CiA 301 第 7.2.4.3 节保证了这一点,该节描述了 SDO 协议。
我发送 SDO 请求读取一个 1 字节的值,如下所示:
|11 bit COD-ID | byte 0 | byte 1 | byte 2 | byte 3 | byte 4 | byte 5 | byte 6 | byte 7 |
| 0x0601 | 0x40 | index | subindex | 0x00 | 0x00 | 0x00 | 0x00 |
设备响应:
|11 bit COD-ID | byte 0 | byte 1 | byte 2 | byte 3 | byte 4 | byte 5 | byte 6 | byte 7 |
| 0x581 | 0x4F | index | subindex | 0xFF | 0x00 | 0x00 | 0x00 |
0x4F表示返回值只有8位宽,只设置了字节4。字节5、6、7呢?标准保证它们为零吗?
是的,SDO 请求中涉及的 CAN 帧始终具有 8 字节的有效载荷。未使用的字节设置为 0,收件人应忽略。
CiA 301 第 7.2.4.3 节保证了这一点,该节描述了 SDO 协议。