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