新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 汽車CAN總線關(guān)閉故障的診斷與恢復

汽車CAN總線關(guān)閉故障的診斷與恢復

作者: 時間:2016-12-12 來源:網(wǎng)絡 收藏
  1 研究的背景和意義
  從改革開放到現(xiàn)在,汽車產(chǎn)業(yè)對我國經(jīng)濟發(fā)展產(chǎn)生巨大的推動,對社會進步產(chǎn)生了深遠的影響,逐漸成為了我國的支柱行業(yè)。近幾年來,隨著科技發(fā)展的日新月異,汽車上電子控制裝置越來越多,汽車音響,電子儀表,空調(diào)控制器,電噴發(fā)動機,BCM,ABS等等ECU在車內(nèi)形成了巨大的網(wǎng)絡系統(tǒng),按照傳統(tǒng)的布線模式,電線的錯綜復雜對汽車的電氣控制及系統(tǒng)實時網(wǎng)絡通信帶來重重困難,CAN總線網(wǎng)絡的出現(xiàn),大大簡化了綜合布線,很好的解決了系統(tǒng)間的信息交互與共享,在汽車電子技術(shù)的普及應用取得了重大進步。
  Can-Bus總線技術(shù)是“控制器局域網(wǎng)總線技術(shù)(Controller Area Network-BUS)”的簡稱,它具有極強的抗干擾和糾錯能力,最早被用于飛機、坦克等武器電子系統(tǒng)的通訊聯(lián)絡上。
  雖然CAN總線有著非常高的穩(wěn)定性,然而,一旦出現(xiàn)錯誤尤其是CAN總線關(guān)閉,對于汽車的整體功能甚至安全性都造成極大影響。為此,在汽車行業(yè)高速發(fā)展,電子與通信技術(shù)廣泛應用的今天,如何檢測汽車網(wǎng)絡故障的發(fā)生,如何修復故障,使我們能夠保證穩(wěn)定和安全的應用CAN網(wǎng)絡技術(shù)服務于汽車產(chǎn)業(yè),形成了本文研究的背景和意義。
  2 汽車CAN總線網(wǎng)絡技術(shù)的概述
  2.1 CAN總線網(wǎng)絡簡介
  在八十年代,CAN總線是由德國博世公司研究開發(fā)而成一種串行通信協(xié)議,而今形成了CAN技術(shù)規(guī)范2.0,包括支持11位地址標準幀的2.0A版本,和支持11位地址標準幀與29位地址擴展幀的2.0B版本。它的出現(xiàn)解決了汽車內(nèi)部多個微控制器進行實時數(shù)據(jù)交互的問題。在物理層上,通信介質(zhì)一般是雙絞線,也可以使同軸電纜或光纖。CAN總線的技術(shù)有以下特點。
  1)是多主系統(tǒng)。
  2)最高波特率達到1 Mbit/sec。
  3)是短幀結(jié)構(gòu)(每條報文最多8字節(jié)數(shù)據(jù))。
  4)有錯誤檢測與處理機制。
  5)有數(shù)據(jù)校驗,幀內(nèi)應答。
  6)是總線型拓撲結(jié)構(gòu)。
  7)是廣播發(fā)送。
  8)具有基于優(yōu)先級的總線仲裁機制。
  2.2 車內(nèi)CAN總線網(wǎng)絡拓撲示例圖
  車內(nèi)CAN總線網(wǎng)絡拓撲示例圖見圖1。
  2.3 CAN(高速)總線通信物理電平信號
  CAN總線采用CAN_H與CAN_L的差分信號進行通信,顯性位為邏輯0,隱性位為邏輯1,并通過“線與”的機制決定總線電平。
  2.4 CAN幀類型
  CAN總線的幀類型包括:數(shù)據(jù)幀,遠程幀,幀間空間,錯誤幀,超載幀。其中總線關(guān)閉的故障就是由錯誤幀引起的。
  2.5 CAN總線可檢測的錯誤類型
  1)位錯誤:節(jié)點檢測到的位與自身送出的位數(shù)值不同。在仲裁或ACK位期間送出“隱性”位,而檢測到“顯性”位不導致位錯誤。
  2)填充錯誤:在使用位填充編碼的幀場(幀起始至CRC序列)中,不允許出現(xiàn)六個連續(xù)相同的電平位。
  3)CRC錯誤:節(jié)點計算的CRC序列與接收到的CRC序列不同。
  4)格式錯誤:固定格式位場(如CRC界定符、ACK界定符、幀結(jié)束等)含有一個或更多非法位。
  5)ACK錯誤:發(fā)送節(jié)點在ACK位期間未檢測到“顯性”位。
  其中發(fā)送節(jié)點能檢測到的錯誤有位錯誤、格式錯誤、ACK錯誤。而接收節(jié)點能檢測到的錯誤有填充錯誤、格式錯誤、CRC錯誤。CAN控制器與收發(fā)器在檢測到錯誤時,會發(fā)出錯誤幀,通報到總線上發(fā)送或接收報文錯誤。
  由于CAN總線有著極高的穩(wěn)定性,所以網(wǎng)絡出現(xiàn)錯誤而又不被檢測到的機會極低。假如一個高速CAN以500kbps的速率進行通信,總線的負載為25%,每年按照2000小時來算,那么至少要1000年才會漏檢一個錯誤。
  3 汽車CAN總線關(guān)閉問題的成因分析
  3.1 CAN總線關(guān)閉
  CAN控制器可以判斷出錯誤的類型是總線上暫時的數(shù)據(jù)錯誤(如外部干擾等)還是持續(xù)的數(shù)據(jù)錯誤(如單元內(nèi)部故障、驅(qū)動器故障、斷線、短路等)。由此,當總線上發(fā)生持續(xù)數(shù)據(jù)錯誤時,CAN控制器內(nèi)部的錯誤計數(shù)器累積到總線關(guān)閉的閥值,可將引起此故障單元從總線上隔離出去,不參與跟總線其他節(jié)點的網(wǎng)絡通信。
  3.2 CAN(高速)總線常見物理故障分析
  對于CAN總線常見的物理故障,主要是CAN線路產(chǎn)生的。其中包括:
  1)CAN_H開路。
  2)CAN_L開路。
  3)CAN_H對VBAT短路。
  4)CAN_L對GND短路。
  5)CAN_H對GND短路。
  6)CAN_L對VBAT短路。
  7)CAN_H對CAN_L短路。
  8)CAN_H和CAN_L開路。
  9)終端電阻開路。如圖4。
  但是根據(jù)ISO11898標準,CAN收發(fā)器具有一定的容錯性能。因此,并不是每一種CAN線路的故障都會導致CAN總線關(guān)閉問題的發(fā)生。以上述高速CAN網(wǎng)絡為例,除了4)CAN_L對GND短路和9)終端電阻開路是可以自身容錯外,其他線路故障都會存在引發(fā)CAN總線關(guān)閉問題的可能性。   造成CAN總線關(guān)閉的物理層因素,除了CAN線路的故障,還有可能是CAN控制器或收發(fā)器等元器件出現(xiàn)了故障,導致該CAN節(jié)點無法通信。另外,也有可能因為CAN總線信號的干擾,使得CAN信號的收發(fā)不能正確,尤其是不能正常發(fā)送報文,容易導致CAN總線關(guān)閉。
  3.3 CAN總線軟件錯誤計數(shù)分析
  CAN網(wǎng)絡上每個節(jié)點都含有REC(接收錯誤計數(shù)器)和TEC(發(fā)送錯誤計數(shù)器)。當接收錯誤產(chǎn)生時,REC增加;正確接收到數(shù)據(jù)幀,REC減少;當發(fā)送錯誤產(chǎn)生時,TEC增加;正確發(fā)送一幀數(shù)據(jù)幀,TEC減少;REC、TEC的數(shù)值會引發(fā)節(jié)點狀態(tài)改變。
  CAN網(wǎng)絡節(jié)點存在三種狀態(tài):
  1)主動錯誤,能正常的進行總線通信,錯誤產(chǎn)生時,發(fā)送主動錯誤幀。
  2)被動錯誤,能夠進行總線通信,錯誤產(chǎn)生時,發(fā)送被動錯誤幀。
  3)總線關(guān)閉,不能收發(fā)任何報文。
  特殊案例:如果總線上只有一個節(jié)點,該節(jié)點發(fā)送數(shù)據(jù)幀后得不到應答,TEC最大只能計到128,即節(jié)點只會進入被動錯誤狀態(tài)而不會進入總線關(guān)閉狀態(tài)。
  4 汽車CAN總線關(guān)閉的故障記錄與恢復建議
  4.1 CAN總線關(guān)閉的故障診斷與記錄
  診斷規(guī)范描述了一系列的診斷服務,定義ECU與診斷儀之間的請求響應規(guī)則、ECU對于請求報文的處理行為以及請求、響應報文信息含義。常用的診斷規(guī)范包括有UDS,KWP2000以及ISO15765等協(xié)議。其中記錄和讀取診斷故障碼(DTC)就是診斷的一項重要工作,網(wǎng)絡節(jié)點單元把曾經(jīng)或現(xiàn)在發(fā)生的相關(guān)故障碼都保存在非易失性存儲器(NVM)中,隨時方便于汽車工程師檢查故障記錄。
  我們對于CAN總線關(guān)閉故障的診斷流程是,CAN控制器在錯誤中斷里或者在周期性的查詢里,檢查BUS OFF寄存器的值,如果CAN控制器發(fā)生了BUS OFF,這個寄存器的值就會被賦真值。此時,CAN診斷模塊會把BUS OFF的DTC狀態(tài)中的Test Failed位給置上,表示當前檢查CAN總線關(guān)閉故障是存在的,即CAN網(wǎng)絡通信處在失效模式,同時把BUS OFF的記錄次數(shù)加1。當BUS OFF的記錄次數(shù)達到整車廠規(guī)定的閥值時,CAN診斷模塊會DTC狀態(tài)中的Confirmed位給置上,同時把CAN總線關(guān)閉的DTC記錄到非易失性存儲器中。
  4.2 CAN總線關(guān)閉的恢復建議
  我們的CAN診斷模塊在錯誤中斷或周期性查詢中發(fā)現(xiàn)總線關(guān)閉故障時,應該立即對CAN控制器的驅(qū)動及相關(guān)寄存器進行初始化操作,這樣,在初始化完成后,CAN總線關(guān)閉的故障能夠立即被解除。但是,該CAN節(jié)點在解除總線關(guān)閉故障后,會繼續(xù)對外發(fā)送報文,如果此時產(chǎn)生總線關(guān)閉的真正外部因素沒有解除,該CAN節(jié)點仍有機會再次發(fā)生總線關(guān)閉的故障。
  為了避免該節(jié)點在CAN網(wǎng)絡中頻繁發(fā)生總線關(guān)閉的問題,防止影響到網(wǎng)絡資源的消耗和對其他節(jié)點的不必要干擾,我們建議在CAN初始化完成后,不要立即對外發(fā)送CAN報文,應該等待一定時間段后再嘗試發(fā)送報文是否成功。
  5 結(jié)論
  汽車CAN總線關(guān)閉故障發(fā)生時,應分析物理層包括CAN線路、CAN控制器及收發(fā)器、CAN信號干擾等外在因素,同時分析CAN寄存器及軟件處理,重新初始化CAN驅(qū)動和恢復正常后,定時嘗試往外發(fā)送報文。CAN總線關(guān)閉嚴重影響到整車的功能與安全性,我們通過對故障的成因分析,提出合理的完善建議,希望能對汽車電子技術(shù)的健康發(fā)展起到一定的作用。
  參考文獻
  [1]恒潤科技,CAN規(guī)范2.0.2007.
  [2]國際標準化組織,ISO14229.2006.
  [3]國際標準化組織,ISO11898.2006.


評論


技術(shù)專區(qū)

關(guān)閉