KWP2000协议:物理层及链路层详细分析

合集下载

KWP2000协议分析及基于CANoe的开发测试

KWP2000协议分析及基于CANoe的开发测试

KWP2000协议分析及基于CANoe的开发测试摘要:本文介绍了欧洲汽车领域广泛采用的车载诊断协议KWP2000,针对KWP2000诊断服务在K 线(ISO 14230)和CAN总线(ISO 15765)上的两种实现方式,对协议的核心内容和发展历史进行了较为深入的剖析和对比。

本文还介绍了采用Matlab/Simulink/StateFlow进行协议开发的一般流程,以及该协议在Vector公司的CANoe软硬件平台上的应用实现和开过程。

关键词:KWP2000,K线,CAN总线,开发,CANoe1 前言在汽车故障诊断领域,针对诊断设备和汽车ECU之间的数据交换,各大汽车公司几乎都制订了相关的标准和协议。

其中,欧洲汽车领域广泛使用的一种车载诊断协议标准是KWP2000(Keyword Protocol 2000),该协议实现了一套完整的车载诊断服务,并且满足E-OBD(European On Board Diagnose)标准。

KWP2000最初是基于K线的诊断协议,由于K线物理层和数据链路层在网络管理和通讯速率上的局限性,使得K线无法满足日趋复杂的车载诊断网络的需求。

而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所示。

K线通信协议中文精华版

K线通信协议中文精华版

和 CTE 需要满足以下条件:
n
∑ cECU = cECUi (n为ECU 编号)
i =1
Vehicle (see section 7)
cECU + cOBW ≤ 7.2nF CTE ≤ 2nF(12V 时)
Diagnostic Tester (see section 6)
Reading
"1" or "0"
≥64
XX00 0000
XX:2 位地址模式信息;LL LLLL:6 位长度信息
长度字节 出现 不出现 出现
DATA:数据字节,根据使用的长度信息,数据区可以包含多达 63 或 255 个信息字节。数据
区的第一个字节是维修标识(ID)字节,具体值可以参考应用层的 ID 标号定义,有的报文
不需要带参数,有的需要带参数,这些参数在应用层有定义或者由厂家给出定义。其后可以
总的来说,对于 KWP2000 协议可以理解为 ISO 14230 协议的简版,而 ISO14230 中涉及 到 ISO9141、ISO14229、ISO15031 等协议内容。同时 KWP2000 新增了一些自己的内容。
第二章、物理层协议
(1)网络结构 K 线是一根双向数据传输线, KWP2000 协议总是以半双工模式进行通信。KWP2000 数
Tgt:目标地址字节,这是信息的目标地址,并且总是和源地址字节一同使用。发送给 ECU
的请求信息中的目标地址可以是物理或功能地址。发送给诊断仪的响应信息中的目标地址应 该是诊断仪的物理地址。物理地址可以是 5 波特地址字节或根据 SAE J2178-1 发送地址。目
- 4 - / 22
标地址可选,只有在多模式总线拓扑结构中必需。对于点对点连接可以省略。对于 CARB 信 息,这个字节在 ISO 9141-2 或 ISO 14230-4 中定义。 Src:源地址字节,这是发送设备的地址。它应该是物理地址,与物理目标地址有可能相同。 诊断仪的地址在 SAE J2178-1 中有所说明。这个地址可选(总是和目标地址字节一同使用),

KWP2000协议

KWP2000协议

KWP2000协议协议名称:KWP2000协议一、引言KWP2000协议是一种用于诊断汽车电子控制单元(ECU)的通信协议。

本协议旨在规范车辆制造商和诊断设备供应商之间的通信接口,以实现车辆故障诊断、参数设置和编程等功能。

本协议适用于汽车制造商、诊断设备供应商和相关技术人员。

二、范围本协议适用于使用KWP2000协议进行车辆故障诊断、参数设置和编程的相关设备和软件。

本协议涵盖了通信协议的物理层、数据链路层、网络层和应用层的规范。

三、术语和定义在本协议中,以下术语和定义适用:1. ECU:电子控制单元,指车辆上的电子设备,例如发动机控制单元、制动控制单元等。

2. 诊断设备:使用KWP2000协议进行车辆故障诊断、参数设置和编程的设备,例如诊断仪、编程工具等。

