【问题标题】:Initialization of obd adapterobd适配器的初始化
【发布时间】:2012-11-25 17:04:22
【问题描述】:

我正在开发一个 android 应用程序,它通过蓝牙从车辆的 Obd 适配器读取 Obd 数据...我在初始化适配器时遇到了问题。我已经按顺序发送了以下 Obd 命令来初始化 obd:

  1. atz(接收正常)
  2. atsp0(接收正常)
  3. ate0(接收正常)
  4. 0100(这是出现问题的部分)...

这个命令有时我会收到 BUSINIT:ERROR.. 然后对于每个车辆命令(AT 命令除外)都会重复相同的错误..

我想知道确切的初始化顺序?

【问题讨论】:

    标签: android torque obd-ii


    【解决方案1】:

    您的 obd 初始化和 obd 协议选择似乎失败了。您应该按照以下步骤操作:

    AT D
    AT Z
    AT E0
    AT L0
    AT S0
    AT H0
    AT SP 0
    

    当协议选择命令响应没有任何错误如下所示时,您的连接正常,您可以请求新命令,如“0100”命令。


    错误:

    • 无法连接
    • 总线初始化...错误
    • ?
    • 没有数据
    • 已停止
    • 错误

    命令说明:

    AT D -> 全部设置为默认值

    AT Z -> 重置 Obd

    AT E0 -> 回声关闭

    AT L0 -> 换行关闭

    AT S0 -> 空格关闭

    AT H0 -> 头球关闭

    AT SP 0 -> 将协议设置为 0“自动”,搜索所有协议并将其与该 obd 的正确协议连接

    对于 AT SP 命令,如果您知道车辆的 obd 接口协议,则可以选择该特定协议而不是 make Auto 并搜索所有可能的协议。您可以使用不同的输入:


    协议参数:Hex[0,1,2, ... ,B,C]

    自动选择协议并保存。 自动 -> 0

    41.6 kbaud SAE_J1850_PWM -> 1

    10.4 kbaud SAE_J1850_VPW -> 2

    5 波特初始化 ISO_9141_2 -> 3

    5 波特初始化 ISO_14230_4_KWP -> 4

    快速初始化 ISO_14230_4_KWP_FAST -> 5

    11 位 ID,500 kbaud ISO_15765_4_CAN -> 6

    29 位 ID,500 kbaud ISO_15765_4_CAN_B -> 7

    11 位 ID,250 kbaud ISO_15765_4_CAN_C -> 8

    29 位 ID,250 kbaud ISO_15765_4_CAN_D -> 9

    29 位 ID,250 kbaud(用户可调) SAE_J1939_CAN -> A

    11 位 ID(用户可调),125 kbaud(用户可调) USER1_CAN -> B

    11 位 ID(用户可调),50 kbaud(用户可调) USER2_CAN -> C

    【讨论】:

    【解决方案2】:

    只想投入两分钱。我最近一直在用 C++ 和 LabVIEW 开发一个应用程序,用于与基于 ELM-327 的蓝牙模块通信,以从我的汽车 ECU 中检索信息。有时初始化序列会失败,有时它会起作用。我发现有时无法正确检测到 ECU 协议初始化的“关键字”字节。我认为我的蓝牙模块是问题所在,因为它原来是合法 ELM-327 的中文克隆。我怎么知道?如果您发出命令 ATI ,它会回复“ELM-327 ver. 1.5”,并且根据制造商的说法,他们从未发布过 1.5 版本 =D

    对我有用的是这样的:

    1. 开启通讯,发送ATZ
    2. ATSP0
    3. ATSS(这会启用推荐的协议搜索顺序)
    4. 010D
    5. 如果 4. 失败,则关闭通信,等待 3 秒或更长时间,然后转到 1
    6. 更多 OBD-II 或 AT-Commands。

    BUSINIT:...ERROR 响应意味着 ELM-327 无法完成 ECU 协议的启动序列。此外,在发送 OBD-II 命令(如 010C)之前,如果您碰巧使用 ISO-9141-2 或 ISO-14230-4 KWP 协议,您可以使用 ATSI 命令初始化通信。

    自动检测成功后,向ELM-327发送ATDP指令,就可以知道你的爱车使用的是什么协议。

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      “AT E0”

      “AT L0”

      “AT ST 00”

      “AT SP 00”

      为我工作。 还有一件事……我一个接一个地发送所有这些命令,延迟为 500 毫秒!几乎每次初始化都没有延迟,不要忘记,这是蓝牙,它需要更多时间来发送和接收响应......

      【讨论】:

        【解决方案4】:

        如果硬件完全兼容 OBD-II 并且汽车兼容 OBD-II,则您的初始化序列应该可以工作。如果您仍然在 0100 命令上遇到错误,请检查点火装置是否打开并且硬件是否可以正常运行。

        【讨论】:

          【解决方案5】:

          0100 是第一个到达实际汽车的命令。 AT 命令用于 (ELM327) 芯片。所以OBD连接器和汽车之间的通信有问题。您的应用和连接器之间的连接很好。

          关于 OBD-II 兼容性,Obdkey 最有可能是正确的。请尝试使用现有应用程序来证明,如果它不起作用,则说明您的汽车或连接器有问题。

          顺便说一句:说明您拥有的 obd-II 适配器以及您的汽车会很有帮助。

          【讨论】:

            猜你喜欢
            • 2013-09-09
            • 1970-01-01
            • 2018-12-13
            • 1970-01-01
            • 2013-11-18
            • 1970-01-01
            • 2022-01-14
            • 2017-08-28
            • 1970-01-01
            相关资源
            最近更新 更多