bluetooth - 福特 CAN 数据和 ELM327

标签 bluetooth can-bus obd-ii

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

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

到目前为止,我一直在使用福特 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 文档,因此请不要将其作为解决方案。

    最佳答案

    是什么让你认为“最后一行的结果输出比
    诊断工程工具正在给我”?

    实际上,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”。

    关于bluetooth - 福特 CAN 数据和 ELM327,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17621766/

    相关文章:

    obd-ii - OBD-II 车头灯状态

    ios - BLE 后台处理在 iOS 应用程序中不起作用

    python - 无法让 python-can-viewer 运行

    Android 蓝牙连接错误(未找到 bt sock,scn 1)-无限循环

    sockets - socketcan如何处理仲裁?

    Windows 中的 Python-Can 或 Pyserial

    android - 开发人员友好的 OBD-II 端口汽车诊断工具?

    ios - 一起发送多个 OBD 命令并同时获得响应

    java - android 4.3 蓝牙蓝牙不调用 onCharacteristicRead()

    android - 如何在 Android 中使用两个蓝牙适配器?