四、物理层规范1. 通信介质:KWP2000协议支持多种通信介质,包括ISO 9141-2、ISO 14230-4和ISO 15765-4等。

2. 通信速率:KWP2000协议支持不同的通信速率,最高可达到20Kbps。

3. 连接方式:KWP2000协议采用双线制连接方式,包括K线和L线。

五、数据链路层规范1. 数据帧格式:KWP2000协议使用帧格式进行数据传输,包括起始字节、数据字节、校验字节和结束字节。

2. 数据传输方式:KWP2000协议采用主从式通信方式,诊断设备作为主站发送请求,ECU作为从站响应请求。

3. 错误检测和纠正:KWP2000协议使用校验字节进行错误检测,通过奇偶校验或循环冗余校验(CRC)进行数据完整性验证。

六、网络层规范1. 通信地址:KWP2000协议使用物理地址和功能地址进行通信,物理地址用于识别ECU,功能地址用于识别具体的诊断服务。

2. 通信会话:KWP2000协议使用会话控制字节进行通信会话的建立和终止,确保通信的可靠性和安全性。

3. 会话模式:KWP2000协议支持默认会话和扩展会话两种模式,其中默认会话用于普通诊断服务,扩展会话用于特殊诊断服务。

(汽车诊断协议KWP2000,CANBUS)sid,pid应用详细分析

(汽车诊断协议KWP2000,CANBUS)sid,pid应用详细分析

详细介绍-Upload/Download Functiona点l U击n添it加标题
35- RequestUpload(请求上传)
详细介绍-Upload/Download Functiona点l U击n添it加标题
36- TransferData(数据传输)
详细介绍-Upload/Download Functiona点l U击n添it加标题
详细介绍-Input/Output Control Functio点n击al添加标题
2F- inputOutputControlByCommonIdentifier Request SId (动作测试)
详细介绍-Remote Activation Of Routin点e 击Fu添nc加ti标on题al Unit
1A- readEcuIdentification Request Service Id(读ECU版本信息) 常用在KWP2000协议中 如: Req:82 10 F1 1A 94 31 Ans:8C F1 10 5A 94 50 5F 38 32 38 20 56 34 36 20 CC
详细介绍-Data Transmission Functiona点l U击n添it加标题
37- RequestTransferExit(传输结束)
第四部分
实例分析
实例分析
14蒙迪欧大灯协议文档
点击添加标题
实例分析
14蒙迪欧大灯协议文档
点击添加标题
实例分析
14蒙迪欧大灯协议文档点击来自加标题第五部分常见SID,PID组合
常见SID,PID组合
读VIN码(车架号) 0902 22F190
17- ReadStatusOfDiagnosticTroubleCodes service (读取诊断故障代码及状态)

KWP2000协议

KWP2000协议

KWP2000协议协议名称:KWP2000协议一、介绍KWP2000协议是一种用于汽车诊断和通信的标准协议。

它定义了一套规范,用于在汽车电子控制单元(ECU)和诊断工具之间进行通信。

该协议旨在支持诊断、编程和通信功能,以便更好地管理和维护汽车系统。

二、协议结构KWP2000协议采用了基于ISO 9141-2的物理层和基于ISO 14230-3的数据链路层。

它使用了串行通信,允许通过诊断插座与汽车的ECU进行通信。

协议的结构如下:1. 物理层:KWP2000协议使用单线的K线通信,通过ISO 9141-2规范定义的物理层进行通信。

该规范定义了电气特性、通信速率和连接方式等。

2. 数据链路层:KWP2000协议使用基于ISO 14230-3的数据链路层,该层定义了数据帧的格式和传输方式。

数据链路层包括以下几个重要的部分: - 起始字节:用于标识数据帧的开始。

- 服务字节:包含了命令或响应的类型和长度信息。

- 数据字节:用于携带命令或响应的数据。

- 校验字节:用于检测数据传输的正确性。

- 结束字节:用于标识数据帧的结束。

3. 应用层:KWP2000协议的应用层定义了命令和响应的格式和含义。

它包括了以下几个重要的部分:- 诊断服务:用于执行诊断操作,如读取故障码、清除故障码等。

- 编程服务:用于对ECU进行编程操作,如刷写固件、配置参数等。

