NRC 0x13 是什么意思
根据 ISO 14229-1:2020:
这表示:
- 服务器支持 SID 0x23,否则您将收到 NRC 0x11 serviceNotSupported
- 您的请求格式不正确(太长或太短),在其他情况下您会收到其他 NRC(例如 0x31 requestOutOfRange)。我怀疑地址值不是 2 个字节长。它可能有 4 个字节长(取决于内存类型和大小),但这只是一个猜测。
如何正确发送请求
我们不知道服务器接受的确切格式是什么(取决于服务器的内存),但 ISO 14229-1:2020 定义了 SID 0x23 请求格式如下:
我会尝试以下请求:
- 0x22 0x44 0x00 0x00 0x1C 0x22 0x00 0x00 0x01 0x50
在哪里:
- 0x00 0x00 0x1C 0x22 - 4 字节内存地址
- 0x00 0x00 0x01 0x50 - memorySize(它也是 4 字节以确保服务器正确解释 addressAndLengthFormatIdentifier)
其他选项
服务器可能有缺陷(特别是如果您使用 2 字节长的地址成功读取内存)并且错误地显示 NRC 0x13或仅支持 addressAndLenghtFormatIdentifier 的某些值。不过,很难百分百确定地判断。您将至少提供一个具有积极响应的请求。请在评论中这样做,我将指导您解决问题。