是否可以通过.dbc文件请求所有所需的ODB II PID?

时间:2017-02-18 21:22:27

标签: can-bus obd-ii elm327 canoe

我要做的是通过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(信号)的原因。

1 个答案:

答案 0 :(得分:0)

  

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

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

  

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

这是错误的,因为0x7DF与DLC和消息内容无关。只有消息标题才能告诉ECU您有此请求。 0x7DF是OBD请求,甚至可以直接向不同的控制器请求其可用数据。

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

的问候,

相关问题