【问题标题】:Flow control message while receiving CAN message with ELM327使用 ELM327 接收 CAN 消息时的流量控制消息
【发布时间】:2015-03-23 15:22:21
【问题描述】:

我正在尝试制作一个在 Windows 下运行并与 ELM327 设备通信的软件。我创建了第一个版本,然后我进入了我的 SMART ForTwo (SMART 451) 车辆,并设法与仪表板连接(发送 CAN ID 为 782,接收 CAN ID 为 783)。但是我对流控制有一个很大的问题。这是日志:

TX:ATI RX:ELM327 v1.5a

TX:ATE0 接收:ATE0 正常

TX:ATSP6 接收:好的

TX:ATH1 接收:好的

TX:ATL1 接收:好的

TX:ATCFC1 接收:好的

TX:ATFCSM0 接收:好的

TX:ATAL 接收:好的

TX:ATSH782 接收:好的

TX:ATCRA783 RX:?

TX:ATST64 接收:好的

TX:1092 接收:783 02 1A 87

TX:1A87 接收:783 10 16 5A 87 05 6E 00 08

我使用了另一个工具,我看到 ELM327 设备立即发送流控制帧。是这样的:

891.438 782 02 1A 87

891.444 783 10 16 5A 87 05 6E 00 08

891.444 782 30 00 00 00 00 00 00 00

如您所见 - 流控制帧的发送时间与第一帧完全相同,第一帧是从其他设备发送的。我确信其他设备在接收“流控制”帧时有问题。 我研究了 ELM327 文档,但没有找到任何有关如何延迟流控制帧的信息。 我应该如何正确发送请求“1A 87”并收到响应?

【问题讨论】:

  • 我不认为有什么办法可以拖延!

标签: can-bus obd-ii elm327


【解决方案1】:

这很容易,我猜..

使用ATCFC0命令,即可处理所有来自控制单元的响应帧,需要手动发送流量控制帧。

【讨论】:

    【解决方案2】:

    这是一篇旧帖子,但可能对其他人有所帮助!

    这是我在与 SPI 连接的 MCP2515 上使用第一帧 (FF) 和流控制 (FC) 的经验。

    首先,您应该始终在 FF 消息之后发送 FC 消息,而不是同时发送。

    其次,诊断阅读器可以使用 ECU 响应帧中的 ID 继续与特定 ECU 通信。特别是,多帧通信需要对特定 ECU ID 的响应,而不是对 ID 7DF 的响应。在简单的语言中,您不应该发送 ID 为 7DF 的 FF 消息,并且您应该处理您想要接收连续帧的确切 ECU。例如请求汽车 VIN(基于 Golf VII 的真实信息):

    7DF 02 09 00 00 00 00 00 00 //发送请求

    7E8 10 14 49 02 01 57 56 57 //从主ECU接收

    7E0 30 00 00 00 00 00 00 00 //寻址主ECU而不是7DF了!!

    7E8 21 5A 5A 5A 41 55 5A 45 //7E0正在发送连续消息!!

    7E8 22 50 35 33 30 36 38 35

    希望对您有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      • 2015-05-06
      • 1970-01-01
      • 2013-05-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多