KWP2000協(xié)議分析和基于CANoe的開發(fā)測試
KWP2000協(xié)議分析及基于CANoe的開發(fā)測試
摘 要:本文介紹了歐洲汽車領(lǐng)域廣泛采用的車載診斷協(xié)議KWP2000,針對(duì)KWP2000診斷服務(wù)在K線(ISO 14230)和CAN總線(ISO 15765)上的兩種實(shí)現(xiàn)方式,對(duì)協(xié)議的核心內(nèi)容和發(fā)展歷史進(jìn)行了較為深入的剖析和對(duì)比。本文還介紹了采用Matlab/Simulink/StateFlow進(jìn)行協(xié)議開發(fā)的一般流程,以及該協(xié)議在Vector公司的CANoe軟硬件平臺(tái)上的應(yīng)用實(shí)現(xiàn)和開過程。
關(guān)鍵詞:KWP2000,K線,CAN總線,開發(fā),CANoe
1 前言
在汽車故障診斷領(lǐng)域,針對(duì)診斷設(shè)備和汽車ECU之間的數(shù)據(jù)交換,各大汽車公司幾乎都制訂了相關(guān)的標(biāo)準(zhǔn)和協(xié)議。其中,歐洲汽車領(lǐng)域廣泛使用的一種車載診斷協(xié)議標(biāo)準(zhǔn)是KWP2000(Keyword Protocol 2000),該協(xié)議實(shí)現(xiàn)了一套完整的車載診斷服務(wù),并且滿足E-OBD(European 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ò)仲裁機(jī)制、較高的通訊速率(可達(dá)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ā)和測試應(yīng)用方面,美國MathWorks公司和德國Vector公司提供了功能強(qiáng)大的開發(fā)和測試工具,可分別用于協(xié)議棧源碼的開發(fā)和ECU測試。
2 基于K線的KWP2000協(xié)議
基于K線的KWP2000協(xié)議標(biāo)準(zhǔn)主要包括ISO/WD 14230-1~14230-4,各部分協(xié)議與OSI模型的對(duì)應(yīng)關(guān)系如表1所示。
表1 KWP2000協(xié)議與OIS模型的對(duì)應(yīng)關(guān)系
OSI模型 |
基于K線的KWP2000 |
基于CAN總線的KWP2000 |
應(yīng)用層 |
ISO 14230-3 |
ISO 15765-3 |
表述層 |
N/A |
N/A |
會(huì)話層 |
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線、L線),它在ISO 9141-2的基礎(chǔ)上把數(shù)據(jù)交換系統(tǒng)擴(kuò)展到了24V電壓系統(tǒng)。ISO 14230-2規(guī)定了KWP2000的數(shù)據(jù)鏈路層協(xié)議,包括報(bào)文結(jié)構(gòu)、初始化過程、通訊連接管理、定時(shí)參數(shù)和錯(cuò)誤處理等內(nèi)容。K線的報(bào)文包括報(bào)文頭、數(shù)據(jù)域和校驗(yàn)和三部分,其中報(bào)文頭包含格式字節(jié)、目標(biāo)地址(可選)、源地址(可選)和附加長度信息(可選),如表2所示。
表2 基于K線的KWP2000報(bào)文結(jié)構(gòu)[3]
報(bào)文頭 |
數(shù)據(jù)域 |
校驗(yàn)和 | |||||||
Fmt |
Tgt1) |
Src1) |
Len1) |
SId2) |
. . |
Data2) |
. . |
CS | |
最長4 字節(jié) |
最長255 字節(jié) |
1字節(jié) |
1)可選字節(jié),取決于格式字節(jié)Fmt的A1A0位
2)服務(wù)標(biāo)識(shí)符(Service ID),數(shù)據(jù)域的第1個(gè)字節(jié)
在開始診斷服務(wù)之前,診斷設(shè)備必須對(duì)ECU進(jìn)行初始化,通過ECU的響應(yīng)獲取ECU的源地址、通訊波特率、支持的報(bào)文頭格式、定時(shí)參數(shù)等信息。ECU所支持的報(bào)文頭和定時(shí)參數(shù)信息包含在ECU返回的“關(guān)鍵字(Key Word)”中(這也是協(xié)議命名的由來)。關(guān)鍵字由兩個(gè)字節(jié)構(gòu)成,如圖1所示,關(guān)鍵字的低字節(jié)中各位的含義如表3所示。
圖1 關(guān)鍵字格式[3]
表3 關(guān)鍵字低字節(jié)中各位的含義[3]
Bit | = 0 | = 1 |
AL0 | 不支持格式字節(jié)中的數(shù)據(jù)長度信息 | 支持格式字節(jié)中的數(shù)據(jù)長度信息 |
AL1 | 不支持附加長度字節(jié) | 支持附加長度字節(jié) |
HB0 | 不支持一個(gè)字節(jié)的報(bào)文頭 | 支持一個(gè)字節(jié)的報(bào)文頭 |
HB1 | 不支持在報(bào)文頭中包含目標(biāo)地址/源地址 | 支持在報(bào)文頭中包含目標(biāo)地址/源地址 |
TP0*) | 采用正常定時(shí)參數(shù)設(shè)置 | 采用擴(kuò)展定時(shí)參數(shù)設(shè)置 |
TP1*) | 采用擴(kuò)展定時(shí)參數(shù)設(shè)置 | 采用正常定時(shí)參數(shù)設(shè)置 |
*) 只允許TP0,TP1 = 0,1 或者1,0
診斷設(shè)備可以采用兩種方式對(duì)ECU進(jìn)行初始化——5Baud初始化和快速初始化,對(duì)于這兩種初始化的時(shí)序在數(shù)據(jù)鏈路層協(xié)議[3]中均有明確規(guī)定。完成初始化過程后,診斷設(shè)備和ECU方可進(jìn)行應(yīng)用層的診斷服務(wù)和響應(yīng)。ISO 14230-3規(guī)定了應(yīng)用層的服務(wù)規(guī)范,包括診斷管理功能組、數(shù)據(jù)傳輸功能組、診斷信息傳輸功能組、輸入/輸出控制功能組、遠(yuǎn)程啟動(dòng)ECU例程功能組、數(shù)據(jù)上載/下載功能組和擴(kuò)展功能組。在診斷服務(wù)請(qǐng)求/響應(yīng)過程中,診斷設(shè)備和ECU必須遵循圖2所示的時(shí)序和相關(guān)定時(shí)參數(shù)。對(duì)于初始化和診斷服務(wù)過程中出現(xiàn)的各種定時(shí)錯(cuò)誤,在數(shù)據(jù)鏈路層和應(yīng)用層協(xié)議里面都有相應(yīng)的處理規(guī)范,診斷設(shè)備及ECU的應(yīng)用程序都必須嚴(yán)格遵守。
圖2 K線診斷服務(wù)時(shí)序圖[3]
3 基于CAN總線的KWP2000協(xié)議
基于CAN總線的KWP2000協(xié)議實(shí)際上指的就是ISO/WD 15765-1~15765-4,該協(xié)議把KWP2000應(yīng)用層的診斷服務(wù)移植到CAN總線上。數(shù)據(jù)鏈路層采用了ISO 11898-1協(xié)議,該協(xié)議是對(duì)CAN2.0B協(xié)議的進(jìn)一步標(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)系,并且為長報(bào)文的多包數(shù)據(jù)傳輸過程提供了同步控制、順序控制、流控制和錯(cuò)誤恢復(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)和遠(yuǎn)程地址(RA)
2) 協(xié)議控制信息:包含四種幀格式,見表5
3) 數(shù)據(jù)域:KWP2000服務(wù)標(biāo)識(shí)符(Service ID) + 服務(wù)參數(shù)
應(yīng)用層協(xié)議規(guī)定了四種服務(wù)數(shù)據(jù)結(jié)構(gòu),
圖3 基于CAN總線的KWP2000診斷服務(wù)流程圖
從上面的服務(wù)流程可以看出,基于CAN總線的KWP2000協(xié)議支持多包數(shù)據(jù)傳輸,并且多包數(shù)據(jù)的管理和組織是在網(wǎng)絡(luò)層完成的,應(yīng)用層不必關(guān)心數(shù)據(jù)的打包和解包過程。為實(shí)現(xiàn)這一功能,網(wǎng)絡(luò)層定義了四種PDU(以PCI類型進(jìn)行區(qū)分,如表5所示):
單幀(Single Frame,SF) - 數(shù)據(jù)域及PCI可在一個(gè)CAN數(shù)據(jù)幀中容納時(shí),服務(wù)報(bào)文以單幀CAN報(bào)文進(jìn)行發(fā)送。
第一幀(First Frame,F(xiàn)F) - 數(shù)據(jù)域及PCI不能在一個(gè)CAN數(shù)據(jù)幀中容納時(shí),服務(wù)報(bào)文以多幀CAN報(bào)文進(jìn)行發(fā)送,其中第一幀(FF)除傳送數(shù)據(jù)外,還包含了多包數(shù)據(jù)的長度信息。
連續(xù)幀(Consecutive Frame,CF) - 多包數(shù)據(jù)中除第一幀外的連續(xù)數(shù)據(jù)幀,除傳送數(shù)據(jù)外,還包含了多包數(shù)據(jù)的包序號(hào)。
流控制幀(Flow Control,F(xiàn)C) - 用于多包數(shù)據(jù)傳輸過程中的流控制,不包含數(shù)據(jù),只包含流控制狀態(tài)、數(shù)據(jù)塊大小和最小間隔時(shí)間等流控制信息。
表5 15765協(xié)議網(wǎng)絡(luò)層四種PDU對(duì)應(yīng)的PCI格式[7]
N_PDU 名稱 |
Byte #1 |
Byte #2 |
Byte #3 | |
Bit # 7-4 |
Bit # 3-0 |
N/A |
N/A | |
單幀(SF) |
N_PCItype=0 |
SF_DL1) |
N/A |
N/A |
第一幀(FF) |
N_PCItype=1 |
FF_DL2) |
N/A | |
連續(xù)幀(CF) |
N_PCItype=2 |
SN3) |
N/A |
N/A |
流控制幀(FC) |
N_PCItype=3 |
FS4) |
BS5) |
STmin6) |
1) 單幀數(shù)據(jù)中數(shù)據(jù)域的字節(jié)長度,PCI的長度不包括在內(nèi)。
2) 多包數(shù)據(jù)的數(shù)據(jù)域字節(jié)總長度。
3) 多包數(shù)據(jù)的數(shù)據(jù)包編號(hào)。
4) 流控制狀態(tài)信息。
5) 數(shù)據(jù)塊大小。
6) 多包數(shù)據(jù)傳輸?shù)淖钚r(shí)間間隔。
多包數(shù)據(jù)的傳輸流程如圖4所示。發(fā)送節(jié)點(diǎn)首先發(fā)送“第一幀”,告知接收節(jié)點(diǎn)將要發(fā)送的數(shù)據(jù)的總長度;接收節(jié)點(diǎn)分配好資源、準(zhǔn)備接收數(shù)據(jù),然后以一幀“流控制幀”告知發(fā)送節(jié)點(diǎn)一次可以發(fā)送的數(shù)據(jù)包數(shù)目和時(shí)間間隔;發(fā)送節(jié)點(diǎn)接下來就根據(jù)接收節(jié)點(diǎn)的接收能力將編好序號(hào)的數(shù)據(jù)包依次發(fā)送過去。
圖4 多包數(shù)據(jù)傳輸流程圖
在數(shù)據(jù)傳送過程中,一個(gè)網(wǎng)絡(luò)層PDU被編排成一個(gè)CAN數(shù)據(jù)幀,它們之間的對(duì)應(yīng)關(guān)系由尋址模式(Addressing mode)決定?;贗SO 15765協(xié)議規(guī)定了四種尋址模式:正常尋址模式(Normal)、正常固定尋址模式(Normal fixed)、擴(kuò)展尋址模式(Extended)和用于遠(yuǎn)程診斷的混合尋址模式(Mixed)。其中,正常固定尋址模式必須采用CAN擴(kuò)展幀,并且SAE J1939為該尋址模式下的KWP2000診斷服務(wù)保留了兩個(gè)專用參數(shù)組編號(hào)(PGN):其中PF=218(PF的具體定義請(qǐng)參考SAE J1939數(shù)據(jù)鏈路層協(xié)議)的參數(shù)組用于物理尋址(phy),PF=219的參數(shù)組用于功能尋址(fcn)。正常固定尋址模式的PDU與CAN數(shù)據(jù)幀之間的對(duì)應(yīng)關(guān)系如表6所示。
表6 正常固定尋址模式下N_PDU與CAN數(shù)據(jù)幀之間的對(duì)應(yīng)關(guān)系[7]
N_PDU類型 |
CAN 29位標(biāo)識(shí)符 |
CAN數(shù)據(jù)域 | ||||||||||||
28~26 |
25 |
24 |
23~16 |
15~8 |
7~0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | |
單幀(SF) |
011(bin) |
0 |
0 |
218(dec)-phy 219(dec)-fcn |
N_TA |
N_SA |
N_PCI |
N_Data | ||||||
第一幀(FF) |
011(bin) |
0 |
0 |
218(dec)-phy 219(dec)-fcn |
N_TA |
N_SA |
N_PCI |
N_Data | ||||||
連續(xù)幀(CF) |
011(bin) |
0 |
0 |
218(dec)-phy 219(dec)-fcn |
N_TA |
N_SA |
N_PCI |
N_Data | ||||||
流控制(FC) |
011(bin) |
0 |
0 |
218(dec)-phy 219(dec)-fcn |
N_TA |
N_SA |
N_PCI |
N/A |
混合尋址模式與正常固定尋址模式類似,唯一的區(qū)別是CAN數(shù)據(jù)域的第一個(gè)字節(jié)用于填充遠(yuǎn)程地址(RA),N_PCI和診斷服務(wù)數(shù)據(jù)的填充位置向后移動(dòng)一個(gè)字節(jié)。混合尋址模式用于跨越網(wǎng)段進(jìn)行遠(yuǎn)程診斷,遠(yuǎn)程診斷的機(jī)制如圖5所示。圖中CAN1和CAN2兩個(gè)不同的子網(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)進(jìn)行診斷。
圖5 跨越網(wǎng)段的遠(yuǎn)程診斷
4 兩種協(xié)議的簡單比較
從前面基于K線和基于CAN總線的KWP2000協(xié)議可以看出,兩種協(xié)議在物理層、數(shù)據(jù)鏈路層及網(wǎng)絡(luò)層(15765)上存在以下主要差別,這也是K線被CAN總線取而代之的主要原因所在:
- K線通訊速率較低,最大波特率僅為10400bps;CAN總線通訊速率較高,最大波特率可達(dá)1Mbps。
- K線采用單端信號(hào)傳輸,抗干擾能力較弱,可靠性較差;CAN總線采用差分信號(hào)傳輸,抗干擾能力強(qiáng),信號(hào)傳輸?shù)目煽啃愿摺?
- K線診斷在啟動(dòng)應(yīng)用層診斷服務(wù)之前必須對(duì)ECU進(jìn)行初始化建立連接,并且初始化過程比較復(fù)雜;而基于CAN總線的診斷設(shè)備不需要對(duì)ECU進(jìn)行初始化即可進(jìn)行診斷服務(wù)。
- K線診斷應(yīng)用程序開發(fā)者必須親自管理數(shù)據(jù)傳輸過程中的字節(jié)間定時(shí),并處理底層通訊錯(cuò)誤;CAN數(shù)據(jù)幀以整幀報(bào)文的形式進(jìn)行發(fā)送,應(yīng)用程序開發(fā)者不必管理字節(jié)間定時(shí),并且CAN總線物理層和數(shù)據(jù)鏈路層具備完善的錯(cuò)誤檢測和錯(cuò)誤恢復(fù)機(jī)制,應(yīng)用程序不必監(jiān)視和處理底層通訊錯(cuò)誤。
- K線網(wǎng)絡(luò)結(jié)構(gòu)單一,網(wǎng)絡(luò)管理功能很弱;而利用CAN總線可構(gòu)建復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),可跨越網(wǎng)段進(jìn)行遠(yuǎn)程診斷。
- K線網(wǎng)絡(luò)采用破壞性的仲裁機(jī)制,當(dāng)診斷設(shè)備采用功能尋址與多個(gè)ECU進(jìn)行通訊時(shí),為避免總線沖突,ECU開發(fā)者必須采取措施保證多個(gè)ECU順序訪問總線;而CAN網(wǎng)絡(luò)采用非破壞性的仲裁機(jī)制,并且仲裁過程由數(shù)據(jù)鏈路層完成,當(dāng)診斷設(shè)備采用功能尋址與多個(gè)ECU進(jìn)行通訊時(shí),ECU開發(fā)者不必考慮總線訪問沖突問題。
- K線服務(wù)報(bào)文最大字節(jié)長度僅為255,無法滿足更長報(bào)文的傳輸要求,并且在長報(bào)文的傳輸過程中用戶必須自己采取措施進(jìn)行連接管理,可靠性和兼容性較差;而CAN總線診斷服務(wù)報(bào)文最大字節(jié)長度可達(dá)4096(12位),對(duì)于長報(bào)文的傳輸,網(wǎng)絡(luò)層協(xié)議還具備標(biāo)準(zhǔn)化和規(guī)范化的同步控制、順序控制、流控制和錯(cuò)誤恢復(fù)等功能,具備很高的可靠性、兼容性。
5 KWP2000協(xié)議棧的開發(fā)及測試
從前面的協(xié)議分析可以看出,無論是基于K線還是CAN總線的KWP2000協(xié)議,都是邏輯非常復(fù)雜的系統(tǒng),并且具有嚴(yán)格的定時(shí)和錯(cuò)誤處理規(guī)范。如果采用純手工的方式來進(jìn)行KWP2000協(xié)議棧的開發(fā),不僅要耗費(fèi)大量的時(shí)間和人力,其通用性、完備性、可靠性和可維護(hù)性都很難保證。而MATLAB/Simulink/StateFlow不僅具備方便快捷的上層實(shí)時(shí)仿真環(huán)境,還集成了高效的嵌入式代碼自動(dòng)生成工具,為協(xié)議棧的開發(fā)和維護(hù)提供了強(qiáng)大的支持平臺(tái)。此外,由德國Vector公司的CANoe軟件和相關(guān)硬件板卡組成的應(yīng)用開發(fā)平臺(tái),可用于汽車網(wǎng)絡(luò)(CAN,Lin等)的上層協(xié)議開發(fā)和系統(tǒng)測試,該平臺(tái)同時(shí)支持基于K線和CAN總線的KWP2000診斷協(xié)議,可作為ECU和診斷設(shè)備的測試標(biāo)準(zhǔn)。
圖6是協(xié)議源碼開發(fā)過程示意圖。首先在MATLAB/Simulink/StateFlow中遵照協(xié)議標(biāo)準(zhǔn)進(jìn)行KWP2000協(xié)議棧開發(fā),在仿真調(diào)試環(huán)境下實(shí)現(xiàn)通訊邏輯、定時(shí)控制和錯(cuò)誤處理,待系統(tǒng)完善后利用StateFlow嵌入式代碼生成工具自動(dòng)生成協(xié)議棧C代碼,并與目標(biāo)系統(tǒng)的底層驅(qū)動(dòng)進(jìn)行集成,然后植入目標(biāo)系統(tǒng)形成應(yīng)用程序,最后再利用CANoe作為標(biāo)準(zhǔn)進(jìn)行系統(tǒng)集成測試。
圖6 KWP2000協(xié)議棧開發(fā)及測試流程
在MATLAB/Simulink/StateFlow中進(jìn)行協(xié)議棧仿真開發(fā)是協(xié)議棧開發(fā)過程中的關(guān)鍵環(huán)節(jié),在這一過程中必須嚴(yán)格遵照協(xié)議標(biāo)準(zhǔn)來實(shí)現(xiàn)通訊邏輯,往往需要經(jīng)過多次“設(shè)計(jì)-仿真-修改”循環(huán)才能使系統(tǒng)最終趨于完善。MATLAB的圖形界面提供了方便快捷的仿真輸入/輸出接口,可大幅度加快開發(fā)進(jìn)度。
協(xié)議棧開發(fā)完成后可利用CANoe作為標(biāo)準(zhǔn)進(jìn)行系統(tǒng)集成測試,CANoe的KWP2000協(xié)議測試環(huán)境如圖7所示。
圖7 CANoe的KWP2000測試環(huán)境示意圖
CANoe中的KWP2000實(shí)際指的是基于CAN總線的KWP2000,即15765協(xié)議。由于CANoe默認(rèn)的硬件板卡是CAN卡,因此在建立仿真程序時(shí),只需將ECU的網(wǎng)絡(luò)模塊設(shè)置為kwp2000.dll即可進(jìn)行CAN總線的KWP2000服務(wù)測試。kwp2000.dll中包含15765應(yīng)用層協(xié)議中規(guī)定的服務(wù)請(qǐng)求、服務(wù)指示、服務(wù)響應(yīng)和服務(wù)確認(rèn)接口函數(shù),用戶調(diào)用這些函數(shù)即可完成Tester端和ECU端的KWP2000診斷服務(wù)。此外,該模塊中的功能函數(shù)還可對(duì)ECU的源地址、目標(biāo)地址、尋址模式等參數(shù)進(jìn)行動(dòng)態(tài)設(shè)置。需要注意的是,kwp2000.dll目前只提供了部分KWP2000服務(wù)的接口函數(shù),如果用戶需要進(jìn)行其它的KWP2000服務(wù)測試,必須根據(jù)KWP2000應(yīng)用層協(xié)議構(gòu)造服務(wù)報(bào)文數(shù)據(jù),然后調(diào)用該模塊中的KWP_DataReq()和KWP_GetRxData()函數(shù)進(jìn)行報(bào)文的發(fā)送和接收。
進(jìn)行基于K線的KWP2000服務(wù)測試時(shí),需要將KLineCPL.dll模塊加入CANoe仿真環(huán)境,并使用一個(gè)代理節(jié)點(diǎn)來實(shí)現(xiàn)CAN網(wǎng)絡(luò)和K線之間的報(bào)文轉(zhuǎn)發(fā)。此時(shí)CANoe使用計(jì)算機(jī)的串口,并通過一個(gè)串口/K線轉(zhuǎn)換器與實(shí)際的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ò)發(fā)展的大趨勢,將逐步取代K線診斷協(xié)議,成為下一代車載診斷協(xié)議的主流之一。
MATLAB/Simulink/Stateflow為協(xié)議棧開發(fā)提供了方便直觀的圖形用戶接口和功能強(qiáng)大的仿真調(diào)試環(huán)境及代碼生成工具,為嵌入式開發(fā)開辟了一條高效快捷之路。Vector公司的CANoe和相關(guān)硬件板卡是一個(gè)功能強(qiáng)大的應(yīng)用開發(fā)平臺(tái),可針對(duì)基于K線和CAN總線的KWP2000進(jìn)行ECU和診斷設(shè)備的上層協(xié)議開發(fā)、測試及仿真。
非常好我支持^.^
(8) 100%
不好我反對(duì)
(0) 0%
相關(guān)閱讀:
- [電子說] EtherCAT從站轉(zhuǎn)modbus RTU協(xié)議轉(zhuǎn)換網(wǎng)關(guān)用modbus slave測試的方法 2023-10-24
- [電子說] DLT698轉(zhuǎn)modbus協(xié)議網(wǎng)關(guān)把電能數(shù)據(jù)接到wincc的方法 2023-10-24
- [電子說] 快速了解電力IEC104協(xié)議規(guī)約 2023-10-24
- [電子說] 躍昉動(dòng)態(tài)|躍昉簽署亞洲城市減碳卡澳門合作框架協(xié)議 2023-10-24
- [電子說] 工業(yè)路由器一般都用哪種協(xié)議? 2023-10-24
- [電子說] 三分鐘實(shí)現(xiàn)MQTT協(xié)議網(wǎng)關(guān)串口連接三菱FX3UPLC上傳騰訊云 2023-10-23
- [電子說] 英飛凌科技、現(xiàn)代汽車和起亞達(dá)成為期多年的Si功率半導(dǎo)體供應(yīng)協(xié)議 2023-10-23
- [電子說] Type-C接口有多強(qiáng)?PD協(xié)議又是什么? 2023-10-23
( 發(fā)表人:admin )