李攀,藺春明,李霞,成金峰,林國干
(安徽江淮汽車股份有限公司技術中心,安徽 合肥 230022)
基于一種干擾機制的車載CAN網絡BUSOFF測試方案
李攀,藺春明,李霞,成金峰,林國干
(安徽江淮汽車股份有限公司技術中心,安徽 合肥 230022)
整車CAN總線測試工作是整個平臺架構的重要部分。本文基于美國Vector公司的CANOE和CANSTRESS測試工具實現了一種對整車CAN網絡BUSOFF進行系統級的測試方案。首先測試每一節點的BUSOFF恢復機制是否符合預定義的規范。其次使用最高優先級報文或網絡管理報文的干擾機制來測試在CAN網絡BUSOFF時各個節點的互不干擾性。本文重點闡述了此干擾機制的原理,從理論上說明此干擾機制的正確性,通過編寫測試用例驗證了此干擾機制以及整體測試方案的準確性、高效性與有效性,并且完善了整車CAN網絡的測試方案與測試規范。
CAN 總線;BUSOFF;干擾機制;測試方案
CLC NO.:U462.1Document Code:AArticle ID:1671-7988(2014)11-29-04
隨著汽車越來越多的功能需求,整車CAN網絡系統應運而生,為汽車的發展提供了新的方向 [1]。整車CAN網絡承載著各個控制器之間的信號傳遞的功能,只有這些信號正常的發送和接受,才能保證汽車正常運轉。所以為了確保汽車各項功能正常,整車CAN網絡的測試驗證的是十分必要的 [2]。同時,在采用當前普遍的CAN網絡V型開發模式中,CAN測試診斷階段在整個平臺化設計中扮演著重要的角色[3]。
在整車CAN網絡測試中,BUSOFF進行系統級測試的重要性顯得尤為突出。進行整車BUSOFF測試的目的是要確保在CAN網絡中單個節點發生故障引起的總線關閉狀態,不能影響其他節點的正常通信。例如,當整車中的某個節點(車身控制器)發生故障時,不能發送和接受任何信號,就會導致車的部分功能喪失,但是其他的功能(發動機)仍然正常工作,這樣可以確保駕駛員可以開到維修站進行維修。
鑒于此,本文基于美國Vector公司的CANOE和
CANSTRESS測試工具實現了一種對整車BUSOFF進行系統級的測試方案。方案使用最高優先級報文或網絡管理報文的干擾機制來測試在CAN網絡中某個節點總線關閉時,其他節點通行的互不干擾性。如果選取某個節點的全部報文進行干擾,可能帶來的影響是整車CAN網絡癱瘓,其他正常節點都不能正常通信,造成故障節點不明確,BUSOFF恢復的困難,測試效率低下。
然而本文的干擾機制不是單純的選擇某個節點的所有報文進行干擾,對于不帶網絡管理的節點應該選擇單個最高優先級的報文(有的重要報文的優先級別相同)進行干擾;帶網絡管理得報文選擇干擾網絡管理報文就可以干擾該節點的所有報文。本文所闡述的干擾機制有如下的優勢:
(1)減少了不相干錯誤發生的機率,提高測試的效率;
(2)保證了整車網絡各個節點相互獨立,互不影響,在發生故障時也不影響整車網絡通信,提高測試的準確性與有效性;
(3)完善了整車CAN網絡的測試方法與測試規范。
測試方案的框圖包括如下幾部分,如圖1。發動機控制單元、儀表控制單元、車身控制單元和胎壓控制單元組成了整車的CAN 網絡。CANCASE和CANSTRESS是測試的硬件設備,軟件測試模塊主要由CANOE提供 [4]。CANOE是用來監測報文和分析報文用的 [5],CANSTRESS是模擬CAN總線的故障發生器,干擾節點的報文使其出現BUSOFF故障。CANSTRESS干擾多個報文的機制是:多個報文的ID“與”之后,得到一個共同的序列號,只要滿足這個序列號的報文都會被覆蓋,受到干擾。數據庫是CANOE與CANSTRESS用來記錄整車通信的所有信號、報文和節點,以及他們之間的收發關系。
接下來重點介紹CAN總線的各個節點報文、CAN總線控制器的錯誤狀態。
1.1 各個節點及其相應報文ID
整車CAN網絡的各個節點及其相應報文ID如表1所示。
表1中,EMS:發動機控制單元,ICM:儀表控制單元,BCM:車身控制單元,TPMS:胎壓控制單元,0X102和0X101為相應節點的網絡管理報文,其他報文為周期性報文。
CAN總線“與”通信模式 [6]是通過各個節點的報文ID進行仲裁,顯性位能夠覆蓋隱性位,即報文ID值越小,報文優先級越高。
根據CAN總線“與”通信模式,可以得到EMS、ICM、BCM、TPMS各個節點的報文ID的優先級,如表2。