- 通信服务:用于进行ECU和诊断工具之间的通信,如建立、维护和关闭通信会话。

三、通信流程KWP2000协议的通信流程如下:1. 建立通信会话:- 诊断工具发送初始化命令(0x81)给ECU。

- ECU收到初始化命令后,返回一个肯定响应(0x83)。

- 诊断工具收到肯定响应后,建立通信会话。

2. 发送命令:- 诊断工具发送命令请求给ECU。

- ECU收到命令请求后,执行相应的操作,并返回一个响应。

3. 接收响应:- 诊断工具接收ECU返回的响应。

- 诊断工具解析响应,并根据需要执行后续的操作。

KWP2000协议

KWP2000协议

KWP2000协议一、引言KWP2000协议是一种用于汽车电子控制单元(ECU)通信的标准协议。

本协议定义了ECU之间的通信协议和数据格式,旨在实现汽车电子系统的互操作性和互通性。

本协议适用于汽车制造商、ECU供应商和汽车维修服务提供商。

二、范围本协议适用于使用K线物理层的汽车ECU之间的通信。

KWP2000协议主要包括以下方面:1. 通信物理层:定义了K线物理层的电气特性和通信速率。

2. 数据链路层:定义了数据帧的格式和错误检测机制。

3. 应用层:定义了ECU之间的通信协议和数据格式。

三、术语和定义1. ECU:电子控制单元,指汽车中的电子设备,如发动机控制单元、制动系统控制单元等。

2. K线:一种串行通信物理层接口,使用单根双绞线进行通信。

3. 数据帧:在数据链路层中传输的数据单元,包括帧头、数据字段、校验和等。

4. 服务:在应用层中定义的一组功能或命令,用于实现特定的操作或数据交换。

四、通信物理层1. 电气特性:K线的电平定义为逻辑高电平(Vhigh)和逻辑低电平(Vlow),分别对应于电压范围[Vhigh_min, Vhigh_max]和[Vlow_min, Vlow_max]。

2. 通信速率:KWP2000协议支持多种通信速率,包括5Kbps、10Kbps、15Kbps、20Kbps、40Kbps、50Kbps和80Kbps。

五、数据链路层1. 数据帧格式:KWP2000协议使用基于字节的数据帧格式,包括帧头、数据字段、校验和等。

2. 帧头:帧头由一个起始字节和一个地址字节组成,用于标识数据帧的起始和接收方地址。

3. 数据字段:数据字段包含应用层数据和控制信息。

4. 校验和:校验和用于检测数据帧传输过程中的错误。

六、应用层1. 服务请求:应用层通过发送服务请求来实现特定的操作或数据交换。

服务请求由一个服务标识符和相关参数组成。

2. 服务响应:ECU在接收到服务请求后,根据请求的类型和参数进行相应的处理,并返回服务响应。

KWP2000协议

KWP2000协议协议名称:KWP2000协议一、背景介绍KWP2000(Keyword Protocol 2000)是一种用于汽车电子控制单元(ECU)之间进行通信的协议。

它是一种基于ISO 9141协议的通信协议,用于诊断和编程汽车的电子系统。

KWP2000协议的目标是提供一种标准化的方式,使得不同厂家的汽车ECU之间能够进行有效的通信。

二、协议目的KWP2000协议的目的是定义一种标准的通信协议,以实现汽车ECU之间的诊断和编程功能。

通过该协议,可以实现以下目标:1. 实现ECU之间的数据交换,包括读取和写入ECU的参数、状态和故障码等信息。

2. 支持远程诊断和编程功能,使得汽车制造商和技术人员能够通过远程方式对车辆进行诊断和维修。

3. 提供一种标准化的通信接口,使得不同厂家的设备和软件能够兼容。

三、协议规范1. 物理层规范:a. 通信介质:KWP2000协议支持多种通信介质,包括ISO 9141、CAN和LIN等。

b. 通信速率:KWP2000协议支持多种通信速率,包括5 baud、10.4 kbaud、41.6 kbaud和83.3 kbaud等。

c. 连接方式:KWP2000协议使用标准的OBD-II接口进行连接。

2. 数据链路层规范:a. 帧格式:KWP2000协议使用基于ISO 14230-2的帧格式,包括起始字节、数据字节、校验字节和结束字节等。

