KWP2000协议分析及基于CANoe的开发测试_第1页
KWP2000协议分析及基于CANoe的开发测试_第2页
KWP2000协议分析及基于CANoe的开发测试_第3页
KWP2000协议分析及基于CANoe的开发测试_第4页
KWP2000协议分析及基于CANoe的开发测试_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 HYPERLINK KWP220000协议分分析及基基于CANNoe的开发发测试摘要:本本文介绍绍了欧洲洲汽车领领域广泛泛采用的的车载诊诊断协议议KWPP20000,针对KWPP20000诊断服服务在K线(ISOO 1442300)和CAN总线(ISOO 1557655)上的的两种实实现方式式,对协协议的核核心内容容和发展展历史进进行了较较为深入入的剖析析和对比比。本文文还介绍绍了采用用Mattlabb/Siimullinkk/SttateeFloow进行协协议开发发的一般般流程,以及该该协议在Vecctorr公司的CANNoe软硬件件平台上上的应用用实现和和开过程程。关键键词:KWPP20

2、000,K线,CAN总线,开发,CANNoe1前言在汽车故故障诊断断领域,针对诊诊断设备备和汽车车ECU之间的的数据交交换,各各大汽车车公司几几乎都制制订了相相关的标标准和协协议。其其中,欧欧洲汽车车领域广广泛使用用的一种种车载诊诊断协议议标准是是KWPP20000(Keyyworrd PProttocool 220000),该该协议实实现了一一套完整整的车载载诊断服服务,并并且满足足E-OOBD(Eurropeean On Boaard Diaagnoose)标准准。KWPP20000最初是是基于K线的诊断协协议,由由于K线物理理层和数数据链路路层在网网络管理理和通讯讯速率上上的局限限性,使

3、使得K线无法法满足日日趋复杂杂的车载载诊断网网络的需需求。而而CAN网络(Conntroolleer AAreaa Neetwoork)由于于其非破破坏性的的网络仲仲裁机制制、较高高的通讯讯速率(可达1M bpss)和灵灵活可靠靠的通讯讯方式,在车载载网络领领域广受受青睐,越来越越多的汽汽车制造造商把CAN总线应应用于汽汽车控制制、诊断断和通讯讯。近年年来欧洲洲汽车领领域广泛泛采用了了基于CAN总线的KWPP20000,即ISOO 1557655协议,而基于于K线的KWPP20000物理层层和数据据链路层层协议将将逐步被被淘汰。在网络协协议开发发和测试试应用方方面,美美国MatthWoorks

4、公司和和德国Vecctorr公司提提供了功功能强大大的开发发和测试试工具,可分别别用于协协议栈源源码的开开发和ECU测试。2基于KK线的KWPP20000协议基于K线线的KWPP20000协议标标准主要要包括ISOO/WDD 1442300-1142230-4,各部部分协议议与OSI模型的的对应关关系如表表1所示。表1 KKWP220000协议与OIS模型的的对应关关系OSI模模型基于K线线的KWPP20000基于CAAN总线的KWPP20000应用层ISO 142230-3ISO 157765-3表述层N/AN/A会话层N/AN/A传输层N/AN/A网络层N/AISO 157765-2数据链

5、路路层ISO 142230-2ISO 118898-1物理层ISO 142230-1,ISOO91441-22用户选择择ISO 142230-1规定了KWPP20000协议的的物理层层规范(K线、L线),它在ISOO 91141-2的基础础上把数数据交换换系统扩扩展到了了24V电压系系统。ISOO 1442300-2规定了KWPP20000的数据据链路层层协议,包括报报文结构构、初始始化过程程、通讯讯连接管管理、定定时参数数和错误误处理等等内容。K线的报报文包括括报文头头、数据据域和校校验和三三部分,其中报报文头包包含格式式字节、目标地地址(可可选)、源地址址(可选选)和附附加长度度信息(可选

6、),如表表2所示。表2基于于K线的KWPP20000报文结构3报文头数据域校验和FmtTgt11)Src11)Len11)SId22). .Dataa2). .CS最长4字字节最长2555字节节1字节1)可选选字节,取决于于格式字字节Fmt的A1AA0位2)服务务标识符符(Serrvicce IID),数数据域的的第1个字节在开始诊诊断服务务之前,诊断设设备必须须对ECU进行初初始化,通过ECU的响应应获取ECU的源地地址、通通讯波特特率、支支持的报报文头格格式、定定时参数数等信息息。ECU所支持的的报文头头和定时时参数信信息包含含在ECU返回的“关键字字(Keyy Woord)”中(这这也是

7、协协议命名名的由来来)。关关键字由由两个字字节构成成,如图图1所示,关键字字的低字字节中各各位的含含义如表表3所示。图1关键键字格式式3表3关键键字低字字节中各各位的含含义3Bit= 0 = 1AL0不支持格格式字节节中的数数据长度度信息支持格式式字节中中的数据据长度信信息AL1 不支持附附加长度度字节支持附加加长度字字节HB0不支持一一个字节节的报文文头支持一个个字节的的报文头头HB1不支持在在报文头头中包含含目标地地址/源地址址支持在报报文头中中包含目目标地址址/源地址址TP0*)采用正常常定时参参数设置置采用扩展展定时参参数设置置TP1*)采用扩展展定时参参数设置置采用正常常定时参参数设

