杜文龍,彭宏偉,孫鵬
(安徽江淮汽車集團股份有限公司,安徽 合肥 230601)
淺談商用車網絡錯誤處理規范與應用
杜文龍,彭宏偉,孫鵬
(安徽江淮汽車集團股份有限公司,安徽 合肥 230601)
文章以總線關閉和報文超時兩種主要網絡錯誤為例,闡述了網絡系統中的網絡錯誤處理規范,保證了整車網絡系統的可靠性,為相關車載網絡設計提供一定的參考。
車載網絡;錯誤處理;總線關閉;報文超時
CLC NO.: U463.6 Document Code: A Article ID: 1671-7988 (2017)19-172-03
現代社會對商用車的要求不斷提高,這些要求包括:極高的主動安全性和被動安全性;乘坐的舒適性;駕駛與使用的便捷和人性化。為匹配這些日益增長的功能需求,商用車的CAN控制器的應用程爆發式增長,隨之而來的,是車載CAN網絡的電氣系統工況越來越復雜。因此,為保證網絡的可靠性,主機廠對控制器的CAN網絡錯誤的處理也越來越重視。
在商用車CAN網絡設計與應用中,主要的網絡錯誤有總線關閉和報文超時兩種狀態,本文將從這兩方面對CAN網絡錯誤處理規范進行闡述。
CAN(Controller Area Network)是控制單元(ECU)通過網絡進行數據交換的一種通信方式,即控制器局域網絡。是國際上應用最廣泛的現場總線之一。它具有以下優點:
1)數據傳輸時的高安全性及可靠性;
2)利用最少的信號線傳輸多用途的信號,節省成本;
3)節點布置靈活,拓展性好;
4)減少連接插頭尺寸即減小控制單元尺寸,增大安裝空間,可以降低車輛自重。
隨之車載網絡系統的復雜程度越來越高,且更多的牽涉到整車安全及舒適性。如果處于故障狀態的控制器對網絡錯誤不做處理,將嚴重影響車輛的駕乘體驗。其中有兩種常見的網絡錯誤需求在控制器設計之初就需要考慮的。
1)總線關閉 當控制器處于故障狀態而一直快速發送錯誤幀,將必然導致整個網絡負載的劇增,導致其他正常的應用報文被仲裁而導致較大的數據傳輸延遲,整車的狀態就無法及時的反映到總線上,形成嚴重的隱患。這里就需要引入“總線關閉”概念,即Bus-off。處于此狀態的ECU不允許在總線上有任何的影響。
2)報文超時 當控制器無法正常發送報文時,該故障應該被維修人員所知曉,且需求該報文的控制器的不應該因為此故障而喪失功能,而是以超時值進行邏輯判斷,最大程度的降低該故障的影響。
一個ECU的CAN控制器內部的兩個8位計數器,取值范圍是0~255。如果在發送(或接收)報文的過程中產生錯誤,TEC(或REC)的數值會增加。如果成功發送(或接收)報文,TEC(或REC)的數值會減少。根據REC與TEC的數值可以界定一個ECU的CAN控制器狀態:主動錯誤、被動錯誤或總線關閉,進入總線關閉狀態即Bus-off故障,狀態轉換如下圖。

圖1 CAN節點錯誤狀態圖
2.2.1 本地故障
網絡中所有ECU必須有容錯性能:
1)ECU任何內部錯誤都不能影響總線通信(發送錯誤幀或者把總線鉗位在“顯性”狀態);
2)ECU功能不受總線高負載率影響,且不能把ECU置于不安全狀態;
3)總線錯誤幀不能影響ECU內部功能,也不能把ECU置于不安全狀態;
4)ECU啟動期間,不應干擾其他ECU的正常通信;
2.2.2 全局故障
總線發生以下全局故障時,CAN通信通常會受到干擾。

表1
ECU從Bus-off故障恢復的策略在商用車的應用中常有以下情況:
(1)網絡管理節點
進入Bus-off狀態后ECU需要立即復位并初始化CAN controller。在TBusoff時間內ECU禁止發送任何CAN報文,但允許接收報文。
在TBusoff時間內節點網絡管理應該處于激活狀態(如下圖所示)。

圖2
節點Bus-off的恢復,遵循OSKE直接網絡管理節點的Bus-off恢復時間定義(如下圖),根據定義恢復時間TBusOff=Terror=1000ms,且恢復后發送的第一條報文為網絡管理報文。

