我试图使用蓝牙ELM327无线OBD-II接收器从车辆OBD-II端口获取数据。我不是想收集关于发动机的信息,而是想收集汽车中的一些电子设备。我获得了访问设备的某些命令,并成功地使用了ELM327以外的其他设备和软件。
我在处理CAN总线和数据传输方面没有太多经验,所以请原谅我忽略了这个过程中的关键部分。不过,我确实了解CAN的基本知识,如消息头和数据字节。
到目前为止,我一直在使用福特DET工具来收集设备上的数据。我能够发送一个8字节的可以消息和接收数据回来。我有许多命令,我需要从它们产生的输出中解析正确的数据。例如,如果我要发送命令
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) 下面是使用ELM327与goSerial对话时发生的情况。我已经包含了所有的命令来说明我是如何使用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工具的输出相匹配。我明白这是一个非常含糊的问题。
以下是有关我的配置的其他信息:
我的所有命令都以0x727开头。流量控制用0x727和0x7A7传输。
另外,我已经阅读了大部分ELM327文档,所以请不要把它作为解决方案。
发布于 2014-01-11 16:36:38
是什么使您认为“最后一行的结果输出比诊断工程工具给我的要短得多”?
事实上,ECU的回应是完全正确的: 72F 03 F 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“的行中有一个错误。你应该发送这样的信息:“1902 8f”。
https://stackoverflow.com/questions/17621766
复制相似问题