
《论文_KWP2000协议分析及基于CANoe的开发测试(定稿)》.docx
10页KWP2000协议分析及基丁 CANoe的开发测试刘国权,张们英,宋卫锋(恒润科技有限公司 汽车屯子事业部,北京市 朝阳区安翔北里卬11号创业大厦B2 8层,邮编:100101)摘 要:本文介绍了欧洲汽车领域广泛采用的车载诊断协议KWP2000,针对KWP2000诊断服务在K线(ISO 14230)和CAN总线(ISO 15765)上的两种实现方式,对协议的核心内容和发展历史进行了较为深入的剖 析和对比本文还介绍了采用Matlab/Simulink/StateFlow进行协议开发的一•般流程,以及该协议在Vect or公司的CANoe软换件平台上的应用实现和开过程关键词:KWP2000, K线,CAN总线,开发,CANoe1前言在汽车故障诊断领域,针对诊断设备和汽车ECU Z间的数据交换,各大汽车公司几乎都制订了相关的标准 和协议其中,欧洲汽车领域广泛使用的一种车载诊断协议标准是KWP2000 (Keyword Protocol 2000), 该协议实现了一套完整的车载诊断服务,并且满足E-OBD (European On Board Diagnose)标准KWP2000 最初是基于K线的诊断协议,山于K线物理层和数据链路层在网络管理和通讯速率上的局限性,使得K线 无法满足日趋复杂的车载诊断网络的需求。
而CAN网络(Controller Area Network)由于其非破坏性的网 络仲裁机制、较高的通讯速率(可达IM bps)和灵活可靠的通讯方式,在车载网络领域广受青睞,越来越 多的汽车制适商把CAN总线应用于汽车控制、诊断和通讯近年來欧洲汽车领域广泛采用了基于CAN总线 的KWP2000,即ISO 15765协议,而基于K线的KWP2000物理层和数据链路层协议将逐步被淘汰在网络协议开发和测试应用方面,美国Ma th Works公司利徳国Vector公司捉供了功能强大的开发和测试工 具,可分别用于协议栈源码的开发和ECU测试2基于K线的KWP2000协议基于K线的KWP2000 I办议标准主要包括ISO/WD 14230-1〜14230-4,各部分协议与OS 1模型的对应关系如 表1所示表1 KWP2000协议与0IS模熨的对应关系0SI模型基于K线的KWP2000基于CAN总线的KWP2000应用层1S0 14230-3ISO 15765-3表述层N/AN/A会话层N/AN/A传输层N/AN/A网络层N/AISO 15765-2数据链路层ISO 14230-2ISO 11898-1物理层TSO 14230-1, TS09141-2用户选择TSO 14230 1规定了 KWP2000协议的物理层规范(K线、L线),它在ISO 9141 -2的基础上把数据交换系 统扩展到了 24V电压系统。
ISO 14230-2规定了 KWP2000的数据链路层协议,包括报文结构、初始化过程、 通讯连接管理、定时参数和错谋处理等内容K线的报文包括报文头、数据域和校验和三部分,其中报文 头包含格式字节.H标地址(可选)、源地址(可选)和附加长度信息(可选),如表2所示表2基于K线的KWP2000报文结构[3]报文头数据域校验和FmtTgtl)Srcl)Lenl)SId2)• •Data2)• •cs最长4字节最长255字节1字节1)可选字节,取决于格式字节Fmt的A1A0位2)服务标识符(Service ID),数据域的第1个字节在开始诊断服务之前,诊断设备必须对ECU进行初始化,通过ECU的响应获取ECU的源地址、通讯波特率、支持的报:ey Word)的含义如:~\rr iJIZ •八八•!B ftp)thfk o二节中各位关键字(K图1关键字格式[3]衣3关键字低字节中各位的含义⑶Bit=0=1ALO不支持格式字节中的数据长度信息支持格式字节中的数据长度信息AL1不支持附加长度字节支持附加长度字节HBO不支持一个字节的报文头支持一个字节的报文头HB1不支持在报文头中包含目标地址/源地址支持在报文头中包含目标地址/源地址TPO*)采用正常定时参数设置采用扩展定时参数设置TP1*)釆用扩展定时参数设置采用正常定时参数设置*)只允许 TPO,TP1 = 0, 1 或者 1,0诊断设备对以采用两种方式对ECU进行初始化一Baud初始化和快速初始化,对于这两种初始化的时序 在数据链路层协议13]中均冇明确规定。
完成初始化过程后,诊断设备和ECU方可进彳亍应川层的诊断服务和 响应ISO 14230-3规定了应用层的服务规范,包括诊断管理功能组、数据传输功能组、诊断信息传输功能纽、揄入/输中林依II功的幺H. •沅親庶劫FCI【伽親功的幺H.豹粧卜尬•/下P非幼的细和护屜功的细.右:i仝断服手过卫用ECU 1 ECU 2 诊断设备服务响应 服务响应 服务请求mn…•…口……口卩二…口八…urr…「it厂Tzu□A :P :F : P : :2p :4 ! 2 ! 1 ! 2 ! ! 3 !图2 K线诊断服务时序图[3]3基于CAN总线的KWP2000协议基丁-CA7总线的KWP2000协议实际上指的就是1S0/WD 15765-1〜15765-4,该协议把KWP2000应用层的诊 断服务移植到CAN总线上数据链路层采用了 ISO 11898-1协议,该协议是对CAN2. 0B协议的进一步标准 化和规范化;应用层采用T ISO 15765-3协议,该协议完全兼容基于K线的应用层协议14230-3,并加入 TCAN总线诊断功能组;网络层则采用TSO 15765-2协议,规定了网络层协议数据单元(N_PD「如表4所 示)与底层CAN数据帧、以及上层KWP2000服务之间的映射关系,并且为长报文的多包数据传输过程提供 了同步控制、顺序控制、流控制和错谋恢复功能。
表4网络层协议数据单元(N_PDIJ)格式[7]地址信息协议控制信息数据域N_A11)N_PC12)N_Data3)1)地址信息:包含源地址(SA).目标地址(TA).目标地址格式(TA_Type)和远程地址(RA)2)协议控制信息:包含四种帧格式,见表5“讥卄应用程序 应用樽 TMt*rR ECUf^a# ECU应用屋 EC呃用程呼3)数据域应用层协iH-USD.l.
第--帧(First Frame, FF)—数据域及PCI不能在一个CAN数据帧中容纳时,服务报文以多帧CAN报文进行发送,英中第一帧(FF)除传送数据外,还包含了多包数据的长度信息连续帧(Consecutive l;rame, CF)—多包数据中除第一帧外的连续数据帧,除传送数据外,还包含了多 包数据的包序号流控制帧(Flow Control, FC) 一用于多包数据传输过程中的流控制,不包含数据,只包含流控制状态、 数据块人小和瑕小间隔时间等流控制信息表5 15765协议网络层四种PDU对应的PCI格式[7]N_PDU名称Byte #1Byte #2Byte #3Bit # 7-4Bit # 3-0N/AN/A单帧(SF)N_PCTtype=OSF DL1)N/AN/A第一帧(FF)N_PCltype=lFF_DL2)N/A连续帧(CF)N_PCltype二2SN3)N/AN/A流控制帧(FC)N_PCItype=3FS4)BS5)STmin6)1)单帧数据中数据域的字节长度,发送节点接收节点2) 多包数据的数据域字节总长度3) 多包数据的数据包编号4) 流控制状态信息5) 数据块大小。
6) 多包数据传输的最小时间间隔多包数据的传输流程如图4所示 接收节点分配好资源、准备接收数扌 和时间间隔;发送节点接下来就根扌第一帧(rr>更控制wc〉一连续帕(€F)一连渎帧<CF) 连渎帙(CF)连绞帧(€1 ) 〜—连续帧(CF)接收节点将要发送的数据的总长度;:送节点-•次可以发送的数据包数目J数据包依次发送过公图4多包数据传输流程图在数据传送过程中,一个网络层PDU被编排成一个CAN数据帧,它们Z间的对应关系由寻址模式(Addres sing mode)决定基于ISO 15765协议规定了四种寻址模式:正常寻址模式(Normal)、正常固定寻址模 式(Normal fixed) >扩展寻址模式(Extended)和用于远程诊断的混合寻址模式(Mixed)其中,正常 固定寻址模式必须采用CAN扩展帧,并且SAE J1939为该寻址模式下的KWP2000诊断服务保留了两个专用 参数纽编号(PGN):其中PF=218 (PF的具体定义请参考SAE J1939数据链路层协议)的参数组用丁•物理 寻址(phy) , P2219的参数组用于功能寻址(fen)正常固定寻址模式的PDU与CAN数据帧之间的对应 关系如表6所示。
衣6正常固定寻址模式下N PDU与CAN数据帧Z间的对应关系⑺N_PDU类型CAN 29位标识符CAN数据域28、26252423~1615〜87~0123 4 5 6 7 8单帧(SF)Oll(bin)00218(dec)-phy219(dec)-fcnN_TAN SAN PCIN Data第一帧(FF)Oil(bin)00218 (dec)-phy219 (dec)-fcr)N_TAN_SAN_PCIN_Data连续帧(CF)Oll(bin)00218(dec)-phy219(dec)-fcnN_TAN_SAN. PCTN Data流控制(EC)Oil(bin)00218(dec)-phy219 (dec)-fc nN_TAN_SAN_PC1N/A混合寻址模式与正常固定寻址模式类似,唯--的区别是CAN数据域的第一个字节用于填充远程地址(RA),程诊200,(源图5跨越网段的远程诊断4两种协议的简单比较从前面基于K线和基于CA7。












