没有合适的资源?快使用搜索试试~ 我知道了~
KWP2000诊断通讯协议总结
![star](https://csdnimg.cn/release/downloadcmsfe/public/img/star.98a08eaa.png)
温馨提示
![preview](https://dl-preview.csdnimg.cn/3592694/0001-a6fdb207fcb9d278a76de9f8800b3d70_thumbnail.jpeg)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
试读
16页
KWP2000诊断通讯协议总结,汽车电子有用的开发资料,汽车诊断协议说明.
资源推荐
资源详情
资源评论
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/release/download_crawler_static/3592694/bg1.jpg)
基于 K 线的 KWP2000 协议标准主要包括 ISO/WD 14230-1~14230-4,各部分协议与
OSI 模型的对应关系如表 1 所示。
表 1 KWP2000 协议与 OIS 模型的对应关系
OSI 模型 基于 K 线的 KWP2000 基于 CAN 总线的 KWP2000
应用层 ISO 14230-3 ISO 15765-3
表述层 N/A N/A
会话层 N/A N/A
传输层 N/A N/A
网络层 N/A ISO 15765-2
数据链路层 ISO 14230-2 ISO 11898-1
物理层 ISO 14230-1,ISO9141-2 用户选择
ISO 14230-1 规定了 KWP2000 协议的物理层规范(K 线、L 线),它在 ISO 9141-2 的
基础上把数据交换系统扩展到了 24V 电压系统。ISO 14230-2 规定了 KWP2000 的数据
链路层协议,包括报文结构、初始化过程、通讯连接管理、定时参数和错误处理等内容 。
K 线的报文包括报文头、数据 域和校验和三部分,其中报文头包含格式字节、目标地址
(可选)、源地址(可选)和附加长度信息(可选),如表 2 所示。
表 2 基于 K 线的 KWP2000 报文结构[3]
报文头 数据域 校验和
Fmt Tgt1) Src1) Len1) SId2) . . Data2) . . CS
最长 4 字节 最长 255 字节 1 字节
1)可选字节,取决于格式字节 Fmt 的 A1A0 位
2)服务标识符(Service ID),数据域的第 1 个字节
KWP2000(Keyword Protocol 2000)是欧洲汽车领域广泛使用的一种车载诊断协议标
准,该协议实现了一套完整的车载诊断服务,并且满足 E-OBD(European On Board
Diagnose)标准。
KWP2000 协议仅对其中三个子层进行了定义说明,即:应用层(第七层)、数据链路层(第
二层)和物理层(第一层)。
物理层:这部分描述了基于 IS09141 用以实现诊断服务的物理层,用于配置硬件系统,指
导接口电路的设计,同时将在 IS09141-2 中描述的物理层扩展成可以满足提供 12V 或
24V 电压的车辆的条款。
数据链路层:这部分定义了数据的传送格式,描述了诊断服务的通用要求,允许 1 个诊断
仪控制在 1 个随车 ECU(例如电子燃油喷射、自动变速箱及防抱死系统等)中的诊断功能。
这些随车 ECU 嵌于车辆中,通过串行数据链路相连接。
应用层:这部分包含如下规范:服务标识符的字节编码及其十六进制数值;诊断服务请求与
响应参数的字节编码;标准参数的十六进制数值。
根据 IS014230 的规定,KWP2000 通信消息基本格式如图 1 所示。一条消息结构包括头
部(header)、数据字节(data-byte)、校验和(checksum)等三部分。
![](https://csdnimg.cn/release/download_crawler_static/3592694/bg2.jpg)
图 1 KWP2000 的报文格式
Fmt——格式字节(Format byte)
Tgt——目标地址字节(Target address byte)
Src——源地址字节(Source address byte)
Len——长度字节(Length byte)
Sid——服务标志符字节(Sevice Identi;cation byte),分请求服务和响应服务两类
CS——校验和字节(Checksum byte)
上标 1——表示可选,由格式字节(Fmt)决定
上标 2——表明服务标识(Sid)是数据段的一部分(Data)
在 开始诊断服务之前,诊断设备必须对 ECU(发动机 engine control unit)进行初始化,
通过 ECU 的响应获取 ECU 的源地址、通讯波特率、支持的报文格式、定时参数等信息 。
ECU 所支持的 报文和定时参数信息包含在 ECU 返回的“关键字(Key Word)”中(这也是
协议命名的由来)。关键字由两个字节构成,如图 2 所示,关键字的低字节中各位的含义
如表 1 所示。
图 2 关键字格式
表 1 关键字低字节中各位的含义
测试器(诊断设备)可以采用两种方式对 ECU 进行初始化,即 5Baud 初始化和快速初始
化。对于这两种初始化的时序在数据链路层协议中均有明确规定。完成初始化过程后,测
试器和 ECU 方可进行应用层的诊断服务和响应。
IS014230-3 规定了应用层的服务规范,包括诊断管理功能组、数据传输功能组、诊断信
息传输功能组、输人/输出控制功能组、远程启动 ECU 例程功能组、数据上载/下载功能
组和扩展功能组。
KWP2000 最初是基于 K 线的诊断协议。由于 K 线物理层和数据链路层在网络管理和通讯
速 率 上 的 局 限 性 , 使 得 K 线 无 法 满 足 日 趋 复 杂 的 车 载 诊 断 网 络 的 需 求 。 而
CAN(Controller Area Network)网络由于其非破坏性的网络仲裁机制、较高的通讯速
率(可达 1Mbps)和灵活可靠的通讯方式,在车载网络领域广受青睐。因此,近年来欧洲
汽车领域广泛采用了基于 CAN 总线的 KWP2000,即 ISO15765 协议,而基于 K 线的
KWP2000 物理层和数据链路层协议将逐步被淘汰。
KWP2000 协议分析和基于 CANoe 的开发测试
摘 要:本文介绍了欧洲汽车领域广泛采用的车载诊断协议 KWP2000,针对 KWP2000 诊
断服务在 K 线(ISO 14230)和 CAN 总线(ISO 15765)上的两种实现方式,对协议的
核心内容和发展历史进行了较为深入的剖析和对比。本文还介绍了采用 Matlab/Simulink
/StateFlow 进行协议开发的一般流程,以及该协议在 Vector 公司的 CANoe 软硬件平台
上的应用实现和开过程。
关键词:KWP2000,K 线,CAN 总线,开发,CANoe
1 前言
在汽车故障诊断领域,针对诊断设备和汽车 ECU 之间的数据交换,各大汽车公司几乎都制
订了相关的标准和协议。其中,欧洲 汽车领域广泛使用的一种车载诊断协议标准是
KWP2000(Keyword Protocol 2000),该协议实现了一套完整的车载诊断服务,并且
满足 E-OBD(European On Board Diagnose)标准。KWP2000 最初是基于 K 线的诊
断协议,由于 K 线物理层和数据链路层在网络管理和通讯速率上的局限性,使得 K 线无法
![](https://csdnimg.cn/release/download_crawler_static/3592694/bg3.jpg)
满足日趋复 杂的车载诊断网络的需求。而 CAN 网络(Controller Area Network)由于
其非破坏性的网络仲裁机制、较高的通讯速率(可达 1M bps)和灵活可靠的通讯方式,
在车载网络领域广受青睐,越来越多的汽车制造商把 CAN 总线应用于汽车控制、诊断和通
讯。近年来欧洲汽车领域广泛采用了基 于 CAN 总线的 KWP2000,即 ISO 15765 协议,
而基于 K 线的 KWP2000 物理层和数据链路层协议将逐步被淘汰。
在网络协议开发和测试应用方面,美国 MathWorks 公司和德国 Vector 公司提供了功能强
大的开发和测试工具,可分别用于协议栈源码的开发和 ECU 测试。
2 基于 K 线的 KWP2000 协议
基于 K 线的 KWP2000 协议标准主要包括 ISO/WD 14230-1~14230-4,各部分协议与
OSI 模型的对应关系如表 1 所示。
表 1 KWP2000 协议与 OIS 模型的对应关系
OSI 模型 基于 K 线的 KWP2000 基于 CAN 总线的 KWP2000
应用层
ISO 14230-3 ISO 15765-3
表述层
N/A N/A
会话层
N/A N/A
传输层
N/A N/A
网络层
N/A ISO 15765-2
数据链路层
ISO 14230-2 ISO 11898-1
物理层 ISO 14230-1,ISO9141-2 用户选择
ISO 14230-1 规定了 KWP2000 协议的物理层规范(K 线、L 线),它在 ISO 9141-2 的
基础上把数据交换系统扩展到了 24V 电压系统。ISO 14230-2 规定了 KWP2000 的数据
链路层协议,包括报文结构、初始化过程、通讯连接管理、定时参数和错误处理等内容 。
K 线的报文包括报文头、数据 域和校验和三部分,其中报文头包含格式字节、目标地址
(可选)、源地址(可选)和附加长度信息(可选),如表 2 所示。
表 2 基于 K 线的 KWP2000 报文结构[3]
报文头 数据域 校验和
Fmt
Tgt1
)
Src1)
Len1
)
SId2) . .
Data2
)
. . CS
最长 4 字节 最长 255 字节 1 字节
1)可选字节,取决于格式字节 Fmt 的 A1A0 位
2)服务标识符(Service ID),数据域的第 1 个字节
在开始诊断服务之前,诊断设备必须对 ECU 进行初始化,通过 ECU 的响应获取 ECU 的源
地址、通讯波特率、支持的报文头格式、定时参数等信息。 ECU 所支持的报文头和定时
参数信息包含在 ECU 返回的“关键字(Key Word)”中(这也是协议命名的由来)。关键
字由两个字节构成,如图 1 所示,关键字的低字节中各位的含义如表 3 所示。
![](https://csdnimg.cn/release/download_crawler_static/3592694/bg4.jpg)
图 1 关键字格式[3]
表 3 关键字低字节中各位的含义[3]
Bit = 0 = 1
AL0
不支持格式字节中的数据长度信息 支持格式字节中的数据长度信息
AL1
不支持附加长度字节 支持附加长度字节
HB0
不支持一个字节的报文头 支持一个字节的报文头
HB1
不支持在报文头中包含目标地址/源地址 支持在报文头中包含目标地址/源地址
TP0*)
采用正常定时参数设置 采用扩展定时参数设置
TP1*)
采用扩展定时参数设置 采用正常定时参数设置
*) 只允许 TP0,TP1 = 0,1 或者 1,0
诊断设备可以采用两种方式对 ECU 进行初始化——5Baud 初始化和快速初始化,对于这
两种初始化的时序在数据链路层协议[3]中均有明确规定。完 成初始化过程后,诊断设备
和 ECU 方可进行应用层的诊断服务和响应。ISO 14230-3 规定了应用层的服务规范,包
括诊断管理功能组、数据传输功能组、诊断信息传输功能组、输入/输出控制功能组、远程
启动 ECU 例程功能组、数 据上载/下载功能组和扩展功能组。在诊断服务请求/响应过程中,
诊断设备和 ECU 必须遵循图 2 所示的时序和相关定时参数。对于初始化和诊断服务过程中
出现 的各种定时错误,在数据链路层和应用层协议里面都有相应的处理规范,诊断设备及
ECU 的应用程序都必须严格遵守。
图 2 K 线诊断服务时序图[3]
3 基于 CAN 总线的 KWP2000 协议
基于 CAN 总线的 KWP2000 协议实际上指的就是 ISO/WD 15765-1~15765-4,该协议
把 KWP2000 应用层的诊断服务移植到 CAN 总线上。数据链路层采用了 ISO 11898-1 协
议,该协议是对 CAN2.0B 协议的进一步标准化和规范化;应用层采用了 ISO 15765-3 协
剩余15页未读,继续阅读
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
- wangye2922012-03-09我是做汽车电子的,非常好,很详细。
- samcsu0022012-02-29对初学者有用,谢谢分享。
- JSLYYHW2012-10-29对初学者有用,谢谢分享。
- guigui392013-05-29我是做汽车ECU诊断的,很好,很有用
- floodever2012-12-07大众诊断必须的啊,谢谢
![avatar](https://profile-avatar.csdnimg.cn/38e4b6fb5dd54744bcf36b4f72e15d61_qwaszxerdfcvty.jpg!1)
平行相印
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- python-leetcode面试题解之第274题H指数.zip
- python-leetcode面试题解之第270题最接近二叉搜索树值.zip
- python-leetcode面试题解之第267题回文排列II.zip
- python-leetcode面试题解之第264题丑数II.zip
- python-leetcode面试题解之第263题丑数.zip
- python-leetcode面试题解之第258题各位相加.zip
- python-leetcode面试题解之第257题二叉树的所有路径.zip
- python-leetcode面试题解之第253题会议室II.zip
- python-leetcode面试题解之第252题会议室.zip
- python-leetcode面试题解之第249题移位字符串分组.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)