【问题标题】:Are unused bytes set to zero in response to SDO reads?未使用的字节是否设置为零以响应 SDO 读取?
【发布时间】:2020-05-02 06:39:00
【问题描述】:

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

【问题讨论】:

    标签: can-bus canopen


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多