b. 帧类型:KWP2000协议定义了多种帧类型,包括初始化帧、诊断帧和编程帧等。

c. 错误检测:KWP2000协议使用CRC校验码进行错误检测,确保数据的完整性和正确性。

3. 应用层规范:a. 诊断服务:KWP2000协议定义了多种诊断服务,包括读取数据、写入数据、清除故障码和执行测试等。

b. 诊断参数:KWP2000协议定义了一套标准的诊断参数和命令,用于描述和控制汽车的各种功能和状态。

c. 编程功能:KWP2000协议支持对ECU进行编程和校准,包括写入新的软件、调整参数和校准传感器等。

KWP2000协议

KWP2000协议协议名称:KWP2000协议一、背景介绍KWP2000协议是一种用于汽车电子控制单元(ECU)通信的标准化协议。

它定义了一套通信规则和消息格式,使得汽车制造商和汽车诊断设备供应商能够在不同的汽车系统之间进行有效的通信和数据交换。

本协议的目的是确保汽车系统的稳定性和安全性,提高诊断设备的兼容性和可靠性。

二、协议目标KWP2000协议的主要目标是实现以下功能:1. 支持汽车系统的诊断和故障排除:通过与汽车ECU的通信,诊断设备能够读取和清除故障码,监测传感器数据,执行特定的诊断功能,以及对汽车系统进行编程和校准。

2. 支持数据交换和通信:协议定义了一套统一的消息格式和通信规则,使得诊断设备能够与不同的汽车ECU进行数据交换和通信。

3. 支持多种物理层接口:协议支持多种物理层接口,如ISO 9141、ISO 14230(KWP2000)、ISO 15765(CAN)等,以适应不同汽车系统的需求。

三、协议内容KWP2000协议主要包括以下内容:1. 物理层接口:协议定义了与汽车ECU进行通信的物理层接口要求,如电气特性、传输速率、连接方式等。

具体的物理层接口由汽车制造商根据协议要求进行设计和实现。

2. 数据链路层:协议定义了一套数据链路层协议,用于在物理层上进行数据传输和错误检测。

数据链路层协议包括了帧结构、帧格式、帧同步、错误检测等内容。

3. 应用层:协议定义了一套应用层协议,用于在数据链路层上进行数据交换和通信。

应用层协议包括了消息格式、消息类型、消息ID、数据格式、数据长度等内容。

四、协议实施KWP2000协议的实施需要遵循以下步骤:1. 确定通信需求:根据汽车系统的需求和诊断设备的功能,确定通信的目标和要求,包括支持的诊断功能、数据交换方式、通信速率等。

2. 设计物理层接口:根据协议要求和汽车系统的特性,设计和实现与汽车ECU进行通信的物理层接口,包括电气特性、传输速率、连接方式等。

KWP2000协议

KWP2000协议一、引言KWP2000协议是一种用于汽车诊断通信的标准协议。

本协议旨在定义汽车电子控制单元(ECU)与诊断设备之间的通信规范,以实现车辆故障诊断和性能优化。

本协议的目标是确保通信的可靠性、一致性和互操作性。

二、范围本协议适合于使用K线物理层接口的汽车ECU和诊断设备之间的通信。

KWP2000协议支持多种通信速率和数据传输模式,包括单帧、多帧和流控制传输。

三、术语和定义1. 汽车电子控制单元(ECU):指车辆上的电子控制模块,用于监测和控制车辆的各种系统和功能。

2. 诊断设备:指用于与汽车ECU进行通信、诊断和编程的设备,如诊断扫描仪、编程工具等。

3. K线物理层:指KWP2000协议使用的物理通信接口,基于ISO 9141标准定义。

四、通信协议1. 物理层a. 通信接口:KWP2000协议使用的物理通信接口为K线接口,符合ISO9141标准。

b. 通信速率:KWP2000协议支持多种通信速率,包括5.0、10.4、41.6和83.3 kbps。

c. 电气特性:K线接口的电气特性应符合ISO 9141标准的要求。

2. 数据链路层a. 帧格式:KWP2000协议使用的帧格式为基于ISO 14230标准定义的格式。

b. 帧类型:KWP2000协议支持单帧、多帧和流控制帧类型。

