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