OBD2:使用 CAN Reader 和自定义 Python 代码读取 VIN 号码

问题描述 投票:0回答:0

我正在尝试使用 CAN 阅读器和我的自定义 Python 代码读取车辆 VIN 号,遵循 OBD2 规范,但我无法获得整个 VIN 号,因为我只收到一个回复。

发送后我注意到:

7DF#0209005555555555

我得到回复:

7E8#1014490201574241

当我将 1014490201574241 翻译成位数组时,我得到以下内容:

>>> Response = "1014490201574241"
>>> ResponseByteArray = bytearray.fromhex(Response)
>>> ResponseByteArray
bytearray(b'\x10\x14I\x02\x01WBA')

现在,“WBA”只是VIN号码的17个字符中的前3个,我还没有收到ECU的任何其他消息。

我发现这篇文章:Flow control message while receiving CAN message with ELM327,它解释了“第一帧”和“流量控制”的概念。该帖子说我们必须发送“流量控制”请求才能获取其余信息。它还说这需要直接发送到主 ECU 的地址,而不是 7DF 的广播地址。在那个例子中,他们说主 ECU 的地址是 7E0。

问题:

  1. 他们怎么知道主CPU的地址是7E0?可以通过发送一些 OBD2 请求以某种方式确定吗?
  2. 在哪个标准下定义了“第一帧”和“流量控制”之类的东西?我没有在我遇到的任何 OBD2 文档中看到这一点。

我试图使用自定义 Python 代码和连接到 OBD2 端口的 CAN 阅读器获取 VIN 号。我期待在多条消息中收到完整的 VIN 号码,但我只收到了第一条。

can-bus vin
© www.soinside.com 2019 - 2024. All rights reserved.