TP2.0 的应用层的数据是根据大众KWP2000 定义的,命令定义及数据流格式相同,编程时用统一的数据转换函数。

    对于大众CAN TP2.0 协议,由于用CAN 自定义参数据的方法与ECU 通讯对编程有一定的难度, TL718 V1.7 版本新增了G 号协议,以使通过PC串口可方便从大众CAN 诊断口通讯,并且由TL718 自动建立及保持通讯链路。
    大众很多CAN 诊断的车可以通过ISO15765 进入诊断,这个是OBD2(ISO15031-5)的诊断规范, 不在这个讨论范围, 可用标准的OBD2 诊断程序诊断,可参考SCANTOOL 源代码。
    CAN TP2.0 是使用11 位ID 500KBPS 波特率进行数据通讯的。
    TP2.0 的应用层的数据是根据大众KWP2000 定义的,命令定义及数据流格式相同,编程时用统一的数据转换函数。
TP2.0 的链路分析
    首先我们从一个仪表系统的CAN 诊断过程来了解CAN 链路。这个过程是VAS5053 在与AUDIA6L 仪表通讯过程中用TL718 ATMA ** 的数据。
    仪表系统诊断过程( TL718 ** 到的数据)
   
    



发送和接收数据
数据分析


200 07 C0 00 10 00 03 01
系统诊断触发请求地址码0x07


207 00 D0 00 03 51 07 01
ECU 应答,系统地址码0x0751,0x0300为接收地址,高位在后。


 
 


751 A0 0F 8A FF 32 FF 300 A1 0F 8A FF 4A FF
建立命令进入系统,并设置T1 /T3。 T1=10*10ms=100ms T3=50*100us=5ms T1=10*10ms=100ms T3=10*1ms=10ms 第一句是建立连接的请求, 第二句是ECU 建立应答。 这一步是TP2.0 协议定义要求的时间参数及进入系统的命令格式。


751 10 00 02 10 89 300 B1 300 10 00 02 50 89 751 B1
10 是设备发送的报文控制字, 1 代表请求ECU 数据,0 是计数值,设备每次请求应将此值加1,在0-F 间循环。 请求连接诊断10 89(KWP2000定义的数据) 02 是设备发送的数据的长度, 02 前面的字节00不能变。 B1,开始发送多桢数据,序号为1。高4 位B 代表是确认报文,后面无数据,设备不需要应答, ECU 会继续发送后面的数据。 1 是序列号,从1 开始,以后每次设备请求, ECU 都+1,在0-F 间循环。 10,ECU 应答报文控制字节,高位半字1 代表是数据报文的最后一帧数据,接收后需要设备应答, 后面是有效的数据,就是说设备完整接收该报文后,需要在T3 时间内发送应答报文给ECU。低位字节0 是一个0-F 间的计数据值。 如果高位半字是2,同样代表该报文是有效数据,但设备接收到该报文后,应继续接收后面的报文。 这是只有一个帧的情况第一字节为10。 诊断议已接收, 751 B1 设备接收后,响应B1(1 是计数值,是最后一帧接收到的报文的计数值加1,在0-F 间的值。 高4 位B 代表是确认报文,后面无数据,设备不需要应答, ECU 会继续发送后面的数据。1 是序列号,从1 开始,以后每次设备请求, ECU 都+1,在0-F 间循环。...

继续阅读完整内容

请查看下方广告以解锁文章剩余内容

广告加载中...
The cart is empty