首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用ELM327接收CAN消息时的流控制消息

用ELM327接收CAN消息时的流控制消息
EN

Stack Overflow用户
提问于 2015-03-23 15:22:21
回答 2查看 4.3K关注 0票数 3

我正在尝试制作一个软件,它运行在Windows下,并与ELM327设备进行通信。我创建了第一个版本,我进入了我的智能ForTwo (Smart451)车辆,我设法连接到仪器集群(传输CAN ID为782,接收CAN ID为783)。然而,我在流量控制方面有一个很大的问题。这是日志:

TX: ATI : ELM327 v1.5a

TX: ATE0 RX: ATE0 OK

TX: ATSP6 RX: OK

TX: ATH1 RX: OK

TX: ATL1 RX: OK

TX: ATCFC1 RX: OK

TX: ATFCSM0 RX: OK

TX: ATAL : OK

TX: ATSH782 RX: OK

ATCRA783 RX:?

TX: ATST64 RX: OK

TX: 1092 RX:783 02 1A 87

TX: 1A87 RX:783 10 16 5A 87 05 6E 0008

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

891.438 782 02 1A 87

891.444 783 10 16 5A 87 05 6E 0008

891.444 782 30 0000000000000000

如您所见-流控制帧与第一个帧完全同时发送,这是从另一个设备发送的。我确信另一个设备在接收“流量控制”框架时有问题。我研究了ELM327文档,但没有找到任何关于如何延迟流控制框架的信息。我应该如何正确地发送请求"1A 87“并收到答复?

EN

回答 2

Stack Overflow用户

发布于 2016-08-11 08:25:17

这是一个旧的职位,但可能会帮助别人!

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

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

其次,诊断读取器可以使用ECU响应帧中的ID来继续与特定ECU通信。特别是,多帧通信需要响应特定的ECU ID,而不是ID7DF。在这种简单的语言中,您不应该用ID 7DF发送FF消息,并且您应该寻址要接收连续帧的确切ECU。例如,请求car VIN (根据Golf VII的真实信息):

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

7E8 10 14 49 02 01 57 57 57

7E0,30,00,00,00,00,00,00 /攻入主ECU,而不再是7DF !!

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

7E8 22 50 35 33 30 36 38 35

希望它能帮上忙!

票数 2
EN

Stack Overflow用户

发布于 2015-07-02 13:16:34

我想这很容易..。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29213988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档