我正在尝试通过 OBD-II 接口和 ELM327 适配器从我的本田 C-RV 检索数据。
我可以成功交换AT命令和PID命令。我只是对 Service 9 0x0A 命令(ECU 名称)有疑问。
我的车有 4 个 ECU,所以我期望 4 个 ECU 以 ascii 编码(每个 RX 上有四行),但是,这就是我收到的:
TX: 090A
RX: 18DAF1011017490A01424543 <- first line of ECU1
RX: 18DAF1021017490A01444D43 <- first line of ECU2
RX: 18DAF1061017490A01534743 <- first line of ECU3
RX: 18DAF10E1017490A0150434D <- first line of ECU4
RX: 18DAF10E21002D506F776572 <- second line of ECU4
RX: 18DAF10E22747261696E4374 <- third line of ECU4
RX: 18DAF10E23726C0055555555 <- fourth line of ECU4
知道为什么只有一个 ECU 回复全名而其他 ECU 只回复第一个字符吗?
此外,每次我查询他们的名字时,回复全名的ECU都会改变。有时是PowerCtrl ECU,有时是Engine ECU,有时是其他....
我做错了什么?
您很可能有一个便宜的 ELM327 克隆。这些都充满了错误。他们中的一些人不了解 ISOTP 流量控制。在您的情况下,适配器似乎无法处理多个 ECU 通过 ISOTP 有效负载进行应答,并且只为最后一个 ECU 发送必要的流量控制。
我建议尝试使用另一个适配器。