1

我发送和 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 呢?标准是否保证它们为零?

4

1 回答 1

1

是的,SDO 请求中涉及的 CAN 帧始终具有 8 字节的有效负载。未使用的字节被设置为 0,并且应该被接收者忽略。

CiA 301 第 7.2.4.3 节对此进行了保证,该节描述了 SDO 协议。

于 2020-06-03T11:47:45.447 回答