c. 帧结构:KWP2000协议的帧结构由帧头、数据和校验和组成。

3. 传输层a. 单帧传输:适合于数据量较小的通信,数据在一帧内完成传输。

b. 多帧传输:适合于数据量较大的通信,数据分为多个帧进行传输。

c. 流控制传输:用于控制多帧传输的流程,确保数据的可靠传输。

五、诊断服务1. 诊断会话控制a. 会话模式:KWP2000协议定义了多种会话模式,包括默认会话、编程会话、扩展诊断会话等。

b. 会话控制:诊断设备可以通过发送控制帧来切换不同的会话模式。

2. 诊断功能a. 读取故障码:诊断设备可以向ECU发送读取故障码的请求,ECU将返回相应的故障码信息。

汽车诊断中各种协议的梳理笔记正规范本(通用版)

汽车诊断中各种协议的梳理笔记1. 引言在汽车诊断过程中,各种协议用于实现车辆与诊断工具之间的通信。

这些协议定义了通信的方法和数据格式,为诊断工程师提供了一种便捷的方式来获取车辆故障码、实时数据等信息。

本文将对常见的汽车诊断协议进行梳理,包括KWP2000、ISO 14230、ISO 15765等。

2. KWP2000协议KWP2000协议是一种基于ISO 14230标准的诊断协议,用于诊断汽车电子控制模块。

它定义了一套命令和数据格式,通过K线物理层进行通信。

KWP2000协议主要包括几个方面:•通信初始化:诊断工具与车辆之间进行通信初始化,建立通信链路。

•诊断会话:诊断工具发送诊断请求给车辆,车辆返回诊断响应。

•读取故障码:诊断工具发送读取故障码的命令,车辆返回故障码列表。

•清除故障码:诊断工具发送清除故障码的命令,车辆清除相应的故障码。

KWP2000协议支持多种服务和子功能,可以实现故障码读取、实时数据读取、编程等功能。

3. ISO 14230协议ISO 14230协议是一种基于K线物理层的车辆诊断协议,也称为KWP协议。

它定义了一种基于文本的通信协议,用于诊断车辆的电子控制模块。

ISO 14230协议主要包括几个方面:•K线物理层:使用K线进行通信,波特率可以是10.4kbit/s或者5kbit/s。

•通信初始化:诊断工具发送初始化命令给车辆,车辆进行相应的初始化操作。

•数据传输:诊断工具发送诊断命令给车辆,车辆返回相应的诊断响应。

ISO 14230协议支持故障码读取、实时数据读取、编程等功能,是汽车诊断过程中常用的协议之一。

4. ISO 15765协议ISO 15765协议是一种基于CAN总线的车辆诊断协议,也称为UDS 协议。

它定义了一套基于网络的通信协议,用于诊断车辆的电子控制模块。

ISO 15765协议主要包括几个方面:•CAN物理层:使用CAN总线进行通信,支持多种波特率。

•诊断会话:诊断工具发送诊断请求给车辆,车辆返回诊断响应。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