8、置置*)只允允许TP00,TPP1 = 0,1或者1,00 诊断设备备可以采采用两种种方式对对ECU进行初初始化5Bauud初始化化和快速速初始化化,对于于这两种种初始化化的时序序在数据据链路层层协议3中均有有明确规规定。完完成初始始化过程程后,诊诊断设备备和ECU方可进进行应用用层的诊诊断服务务和响应应。ISOO 1442300-3规定了了应用层层的服务务规范,包括诊诊断管理理功能组组、数据据传输功功能组、诊断信信息传输输功能组组、输入入/输出控控制功能能组、远远程启动动ECU例程功功能组、数据上上载/下载功功能组和和扩展功功能组。在诊断断服务请请求/响应过过程中,诊断设设备和ECU必须遵遵

9、循图2所示的的时序和和相关定定时参数数。对于于初始化化和诊断断服务过过程中出出现的各各种定时时错误,在数据据链路层层和应用用层协议议里面都都有相应应的处理理规范,诊断设设备及ECU的应用用程序都都必须严严格遵守守。图2 KK线诊断断服务时时序图33基于CCAN总线的KWPP20000协议基于CAAN总线的KWPP20000协议实实际上指指的就是是ISOO/WDD 1557655-1157765-4,该协协议把KWPP20000应用层层的诊断断服务移移植到CAN总线上上。数据据链路层层采用了了ISOO 1118988-1协议,该协议议是对CANN2.00B协议的的进一步步标准化化和规范范化;应应

10、用层采采用了ISOO 1557655-3协议,该协议议完全兼兼容基于于K线的应应用层协协议142230-3,并加加入了CAN总线诊诊断功能能组;网网络层则则采用ISOO 1557655-2协议,规定了了网络层层协议数数据单元元(N_PPDU,如表4所示)与底层层CAN数据帧帧、以及及上层KWPP20000服务之之间的映映射关系系,并且且为长报报文的多多包数据据传输过过程提供供了同步步控制、顺序控控制、流流控制和和错误恢恢复功能能。表4网络络层协议议数据单单元(N_PPDU)格式7地址信息息协议控制制信息数据域N_AII1)N_PCCI2)N_Daata33)1)地址址信息:包含源源地址(SA)

11、、目目标地址址(TA)、目目标地址址格式(TA_Typpe)和远远程地址址(RA)2)协议控制制信息:包含四四种帧格格式,见见表53)数据据域:KWPP20000服务标标识符(Serrvicce IID) +服务务参数应用层协协议规定定了四种种服务数数据结构构,.Reqquesst、.Inddicaatioon、.Ressponnse和.Connfirrm,分别别用于诊诊断设备备(Testter)的服服务请求求、ECU的服务指指示、ECU的服务务响应和和Tesster的服务务确认。这些数数据结构构中包含含了地址址信息、服务请请求ID和服务务请求参参数等内内容。基基于CAN总线的KWPP2000

12、0诊断服服务流程程如图3所示。图3基于于CAN总线的KWPP20000诊断服服务流程程图从上面的的服务流流程可以以看出,基于CAN总线的KWPP20000协议支支持多包包数据传传输,并并且多包包数据的的管理和和组织是是在网络络层完成成的,应应用层不不必关心心数据的的打包和和解包过过程。为为实现这这一功能能,网络络层定义义了四种种PDU(以PCI类型进进行区分分,如表表5所示):单帧帧(Sinnglee Frramee,SF)数据域域及PCI可在一一个CAN数据帧帧中容纳纳时,服服务报文文以单帧帧CAN报文进进行发送送。第一一帧(Firrst Fraame,FF)数据域域及PCI不能在在一个CA

