【问题标题】:Is it possible to request all desired ODB II PIDs via a .dbc file?是否可以通过 .dbc 文件请求所有所需的 ODB II PID?
【发布时间】:2017-07-08 07:57:06
【问题描述】:

我要做的是通过在 Vector db Editor++ 中制作的 .dbc 文件请求所有所需的 PID。

我对 CAN 通信有足够的了解,因此能够使用 1 或 2 个 PID 进行此操作,因为 DLC 允许每个 CAN 消息最多 8 个字节的数据。我也熟悉这个关于PID https://en.wikipedia.org/wiki/OBD-II_PIDs#CAN_.2811-bit.29_bus_format的查询和响应的资源

我无法理解的是诊断工具如何能够查询特定车辆制造商决定提供的每个 PID,所以我觉得这是可能的。然而,如果我使用 $7DF 的请求 ID,我只能单独使用这个消息 ID 进行查询,这就是我目前只能在该 CAN 消息中放置两个 PID(信号)的原因。

【问题讨论】:

    标签: can-bus obd-ii elm327 canoe


    【解决方案1】:

    诊断工具如何能够查询特定车辆制造商决定提供的每个 PID?

    你不能向 ECU 请求任何你想要的东西(至少以正常的方式!)。只有您可以请求的 OBD 相关 PID。 ISO 15031 第 5 部分中提供了所有 OBD II PID 及其定义、缩放等。这意味着所有 PID 都是预定义的。因此,任何记录器都会首先请求 mode 01 pid 00 获取该车辆的所有可用 PID,然后开始对其进行扫描。

    如果我使用 $7DF 的请求 ID,我只能单独使用此消息 ID 进行查询。

    这是错误的,因为0x7DF 与 DLC 和消息内容无关。它只是消息的标头告诉 ECU 您从谁那里收到此请求。 0x7DF是OBD请求,你甚至可以直接向不同的控制器请求他们的可用数据。

    每个 can 消息都是 8 字节长。第一个字节是请求的模式。第二个字节告诉 ECU 传入字节数,然后您有 6 个字节要发送。因此,他们说您最多可以同时请求 6 个 PID。您的问题可能是从 OBD 接收多个数据,使用流控制和第一帧消息可能有点棘手。 Here 你可以找到一些关于如何接收超过 8 个字节的消息的信息。

    问候,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-19
      • 1970-01-01
      • 2018-04-05
      • 2015-02-23
      • 2012-04-14
      • 2017-08-16
      • 1970-01-01
      • 2012-07-17
      相关资源
      最近更新 更多