本文主要是介绍OBD_II协议,CAN总线数据协议,诊断私有协议(个人理解,不对的的地方,请指出)【二】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、CAN总线介绍
CAN总线介绍(转)
这里说的汽车CAN总线协议,如上图CAN_H(6)和CAN_L(14)在小轿车上一般是500k bps 高速CAN来通讯,也有从CAN_H(3)和CAN_L(11)的250K BPS中速CAN来通讯,还有就是33.3K BPS单线CAN(1)来通讯[注:这里通常是通用系车辆有单线CAN]
2、汽车CAN总线数据应用
在丰田2013款AT版本CROWN,能够破解到如下数据
数据流名称:
左前轮轮速、右后轮轮速、左后轮轮速、右前轮轮速、车速、转速、 刹车状态(脚刹)油门踏板相对位空调开关、故障信号(SRS) 、故障信号(ABS)、水温、 档位、里程(总)、 灯状态(危险灯)、灯状态(右转向)、灯状态(左转向)、门状态(后备箱)、手刹状态、门状态(左后门)、安全带(驾驶员)、ACC信号、门状态(右后门)、门状态(左前门)、门状态(右前门)、遥控信号、 门锁、(左前门) 门锁(右前门) 门锁(全车锁) 门锁(左后门) 门锁(右后门) 灯状态(近光灯)、灯状态(远光灯)、灯状态(雾灯)、灯状态(示宽灯)
例子:
CAN类型 | 波特率 | CanID | 间隔(ms) | 长度 | 原始数据 | 数据流名称 | 单位 | 输出值 | Start Bit | 长度 | |||||
高速CAN | 500000 | AAH | 12 | 8 | 00 00 00 00 00 00 00 00 | 左前轮轮速 | km/h | 0 | 16 |
高速CAN | 500000 | 3BCH | 1024 | 8 | 00 00 00 00 00 00 00 00 | 档位 | P/R/N/D | 8 | 8 | switch(x&0xff) 0x20: P;0x10: R;0x08: N;default: D; |
如上图所示,
(1)左前轮轮速在高速CAN上,CANID=0xAA,数据更新的频率12ms,数据长度为8;计算起始位置从0开始,计算长度16位,则是计算原始数据前2个字节,套用算法则能计算出左前轮速度
(2)高速CAN上的CANID=0x3BC,数据更新频率1024ms(约1S),数据长度为8;计算起始位置从8开始,计算长度8位,则是计算原始数据1个字节,根据switch(x&0xff) 0x20: P;0x10: R;0x08: N;default: D;算法来处理则可以知道车当前的挡位
(未完待续)
这篇关于OBD_II协议,CAN总线数据协议,诊断私有协议(个人理解,不对的的地方,请指出)【二】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!