13、N数据帧帧中容纳纳时,服服务报文文以多帧帧CAN报文进进行发送送,其中中第一帧帧(FF)除传传送数据据外,还还包含了了多包数数据的长长度信息息。连续帧(Connseccutiive Fraame,CF)多包数数据中除除第一帧帧外的连连续数据据帧,除除传送数数据外,还包含含了多包包数据的的包序号号。流控控制帧(Floow CConttroll,FC)用于多多包数据据传输过过程中的的流控制制,不包包含数据据,只包包含流控控制状态态、数据据块大小小和最小小间隔时时间等流流控制信信息。表5 1157665协议网网络层四四种PDU对应的PCI格式7N_PDDU名称称Bytee #11Bytee #22B

14、ytee #33Bit # 77-4Bit # 33-0 N/A N/A 单帧(SSF)N_PCCItyype=0 SF_DDL1)N/A N/A 第一帧(FF)N_PCCItyype=1FF_DDL2)N/A 连续帧(CF)N_PCCItyype=2SN3) N/A N/A 流控制帧帧(FC)N_PCCItyype=3FS4)BS5)STmiin6)1)单帧帧数据中中数据域域的字节节长度,PCI的长度度不包括括在内。2)多包包数据的的数据域域字节总总长度。3)多包包数据的的数据包包编号。4)流控控制状态态信息。5)数据据块大小小。6)多包数数据传输输的最小小时间间间隔。多包数据据的传输输流程

15、如如图4所示。发送节节点首先先发送“第一帧”,告知知接收节节点将要要发送的的数据的的总长度度;接收收节点分分配好资资源、准准备接收收数据,然后以以一帧“流控制制帧”告知发发送节点点一次可可以发送送的数据据包数目目和时间间间隔;发送节节点接下下来就根根据接收收节点的的接收能能力将编编好序号号的数据据包依次次发送过过去。图4多包包数据传传输流程程图在数据传传送过程程中,一一个网络络层PDU被编排排成一个个CAN数据帧帧,它们们之间的的对应关关系由寻寻址模式式(Adddresssinng mmode)决定定。基于于ISOO 1557655协议规规定了四四种寻址址模式:正常寻寻址模式式(Norrmal

16、)、正正常固定定寻址模模式(Norrmall fiixedd)、扩扩展寻址址模式(Exttendded)和用用于远程程诊断的的混合寻寻址模式式(Mixxed)。其其中,正正常固定定寻址模模式必须须采用CAN扩展帧帧,并且且SAEE J119399为该寻寻址模式式下的KWPP20000诊断服服务保留留了两个个专用参参数组编编号(PGN):其其中PF=2188(PF的具体体定义请请参考SAEE J119399数据链链路层协协议)的的参数组组用于物物理寻址址(phy),PF=2199的参数数组用于于功能寻寻址(fcn)。正正常固定定寻址模模式的PDU与CAN数据帧帧之间的的对应关关系如表表6所示。表

17、6正常常固定寻寻址模式式下N_PDDU与CAN数据帧帧之间的的对应关关系7N_PDDU类型CAN 29位标识识符CAN数数据域28226 252423116 15887012345678单帧(SSF)011(binn) 0 0218(decc)-pphy2219(decc)-ffcnN_TAAN_SAAN_PCCIN_Daata第一帧(FF)011(binn) 0 0218(decc)-pphy2219(decc)-ffcnN_TAAN_SAAN_PCCIN_Daata连续帧(CF)011(binn) 0 0218(decc)-pphy2219(decc)-ffcnN_TAAN_SAAN_PC

