打印
[其他]

汽车故障诊断通讯协议之KWP2000协议

[复制链接]
505|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

KWP2000协议是汽车故障诊断中的通信协议之一,是属于OBD II标准协议的一种。KWP系统又称为关键字协议,因为这种协议在系统进入时,会涉及到关键字的校验而得名。下面从物理层特性、系统进入、帧结构、命令交互、交互时间参数、常用命令字等几个方面来介绍这种协议。

  • 物理层特性


        通常采用10416BPS的波特率;空闲电平通常为12V;数据位格式为1+8+1,没有校验位。

  • 系统进入初始化


        系统进入初始化有两种初始化方式。第一种由设备先发送25ms的拉低电平,然后是25ms的高电平(空闲电平),然后再发送系统进入数据,系统进入数据通常为5个字节,ECU响应7个字节,完成系统初始化交互。请参见下图:

        第二种初始化方式为设备发送5BPS或者200BPS的地址码,ECU响应55H,KW1,KW2,设备对KW2取反发回给ECU,ECU对地址码取反回给设备,完成系统初始化交互。其中55H这个字节用来规定后面的通信波特率。参见下图:

  • 帧结构


        命令头(1个或多个字节)+命令体(1个或多个字节)+校验(通常为何校验)。在命令头中,包括以下几个部分的内容:格式+目标地址+源地址+长度字节。长度信息有时候在格式字节中体现,则不需要另外的长度字节,长度信息用以表示命令体的内容;目标地址和源地址有时候也会没有。命令体的内容中:命令字+命令内容。命令内容可以没有。举例如下:

        81H 11H F1H 81H 04H

        第一个字节81H为格式+长度信息(80+1)

        第二个字节11H为目标地址

        第三个字节F1H为源地址

        第四个字节81H为命令字,表示系统进入

        最后一个字节04H为前面4个字节的校验和

        同样,也可能表现如下:(命令字)

        80H 11H F1H 01H 3EH C1H

        这种情况下,长度字节放在源地址之后

        还可能表现为:

        02H 1AH 9AH B6H

        这种情况下,格式字节和目标地址源地址都已经没有了

        还有一种特殊的情况,在上一种情况的基础上,在帧数据之前,加一个00,例如:

        00H 02H 1AH 9AH B6H

        但这种帧结构的情况极少。

  • 命令交互


        命令交互通常情况下为1对1,但也存在1对多或者多对1的情况。下面是一组命令交互举例:

        Tools: 81H 31H F1H 81H 24H

        ECU: 83H F1H 31H C1H E9H 8FH DEH

        在交互中,因为发送命令的对象不一样,所以目标地址和源地址是进行了交换;同时,ECU响应设备的命令字在设备命令字的基础上+0x40。交互时间参数:包括4个时间参数,如下:

        设备发送命令字节间的时间间隔P1,通常为5ms

        ECU返回命令字节间的时间间隔P2,通常为0ms

        设备发送完一帧命令后等待ECU响应的时间P3,通常为75ms~90ms

        设备接收到ECU响应后到发送下一帧命令的时间P4,通常为20ms~26ms

  • 常用命令字


        系统进入:81H

        系统推出:82H

        链路保持:3EH

        读故障码:18H

        清除故障码:14H

        读版本信息:1AH

        读数据流:21H


使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

742

主题

11011

帖子

81

粉丝