圖3
(2)非網絡管理節點
ECU的CAN控制器內部的兩個8位計數器,取值范圍是0~255。如果在發送(或接收)報文的過程中產生錯誤,TEC(或REC)的數值會增加。如果成功發送(或接收)報文,TEC(或REC)的數值會減少。
當總線關閉的條件發生后應采取以下措施:
1)網絡從激活狀態轉變到總線關閉狀態;
2)禁止發送任何參數組;
3)CAN 控制器復位,數據鏈路層清除沒有發送的報文。
節點在Bus-off恢復時間,滿足上電使能的發送時間要求,即TBusoff= 200ms,發送的第一幀報文可以是任意應用層的參數組。
報文超時,即在規定的時間范圍內,接收節點沒有收到來自于發送節點的報文。根據報文周期的倍數來定義超時時間是較為合理的。在商用車的實際應用中,常以被監測的報文的10倍發送周期定義為該報文的超時時間,在此時間內沒有被接收節點監測到,接收節點應監測到超時故障。
在詳細了解報文超時故障表現前需要先了解初始值和無效值。這兩個值是從功能角度定義的,目的是為了規范ECU在非正常工作時發送的報文信號值。
初始值:發送有效值之前發送到總線上的信號值,ECU初始化期間,信號值等于初始值。
無效值:根據需求,發送節點在某些時候發送無效值。當任一功能失效或應用程序不能及時處理時,相關信號值等于無效值。
報文超時后接收節點將相應的SPN設置為在通信矩陣中定義的超時值(無效值或初始值),以保障整車系統可以在可控范圍內獲得最佳功能選擇。
故障的恢復條件根據ECU的功能定義進行,可以是接收到任意一條被監測的報文即解除報文超時故障,也可以是連續監測到N個周期的報文后再解除報文超時故障。但為避免各ECU的啟動時序不一致,導致的報文超時故障誤判斷,需增加上電10秒內不監測報文超時故障的規則:
具體應用實例如下:
(1)控制器需求的報文發送電源狀態不滯后于本身的,以該控制器的上電后10s為計時起點。
以某車型為例,整車電源狀態順序為蓄電池上電—鑰匙OFF—ACC—ON—Start,如TCO需求記錄ICM的車速報文丟失,TCO在ACC狀態下啟動網絡,ICM在鑰匙OFF下網絡已啟動,此時TCO只需以自身的ACC上電后10s為報文丟失故障的監測計時起點。
(2)控制器需求報文發送電源狀態滯后于本身的,且控制器本身可以確認電源狀態的。
以某車型為例,整車電源狀態順序為蓄電池上電—鑰匙OFF—ACC—ON—Start,如ICM需求記錄TCO的時間報文丟失,TCO在ACC狀態下啟動網絡,ICM在鑰匙OFF下網絡已啟動,但是ICM可以判斷ON檔狀態,此時ICM需以自身的ON上電后10s為報文丟失故障的監測計時起點。
(3)控制器需求報文發送電源狀態滯后于本身的,且控制器無法確認電源狀態的。
以某車型為例,整車電源狀態順序為蓄電池上電—鑰匙OFF—ACC—ON—Start,如MP5需求記錄TPMS的胎壓報文丟失,MP5在ACC狀態下啟動網絡,TPMS在鑰匙ON狀態下啟動網絡,但是MP5本身無法判斷ON檔狀態,此時MP5需以BCM的報文0x18FF0B21的點火開關信號進行電源狀態判斷,在信號變為ON狀態后10s為報文丟失故障的監測計時起點。
車載CAN網絡技術是現代汽車電子技術的重要組成部分,是現代車輛信息傳輸與控制的基礎。隨著電子技術的發展,以及顧客對安全性、舒適性需求的增加,車輛上的電控單元越來越多,CAN網絡拓撲復雜程度也越來越高。為最大程度的保障CAN網絡系統的穩定性,降低網絡錯誤對整車系統的影響,對ECU的網絡錯誤處理機制的規范在設計之初就應該被考慮。本文通過對兩種常見的網絡錯誤進行了具體的說明,為車載網絡的設計提供一定的參考。
[1] 劉春暉,劉寶軍.汽車車載網絡技術詳解[M].機械工業出版社,2015.
[2] OSEK/VDX Network Management Concept and Application Progr-amming Interface, Version 2.5.3, 26th July 2004.
Specification and Application of Network Error Handling on the Heavy Truck
Du Wenlong, Peng Hongwei, Sun Peng
( Anhui Jianghuai Automobile group Co., Ltd, Anhui Hefei 230601 )
In this paper, the network error handling specification in network system are illustrated with the examples of bus-off and message timeout. This ensures the reliability of the network system and provides a reference for other vehicles.
Vehicle network; Error handling; Bus-off; Message timeout
U463.6 文獻標識碼:A 文章編號:1671-7988 (2017)19-172-03
10.16638 /j.cnki.1671-7988.2017.19.060
杜文龍,助理工程師,就職于安徽江淮汽車集團股份有限公司技術中心,從事電器設計工作,研究方向為車載網絡技術。