我正在尝试制作一个软件,它运行在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“并收到答复?
发布于 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
希望它能帮上忙!
发布于 2015-07-02 13:16:34
我想这很容易..。
使用ATCFC0命令,然后可以处理来自控制单元的所有响应帧,并且需要手动发送流控制帧。
https://stackoverflow.com/questions/29213988
复制相似问题