表1 節點及其相應報文ID
1.2 CAN總線控制器的BUSOFF狀態
CAN控制器即ECU內部的兩個8位計數器,取值范圍是0~255。如果在發送(或接收)報文的過程中產生錯誤,TEC(或REC)的數值會增加。根據ISO11898規范,REC與TEC的數值來界定CAN控制器狀態:主動錯誤、被動錯誤或總線關閉。當發送錯誤計數器的值大于255時CAN控制器應該進入BUSOFF(總線關閉)狀態 [6]。
在ISO 11898里明確規定,當某節點處于總線關閉時,不能發送也不能接受任何信號,所以一旦某節點處于BUSOFF,該節點的功能就會全部喪失。所以對BUSOFF恢復機制的測試也就尤為重要。
帶網絡管理的節點符合OSEK網絡管理規范,OSEK對網絡管理的要求是從BUSOFF恢復后的第一幀報文必須是網絡管理報文。
CAN總線的BUSOFF測試方案包括單個節點測試和系統級測試 [4]。
2.1 單個節點BUSOFF測試方法
需要對單個零部件節點進行BUSOFF 測試的目的是測試各個節點的BUSOFF 恢復機制與預定義的恢復機制是否一致。
CANOE CAN 是用來總線監測報文和分析報文,CANSTRESS 是模擬CAN 總線的故障發生器。使用
CANSTRESS來干擾待測節點某一幀報文的RTR位,使其發生總線關閉故障,同時通過CANOE觀察此節點發出的錯誤幀個數和恢復時間,得到如圖2所示的BUSOFF的恢復時序圖。表3表示此節點出現總線關閉后的請求BUSOFF恢復的時間間隔。

表3 請求BUSOFF恢復的時間間隔
圖2和表3說明:
(1)在BUSOFF COUNTER值小于6時,每100ms左右嘗試恢復,BUSOFF COUNTER值等于6時,每1000ms嘗試恢復。
(2)當BUSOFF COUNTER達到6時,此后,如繼續檢測到BUSOFF, BUSOFF COUNTER仍保持為6。
(3)在5000ms時間內未檢測到BUSOFF,則BUSOFF COUNTER清零,BUSOFF恢復成功,故障類型由當前故障轉換為歷史故障。
結果分析:對于不帶網絡管理的節點,使用CANOE能監測到的錯誤幀和上述規定恢復方式一樣。那么可以判斷單個節點的BUSOFF恢復策略符合預定義的要求。
2.2 整車CAN網絡BUSOFF系統級的測試
本文使用兩種思路來對整車CAN網絡BUSOFF系統級的測試。第一種是采用干擾其中一個節點所有報文的機制,第二種是使用最高優先級報文或網絡管理報文的干擾機制。
2.2.1 采用干擾節點所有報文的測試機制
在整車CAN網絡的BUSOFF的測試中,采用干擾某節點所有報文的測試機制,測試結果見表4。

表4 采用干擾某節點所有報文機制的測試結果
(“√”表示該幀報文正常發送,“×”表示該幀報文不能正常發送)
從表4的測試結果可以看出:
(1)當干擾ICM、BCM、TPMS的全部報文時,都不影響其他節點的通信。
(2)當干擾EMS的全部報文時,其他所有節點的報文也不能正常發送,影響了整個網絡的通信。
這種測試機制是不符合ISO11898標準的,一個節點出現BUSOFF故障,影響其他正常節點正常通信,這種測試方法不利于完善整車BUSOFF測試規范。
2.2.2 采用最高優先級報文或網絡管理報文的干擾機制
在整車CAN網絡的BUSOFF的測試中,采用最高優先級報文或網絡管理報文的干擾機制。測試結果見表5。
從表5的測試結果可以看出:
(1)干擾其中一個節點的一幀報文的時候不影響其他節點正常通信,也不影響整個網絡的通信。
(2)干擾某個節點優先級比較高的報文時,該節點優先級比較低的報文發不出來;干擾其中一個節點的優先級比較低的報文的時候,該節點優先級比較高的報文依然可以正常發送。
(3)同時干擾EMS兩個最高優先級的報文,EMS節點所有報文被干擾,但是不影響其他節點通信,同時也不影響整個網絡的通信。
(4)干擾BCM和ICM的網絡管理報文,本節點的其他應用報文無法發出。
這種測試機制是符合CAN網絡協議規范的。通過采用最高優先級報文或網絡管理報文的干擾機制,達到了只干擾網絡中某個節點的目的,不影響CAN網絡的其他正常節點的通信。測試結果驗證此干擾性機制的有效性與準確性。

