基于K線的BCM診斷的實現(xiàn)
引言
本文引用地址:http://www.biyoush.com/article/128876.htm隨著汽車電子系統(tǒng)越來越復(fù)雜,診斷功能已經(jīng)成為ECU軟件設(shè)計的一個重要組成部分,對ECU控制系統(tǒng)的正常運行及其大規(guī)模應(yīng)用的市場化過程非常關(guān)鍵。隨著ECU功能的增加以及升級換代的需要,診斷標準及廠商自定義診斷功能越來越豐富,各種服務(wù)子功能也越來越細化,增加了診斷的難度,因此,深入研究診斷協(xié)議及其實現(xiàn)非常必要。K線和CAN總線是業(yè)內(nèi)廣泛采用的兩種診斷標準,CAN總線在歐美車中廣泛使用,而K線在國產(chǎn)車中應(yīng)用廣泛,筆者結(jié)合為某國產(chǎn)車型開發(fā)一款BCM(Body Control Module,車身控制模塊)的經(jīng)驗,分析K線規(guī)范,然后從故障自診斷和在線診斷兩個方面講述一下BCM診斷功能的設(shè)計與實現(xiàn)。
K線協(xié)議分析
K線是ISO9141定義的用于診斷通信的串行數(shù)據(jù)總線,ISO14230在ISO9141的基礎(chǔ)上將其總線電壓擴展到24V,并完整定義了KWP2000協(xié)議,完善了診斷通信標準,擴展了診斷服務(wù)。K線通信采用SCI數(shù)據(jù)格式,數(shù)據(jù)鏈路層在串口通信上以軟件形式實現(xiàn),物理層比較簡單,通過單根物理線完成半雙工異步通信,選擇LIN總線物理層芯片即可完成物理電平與邏輯電平的轉(zhuǎn)換。
ISO14230-1定義了K線物理層協(xié)議,ISO14230-2定義了數(shù)據(jù)鏈路層協(xié)議,ISO14230-3定義了應(yīng)用層協(xié)議及各項診斷服務(wù),下面從報文結(jié)構(gòu)、初始化過程、定時參數(shù)三個方面重點介紹其數(shù)據(jù)鏈路層協(xié)議。
報文結(jié)構(gòu)
K線診斷報文結(jié)構(gòu)如表1所示。
K線報文由報文頭、數(shù)據(jù)字段及校驗和組成。報文頭包含格式字節(jié)Fmt、目標地址Tgt、源地址Src和附加長度信息Len;數(shù)據(jù)字段包括服務(wù)標識符Sid和數(shù)據(jù)Data,其長度由Fmt和Len決定;校驗和CS為單字節(jié)校驗,計算方式為對報文頭和數(shù)據(jù)字段中的所有數(shù)據(jù)累加求和,忽略求和過程中產(chǎn)生的進位。
評論