![kwp診斷通訊協(xié)議匯報_第1頁](http://file4.renrendoc.com/view/4f2d4237f596b78c1c13c239f270b7f3/4f2d4237f596b78c1c13c239f270b7f31.gif)
![kwp診斷通訊協(xié)議匯報_第2頁](http://file4.renrendoc.com/view/4f2d4237f596b78c1c13c239f270b7f3/4f2d4237f596b78c1c13c239f270b7f32.gif)
![kwp診斷通訊協(xié)議匯報_第3頁](http://file4.renrendoc.com/view/4f2d4237f596b78c1c13c239f270b7f3/4f2d4237f596b78c1c13c239f270b7f33.gif)
![kwp診斷通訊協(xié)議匯報_第4頁](http://file4.renrendoc.com/view/4f2d4237f596b78c1c13c239f270b7f3/4f2d4237f596b78c1c13c239f270b7f34.gif)
![kwp診斷通訊協(xié)議匯報_第5頁](http://file4.renrendoc.com/view/4f2d4237f596b78c1c13c239f270b7f3/4f2d4237f596b78c1c13c239f270b7f35.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于K線的KWP2000協(xié)議標(biāo)準(zhǔn)要緊包括ISO/WD 14230-114230-4,各部分協(xié)議與OSI模型的對應(yīng)關(guān)系如表1所示。表1 KWP2000協(xié)議與OIS模型的對應(yīng)關(guān)系OSI模型 基于K線的KWP2000 基于CAN總線的KWP2000 應(yīng)用層 ISO 14230-3 ISO 15765-3 表述層 N/A N/A 會話層 N/A N/A 傳輸層 N/A N/A 網(wǎng)絡(luò)層 N/A ISO 15765-2 數(shù)據(jù)鏈路層 ISO 14230-2 ISO 11898-1 物理層 ISO 14230-1,ISO9141-2 用戶選擇 ISO 14230-1規(guī)定了KWP2000協(xié)議的物理層規(guī)范(K線、
2、L線),它在ISO 9141-2的基礎(chǔ)上把數(shù)據(jù)交換系統(tǒng)擴展到了24V電壓系統(tǒng)。ISO 14230-2規(guī)定了KWP2000的數(shù)據(jù)鏈路層協(xié)議,包括報文結(jié)構(gòu)、初始化過程、通訊連接治理、定時參數(shù)和錯誤處理等內(nèi)容。K線的報文包括報文頭、數(shù)據(jù) 域和校驗和三部分,其中報文頭包含格式字節(jié)、目標(biāo)地址(可選)、源地址(可選)和附加長度信息(可選),如表2所示。表2 基于K線的KWP2000報文結(jié)構(gòu)3報文頭 數(shù)據(jù)域 校驗和 Fmt Tgt1) Src1) Len1) SId2) . . Data2) . . CS 最長4 字節(jié) 最長255 字節(jié) 1字節(jié) 1)可選字節(jié),取決于格式字節(jié)Fmt的A1A0位2)服務(wù)標(biāo)識符(
3、Service ID),數(shù)據(jù)域的第1個字節(jié)KWP2000(Keyword Protocol 2000)是歐洲汽車領(lǐng)域廣泛使用的一種車載診斷協(xié)議標(biāo)準(zhǔn),該協(xié)議實現(xiàn)了一套完整的車載診斷服務(wù),同時滿足E-OBD(European On Board Diagnose)標(biāo)準(zhǔn)。KWP2000協(xié)議僅對其中三個子層進行了定義講明,即:應(yīng)用層(第七層)、數(shù)據(jù)鏈路層(第二層)和物理層(第一層)。物理層:這部分描述了基于IS09141用以實現(xiàn)診斷服務(wù)的物理層,用于配置硬件系統(tǒng),指導(dǎo)接口電路的設(shè)計,同時將在IS09141-2中描述的物理層擴展成能夠滿足提供12V或24V電壓的車輛的條款。數(shù)據(jù)鏈路層:這部分定義了數(shù)據(jù)的傳
4、送格式,描述了診斷服務(wù)的通用要求,同意1個診斷儀操縱在1個隨車ECU(例如電子燃油噴射、自動變速箱及防抱死系統(tǒng)等)中的診斷功能。這些隨車ECU嵌于車輛中,通過串行數(shù)據(jù)鏈路相連接。應(yīng)用層:這部分包含如下規(guī)范:服務(wù)標(biāo)識符的字節(jié)編碼及其十六進制數(shù)值;診斷服務(wù)請求與響應(yīng)參數(shù)的字節(jié)編碼;標(biāo)準(zhǔn)參數(shù)的十六進制數(shù)值。依照IS014230的規(guī)定,KWP2000通信消息差不多格式如圖1所示。一條消息結(jié)構(gòu)包括頭部(header)、數(shù)據(jù)字節(jié)(data-byte)、校驗和(checksum)等三部分。圖1 KWP2000的報文格式 Fmt格式字節(jié)(Format byte)Tgt目標(biāo)地址字節(jié)(Target address
5、 byte)Src源地址字節(jié)(Source address byte)Len長度字節(jié)(Length byte)Sid服務(wù)標(biāo)志符字節(jié)(Sevice Identification byte),分請求服務(wù)和響應(yīng)服務(wù)兩類CS校驗和字節(jié)(Checksum byte)上標(biāo)1表示可選,由格式字節(jié)(Fmt)決定上標(biāo)2表明服務(wù)標(biāo)識(Sid)是數(shù)據(jù)段的一部分(Data)在 開始診斷服務(wù)之前,診斷設(shè)備必須對ECU(發(fā)動機engine control unit)進行初始化,通過ECU的響應(yīng)獵取ECU的源地址、通訊波特率、支持的報文格式、定時參數(shù)等信息。ECU所支持的 報文和定時參數(shù)信息包含在ECU返回的“關(guān)鍵字(Ke
6、y Word)”中(這也是協(xié)議命名的由來)。關(guān)鍵字由兩個字節(jié)構(gòu)成,如圖2所示,關(guān)鍵字的低字節(jié)中各位的含義如表1所示。圖2 關(guān)鍵字格式 表1 關(guān)鍵字低字節(jié)中各位的含義 測試器(診斷設(shè)備)能夠采納兩種方式對ECU進行初始化,即5Baud初始化和快速初始化。關(guān)于這兩種初始化的時序在數(shù)據(jù)鏈路層協(xié)議中均有明確規(guī)定。完成初始化過程后,測試器和ECU方可進行應(yīng)用層的診斷服務(wù)和響應(yīng)。IS014230-3規(guī)定了應(yīng)用層的服務(wù)規(guī)范,包括診斷治理功能組、數(shù)據(jù)傳輸功能組、診斷信息傳輸功能組、輸人輸出操縱功能組、遠程啟動ECU例程功能組、數(shù)據(jù)上載下載功能組和擴展功能組。KWP2000 最初是基于K線的診斷協(xié)議。由于K線物
7、理層和數(shù)據(jù)鏈路層在網(wǎng)絡(luò)治理和通訊速率上的局限性,使得K線無法滿足日趨復(fù)雜的車載診斷網(wǎng)絡(luò)的需求。而 CAN(Controller Area Network)網(wǎng)絡(luò)由于其非破壞性的網(wǎng)絡(luò)仲裁機制、較高的通訊速率(可達1Mbps)和靈活可靠的通訊方式,在車載網(wǎng)絡(luò)領(lǐng)域廣受青睞。因此,近年來歐洲 汽車領(lǐng)域廣泛采納了基于CAN總線的KWP2000,即ISO15765協(xié)議,而基于K線的KWP2000物理層和數(shù)據(jù)鏈路層協(xié)議將逐步被淘汰。KWP2000協(xié)議分析和基于CANoe的開發(fā)測試摘 要:本文介紹了歐洲汽車領(lǐng)域廣泛采納的車載診斷協(xié)議KWP2000,針對KWP2000診斷服務(wù)在K線(ISO 14230)和CAN總
8、線(ISO 15765)上的兩種實現(xiàn)方式,對協(xié)議的核心內(nèi)容和進展歷史進行了較為深入的剖析和對比。本文還介紹了采納Matlab/Simulink /StateFlow進行協(xié)議開發(fā)的一般流程,以及該協(xié)議在Vector公司的CANoe軟硬件平臺上的應(yīng)用實現(xiàn)和開過程。關(guān)鍵詞:KWP2000,K線,CAN總線,開發(fā),CANoe1 前言在汽車故障診斷領(lǐng)域,針對診斷設(shè)備和汽車ECU之間的數(shù)據(jù)交換,各大汽車公司幾乎都制訂了相關(guān)的標(biāo)準(zhǔn)和協(xié)議。其中,歐洲 汽車領(lǐng)域廣泛使用的一種車載診斷協(xié)議標(biāo)準(zhǔn)是KWP2000(Keyword Protocol 2000),該協(xié)議實現(xiàn)了一套完整的車載診斷服務(wù),同時滿足E-OBD(E
9、uropean On Board Diagnose)標(biāo)準(zhǔn)。KWP2000最初是基于K線的診斷協(xié)議,由于K線物理層和數(shù)據(jù)鏈路層在網(wǎng)絡(luò)治理和通訊速率上的局限性,使得K線無法滿足日趨復(fù) 雜的車載診斷網(wǎng)絡(luò)的需求。而CAN網(wǎng)絡(luò)(Controller Area Network)由于其非破壞性的網(wǎng)絡(luò)仲裁機制、較高的通訊速率(可達1M bps)和靈活可靠的通訊方式,在車載網(wǎng)絡(luò)領(lǐng)域廣受青睞,越來越多的汽車制造商把CAN總線應(yīng)用于汽車操縱、診斷和通訊。近年來歐洲汽車領(lǐng)域廣泛采納了基 于CAN總線的KWP2000,即ISO 15765協(xié)議,而基于K線的KWP2000物理層和數(shù)據(jù)鏈路層協(xié)議將逐步被淘汰。在網(wǎng)絡(luò)協(xié)議開發(fā)
10、和測試應(yīng)用方面,美國MathWorks公司和德國Vector公司提供了功能強大的開發(fā)和測試工具,可分不用于協(xié)議棧源碼的開發(fā)和ECU測試。2 基于K線的KWP2000協(xié)議基于K線的KWP2000協(xié)議標(biāo)準(zhǔn)要緊包括ISO/WD 14230-114230-4,各部分協(xié)議與OSI模型的對應(yīng)關(guān)系如表1所示。表1 KWP2000協(xié)議與OIS模型的對應(yīng)關(guān)系OSI模型基于K線的KWP2000基于CAN總線的KWP2000應(yīng)用層ISO 14230-3ISO 15765-3表述層N/AN/A會話層N/AN/A傳輸層N/AN/A網(wǎng)絡(luò)層N/AISO 15765-2數(shù)據(jù)鏈路層ISO 14230-2ISO 11898-1物
11、理層ISO 14230-1,ISO9141-2用戶選擇 ISO 14230-1規(guī)定了KWP2000協(xié)議的物理層規(guī)范(K線、L線),它在ISO 9141-2的基礎(chǔ)上把數(shù)據(jù)交換系統(tǒng)擴展到了24V電壓系統(tǒng)。ISO 14230-2規(guī)定了KWP2000的數(shù)據(jù)鏈路層協(xié)議,包括報文結(jié)構(gòu)、初始化過程、通訊連接治理、定時參數(shù)和錯誤處理等內(nèi)容。K線的報文包括報文頭、數(shù)據(jù) 域和校驗和三部分,其中報文頭包含格式字節(jié)、目標(biāo)地址(可選)、源地址(可選)和附加長度信息(可選),如表2所示。表2 基于K線的KWP2000報文結(jié)構(gòu)3報文頭數(shù)據(jù)域校驗和FmtTgt1)Src1)Len1)SId2). .Data2). .CS最長
12、4 字節(jié)最長255 字節(jié)1字節(jié)1)可選字節(jié),取決于格式字節(jié)Fmt的A1A0位2)服務(wù)標(biāo)識符(Service ID),數(shù)據(jù)域的第1個字節(jié) 在開始診斷服務(wù)之前,診斷設(shè)備必須對ECU進行初始化,通過ECU的響應(yīng)獵取ECU的源地址、通訊波特率、支持的報文頭格式、定時參數(shù)等信息。 ECU所支持的報文頭和定時參數(shù)信息包含在ECU返回的“關(guān)鍵字(Key Word)”中(這也是協(xié)議命名的由來)。關(guān)鍵字由兩個字節(jié)構(gòu)成,如圖1所示,關(guān)鍵字的低字節(jié)中各位的含義如表3所示。圖1 關(guān)鍵字格式3表3 關(guān)鍵字低字節(jié)中各位的含義3Bit= 0= 1AL0不支持格式字節(jié)中的數(shù)據(jù)長度信息支持格式字節(jié)中的數(shù)據(jù)長度信息AL1不支持附
13、加長度字節(jié)支持附加長度字節(jié)HB0不支持一個字節(jié)的報文頭支持一個字節(jié)的報文頭HB1不支持在報文頭中包含目標(biāo)地址/源地址支持在報文頭中包含目標(biāo)地址/源地址TP0*)采納正常定時參數(shù)設(shè)置采納擴展定時參數(shù)設(shè)置TP1*)采納擴展定時參數(shù)設(shè)置采納正常定時參數(shù)設(shè)置 *) 只同意TP0,TP1 = 0,1 或者1,0診斷設(shè)備能夠采納兩種方式對ECU進行初始化5Baud初始化和快速初始化,關(guān)于這兩種初始化的時序在數(shù)據(jù)鏈路層協(xié)議3中均有明確規(guī)定。完 成初始化過程后,診斷設(shè)備和ECU方可進行應(yīng)用層的診斷服務(wù)和響應(yīng)。ISO 14230-3規(guī)定了應(yīng)用層的服務(wù)規(guī)范,包括診斷治理功能組、數(shù)據(jù)傳輸功能組、診斷信息傳輸功能組、
14、輸入/輸出操縱功能組、遠程啟動ECU例程功能組、數(shù) 據(jù)上載/下載功能組和擴展功能組。在診斷服務(wù)請求/響應(yīng)過程中,診斷設(shè)備和ECU必須遵循圖2所示的時序和相關(guān)定時參數(shù)。關(guān)于初始化和診斷服務(wù)過程中出現(xiàn) 的各種定時錯誤,在數(shù)據(jù)鏈路層和應(yīng)用層協(xié)議里面都有相應(yīng)的處理規(guī)范,診斷設(shè)備及ECU的應(yīng)用程序都必須嚴格遵守。圖2 K線診斷服務(wù)時序圖33 基于CAN總線的KWP2000協(xié)議基于CAN總線的KWP2000協(xié)議實際上指的確實是ISO/WD 15765-115765-4,該協(xié)議把KWP2000應(yīng)用層的診斷服務(wù)移植到CAN總線上。數(shù)據(jù)鏈路層采納了ISO 11898-1協(xié)議,該協(xié)議是對CAN2.0B協(xié)議的進一步
15、標(biāo)準(zhǔn)化和規(guī)范化;應(yīng)用層采納了ISO 15765-3協(xié)議,該協(xié)議完全兼容基于K線的應(yīng)用層協(xié)議14230-3,并加入了CAN總線診斷功能組;網(wǎng)絡(luò)層則采納ISO 15765-2協(xié)議,規(guī)定了網(wǎng)絡(luò)層協(xié)議數(shù)據(jù)單元(N_PDU,如表4所示)與底層CAN數(shù)據(jù)幀、以及上層KWP2000服務(wù)之間的映射關(guān)系,同時為長報文 的多包數(shù)據(jù)傳輸過程提供了同步操縱、順序操縱、流操縱和錯誤恢復(fù)功能。表4 網(wǎng)絡(luò)層協(xié)議數(shù)據(jù)單元(N_PDU)格式7地址信息協(xié)議操縱信息數(shù)據(jù)域N_AI1)N_PCI2)N_Data3)1) 地址信息:包含源地址(SA)、目標(biāo)地址(TA)、目標(biāo)地址格式(TA_Type)和遠程地址(RA)2) 協(xié)議操縱信息
16、:包含四種幀格式,見表53) 數(shù)據(jù)域:KWP2000服務(wù)標(biāo)識符(Service ID) + 服務(wù)參數(shù) 應(yīng)用層協(xié)議規(guī)定了四種服務(wù)數(shù)據(jù)結(jié) 構(gòu),.Request、.Indication、.Response 和.Confirm,分不用于診斷設(shè)備(Tester)的服務(wù)請求、ECU的服務(wù)指示、ECU的服務(wù)響應(yīng)和 Tester的服務(wù)確認。這些數(shù)據(jù)結(jié)構(gòu)中包含了地址信息、服務(wù)請求ID和服務(wù)請求參數(shù)等內(nèi)容。基于CAN總線的KWP2000診斷服務(wù)流程如圖3所示。圖3 基于CAN總線的KWP2000診斷服務(wù)流程圖從上面的服務(wù)流程能夠看出,基于CAN總線的KWP2000協(xié)議支持多包數(shù)據(jù)傳輸,同時多包數(shù)據(jù)的治理和組織是在
17、網(wǎng)絡(luò)層完成的,應(yīng)用層不必關(guān)懷數(shù)據(jù)的打包和解包過程。為實現(xiàn)這一功能,網(wǎng)絡(luò)層定義了四種PDU(以PCI類型進行區(qū)分,如表5所示):單幀(Single Frame,SF) 數(shù)據(jù)域及PCI可在一個CAN數(shù)據(jù)幀中容納時,服務(wù)報文以單幀CAN報文進行發(fā)送。第一幀(First Frame,F(xiàn)F) 數(shù)據(jù)域及PCI不能在一個CAN數(shù)據(jù)幀中容納時,服務(wù)報文以多幀CAN報文進行發(fā)送,其中第一幀(FF)除傳送數(shù)據(jù)外,還包含了多包數(shù)據(jù)的長度信息。連續(xù)幀(Consecutive Frame,CF) 多包數(shù)據(jù)中除第一幀外的連續(xù)數(shù)據(jù)幀,除傳送數(shù)據(jù)外,還包含了多包數(shù)據(jù)的包序號。流操縱幀(Flow Control,F(xiàn)C) 用于多
18、包數(shù)據(jù)傳輸過程中的流操縱,不包含數(shù)據(jù),只包含流操縱狀態(tài)、數(shù)據(jù)塊大小和最小間隔時刻等流操縱信息。表5 15765協(xié)議網(wǎng)絡(luò)層四種PDU對應(yīng)的PCI格式7N_PDU 名稱Byte #1Byte #2Byte #3Bit # 7-4Bit # 3-0N/AN/A單幀(SF)N_PCItype=0SF_DL1)N/AN/A第一幀(FF)N_PCItype=1FF_DL2)N/A連續(xù)幀(CF)N_PCItype=2SN3)N/AN/A流操縱幀(FC)N_PCItype=3FS4)BS5)STmin6)1) 單幀數(shù)據(jù)中數(shù)據(jù)域的字節(jié)長度,PCI的長度不包括在內(nèi)。2) 多包數(shù)據(jù)的數(shù)據(jù)域字節(jié)總長度。3) 多包數(shù)據(jù)
19、的數(shù)據(jù)包編號。4) 流操縱狀態(tài)信息。5) 數(shù)據(jù)塊大小。6) 多包數(shù)據(jù)傳輸?shù)淖钚r刻間隔。 多包數(shù)據(jù)的傳輸流程如圖4所示。發(fā)送節(jié)點首先發(fā)送“第一幀”,告知接收節(jié)點將要發(fā)送的數(shù)據(jù)的總長度;接收節(jié)點分配好資源、預(yù)備接收數(shù)據(jù),然后以一幀 “流操縱幀”告知發(fā)送節(jié)點一次能夠發(fā)送的數(shù)據(jù)包數(shù)目和時刻間隔;發(fā)送節(jié)點接下來就依照接收節(jié)點的接收能力將編好序號的數(shù)據(jù)包依次發(fā)送過去。圖4 多包數(shù)據(jù)傳輸流程圖在數(shù)據(jù)傳送過程中,一個網(wǎng)絡(luò)層PDU被編排成一個CAN數(shù)據(jù)幀,它們之間的對應(yīng)關(guān)系由尋址模式(Addressing mode)決定?;贗SO 15765協(xié)議規(guī)定了四種尋址模式:正常尋址模式(Normal)、正常固定尋址
20、模式(Normal fixed)、擴展尋址模式(Extended)和用于遠程診斷的混合尋址模式(Mixed)。其中,正常固定尋址模式必須采納CAN擴展幀,同時SAE J1939為該尋址模式下的KWP2000診斷服務(wù)保留了兩個專用參數(shù)組編號(PGN):其中PF=218(PF的具體定義請參考SAE J1939數(shù)據(jù)鏈路層協(xié)議)的參數(shù)組用于物理尋址(phy),PF=219的參數(shù)組用于功能尋址(fcn)。正常固定尋址模式的PDU與CAN數(shù)據(jù)幀之間 的對應(yīng)關(guān)系如表6所示。表6 正常固定尋址模式下N_PDU與CAN數(shù)據(jù)幀之間的對應(yīng)關(guān)系7N_PDU類型CAN 29位標(biāo)識符CAN數(shù)據(jù)域2826252423161
21、587012345678單幀(SF)011(bin)00218(dec)-phy219(dec)-fcnN_TAN_SAN_PCIN_Data第一幀(FF)011(bin)00218(dec)-phy219(dec)-fcnN_TAN_SAN_PCIN_Data連續(xù)幀(CF)011(bin)00218(dec)-phy219(dec)-fcnN_TAN_SAN_PCIN_Data流操縱(FC)011(bin)00218(dec)-phy219(dec)-fcnN_TAN_SAN_PCIN/A 混合尋址模式與正常固定尋址模式類似,唯一的區(qū)不是CAN數(shù)據(jù)域的第一個字節(jié)用于填充遠程地址(RA),N_
22、PCI和診 斷服務(wù)數(shù)據(jù)的填充位置向后移動一個字節(jié)。混合尋址模式用于跨越網(wǎng)段進行遠程診斷,遠程診斷的機制如圖5所示。圖中CAN1和CAN2兩個不同的子網(wǎng)通過網(wǎng) 橋相連,網(wǎng)橋在子網(wǎng)1中的源地址為200,在子網(wǎng)2中的源地址為10,位于子網(wǎng)1中的診斷設(shè)備(源地址為241)可通過網(wǎng)橋?qū)ψ泳W(wǎng)2中的ECU(源地址為 62)進行診斷。圖5 跨越網(wǎng)段的遠程診斷4 兩種協(xié)議的簡單比較從前面基于K線和基于CAN總線的KWP2000協(xié)議能夠看出,兩種協(xié)議在物理層、數(shù)據(jù)鏈路層及網(wǎng)絡(luò)層(15765)上存在以下要緊差不,這也是K線被CAN總線取而代之的要緊緣故所在:K線通訊速率較低,最大波特率僅為10400bps;CAN總
23、線通訊速率較高,最大波特率可達1Mbps。K線采納單端信號傳輸,抗干擾能力較弱,可靠性較差;CAN總線采納差分信號傳輸,抗干擾能力強,信號傳輸?shù)目煽啃愿?。K線診斷在啟動應(yīng)用層診斷服務(wù)之前必須對ECU進行初始化建立連接,同時初始化過程比較復(fù)雜;而基于CAN總線的診斷設(shè)備不需要對ECU進行初始化即可進行診斷服務(wù)。K線診斷應(yīng)用程序開發(fā)者必須親自治理數(shù)據(jù)傳輸過程中的字節(jié)間定時,并處 理底層通訊錯誤;CAN數(shù)據(jù)幀以整幀報文的形式進行發(fā)送,應(yīng)用程序開發(fā)者不必治理字節(jié)間定時,同時CAN總線物理層和數(shù)據(jù)鏈路層具備完善的錯誤檢測和錯誤 恢復(fù)機制,應(yīng)用程序不必監(jiān)視和處理底層通訊錯誤。K線網(wǎng)絡(luò)結(jié)構(gòu)單一,網(wǎng)絡(luò)治理功能
24、專門弱;而利用CAN總線可構(gòu)建復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),可跨越網(wǎng)段進行遠程診斷。K線網(wǎng)絡(luò)采納破壞性的仲裁機制,當(dāng)診斷設(shè)備采納功能尋址與多個ECU進 行通訊時,為幸免總線沖突,ECU開發(fā)者必須采取措施保證多個ECU順序訪問總線;而CAN網(wǎng)絡(luò)采納非破壞性的仲裁機制,同時仲裁過程由數(shù)據(jù)鏈路層完成, 當(dāng)診斷設(shè)備采納功能尋址與多個ECU進行通訊時,ECU開發(fā)者不必考慮總線訪問沖突問題。K線服務(wù)報文最大字節(jié)長度僅為255,無法滿足更長報文的傳輸要求,并 且在長報文的傳輸過程中用戶必須自己采取措施進行連接治理,可靠性和兼容性較差;而CAN總線診斷服務(wù)報文最大字節(jié)長度可達4096(12位),關(guān)于長報 文的傳輸,網(wǎng)絡(luò)層協(xié)
25、議還具備標(biāo)準(zhǔn)化和規(guī)范化的同步操縱、順序操縱、流操縱和錯誤恢復(fù)等功能,具備專門高的可靠性、兼容性。5 KWP2000協(xié)議棧的開發(fā)及測試從前面的協(xié)議分析能夠看出,不管是基于K線依舊CAN總線的KWP2000協(xié)議,差不多上邏輯特不復(fù)雜的系 統(tǒng),同時具有嚴格的定時和錯誤處理規(guī)范。假如采納純手工的方式來進行KWP2000協(xié)議棧的開發(fā),不僅要耗費大量的時刻和人力,其通用性、完備性、可靠性 和可維護性都專門難保證。而MATLAB/Simulink/StateFlow不僅具備方便快捷的上層實時仿真環(huán)境,還集成了高效的嵌入式代碼自動生成工 具,為協(xié)議棧的開發(fā)和維護提供了強大的支持平臺。此外,由德國Vector公
26、司的CANoe軟件和相關(guān)硬件板卡組成的應(yīng)用開發(fā)平臺,可用于汽車網(wǎng)絡(luò) (CAN,Lin等)的上層協(xié)議開發(fā)和系統(tǒng)測試,該平臺同時支持基于K線和CAN總線的KWP2000診斷協(xié)議,可作為ECU和診斷設(shè)備的測試標(biāo)準(zhǔn)。圖6是協(xié)議源碼開發(fā)過程示意圖。首先在MATLAB/Simulink/StateFlow中遵照協(xié)議 標(biāo)準(zhǔn)進行KWP2000協(xié)議棧開發(fā),在仿真調(diào)試環(huán)境下實現(xiàn)通訊邏輯、定時操縱和錯誤處理,待系統(tǒng)完善后利用StateFlow嵌入式代碼生成工具自動生成 協(xié)議棧C代碼,并與目標(biāo)系統(tǒng)的底層驅(qū)動進行集成,然后植入目標(biāo)系統(tǒng)形成應(yīng)用程序,最后再利用CANoe作為標(biāo)準(zhǔn)進行系統(tǒng)集成測試。圖6 KWP2000協(xié)議棧
27、開發(fā)及測試流程在MATLAB/Simulink/StateFlow中進行協(xié)議棧仿真開發(fā)是協(xié)議棧開發(fā)過程中的關(guān)鍵 環(huán)節(jié),在這一過程中必須嚴格遵照協(xié)議標(biāo)準(zhǔn)來實現(xiàn)通訊邏輯,往往需要通過多次“設(shè)計仿真修改”循環(huán)才能使系統(tǒng)最終趨于完善。MATLAB的圖形界面提供 了方便快捷的仿真輸入/輸出接口,可大幅度加快開發(fā)進度。協(xié)議棧開發(fā)完成后可利用CANoe作為標(biāo)準(zhǔn)進行系統(tǒng)集成測試,CANoe的KWP2000協(xié)議測試環(huán)境如圖7所示。圖7 CANoe的KWP2000測試環(huán)境示意圖CANoe中的KWP2000實際指的是基于CAN總線的KWP2000, 即15765協(xié)議。由于CANoe默認的硬件板卡是CAN卡,因此在建
28、立仿真程序時,只需將ECU的網(wǎng)絡(luò)模塊設(shè)置為kwp2000.dll即可進行CAN 總線的KWP2000服務(wù)測試。kwp2000.dll中包含15765應(yīng)用層協(xié)議中規(guī)定的服務(wù)請求、服務(wù)指示、服務(wù)響應(yīng)和服務(wù)確認接口函數(shù),用戶調(diào)用這 些函數(shù)即可完成Tester端和ECU端的KWP2000診斷服務(wù)。此外,該模塊中的功能函數(shù)還可對ECU的源地址、目標(biāo)地址、尋址模式等參數(shù)進行動態(tài)設(shè) 置。需要注意的是,kwp2000.dll目前只提供了部分KWP2000服務(wù)的接口函數(shù),假如用戶需要進行其它的KWP2000服務(wù)測試,必須依照 KWP2000應(yīng)用層協(xié)議構(gòu)造服務(wù)報文數(shù)據(jù),然后調(diào)用該模塊中的KWP_DataReq()
29、和KWP_GetRxData()函數(shù)進行報文的發(fā)送和接收。進行基于K線的KWP2000服務(wù)測試時,需要將KLineCPL.dll模塊加入CANoe仿真環(huán)境,并使用一個代理節(jié)點來實現(xiàn)CAN網(wǎng)絡(luò)和K線之間的報文轉(zhuǎn)發(fā)?,F(xiàn)在CANoe使用計算機的串口,并通過一個串口/K線轉(zhuǎn)換器與實際的ECU相連,如圖8所示。圖8 CANoe中基于K線的KWP2000測試連接示意圖6 結(jié)束語KWP2000是一套特不完善的車載故障診斷協(xié)議標(biāo)準(zhǔn),協(xié)議的分層結(jié) 構(gòu)使得KWP2000診斷服務(wù)并不依靠于某種特定的網(wǎng)絡(luò)介質(zhì),其應(yīng)用層能夠移植到任何一種物理層和數(shù)據(jù)鏈路層協(xié)議之上?;贑AN總線的KWP2000順 應(yīng)了目前車載網(wǎng)絡(luò)進展
30、的大趨勢,將逐步取代K線診斷協(xié)議,成為下一代車載診斷協(xié)議的主流之一。MATLAB/Simulink/Stateflow為協(xié)議棧開發(fā)提供了方便直觀的圖形用戶接口和功能 強大的仿真調(diào)試環(huán)境及代碼生成工具,為嵌入式開發(fā)開發(fā)了一條高效快捷之路。Vector公司的CANoe和相關(guān)硬件板卡是一個功能強大的應(yīng)用開發(fā)平臺,可 針對基于K線和CAN總線的KWP2000進行ECU和診斷設(shè)備的上層協(xié)議開發(fā)、測試及仿真。摘 要:結(jié)合國外汽車廠商廣泛采納的車載診斷協(xié)議KWP 2000,對LIN總線下的ECU在線編程進行研究和方法設(shè)計,并對具體的硬件設(shè)計與軟件實現(xiàn)進行了分析與闡述。 關(guān)鍵詞:KWP2000;ECU在線編程
31、;LIN總線;MC9S08AW60 HYPERLINK /1. 引言在汽車故障診斷領(lǐng)域,針對診斷設(shè)備和汽車ECU之間的數(shù)據(jù)交換,各大汽車公司幾乎都制訂了相關(guān)的標(biāo)準(zhǔn)和協(xié)議。其中,國外 汽車廠商,包括大眾、通用、奔馳、戴姆勒-克萊斯勒、JEEP、三菱、道奇等廣泛使用的一種車載診斷協(xié)議標(biāo)準(zhǔn)是KWP2000(Key Word Protocol 2000)。該協(xié)議實現(xiàn)了較為完整的車載診斷服務(wù),同時滿足OBDII診斷要求。LIN總線(Local Interconnection Network)是一種單線車載網(wǎng)絡(luò),采納類似于標(biāo)準(zhǔn)串口的通訊格式,由于其協(xié)議簡單,通信可靠性好,實現(xiàn)成本低,近年來得到了迅速的進展
32、。2基于KWP2000的ECU在線編程研究ECU的在線編程指ECU處于工作狀態(tài)時通過網(wǎng)絡(luò)通信更新其中的應(yīng)用程序,從而實現(xiàn)改善操縱器性能、提高安全性、改善排放、改善燃油經(jīng)濟性、提高用戶中意度等目的,在設(shè)計和試制時期,該功能的實現(xiàn)為程序的更新提供極大的方便。與傳統(tǒng)的一對一的在線編程方式不同,由于KWP2000在網(wǎng)絡(luò)上傳輸,必須考慮其它操縱器的反應(yīng),必須對目標(biāo)操縱器作出正確的識不,必須保證數(shù)據(jù)傳輸?shù)耐暾缘鹊?。基于KWP2000協(xié)議ECU在線編程包括以下步驟:1) 切換到擴展診斷狀態(tài):該步驟用于將操縱器切換到一個特不的診斷狀態(tài),使得系統(tǒng)能夠響應(yīng)擴展診斷命令。2) 識不ECU:該步驟用于上位機識不特定
33、ECU及相應(yīng)軟硬件和數(shù)據(jù)的版本信息,上位機由此可決定能否執(zhí)行FLASH在線編程。3) 關(guān)閉網(wǎng)絡(luò)上所有操縱器的故障碼識不和存儲功能:該步驟禁止操縱器在接下來的編程期間檢測和記錄故障。4) 關(guān)閉常規(guī)信息傳遞:該步驟禁止所有操縱器的常規(guī)信息傳送,使網(wǎng)絡(luò)上只有診斷和網(wǎng)絡(luò)治理消息收發(fā),為在線編程讓出足夠的總線帶寬。5) 啟動在線編程模式:將操縱器切換到代碼愛護區(qū)運行Bootloader程序,該模式關(guān)閉了中斷,因此具有較快的響應(yīng)速度。HYPERLINK /6) 開啟安全限制:同意在線編程過程中的安全功能,開啟這些安全功能后使得ECU能夠執(zhí)行特定的過程。7) 下載軟件鎖:上位機將關(guān)鍵代碼下載到ECU,執(zhí)行這
34、些代碼可完成FLASH的擦除和重寫。8) 擦除FLASH:ECU執(zhí)行上一步驟收到的關(guān)鍵代碼,擦除完成后,ECU將清除該段關(guān)鍵代碼。9) 下載數(shù)據(jù):該過程下載新的程序到ECU的FLASH。HYPERLINK /10) 校驗數(shù)據(jù):在此過程中ECU檢查下載的數(shù)據(jù),假如推斷為正確,則在FLASH中寫入識不碼和代碼校驗數(shù)據(jù)。11) 復(fù)位ECU:ECU執(zhí)行復(fù)位,恢復(fù)到正常工作狀態(tài)。12) 開啟常規(guī)信息傳遞:重新開啟網(wǎng)絡(luò)上其它操縱器上的常規(guī)信息傳遞。13) 開啟故障碼識不和存儲功能:重新開啟網(wǎng)絡(luò)上其它操縱器的故障碼識不和存儲功能。3基于KWP2000的ECU在線編程設(shè)計與實現(xiàn)3.1硬件設(shè)計系統(tǒng)CPU采納Fr
35、eescale公司的MC9S08AW60,該芯片內(nèi)部集成了標(biāo)準(zhǔn)串口操縱器,LIN總線驅(qū)動器采納了PHILIPS公司的TJA1020,驅(qū)動部分電路如圖1,由硬件部分實現(xiàn)了通信協(xié)議的物理層和數(shù)據(jù)鏈路層。圖1. LIN總線驅(qū)動部分電路圖3.2軟件設(shè)計與實現(xiàn)3.2.1 內(nèi)存地址分配MC9S08AW60的存儲空間分配如圖2:圖2. 存儲空間分配示意圖以下代碼實現(xiàn)了上述的芯片配置。/*設(shè)代碼愛護區(qū)為 0 xfc000 xffff */const volatile NVPROTSTR _NVPROT0 x0000ffbd = 0 xfa;/*關(guān)閉芯片后門鎖,打開中斷向量表重映射,新的中斷向量表地址為0 xf
36、bc00 xfbff */const volatile NVOPTSTR _NVOPT0 x0000ffbf = 0 x3e;HYPERLINK /3.2.2 軟件實現(xiàn)ECU程序的狀態(tài)切換流程圖如圖3:圖3. 程序狀態(tài)切換流程圖講明:1)依照上位機的KWP2000指令,程序在以下5種工作狀態(tài)中切換,如表1:表1 程序工作狀態(tài)表2)通信中用到以下KWP2000命令,如表2:命令對應(yīng)代碼切換到擴展診斷過程命令10 92查詢目標(biāo)ECU識不碼命令查詢ECU ID1a 87查詢應(yīng)用代碼ID1a 9c查詢Bootloader程序ID1a 9e查詢數(shù)據(jù)區(qū)ID1a 9d禁止故障碼記錄命令85 02 ff 00
37、 01 01禁止常規(guī)通信數(shù)據(jù)收發(fā)命令28 02開啟安全限制命令請求密碼種子27 05回復(fù)安全密碼27 06切換到編程模式命令10 85數(shù)據(jù)傳送命令請求下載數(shù)據(jù)34 xx數(shù)據(jù)傳送36 xx請求結(jié)束下載37 xx 數(shù)據(jù)校驗31 e1 01開啟常規(guī)通信數(shù)據(jù)收發(fā)命令29 02開啟故障碼記錄命令85 02 ff 00 02復(fù)位命令11 01表2: 命令講明表3)由于芯片結(jié)構(gòu)的緣故,程序在寫flash時必須跳到RAM中執(zhí)行,以下代碼定義了用于存儲關(guān)鍵代碼的RAM空間和指向該空間的函數(shù)CriticalProcess()。volatile unsigned char criticalProcess100; /* 定義RAM空間用于存儲關(guān)鍵代碼 */#define CriticalProcess (void(*)(void)( criticalProcess) /*定義函數(shù)指向RAM*/在線編程過程中程序?qū)⒔邮盏降哪繕?biāo)代碼放入RAM中,接收完成后調(diào)用Cr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 7 角的初步認識 第二課時(說課稿)-2023-2024學(xué)年二年級下冊數(shù)學(xué)蘇教版001
- Unit 11 Chinese festivals(period 1)(說課稿)-2023-2024學(xué)年滬教牛津版(深圳用)英語五年級下冊001
- 16 家鄉(xiāng)新變化(說課稿)2023-2024學(xué)年統(tǒng)編版道德與法治二年級上冊
- 2023四年級數(shù)學(xué)上冊 二 加減法的關(guān)系和加法運算律第5課時說課稿 西師大版
- 2023九年級物理下冊 第十一章 物理學(xué)與能源技術(shù)11.3能源說課稿 (新版)教科版
- 2024-2025學(xué)年高中數(shù)學(xué) 第二章 函數(shù) 2 函數(shù) 2.2.1 函數(shù)的概念說課稿 北師大版必修第一冊
- 2023八年級數(shù)學(xué)上冊 第2章 三角形2.1 三角形第1課時 三角形的有關(guān)概念及三邊關(guān)系說課稿 (新版)湘教版
- Unit 2 Face Lesson 3(說課稿)-2024-2025學(xué)年人教新起點版英語一年級上冊
- Unit1 Lesson1 Nice to meet you.(說課稿)-2024-2025學(xué)年閩教版英語三年級上冊
- 2024年秋期八年級英語下冊 Unit 4 Dealing with Problems Lesson 11 Online Time說課稿 (新版)北師大版
- 護理人文知識培訓(xùn)課件
- 建筑工程施工安全管理課件
- 2025年春新人教版數(shù)學(xué)七年級下冊教學(xué)課件 7.2.3 平行線的性質(zhì)(第1課時)
- 安徽省合肥市2025年高三第一次教學(xué)質(zhì)量檢測地理試題(含答案)
- 2025年新合同管理工作計劃
- 山東省中考物理總復(fù)習(xí) 八上 第1講 機械運動
- 國家綜合性消防救援隊伍消防員管理規(guī)定
- 2023年全國各地高考英語試卷:完形填空匯編(9篇-含解析)
- 五年級上冊數(shù)學(xué)習(xí)題課件 簡便計算專項整理 蘇教版 共21張
- 疼痛科的建立和建設(shè)
- 運動技能學(xué)習(xí)PPT課件
評論
0/150
提交評論