汽车诊断协议,(K线/CAN总线、kwp2000、ISO14230、ISO1575...)转载

K线学习博客来自:https://blog.csdn.net/haha1fan/article/details/78007839

针对自己不会的进行记录(省的回顾看的时候还要重复记录)

6、数据格式

发送一字节的数据格式为(重点):
起始位 + 数据 + 停止位
1 + 8 + 1
如下:

å¨è¿éæå¥å¾çæè¿°
7、实训
从最底层开始,直接看K线的电平变化吧
截一段设备向ECU发送请求的数据:

è¿éåå¾çæè¿°
**IO[0]:**用作K线通讯发送和接收数据的端口,变化电平高低(1,0)表示数据位的值
T:表示电平持续的时间

一个数据位的时间 = 1/波特率即: 1 / 10416 = 95 ns(约等于)

那就简单了,把上面电平持续时间时间除以95,可以得出K线的电平变化情况:

è¿éåå¾çæè¿°

单位:一个数据位的时间单位

把每字节的起始位和结束位去掉,可以很容易看出,这个设备发送命令字节间的时间间隔P1,为4.5ms
所以解析一下电平图代表的数据实际是:

å¨è¿éæå¥å¾çæè¿°

这边要怎么看!!!

0 0000 0001 1 (对于47中的1还有45个)

即是0000 0001

1 1000 1000 1(对于46的1还有45个)

即是1000 1000

0 1000 1111 1 (对于50的1还有45个) 

即是1000 1111

对于0 1000 0000 1(对于46的1还有45个)

得到1000 0000

因为45/10 = 4.5 所以是4.5ms~

 


注意:数据先从低位开始发送,0000 0001 实际为 1000 0000 则 0x80

向ECU发送请求的数据为:0x80,0x11,0xF1,0x01
这段数据是没实际作用的,因为原地址后面没有命令字,没发实有用的命令

随便再搞一段ECU返回设备的数据:

è¿éåå¾çæè¿°
电平持续时间时间除以95,可以得出K线的电平变化情况:

å¨è¿éæå¥å¾çæè¿°
可知ECU返回命令字节间的时间间隔P2,为0ms
同上解析方法,很容易得出实际的数据为:

å¨è¿éæå¥å¾çæè¿°
ECU返回设备的数据为:0x81,0xF1,0x11,0x7E
意思:ECU返回链路保持

大家对比发来的数据,是不是发现问题,校验位呢???

实际ECU返回设备的数据是:0x81,0xF1,0x11,0x7E,0x01 ,因为取的电平图漏了一字节,还有一个校验位没截完…好吧我也懒得从新取数据了,大家知道就好

注意:这两段电平不是对应的一发一收的,是我取两条简单的来解析,所以请求和返回没对应起来,大家不要误会

 

 

CAN线导师推荐学习:https://blog.csdn.net/langshi_2011/category_8936756.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值