obd适配器的初始化

时间:2012-12-07 13:52:52

标签: android torque obd-ii

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

  1. atz(收到OK)
  2. atsp0(收到OK)
  3. ate0(收到OK)
  4. 0100(这是发生问题的部分)......
  5. 有时这个命令我会收到BUSINIT:ERROR ..之后每个车辆命令(AT命令除外)都会重复相同的错误..

    我想知道Exact初始化序列吗?

5 个答案:

答案 0 :(得分:6)

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

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

当协议选择命令响应没有如下所列的任何错误时,您的连接就可以了,您可以请求新的命令,例如' 0100'命令。


<强>错误:

  • 无法连接
  • BUS INIT ... ERROR
  • 没有数据
  • STOPPED
  • ERROR

命令说明:

AT D - &gt;将all设置为默认值

AT Z - &gt;重置Obd

AT E0 - &gt;回声

AT L0 - &gt;换行

AT S0 - &gt;空间关闭

AT H0 - &gt;标题关闭

AT SP 0 - &gt;将协议设置为0&#34;自动&#34;,搜索所有协议并使用适当的协议连接该协议

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


协议参数:十六进制[0,1,2,...,B,C]

自动选择协议并保存。 AUTO - &gt; 0

41.6 kbaud SAE_J1850_PWM - &gt; 1

10.4 kbaud SAE_J1850_VPW - &gt; 2

5波特初始化 ISO_9141_2 - &gt; 3

5波特初始化 ISO_14230_4_KWP - &gt; 4

快速初始化 ISO_14230_4_KWP_FAST - &gt; 5

11位ID,500 kbaud ISO_15765_4_CAN - &gt; 6

29位ID,500 kbaud ISO_15765_4_CAN_B - &gt; 7

11位ID,250 kbaud ISO_15765_4_CAN_C - &gt; 8

29位ID,250 kbaud ISO_15765_4_CAN_D - &gt; 9

29位ID,250 kbaud(用户可调) SAE_J1939_CAN - &gt;甲

11位ID(用户可调),125 kbaud(用户可调) USER1_CAN - &gt;乙

11位ID(用户可调),50 kbaud(用户可调) USER2_CAN - &gt; ç

答案 1 :(得分:1)

&#34;在E0&#34;

&#34; AT L0&#34;

&#34; AT ST 00&#34;

&#34; AT SP 00&#34;

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

答案 2 :(得分:0)

如果硬件完全兼容OBD-II且汽车符合OBD-II标准,则初始化顺序应该有效。如果仍然在0100命令上出现错误,请检查点火开关是否已打开,硬件是否完全正常运行。

答案 3 :(得分:0)

0100是第一个到达实际车辆的命令。 AT命令是(ELM327)-chip。因此OBD连接器和汽车之间的通信出了问题。您的应用和连接器之间的连接很好。

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

顺便说一句:说明你有哪种obd-II适配器,也许你的车是有帮助的。

答案 4 :(得分:0)

我只想把我的两分钱放进去。我最近开发了一个用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。
  7. BUSINIT:... ERROR响应意味着ELM-327无法完成ECU协议的启动顺序。此外,在发送OBD-II命令(如010C)之前,如果您可以使用ISO-9141-2或ISO-14230-4 KWP协议,则可以使用ATSI命令初始化通信。

    如果在成功自动检测后将命令ATDP发送到ELM-327,您可以找到您的汽车使用的协议。

    希望这有帮助。