18、CIN_Daata流控制(FC)011(binn) 0 0218(decc)-pphy2219(decc)-ffcnN_TAAN_SAAN_PCCIN/A混合寻址址模式与与正常固固定寻址址模式类类似,唯唯一的区区别是CAN数据域域的第一一个字节节用于填填充远程程地址(RA),N_PPCI和诊断断服务数数据的填填充位置置向后移移动一个个字节。混合寻寻址模式式用于跨跨越网段段进行远远程诊断断,远程程诊断的的机制如如图5所示。图中CANN1和CANN2两个不不同的子子网通过过网桥相相连,网网桥在子子网1中的源源地址为为200,在子子网2中的源源地址为为10,位于于子网1中的诊诊断设备备(源地地址为2

19、41)可通通过网桥桥对子网网2中的ECU(源地地址为62)进行行诊断。图5跨越越网段的的远程诊诊断4两种协协议的简简单比较较从前面基基于K线和基基于CAN总线的KWPP20000协议可可以看出出,两种种协议在在物理层层、数据据链路层层及网络络层(157765)上存存在以下下主要差差别,这这也是K线被CAN总线取取而代之之的主要要原因所所在:K线通讯讯速率较较低,最最大波特特率仅为为104400bbps;CAN总线通通讯速率率较高,最大波波特率可可达1Mbbps。K线采用用单端信信号传输输,抗干干扰能力力较弱,可靠性性较差;CAN总线采采用差分分信号传传输,抗抗干扰能能力强,信号传传输的可可靠性

20、高高。K线诊断断在启动动应用层层诊断服服务之前前必须对对ECU进行初初始化建建立连接接,并且且初始化化过程比比较复杂杂;而基基于CAN总线的的诊断设设备不需需要对ECU进行初初始化即即可进行行诊断服服务。K线诊断断应用程程序开发发者必须须亲自管管理数据据传输过过程中的的字节间间定时,并处理理底层通通讯错误误;CAN数据帧帧以整帧帧报文的的形式进进行发送送,应用用程序开开发者不不必管理理字节间间定时,并且CAN总线物物理层和和数据链链路层具具备完善善的错误误检测和和错误恢恢复机制制,应用用程序不不必监视视和处理理底层通通讯错误误。K线网络络结构单单一,网网络管理理功能很很弱;而而利用CAN总线可

21、可构建复复杂的网网络结构构,可跨跨越网段段进行远远程诊断断。K线网络络采用破破坏性的的仲裁机机制,当当诊断设设备采用用功能寻寻址与多多个ECU进行通通讯时,为避免免总线冲冲突,ECU开发者者必须采采取措施施保证多多个ECU顺序访访问总线线;而CAN网络采采用非破破坏性的的仲裁机机制,并并且仲裁裁过程由由数据链链路层完完成,当当诊断设设备采用用功能寻寻址与多多个ECU进行通通讯时,ECU开发者者不必考考虑总线线访问冲冲突问题题。K线服务务报文最最大字节节长度仅仅为255,无法法满足更更长报文文的传输输要求,并且在在长报文文的传输输过程中中用户必必须自己己采取措措施进行行连接管管理,可可靠性和和兼

22、容性性较差;而CAN总线诊诊断服务务报文最最大字节节长度可可达40996(12位),对于长长报文的的传输,网络层层协议还还具备标标准化和和规范化化的同步步控制、顺序控控制、流流控制和和错误恢恢复等功功能,具具备很高高的可靠靠性、兼兼容性。5 KWWP20000协议栈栈的开发发及测试试从前面的的协议分分析可以以看出,无论是是基于K线还是CAN总线的KWPP20000协议,都是逻逻辑非常常复杂的的系统,并且具具有严格格的定时时和错误误处理规规范。如如果采用用纯手工工的方式式来进行行KWPP20000协议栈栈的开发发,不仅仅要耗费费大量的的时间和和人力,其通用用性、完完备性、可靠性性和可维维护性都都

23、很难保保证。而而MATTLABB/Siimullinkk/SttateeFloow不仅具具备方便便快捷的的上层实实时仿真真环境,还集成成了高效效的嵌入入式代码码自动生生成工具具,为协协议栈的的开发和和维护提提供了强强大的支支持平台台。此外外,由德德国Vecctorr公司的CANNoe软件和和相关硬硬件板卡卡组成的的应用开开发平台台,可用用于汽车车网络(CAN,Lin等)的的上层协协议开发发和系统统测试,该平台台同时支支持基于于K线和CAN总线的KWPP20000诊断协协议,可可作为ECU和诊断断设备的的测试标标准。图6是协协议源码码开发过过程示意意图。首首先在MATTLABB/Siimulli

