5

我正在尝试使用蓝牙ELM327无线OBD-II接收器从车辆 OBD-II 端口获取数据。我不是想收集有关发动机的信息,而是收集车辆中的一些电子设备。我已经获得了访问设备的某些命令,并且成功使用了 ELM327 以外的其他设备和软件。

一般来说,我在处理 CAN 总线和数据传输方面没有太多经验。如果我遗漏了这个过程的关键部分,请原谅我。但是,我确实了解 CAN 基础知识,例如消息头和数据字节。

到目前为止,我一直在使用 Ford DET 工具从设备收集数据。我能够发送一个 8 字节的 CAN 消息并接收回数据。我有许多命令需要从它们产生的输出中解析正确的数据。例如,如果我要发送命令

0x727 03 19 02 8F

我的日志文件显示:

00184.3548  (Rx)  0x72F  10  0F  59  02  CA  E1  00  00
00024.8556  (Rx)  0x72F  10  0F  59  02  CA  E1  00  00  ---  Request DTC Info: Report DTCs By Status Mask (StatusMask: 8F)
00189.4469  (Tx)  0x727  03  19  02  8F  00  00  00  00  ---  Request DTC Info: Report DTCs By Status Mask (StatusMask: 8F)
00189.4549  (Rx)  0x72F  10  0F  59  02  CA  E1  00  00
00189.4572  (Tx)  0x727  30  00  00  00  00  00  00  00
00189.4591  (Rx)  0x72F  21  0A  E1  01  00  0A  9A  89
00189.4612  (Rx)  0x72F  22  13  0A  00  00  00  00  00  ---   Pos Resp to Read DTCs By Status Mask (3 DTCs) 

这是使用goSerial与 ELM327 交谈时发生的情况。我已经包含了所有命令来说明我如何使用 ELM327 设备。

>ath1
OK

>ats1
OK

>atal
OK

>at sh 727 <-- set the message header to 0x727
OK

>03 19 02 8f
72F 03 7F 03 11 

>

如您所见,最后一行的结果输出比诊断工程工具给我的要短得多。我没有正确配置设备吗?

基本上我试图让 ELM327 输出与福特 DET 工具的输出相匹配。我知道这是一个非常模糊的问题。

以下是有关我的配置的其他一些信息:

  • 波特率:38400(车辆标准?)
  • CAN 版本:ISO 15765-4

我所有的命令都以 0x727 开头。流量控制通过 0x727 和 0x7A7 传输。

此外,我已经阅读了大部分 ELM327 文档,因此请不要将其作为解决方案。

4

1 回答 1

3

是什么让您认为“最后一行的结果输出比诊断工程工具给我的要短得多”?

实际上,ECU的响应是完全有效的:72F 03 7F 03 11

72F - ID of the CAN message
03 - Length of data bytes
7F - Negative response
03 - The negative response is for command 03
11 - Not supported

您在发送 CAN 消息“03 19 02 8f”的行中有错误。您应该发送这样的消息:“19 02 8f”。

于 2014-01-11T16:36:38.863 回答