1

我正在编写一个基于 java 的应用程序来与汽车交互。对于硬件,我使用的是亚马逊提供的 wifi ELM 327 模块之一(准确地说是:http ://www.amazon.com/gp/product/B00FQ7O88M/ref=oh_details_o00_s00_i00 )。为了测试它是否正常工作,我为我的 iPhone 选择了 DashCommand 应用程序。

为了稍微了解用于与模块接口的协议,我记录了一个会话的网络流量(通过 wireshark),我在其中开车,而 DashCommand 应用程序记录了它的常用指标(用于测试的汽车是2009 年讴歌 TSX)。

最初的大部分流量是我在 ELM 327 和 OBD II 文档中所读到的内容所期望的。然而,一旦我开始,DashCommand 最终使用了我似乎无法弄清楚的 PID。我看到的一个例子是:

...
Request: 01 0B2
Response: 01 0B2
          18 DA F1 11 03 41 0B 1B
          18 DA F1 1D 03 41 0 B 1C

          >
Request: 01 0C2
Response: 01 0C2
          18 DA F1 1D 04 41 0C 0C A0 
          18 DA F1 11 04 4 1 0C 0C A0 

          >
Request: 01 0D2
Response: 01 0D2
          18 DA F1 11 03 41 0D 00 
          18 DA F1 1D 03 41 0 D 00 

          >
Request: 01 101
Response: 01 0D2
          01 101
          18 DA F1 11 04 41 10 01 3E

          >
Request: 01 332
Response: 01 332
          18 DA F1 D1 03 41 33 62 
          18 DA F1 11 03 41 3 3 62 

          >
…

到目前为止,我发现的三位数 PID 的完整列表是:031、0B2、0C2、0D2、101、332 和 341。如上所示,它们中的每一个都以模式 01 发送。

是否有关于这些 PID 的任何文档?还是我误解了我所看到的?

4

1 回答 1

2

最后一位数字不是 PID 的一部分。

PID 后面的数字代表您期望的回复数。您可以看到这始终是一个数字。

例如,当您将“1”添加到正常的 2 位 PID 时,ELM327 将等待来自 ECU 的恰好 1 个响应。当 1 个 ECU 对 ECU 做出响应时,ELM327 将直接向您响应该结果。当您添加“2”时,它将等待 2 个响应。

资料来源:ELM327 文档- 转到第32页。

于 2014-07-02T10:04:57.827 回答