肯定应答帧
Positive Response Service Identifier为请求帧里的 Request Service Identifier+0X40;
否定应答帧
Response Code为否定应答代码,说明出现该否定应答的原P 2000 中使用的应答代码的十六进制值。
称为模式三):
在这里 Fmt = 0X00 +长度; 例如:0X02,0X21,0X01,0X24 第2种为帧头为格式字节(该格式字节为0X00)加数据长度(本文称为模式四):
例如:0X00,0X02,0X21,0X01,0X24 这2种帧格式经常使用在防盗系统或数据刷新等对安全或速度要求比较高的系统和功能里 。
KWP协议物理层介绍
电平
KWP协议支持12V及24V两种电压
交互
KWP协议支持的数据交互模式是通过一条K线进行双向半双工方 式进行通讯。
逻辑
KWP协议支持的是正逻辑,高电平代表“1”,低电平代表“0”; 电压超过输出VB 80%代表高电平,低于输出VB 20%代表低电平。在 20%-80%可能接受为“0”,也可能接收为“1”.
ISO14230变更历史
SSF 14230(瑞典标准)
Aug. 19, 1996 :First issue
June 12, 1997
§2 Reference to ISO 9141 and SAE J1962 removed. §3 Definitions added. §4.1 Definition of K-line usage changed. No ref. to 5-baud init. §5 ISO 15031-3 added in example. §5.2.1 Reference to line L removed from figure. §5.2.2 Last section changed. Only 10.4 kbaud is used. §5.2.3 Paragraph moved to SSF 14230-2 §6.2.1 First section. Accuracy added to resistor value. §6.2.2 Definition of accuracy changed. Only fast init. and 10.4 kbaud is used. §7.2.3 New paragraph. §7.3.1 Requirement of supporting initialisation methods changed. Only fast init. is used.
例如:0X80,0X11,0XF1,0X01,0X3E,0XC1 一种为帧头不包括长度字节,数据长度包括在模式字(Fmt)里(0X80+长度)(本文称为模式二):
例如:0X81,0X11,0XF1,0X3E,0XC1 在数据长度超过63个字节的时候只能采用第一种帧格式。
标准帧格式
头(header):模式字(Fmt)
KWP2000协议:物理层及 链路层详细分析
2012-02-20
目的及范围
本文档的目的是向新员工介绍KWP的变更历史及物理层和链路层的概况。 本文件适用于软件开发新员工。
培训内容
KWP协议的历史
KWP协议物理层介绍
KWP协议链路层介绍
KWP协议的历史
什么是KWP协议
ISO14230变更历史
ISO14230的扩展
21
22
23 31
33 35 36
否定应答代码
37 要求的延时时间未到 该应答代码表示,因为客户机(诊断仪)试图安全进入服务器(ECU)的最后一次时间在服务器 (ECU)要求的延时时间之前,将不执行所请求的动作。 不接受下载 该应答代码表示,由于某些缺省条件,所以不能完成下载到服务器(ECU)内存的动作。 下载类型不正确 该应答代码表示,由于服务器(ECU)不支持试图下载的类型,所以不能完成下载到服务器 (ECU)内存的动作。 不能下载到规定的地址 该应答代码表示,由于服务器(ECU)不能识别下载可用的目标地址,所以不能完成下载到服务 器(ECU)内存的动作。 不能下载要求的字节数 该应答代码表示,由于服务器(ECU)不能识别下载可用的字节数,所以不能完成下载到服务器 (ECU)内存的动作。 不接受上载 该应答代码表示,由于某种故障条件,所以不能完成从服务器(ECU)内存的上载。 上载类型不合适 该应答代码表示,由于某些缺省条件,所以不能完成从服务器(ECU)内存的上载。 不能从规定的地址上载 该应答代码表示,由于服务器(ECU)不能识别上载可用的目标地址,所以不能完成从规定的地 址上载。 不能上载要求的字节数 该应答代码表示,由于服务器(ECU)不能识别可用的上载字节数,所以不能完成从服务器 (ECU)内存的上载。 暂停数据传送 该应答代码表示,由于某种故障条件,停止一次数据传送操作(单个传送数据请求报文),但 将在以后完成。 40 41
在物理层定义了24V的情况。
1999年,ISO国际标准化组织正式发布ISO14230。
ISO14230的扩展
为了适应汽车制造厂家和电子系统供应商的要求,1997年以下公司基于ISO14230和其 他相关标准联合对KWP2000的应用层做了扩展。
· Adam Opel AG · AISIN AW CO., Limited Japan · Audi AG / Volkswagen AG · BMW AG · Daimler-Benz AG · debis Systemhaus GmbH · DELCO Electronics Europe · DSA Daten und Systemtechnik GmbH · ETAS GmbH & Co. KG · FEV Motorentechnik GmbH & Co. KG · GenRad Europe Ltd. · GM Europe GmbH Service Technology Group Int’l Operations · Hella KG · Isuzu Motors Ltd. · Kelsey-Hayes · LucasVarity · MAN Nutzfahrzeuge AG · Mecel AB · Robert Bosch GmbH · Saab Automobile AB · Siemens AG · Softing GmbH · VDO Adolf Schindling AG
什么是KWP协议
KWP2000(Keyword Protocol 2000)是欧洲汽车领域广泛使用的一种 车载诊断协议标准,该协议实现了一套完整的车载诊断服务,并且满足EOBD(European On-Board Diagnostics)标准。 ISO14230-1, ISO14230-2, ISO14230-3分别对其中三个子层进行了 定义说明,即:物理层(第一层)、数据链路层(第二层)、应用层(第七层) 。 使用KWP协议,在开始诊断服务之前,诊断设备必须对ECU进行初始 化,通过ECU的响应获取支持的报文格式、定时参数等信息。ECU所支持 的报文和定时参数信息包含在ECU返回的“关键字(Key Word)”中(这也 是协议命名的由来)。关键字由两个字节构成,在链路层中进行介绍。
应答帧有2种,一种为肯定应答,一种为否定应答。在一般情况下,ECU 返回的应该为肯定应答,但在一些特殊情况下,ECU可能返回否定应答,出现
否定应答的原因由否定应答码给出。
请求帧格式
C1)条件1:头(header)里面的长度(Len)字节由模式字(Fmt) 确定是否存在; C2)条件2:这部分数据是强制还是可选的由具体的服务ID确定;
ISO14230变更历史
October 22, 1997 §6.2.4 Requirement for 24 V systems added §7.2.2 Document reference changed
SSF 14230在97年修订以后已经不再定义5BPS进入方式和不再定义 L线;定义了初始化仅为快速进入方式和起始波特率为10400,同时
初始化
其他初始化模式
在ISO14230标准里,还支持地址码进入方式和L线激活,但基 本在2000年以后较少采用。
定时参数
在ECU忙的时候(ECU返回的否定应答码为0X78),可以出现 P2(max)= P3(max)的情况。
帧格式
标准帧格式
· 头(header) · 数据(data bytes) · 检验字节(checksum)
非标准帧格式 物理地址模式和功能地址模式
标准帧格式
标准帧结构包括三部分:头(header)、数据(data bytes)、检验字节(checksum)。
1:标注该字节为可选,根据模式字(Fmt)决定 2:为服务ID和数据部分
标准帧格式
头(header)
头包括模式字(Fmt)、目标地址(Tgt)、源地址(Src)和长度(Len),在标准KWP协议中,长度( Len)字节根据模式字(Fmt)不同为可选; 所以标准KWP帧格式为以下2种: 一种为帧头包括长度字节(本文称为模式一)
十六进制值 10 11 12 应答代码 一般拒绝 拒绝服务,但服务器(ECU)并不给出拒绝的原因。 不支持此项服务 该应答代码表示,因为服务器不支持要求的服务,所以不采取要求的动作。 不支持此项子功能- 无效格式 该应答代码表示,因为服务器不支持请求报文的参数或参数字节的格式与所规定服务的约定格式不匹配 ,所以不采取所要求的动作。 忙– 重复请求 该应答代码表示,当前服务器太忙,不能执行所请求的操作。在这种情况下,应重复请求报文,但不包 括初始请求报文的数据字节(服务标识的数值除外)。在服务器清除贮存的DTS 报文时或者获取报文时, 可能返回该应答代码。只要完成所请求的操作将超过最长应答时间极限(P2max),服务器(ECU)发送一条 负的应答报文,包括应答代码“忙– 重复请求”。当服务器完成所请求的动作,她将发送一条正的应 答报文。 条件不正确或者请求顺序出错 该应答代码表示,因为服务器(ECU)的先决条件没有得到满足,所以不采取所要求的动作。以错误的次 序发出对顺序敏感的请求时,就会发生请求顺序出错。 程序未完成 该应答代码表示,服务器(ECU)已经正确接收到请求报文,程序正在进行之中,尚未完成。 请求超越权限 该应答代码表示,因为服务器检测到这样的一个数据字节,它企图替代超出其权限范围的一个数值(例 如,企图用数据字节111 进行替代,而该数据定义不大于100)。 密码遭否定– 要求密码 该应答代码表示,因为客户机(诊断仪)没有满足服务器(ECU)的安全策略,所以不进行所要求的动作。 无效的按键输入 该应答代码表示,客户机(诊断仪)的按键输入与服务器的安全键不匹配。这视为安全进入的一次尝试。 超过尝试次数 该应答代码表示,客户机(诊断仪)试图进入服务器(ECU)的未成功尝试次数超过服务器的安全策略允许 的次数,将不执行所请求的动作。
相关文档
最新文档