KWP2000协议
【摘要】
KWP:关键字协议
CANBUS:控制器局域网总线协议
帧:帧头,帧数据,校验
帧头:物理地址定位及其他网络信息
帧数据:数据体。
在一汽车系统中,有多个ECU
,他们通过一个公共的
K
线联结,每个
ECU
...
KWP:关键字协议
CANBUS:控制器局域网总线协议
帧:帧头,帧数据,校验
帧头:物理地址定位及其他网络信息
帧数据:数据体。
在一汽车系统中,有多个ECU ,他们通过一个公共的 K 线联结,每个 ECU 都有一个唯一的物理地址,例如, enging 的地址为 11 ,设备的地址为 F1 ,诊断仪首先向 ECU 广播式发送一帧命令,只有特定物理地址 ECU 收到后,与自己的数据进行对比。若匹配,则回复一帧命令,并开启相关功能。
KWP2000两种唤醒方式:
5 Baud Initialization(5波特触发的 ) :持高电平时间大于 300ms 后,被拉低 1bit (称之为起始位),紧接着向 ECU 发送 1byte 的请求命令,然后电瓶拉高 1bit (称之为终止位)。当 ECU 收到这个字节的时候,对比自身数据,然后回复 3byte ( 55 KB1 KB2 );诊断仪收到这 3byte 后,将 KB2 取反,再发送给 ECU , ECU 收到后再回复取反后的地址( ~Address )。之后,便进行正常的 KWP2000 通讯。
Fast Initialization(标准的 ) :过程为:诊断仪保持高电平时间大于 300ms 后,被拉低 25ms ,紧接着再被拉高 25ms ;诊断仪向 ECU 发送命令后,延时 25~50ms , ECU 才向诊断仪回复。然后,诊断仪和 ECU 开始通讯。
帧格式:
格式:FMT TRG SUR LEN SID DATA CS (累加和)
发送:80 10 f1 01 81 03
回复:80 f1 10 01 c1 43
说明:FMT-80 :有效字节长度; 帧首为 FMT 字节,最高两位为 MODE ,低六位为长度。
TRG :目标地址;
SUR :源地址;
LEN :有效字节长度;
SID :关键字;
SID+DATA :有效字节;
CS :校验位;
帧类型:
8X,80,68/48,CX,C0,0X,00,
8X是物理格式,针对某个系统而言。例如读到的故障码只能是该系统的故障码。
CX是功能格式,针对某个功能而言。例如读到的故障码会包括所有系统的故障码。
关键字
常见的关键字:81 进系统
21 读数据流
1A 读版本信息
18/58 读故障码
13/14 清故障码
3E 链路命令
82 退系统
回命令要把关键字加0x40
如:80 11 F1 01 81 CS
81 F1 11 C1 CS
故障码类型:
0000~3fff: P 码 Powertain 动力系统
4000~7fff: C 码 Chassis 地盘 ABS 防抱死刹车系统
8000~bfff: B 码 Body 车身 SRS 安全气囊等车身系统
c000~ffff:: U 码 Network 网络 网络系统
KWP2000通讯电压
KWP2000根据车型的不同,通讯电压有 5V、12V 和 24V 的区别。(汽油一般为 12V ,柴油一般为 24V ),通讯逻辑为正逻辑方式。
KWP2000要求进系统前,处于高电瓶状态 1 ,被拉低拉高各 25ms 后,才开始通讯。
KWP2000诊断座
就16Pin (脚)为例, 4# 、 5# 为地线, 7# 为 K 线(信号线,即诊断仪和 ECU 通过该引脚进行通讯)、 15# 为 L 线、 16# 为电源。
通过4# ( 5# )和 16# 的组合,可以给诊断仪供电。
通过7# 可以实现 KWP2000 通讯。
通过7# 和 15# 可以实现 KL ( KWP2000 的一种)双线通讯。
KWP2000(通讯属性)
KWP2000规定通讯波特率一般为 10417 bps ,当然也有其他非主流的波特率,如 9600 、 57600 bps 等。符合标准串口数据 1+8+1 格式,即一个起始 bit,,8 个数据 bit,,一个停止bit,,动力系统一般为7 号脚通讯。
KWP2000(时间控制)
P4:( 5~ 20ms )诊断仪发送命令时,字节与字节,之间的时间间隔。
P2:( 25~ 50ms )诊断仪命令发出后,到, ECU 开始回复,之间的时间间隔。
P1:( 0~ 20ms ) ECU 回复命令时,自己与字节,之间的时间间隔。
P3:( 55~5000ms ) ECU 回复命令后,到,诊断仪开始新的请求,之间的时间间隔。
ISO1230— 2 数据链路层协议: 报文结构、初始化过程、通讯连接管理、定时参数和错误处理等内容。报文结构:报文头,数据域,验校和。报文头:格式字节,目标地址(可选),源地址(可选),附加长度信息(可选)。
在开始诊断服务之前,诊断设备必须对ECU 进行初始化,通过 ECU 的响应获取 ECU 的源地址、通讯波特率、支持的报文头格式、定时参数等信息。 ECU 所支持的报文头和定时参数信息包含在 ECU 返回的“关键字( Key Word )”中(这也是协议命名的由来)。
主要函数
read_code_home_page 显示" 正在执行操作 ..."
wait_data 向汽车发送信息,收到帧则返回1 ;否则返回 0.
Exit_sys 显示" 正在退出系统 ..."
WellKeyTit 显示左下角操作提示信息
outtextxy_16 显示字符串
Cleardevice,clear_dis_win(); 清除窗口
pull_down 返回所选项的选择编号
info_win 带框输出字符串
enter_sys 检测通道能否进入系统,可以则返回1 ,否则返回 0
goto_mid1,make_win 创建窗口
关键字(发送)
关键字(回复)肯定回答
功能
81
c1
进入系统
82
c2
退出系统
3e
7e
链路保持
1a
5a
版本号
21
61
读数据流
3b
7b
写数据流
17
57
读故障码状态
18
58
读故障码
12
52
读冻结帧
14
54
清故障码
30
70
输入输出控制
31
71
开始运行时
32
72
停止运行时
33
73
请求运行时结果
34
74
请求下载
36
76
传递数据
37
77
请求传输退出
27
67
加密
83
c3
访问通信参数
10
50
开始诊断会话
20
60
停止诊断会话
11
51
重置ECU
26
66
设置数据速率
1a 90
5a 90
读取VIN 码(车辆识别号)
否定回答
SID
7f SID 10
拒绝应答
SID
7f SID 11
不支持该功能
SID
7f SID 12
子功能不支持不合法的格式
SID
7f SID 21
ECU繁忙,重新请求
SID
7f SID 22
条件不满足,或请求错误
SID
7f SID 23
事务未完成
SID
7f SID 31
请求越界
SID
7f SID 33
安全访问被拒绝,重新请求
SID
7f SID 35
错误键
SID
7f SID 36
超越目标数
SID
7f SID 37
请求时间延时过短
SID
7f SID 40
拒绝下载
SID
7f SID 41
不合适的下载类型
SID
7f SID 42
无法下载到指定的地址
SID
7f SID 43
无法下载请求字节的数量
SID
7f SID 50
拒绝上传
SID
7f SID 51
不合适的上传类型
SID
7f SID 52
无法从制定的地址上传
SID
7f SID 53
无法上传请求字节的数量
SID
7f SID 71
传递被暂停
SID
7f SID 72
传递失败
SID
7f SID 74
传递块中存在不合法的地址
SID
7f SID 75
传递块中存在不合法的字节
SID
7f SID 76
非法的传递块类型
SID
7f SID 77
传递块数据校验错误
SID
7f SID 78
请求被正确接收,但未决定回复
SID
7f SID 79
传递块中存在不正确的字节
SID
7f SID 80
在活动的诊断模式下,不支持该服务
CANBUS:控制器局域网总线协议
帧:帧头,帧数据,校验
帧头:物理地址定位及其他网络信息
帧数据:数据体。
在一汽车系统中,有多个ECU ,他们通过一个公共的 K 线联结,每个 ECU 都有一个唯一的物理地址,例如, enging 的地址为 11 ,设备的地址为 F1 ,诊断仪首先向 ECU 广播式发送一帧命令,只有特定物理地址 ECU 收到后,与自己的数据进行对比。若匹配,则回复一帧命令,并开启相关功能。
KWP2000两种唤醒方式:
5 Baud Initialization(5波特触发的 ) :持高电平时间大于 300ms 后,被拉低 1bit (称之为起始位),紧接着向 ECU 发送 1byte 的请求命令,然后电瓶拉高 1bit (称之为终止位)。当 ECU 收到这个字节的时候,对比自身数据,然后回复 3byte ( 55 KB1 KB2 );诊断仪收到这 3byte 后,将 KB2 取反,再发送给 ECU , ECU 收到后再回复取反后的地址( ~Address )。之后,便进行正常的 KWP2000 通讯。
Fast Initialization(标准的 ) :过程为:诊断仪保持高电平时间大于 300ms 后,被拉低 25ms ,紧接着再被拉高 25ms ;诊断仪向 ECU 发送命令后,延时 25~50ms , ECU 才向诊断仪回复。然后,诊断仪和 ECU 开始通讯。
帧格式:
格式:FMT TRG SUR LEN SID DATA CS (累加和)
发送:80 10 f1 01 81 03
回复:80 f1 10 01 c1 43
说明:FMT-80 :有效字节长度; 帧首为 FMT 字节,最高两位为 MODE ,低六位为长度。
TRG :目标地址;
SUR :源地址;
LEN :有效字节长度;
SID :关键字;
SID+DATA :有效字节;
CS :校验位;
帧类型:
8X,80,68/48,CX,C0,0X,00,
8X是物理格式,针对某个系统而言。例如读到的故障码只能是该系统的故障码。
CX是功能格式,针对某个功能而言。例如读到的故障码会包括所有系统的故障码。
关键字
常见的关键字:81 进系统
21 读数据流
1A 读版本信息
18/58 读故障码
13/14 清故障码
3E 链路命令
82 退系统
回命令要把关键字加0x40
如:80 11 F1 01 81 CS
81 F1 11 C1 CS
故障码类型:
0000~3fff: P 码 Powertain 动力系统
4000~7fff: C 码 Chassis 地盘 ABS 防抱死刹车系统
8000~bfff: B 码 Body 车身 SRS 安全气囊等车身系统
c000~ffff:: U 码 Network 网络 网络系统
KWP2000通讯电压
KWP2000根据车型的不同,通讯电压有 5V、12V 和 24V 的区别。(汽油一般为 12V ,柴油一般为 24V ),通讯逻辑为正逻辑方式。
KWP2000要求进系统前,处于高电瓶状态 1 ,被拉低拉高各 25ms 后,才开始通讯。
KWP2000诊断座
就16Pin (脚)为例, 4# 、 5# 为地线, 7# 为 K 线(信号线,即诊断仪和 ECU 通过该引脚进行通讯)、 15# 为 L 线、 16# 为电源。
通过4# ( 5# )和 16# 的组合,可以给诊断仪供电。
通过7# 可以实现 KWP2000 通讯。
通过7# 和 15# 可以实现 KL ( KWP2000 的一种)双线通讯。
KWP2000(通讯属性)
KWP2000规定通讯波特率一般为 10417 bps ,当然也有其他非主流的波特率,如 9600 、 57600 bps 等。符合标准串口数据 1+8+1 格式,即一个起始 bit,,8 个数据 bit,,一个停止bit,,动力系统一般为7 号脚通讯。
KWP2000(时间控制)
P4:( 5~ 20ms )诊断仪发送命令时,字节与字节,之间的时间间隔。
P2:( 25~ 50ms )诊断仪命令发出后,到, ECU 开始回复,之间的时间间隔。
P1:( 0~ 20ms ) ECU 回复命令时,自己与字节,之间的时间间隔。
P3:( 55~5000ms ) ECU 回复命令后,到,诊断仪开始新的请求,之间的时间间隔。
ISO1230— 2 数据链路层协议: 报文结构、初始化过程、通讯连接管理、定时参数和错误处理等内容。报文结构:报文头,数据域,验校和。报文头:格式字节,目标地址(可选),源地址(可选),附加长度信息(可选)。
在开始诊断服务之前,诊断设备必须对ECU 进行初始化,通过 ECU 的响应获取 ECU 的源地址、通讯波特率、支持的报文头格式、定时参数等信息。 ECU 所支持的报文头和定时参数信息包含在 ECU 返回的“关键字( Key Word )”中(这也是协议命名的由来)。
主要函数
read_code_home_page 显示" 正在执行操作 ..."
wait_data 向汽车发送信息,收到帧则返回1 ;否则返回 0.
Exit_sys 显示" 正在退出系统 ..."
WellKeyTit 显示左下角操作提示信息
outtextxy_16 显示字符串
Cleardevice,clear_dis_win(); 清除窗口
pull_down 返回所选项的选择编号
info_win 带框输出字符串
enter_sys 检测通道能否进入系统,可以则返回1 ,否则返回 0
goto_mid1,make_win 创建窗口
关键字(发送)
关键字(回复)肯定回答
功能
81
c1
进入系统
82
c2
退出系统
3e
7e
链路保持
1a
5a
版本号
21
61
读数据流
3b
7b
写数据流
17
57
读故障码状态
18
58
读故障码
12
52
读冻结帧
14
54
清故障码
30
70
输入输出控制
31
71
开始运行时
32
72
停止运行时
33
73
请求运行时结果
34
74
请求下载
36
76
传递数据
37
77
请求传输退出
27
67
加密
83
c3
访问通信参数
10
50
开始诊断会话
20
60
停止诊断会话
11
51
重置ECU
26
66
设置数据速率
1a 90
5a 90
读取VIN 码(车辆识别号)
否定回答
SID
7f SID 10
拒绝应答
SID
7f SID 11
不支持该功能
SID
7f SID 12
子功能不支持不合法的格式
SID
7f SID 21
ECU繁忙,重新请求
SID
7f SID 22
条件不满足,或请求错误
SID
7f SID 23
事务未完成
SID
7f SID 31
请求越界
SID
7f SID 33
安全访问被拒绝,重新请求
SID
7f SID 35
错误键
SID
7f SID 36
超越目标数
SID
7f SID 37
请求时间延时过短
SID
7f SID 40
拒绝下载
SID
7f SID 41
不合适的下载类型
SID
7f SID 42
无法下载到指定的地址
SID
7f SID 43
无法下载请求字节的数量
SID
7f SID 50
拒绝上传
SID
7f SID 51
不合适的上传类型
SID
7f SID 52
无法从制定的地址上传
SID
7f SID 53
无法上传请求字节的数量
SID
7f SID 71
传递被暂停
SID
7f SID 72
传递失败
SID
7f SID 74
传递块中存在不合法的地址
SID
7f SID 75
传递块中存在不合法的字节
SID
7f SID 76
非法的传递块类型
SID
7f SID 77
传递块数据校验错误
SID
7f SID 78
请求被正确接收,但未决定回复
SID
7f SID 79
传递块中存在不正确的字节
SID
7f SID 80
在活动的诊断模式下,不支持该服务
文章来源: zzzili.blog.csdn.net,作者:清雨小竹,版权归原作者所有,如需转载,请联系作者。
原文链接:zzzili.blog.csdn.net/article/details/8265357
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)