胡艷峰
(陜西重型汽車有限公司汽車工程研究院,陜西 西安 710200)
隨著汽車技術(shù)的快速發(fā)展,汽車性能不斷提高,汽車電子控制裝置在汽車上的應(yīng)用越來(lái)越多,傳統(tǒng)的汽車布線難以滿足汽車技術(shù)發(fā)展的要求,因此汽車總線技術(shù)越來(lái)越受到主機(jī)廠的關(guān)注。目前CAN總線技術(shù)在汽車上已被廣泛應(yīng)用,并且在相當(dāng)長(zhǎng)一段時(shí)間內(nèi)仍將占據(jù)主流地位。與此同時(shí),總線的診斷技術(shù)也在同時(shí)成長(zhǎng)壯大。本文將著重對(duì)電動(dòng)汽車CAN總線的診斷系統(tǒng)設(shè)計(jì)進(jìn)行探討。
標(biāo)準(zhǔn)化的診斷方式是車載自診斷方法的主流。提到診斷,首先讓人想到診斷標(biāo)準(zhǔn),不同類型的總線的診斷都是基于一定的診斷標(biāo)準(zhǔn)進(jìn)行。ISO 9141、ISO 14230、ISO/DIS l5765都是早期診斷使用的K線標(biāo)準(zhǔn)。隨著之后CAN總線技術(shù)的應(yīng)用,關(guān)于CAN總線的診斷標(biāo)準(zhǔn)也隨之應(yīng)運(yùn)而生。ISO 15765是基于CAN總線的診斷標(biāo)準(zhǔn),但是其診斷內(nèi)容更主要是針對(duì)有關(guān)排放系統(tǒng);ISO 14229(UDS,Unified Diagnosis Services)統(tǒng)一診斷服務(wù)定義了一系列的通用的診斷服務(wù)功能;SAE J1939針對(duì)于重型載貨汽車、大客車的應(yīng)用,規(guī)定了一系列的DM診斷報(bào)文。本文將闡述的CAN總線診斷系統(tǒng)是基于UDS及ISO 15765。
為什么要有診斷呢?診斷及故障診斷,它包含兩方面內(nèi)容:一是對(duì)設(shè)備的運(yùn)行狀態(tài)進(jìn)行監(jiān)測(cè),多用于車輛設(shè)計(jì)完成并裝車后的功能驗(yàn)證,是技術(shù)人員的設(shè)計(jì)手段;二是在發(fā)現(xiàn)異常情況后對(duì)設(shè)備的故障進(jìn)行分析、診斷,這種情況多用于4S店工作人員對(duì)故障件的故障排查及定位,以便定位、解決故障并反饋給技術(shù)人員。診斷的存在大大方便了故障的排查,即使完全不了解設(shè)計(jì)的銷售人員也可以進(jìn)行。
診斷的方式是什么呢?診斷時(shí)要用到診斷設(shè)備,一般稱之為診斷儀。車輛設(shè)計(jì)過(guò)程中都會(huì)有診斷接口,用于診斷儀接入進(jìn)行診斷。在總線型拓?fù)浣Y(jié)構(gòu)中,當(dāng)車輛網(wǎng)絡(luò)只有一條CAN總線時(shí),可以將診斷儀直接掛在車輛CAN網(wǎng)絡(luò)上,這樣診斷設(shè)備就可以對(duì)網(wǎng)絡(luò)上任意一個(gè)節(jié)點(diǎn)進(jìn)行診斷,如圖1所示。當(dāng)車輛網(wǎng)絡(luò)不止一條CAN網(wǎng)絡(luò)時(shí)(這種情況會(huì)存在網(wǎng)關(guān)),有2種方式:一是在每一條CAN網(wǎng)絡(luò)上都預(yù)留出診斷接口,方便診斷設(shè)備接入網(wǎng)絡(luò)(相當(dāng)于只有一條CAN總線的情況);二是診斷設(shè)備通過(guò)網(wǎng)關(guān)實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)上節(jié)點(diǎn)的診斷功能,如圖2所示[1]。
圖1 診斷儀直接掛在CAN網(wǎng)絡(luò)上
圖2 診斷儀通過(guò)網(wǎng)關(guān)進(jìn)行診斷
ISO 15765-2定義了網(wǎng)絡(luò)層協(xié)議數(shù)據(jù)單元[2],即N_PDU(Network Protocol Data Unit)。N_PDU的目的是建立一個(gè)點(diǎn)對(duì)點(diǎn)的網(wǎng)絡(luò)通信的通道,用于交換通信參數(shù)及數(shù)據(jù)傳輸。ISO 15765-2描述了4種不同類型的網(wǎng)絡(luò)層協(xié)議數(shù)據(jù)單元,這4種分別是單幀、首幀、連續(xù)幀以及數(shù)據(jù)流控制。診斷報(bào)文采用常規(guī)固定式地址模式,并定義了兩種尋址方式,一種是物理尋址,一種是功能尋址,詳見(jiàn)表1、表2,表中詳細(xì)描述了CAN報(bào)文格式,包括報(bào)文內(nèi)容、數(shù)據(jù)場(chǎng)以及單個(gè)位的定義。
N_PDU類型用N_PCI(Network Protocol Control Information)來(lái)區(qū)分,詳見(jiàn)表3,由表3可看出,字節(jié)1的高四位用于區(qū)分N_PDU的類型。
表1 物理尋址報(bào)文格式
表2 功能尋址報(bào)文格式
表3 N_PCI字節(jié)概述
表3中其它縮寫含義如表4所示。
表4 表3中縮寫含義
ISO 15765-3、UDS中規(guī)定了一系列的通用診斷服務(wù)。診斷服務(wù)的本質(zhì)是信息交互,一般是診斷儀對(duì)節(jié)點(diǎn)發(fā)出診斷需求,被診斷的節(jié)點(diǎn)需要給出相應(yīng)的響應(yīng),即應(yīng)答信息(應(yīng)答有肯定應(yīng)答和否定應(yīng)答兩種)。由于通用的診斷服務(wù)是非常全面的考慮,主機(jī)廠在開(kāi)發(fā)自己車型的診斷系統(tǒng)時(shí),肯定不能將所有診斷服務(wù)都用到,因此都需要根據(jù)自身的需要選取需要的診斷服務(wù),從而形成自己車型特有的診斷系統(tǒng)。某電動(dòng)汽車車型診斷服務(wù)選取見(jiàn)表5。
表5 診斷服務(wù)選取
表5的服務(wù)中,應(yīng)答ID均指肯定應(yīng)答ID。每一個(gè)診斷服務(wù)請(qǐng)求的肯定應(yīng)答在UDS中都有具體的定義,并根據(jù)請(qǐng)求方式的不同肯定應(yīng)答的方式不同,即都定義了相應(yīng)的消息幀格式,這里不再詳述。但對(duì)于否定應(yīng)答,只給出了通用的否定應(yīng)答。否定應(yīng)答消息格式及否定應(yīng)答代碼詳見(jiàn)表6、表7。
表6 否定應(yīng)答消息格式定義
表7 否定應(yīng)答代碼
診斷服務(wù)是診斷標(biāo)準(zhǔn)規(guī)定的,主機(jī)廠只能在里面選取自己需要的服務(wù),并在自己的診斷系統(tǒng)實(shí)現(xiàn)即可;診斷參數(shù)卻是由主機(jī)廠自己來(lái)定義的,具體可理解為功能診斷行為及故障代碼的定義。電動(dòng)汽車的主要節(jié)點(diǎn)按所屬系統(tǒng)劃分見(jiàn)表8。
表8 電動(dòng)汽車節(jié)點(diǎn)劃分
SAE J2012針對(duì)排放系統(tǒng)給出了一種占用2個(gè)字節(jié)的故障代碼的定義方式,見(jiàn)表9。
表9 SAE J2012故障代碼定義
電動(dòng)汽車由于沒(méi)有發(fā)動(dòng)機(jī)等,因此SAE J2012規(guī)定的故障代碼不能直接使用。鑒于電動(dòng)汽車自身的特點(diǎn)以及參照SAE J1939定義的故障碼為4個(gè)字節(jié),這里自定義一種故障代碼的描述方式,具體為一個(gè)診斷故障代碼(DTC)占用4個(gè)字節(jié),并由4個(gè)部分構(gòu)成,這4個(gè)部分是:故障等級(jí)、系統(tǒng)分類代碼、故障代碼和故障發(fā)生次數(shù),數(shù)據(jù)填充方式選用Intel。詳見(jiàn)表10。
說(shuō)明:①故障等級(jí)占3位,共有4級(jí)故障等級(jí),其中4級(jí)故障最為嚴(yán)重。②系統(tǒng)分類代碼為P、C、B、U,分別代表動(dòng)力系統(tǒng)代碼、底盤系統(tǒng)代碼、車身系統(tǒng)代碼和通信網(wǎng)絡(luò)系統(tǒng)代碼;為了與SAE J2012故障代碼定義兼容,定義第1字節(jié)系統(tǒng)分類代碼中的P、B、C、U用第4位和第3位來(lái)表示,具體為00:P;01:C;10:B;11:U。故障代碼定義如表11所示。
表10 自定義故障代碼格式
表11 故障代碼定義
按照故障代碼格式給出故障碼例子,如電機(jī)母線電壓欠壓故障為3級(jí)故障,故障代碼為P1064,故障代碼示例見(jiàn)表12。
表12 故障代碼示例
現(xiàn)在就儀表節(jié)點(diǎn)給出診斷功能定義示例。電動(dòng)汽車儀表上要通過(guò)CAN總線顯示電動(dòng)汽車特有的一些點(diǎn)亮符號(hào)[4],可參照表13。
表13 GB/T 4094.2—2005標(biāo)準(zhǔn)內(nèi)容
我們定義一個(gè)字節(jié)來(lái)包含表13中的報(bào)警提示,并定義0——指示燈不點(diǎn)亮,沒(méi)有發(fā)生故障;1——指示燈點(diǎn)亮,發(fā)生相應(yīng)故障。報(bào)警提示定義見(jiàn)表14。
表14 報(bào)警提示定義
版本信息是診斷中一個(gè)需要關(guān)注的點(diǎn)。在診斷測(cè)試過(guò)程中,很多時(shí)候會(huì)出現(xiàn)信息不匹配,這時(shí)候首先要查的是版本信息是否正確,因此主機(jī)廠一般都會(huì)要求網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)發(fā)送自己的版本信息。版本信息定義見(jiàn)表15。
表15 軟件版本信息定義
本文從診斷拓?fù)?、診斷標(biāo)準(zhǔn)到用戶自定義的診斷參數(shù),詳細(xì)闡述了診斷系統(tǒng)的設(shè)計(jì)過(guò)程。此外還對(duì)電動(dòng)汽車的節(jié)點(diǎn)進(jìn)行了系統(tǒng)分類,并提出了一種自定義的診斷故障代碼格式。
[1] ISO 14229—2006,Road vehicles-Unified diagnostic services(UDS)-Specification and requirements[S].
[2] ISO 15765-2:2004,Road vehicles-Diagnostics on CAN-Part 2:Network layer services[S].
[3] ISO 15765-3:2004,Road vehicles-Diagnostics on CAN-Part 2:Application layer services[S].
[4] 胡艷峰.基于CANoe的新能源車顯示屏測(cè)試[J].汽車電器, 2017(1):8-11.