24、nkk/SttateeFloow中遵照照协议标标准进行行KWPP20000协议栈栈开发,在仿真真调试环环境下实实现通讯讯逻辑、定时控控制和错错误处理理,待系系统完善善后利用用StaateFFloww嵌入式式代码生生成工具具自动生生成协议议栈C代码,并并与目标标系统的的底层驱驱动进行行集成,然后植植入目标标系统形形成应用用程序,最后再再利用CANNoe作为标标准进行行系统集集成测试试。图6 KKWP220000协议栈栈开发及及测试流流程在MATTLABB/Siimullinkk/SttateeFloow中进行行协议栈栈仿真开开发是协协议栈开开发过程程中的关关键环节节,在这这一过程程中必须须严格遵

25、遵照协议议标准来来实现通通讯逻辑辑,往往往需要经经过多次次“设计仿真修改”循环才才能使系系统最终终趋于完完善。MATTLABB的图形形界面提提供了方方便快捷捷的仿真真输入/输出接接口,可可大幅度度加快开开发进度度。协议栈开开发完成成后可利利用CANNoe作为标标准进行行系统集集成测试试,CANNoe的KWPP20000协议测测试环境境如图7所示。图7 CCANooe的KWPP20000测试环环境示意意图CANooe中的KWPP20000实际指指的是基基于CAN总线的KWPP20000,即157765协议。由于CANNoe默认的的硬件板板卡是CAN卡,因因此在建建立仿真真程序时时,只需需将ECU

26、的网络络模块设设置为kwpp20000.ddll即可进进行CAN总线的KWPP20000服务测测试。kwpp20000.ddll中包含157765应用层层协议中中规定的的服务请请求、服服务指示示、服务务响应和和服务确确认接口口函数,用户调调用这些些函数即即可完成成Tessterr端和ECU端的KWPP20000诊断服服务。此此外,该该模块中中的功能能函数还还可对ECU的源地地址、目目标地址址、寻址址模式等等参数进进行动态态设置。需要注注意的是是,kwpp20000.ddll目前只只提供了了部分KWPP20000服务的的接口函函数,如如果用户户需要进进行其它它的KWPP20000服务测测试,必必

27、须根据据KWPP20000应用层层协议构构造服务务报文数数据,然然后调用用该模块块中的KWPP_DaataRReq()和KWPP_GeetRxxDatta()函函数进行行报文的的发送和和接收。进行基于于K线的KWPP20000服务测测试时,需要将将KLiineCCPL.dlll模块加加入CANNoe仿真环环境,并并使用一一个代理理节点来来实现CAN网络和K线之间间的报文文转发。此时CANNoe使用计计算机的的串口,并通过过一个串串口/K线转换换器与实实际的ECU相连,如图8所示。图8 CCANooe中基于K线的KWPP20000测试连连接示意意图6结束语语KWP220000是一套套非常完完善的

28、车车载故障障诊断协协议标准准,协议议的分层层结构使使得KWPP20000诊断服服务并不不依赖于于某种特特定的网网络介质质,其应应用层可可以移植植到任何何一种物物理层和和数据链链路层协协议之上上。基于于CAN总线的KWPP20000顺应了了目前车车载网络络发展的的大趋势势,将逐逐步取代代K线诊断断协议,成为下下一代车车载诊断断协议的的主流之之一。MATLLAB/Simmuliink/Staateffloww为协议议栈开发发提供了了方便直直观的图图形用户户接口和和功能强强大的仿仿真调试试环境及及代码生生成工具具,为嵌嵌入式开开发开辟辟了一条条高效快快捷之路路。Vecctorr公司的CANNoe和相

29、关关硬件板板卡是一一个功能能强大的的应用开开发平台台,可针针对基于于K线和CAN总线的KWPP20000进行ECU和诊断断设备的的上层协协议开发发、测试试及仿真真。参考文献献:11 IISO / DDIS 142229, Rooad Vehhiclles - DDiaggnossticc Syysteems DIAAGNOOSTIIC SSERVVICEES SSPECCIFIICATTIONNS.22 IISO/WD 142230-1, Roaad VVehiiclees - Diiagnnosttic Sysstemms - Keeywoord Prootoccol 20000 - Phhysiicall laayerrS.33 IISO/WD 142230-2, Roaad VVehiiclees - Diiagnnosttic Sysstemms - Keeywoord Prootoccol 20000 Daata lin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论