html教学网站,百度指数只能查90天吗,南宁手机平台网站,怎么用FTP做网站KWP2000最初是基于K线的诊断协议#xff0c;
但是由于后来无法满足越来越复杂的需求#xff0c;以及自身的局限性#xff0c;厂商又将这套应用层协议移植到CAN上面#xff0c;所以有KWP2000-K和KWP2000-CAN两个版本。
这篇文章主要讲基于K线的早期版本协议#xff0c;认…KWP2000最初是基于K线的诊断协议
但是由于后来无法满足越来越复杂的需求以及自身的局限性厂商又将这套应用层协议移植到CAN上面所以有KWP2000-K和KWP2000-CAN两个版本。
这篇文章主要讲基于K线的早期版本协议认识一下这种基于串口的协议格式借鉴借鉴。 K线
链路层
1标准通讯速率10400 比特每秒
可最高支持124800 比特每秒 用于快速刷写
2数据包包含目标地址和源地址根据地址的不同实现主从的应答
3K线是半双工模式的一根双向数据线
4K线电平为12~24V
对于发送者大于VB的80%认为是逻辑1小于VB的20%认为是0
对于接收者二者比例是70%和30%。
VB即总线正常工作电压最大值一般为24V或12V。
总结对单片机来说K线就是一个串口通信。具体的电平转换由特殊的K线电压转换芯片完成。 快速初始化
K线建立通讯之前必须要有一个快速初始化的过程。
ECU端实现了一个硬件检测功能必须要检测到总线上25ms低电平
在信号唤醒之后的第一个下降沿诊断仪发送ECU通讯报文
如果ECU给与响应则通信建立。 应用层
下图列出来几种常见的K线通讯协议格式
1首字节SIDDATACS
这种一般首字节表示长度SID表示服务IDData为有效数据CS为1byte的校验和
这种格式简单适用于简单命令控制和数据高速传输
2首字节TgtSrcSIDDatacs
这种格式添加了1byte 目标地址 和 1byte源地址是最常见和正常的通讯格式。
其中首字节一般为0x80长度或者0xC0长度
3首字节TgtSrcSIDLenDatacs
与格式2类似所不同的是首字节一般固定尾0x80或0xC0具体长度位要去取Len位置数据。 总结
虽然K线芯片现在基本停产转到CAN、FDCAN等等但是这种通讯协议值得参考。
可以用到单片机与其它的模块的串口通信。 实现数据解析
实现这样一种串口通讯协议。
1需不需要做超时判定
根据自己的应用场景决定是否需要判断超时。
假如需要且超时设定为2s则每次接收到数据就启动超时定时器定时器到期则判断数据接收长度如果仍有数据未处理则强制推送。
2确定接收处理方式
a. 单字节接收处理
设置接收非空闲中断收到1个字节处理1个字节
b. 串口空闲中断或DMA传输
收到一段数据后单字节循环方式处理