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