表5 采用最高優先級報文或網絡管理報文干擾機制的測試結果
(“√”表示該幀報文正常發送,“×”表示該幀報文不能正常發送)
本節的目的:分析采用干擾某節點所有報文的測試機制,影響其他正常節點正常通信的原因;分析采用最高優先級報文或網絡管理報文的干擾機制時的有效性與準確性。
在CANSTRESS干擾多個報文的機制下,多個報文的
ID“與”之后,得到一個共同的序列號,然后凡事符合此序列號的報文ID都會被覆蓋,受到干擾。使用CANSTRESS多報文干擾機制得到報文ID“與”分析的結果,如表6。

表6 CANSTRESS多個報文干擾機制
相同的就是“0”或“1”,不相同的就用“X”
3.1 分析干擾節點所有報文的測試機制
由表6,選擇EMS這個節點的所有報文時,得到的干擾序列為“0XX XX0X XXXX”。而此干擾序列可以同時覆蓋EMS全部報文和ICM、BCM、TPMS優先級比較高的報文或是網絡管理報文,所以干擾EMS的所有報文導致整個網絡無法通信,只能監測到錯誤幀的現象,而正常節點的通信信號被覆蓋在干擾信號中檢測不到。
3.2 分析最高優先級報文或網絡管理報文的干擾機制
以EMS高優先級的報文為例來分析第二種干擾機制時的有效性與準確性。
由表2可以得出EMS高優先級的報文是0x10C和0X117,所以使用CANSTRESS干擾報文0x10C和0X117得到的干擾序列號是“001 000XX1XX”,由表6中報文ID的二進制碼可以發現此序列號不會覆蓋其他節點上的報文ID,所以此干擾序列號不會影響其他節點(BCM、ICM、TPMS)的正常通信。但是根據EMS報文ID的優先級或者EMS的控制器工作流程可知,EMS的其他兩個報文ID0x256、0x280也無法正常通信,使EMS節點的所有報文無法發到總線上。所以出現如表5的測試結果。
同理,分別干擾ICM、BCM節點的網絡管理報文0x102、0x101也會產生如表5的結果。
因此在進行整車級的BUSOFF測試時,不應該單純的選擇某個節點的所有報文進行干擾,對于不帶網絡管理的節點應該選擇單個ECU最高優先級的報文進行干擾;帶網絡管理得報文選擇干擾網絡管理報文就可以干擾該節點的所有報文。
本文基于美國Vector公司的CANOE和CANSTRESS測試軟件工具實現了一種對整車BUSOFF進行系統級的測試方案,包括單個節點測試和系統級測試。方案使用最高優先級報文或網絡管理報文的干擾機制來驗證在總線關閉時CAN網絡中各個節點的互不干擾性。分析了此干擾機制的原理,從理論上說明干擾機制的正確性,通過測試用例驗證了此干擾機制以及整體測試方案的準確性、高效性與有效性,并且完善了整車CAN網絡的測試方案與測試規范。為下一步構建一個CAN網絡自動化測試平臺做準備。
[1] 葉強生,陳書明.CAN總線在汽車網絡系統中的研究與應用[ J].微計算機信息.2008.(14).
[2] 吳海峰. 重型卡車總線檢測技術研究[J]. 汽車實用技術. 2011, (4):40-43.
[3] 藺春明,孫永鋒,俞燚等.商用車車載CAN網絡系統設計思考[J].汽車實用技術.2013,(12).
[4] 馬繼周,楊濤.車用CAN總線自動化測試平臺的研發與應用[J].汽車實用技術.2012,(10).
[5] Vector Informatik GmbH. CANoe User Manual. Version 7 [M].
[6] 鄔寬明. CAN總線原理和應用系統設計[M].北京:北京航空航天大學出版社,1996.
A BUSOFF Testing Scheme of Vehicle CAN Based on The Interference Mechanism
Li Pan, Lin Chunming, Li Xia, Cheng Jinfeng, Lin Guogan
(The Center of Technology of Jianghuai Automobile Co. Ltd. Anhui Hefei 230022)
Test work of vehicle CAN bus plays an important role in the overall platform design. Based on the testing tools CANOE and CANSTRESS of Vector Company, the paper achieves a system-level BUSOFF testing scheme of vehicle CAN. First, verify that BUSOFF recovery mechanism of each node meets predefined Standard. Second, the scheme uses interference mechanism of the highest priority packets or network management packet to test each node in the network. The paper focuses on the principle of this interference mechanism, and theoretically interferes wi th the accuracy of this mechanism. By writing test cases, the paper verifies the accuracy, efficiency and effectiveness of this interference mechanism and improves the testing scheme and testing specifications of the vehicle CAN networks.
CAN BUS;BUSOFF;Interference Mechanism;Testing Scheme
U462.1
A
1671-7988(2014)11-29-04
李攀,就職于安徽江淮汽車股份有限公司技術中心。