李攀,藺春明,李霞,成金峰,林國干
(安徽江淮汽車股份有限公司技術(shù)中心,安徽 合肥 230022)
基于一種干擾機(jī)制的車載CAN網(wǎng)絡(luò)BUSOFF測試方案
李攀,藺春明,李霞,成金峰,林國干
(安徽江淮汽車股份有限公司技術(shù)中心,安徽 合肥 230022)
整車CAN總線測試工作是整個(gè)平臺(tái)架構(gòu)的重要部分。本文基于美國Vector公司的CANOE和CANSTRESS測試工具實(shí)現(xiàn)了一種對整車CAN網(wǎng)絡(luò)BUSOFF進(jìn)行系統(tǒng)級的測試方案。首先測試每一節(jié)點(diǎn)的BUSOFF恢復(fù)機(jī)制是否符合預(yù)定義的規(guī)范。其次使用最高優(yōu)先級報(bào)文或網(wǎng)絡(luò)管理報(bào)文的干擾機(jī)制來測試在CAN網(wǎng)絡(luò)BUSOFF時(shí)各個(gè)節(jié)點(diǎn)的互不干擾性。本文重點(diǎn)闡述了此干擾機(jī)制的原理,從理論上說明此干擾機(jī)制的正確性,通過編寫測試用例驗(yàn)證了此干擾機(jī)制以及整體測試方案的準(zhǔn)確性、高效性與有效性,并且完善了整車CAN網(wǎng)絡(luò)的測試方案與測試規(guī)范。
CAN 總線;BUSOFF;干擾機(jī)制;測試方案
CLC NO.:U462.1Document Code:AArticle ID:1671-7988(2014)11-29-04
隨著汽車越來越多的功能需求,整車CAN網(wǎng)絡(luò)系統(tǒng)應(yīng)運(yùn)而生,為汽車的發(fā)展提供了新的方向 [1]。整車CAN網(wǎng)絡(luò)承載著各個(gè)控制器之間的信號傳遞的功能,只有這些信號正常的發(fā)送和接受,才能保證汽車正常運(yùn)轉(zhuǎn)。所以為了確保汽車各項(xiàng)功能正常,整車CAN網(wǎng)絡(luò)的測試驗(yàn)證的是十分必要的 [2]。同時(shí),在采用當(dāng)前普遍的CAN網(wǎng)絡(luò)V型開發(fā)模式中,CAN測試診斷階段在整個(gè)平臺(tái)化設(shè)計(jì)中扮演著重要的角色[3]。
在整車CAN網(wǎng)絡(luò)測試中,BUSOFF進(jìn)行系統(tǒng)級測試的重要性顯得尤為突出。進(jìn)行整車BUSOFF測試的目的是要確保在CAN網(wǎng)絡(luò)中單個(gè)節(jié)點(diǎn)發(fā)生故障引起的總線關(guān)閉狀態(tài),不能影響其他節(jié)點(diǎn)的正常通信。例如,當(dāng)整車中的某個(gè)節(jié)點(diǎn)(車身控制器)發(fā)生故障時(shí),不能發(fā)送和接受任何信號,就會(huì)導(dǎo)致車的部分功能喪失,但是其他的功能(發(fā)動(dòng)機(jī))仍然正常工作,這樣可以確保駕駛員可以開到維修站進(jìn)行維修。
鑒于此,本文基于美國Vector公司的CANOE和
CANSTRESS測試工具實(shí)現(xiàn)了一種對整車BUSOFF進(jìn)行系統(tǒng)級的測試方案。方案使用最高優(yōu)先級報(bào)文或網(wǎng)絡(luò)管理報(bào)文的干擾機(jī)制來測試在CAN網(wǎng)絡(luò)中某個(gè)節(jié)點(diǎn)總線關(guān)閉時(shí),其他節(jié)點(diǎn)通行的互不干擾性。如果選取某個(gè)節(jié)點(diǎn)的全部報(bào)文進(jìn)行干擾,可能帶來的影響是整車CAN網(wǎng)絡(luò)癱瘓,其他正常節(jié)點(diǎn)都不能正常通信,造成故障節(jié)點(diǎn)不明確,BUSOFF恢復(fù)的困難,測試效率低下。
然而本文的干擾機(jī)制不是單純的選擇某個(gè)節(jié)點(diǎn)的所有報(bào)文進(jìn)行干擾,對于不帶網(wǎng)絡(luò)管理的節(jié)點(diǎn)應(yīng)該選擇單個(gè)最高優(yōu)先級的報(bào)文(有的重要報(bào)文的優(yōu)先級別相同)進(jìn)行干擾;帶網(wǎng)絡(luò)管理得報(bào)文選擇干擾網(wǎng)絡(luò)管理報(bào)文就可以干擾該節(jié)點(diǎn)的所有報(bào)文。本文所闡述的干擾機(jī)制有如下的優(yōu)勢:
(1)減少了不相干錯(cuò)誤發(fā)生的機(jī)率,提高測試的效率;
(2)保證了整車網(wǎng)絡(luò)各個(gè)節(jié)點(diǎn)相互獨(dú)立,互不影響,在發(fā)生故障時(shí)也不影響整車網(wǎng)絡(luò)通信,提高測試的準(zhǔn)確性與有效性;
(3)完善了整車CAN網(wǎng)絡(luò)的測試方法與測試規(guī)范。
測試方案的框圖包括如下幾部分,如圖1。發(fā)動(dòng)機(jī)控制單元、儀表控制單元、車身控制單元和胎壓控制單元組成了整車的CAN 網(wǎng)絡(luò)。CANCASE和CANSTRESS是測試的硬件設(shè)備,軟件測試模塊主要由CANOE提供 [4]。CANOE是用來監(jiān)測報(bào)文和分析報(bào)文用的 [5],CANSTRESS是模擬CAN總線的故障發(fā)生器,干擾節(jié)點(diǎn)的報(bào)文使其出現(xiàn)BUSOFF故障。CANSTRESS干擾多個(gè)報(bào)文的機(jī)制是:多個(gè)報(bào)文的ID“與”之后,得到一個(gè)共同的序列號,只要滿足這個(gè)序列號的報(bào)文都會(huì)被覆蓋,受到干擾。數(shù)據(jù)庫是CANOE與CANSTRESS用來記錄整車通信的所有信號、報(bào)文和節(jié)點(diǎn),以及他們之間的收發(fā)關(guān)系。
接下來重點(diǎn)介紹CAN總線的各個(gè)節(jié)點(diǎn)報(bào)文、CAN總線控制器的錯(cuò)誤狀態(tài)。
1.1 各個(gè)節(jié)點(diǎn)及其相應(yīng)報(bào)文ID
整車CAN網(wǎng)絡(luò)的各個(gè)節(jié)點(diǎn)及其相應(yīng)報(bào)文ID如表1所示。
表1中,EMS:發(fā)動(dòng)機(jī)控制單元,ICM:儀表控制單元,BCM:車身控制單元,TPMS:胎壓控制單元,0X102和0X101為相應(yīng)節(jié)點(diǎn)的網(wǎng)絡(luò)管理報(bào)文,其他報(bào)文為周期性報(bào)文。
CAN總線“與”通信模式 [6]是通過各個(gè)節(jié)點(diǎn)的報(bào)文ID進(jìn)行仲裁,顯性位能夠覆蓋隱性位,即報(bào)文ID值越小,報(bào)文優(yōu)先級越高。
根據(jù)CAN總線“與”通信模式,可以得到EMS、ICM、BCM、TPMS各個(gè)節(jié)點(diǎn)的報(bào)文ID的優(yōu)先級,如表2。
表1 節(jié)點(diǎn)及其相應(yīng)報(bào)文ID
1.2 CAN總線控制器的BUSOFF狀態(tài)
CAN控制器即ECU內(nèi)部的兩個(gè)8位計(jì)數(shù)器,取值范圍是0~255。如果在發(fā)送(或接收)報(bào)文的過程中產(chǎn)生錯(cuò)誤,TEC(或REC)的數(shù)值會(huì)增加。根據(jù)ISO11898規(guī)范,REC與TEC的數(shù)值來界定CAN控制器狀態(tài):主動(dòng)錯(cuò)誤、被動(dòng)錯(cuò)誤或總線關(guān)閉。當(dāng)發(fā)送錯(cuò)誤計(jì)數(shù)器的值大于255時(shí)CAN控制器應(yīng)該進(jìn)入BUSOFF(總線關(guān)閉)狀態(tài) [6]。
在ISO 11898里明確規(guī)定,當(dāng)某節(jié)點(diǎn)處于總線關(guān)閉時(shí),不能發(fā)送也不能接受任何信號,所以一旦某節(jié)點(diǎn)處于BUSOFF,該節(jié)點(diǎn)的功能就會(huì)全部喪失。所以對BUSOFF恢復(fù)機(jī)制的測試也就尤為重要。
帶網(wǎng)絡(luò)管理的節(jié)點(diǎn)符合OSEK網(wǎng)絡(luò)管理規(guī)范,OSEK對網(wǎng)絡(luò)管理的要求是從BUSOFF恢復(fù)后的第一幀報(bào)文必須是網(wǎng)絡(luò)管理報(bào)文。
CAN總線的BUSOFF測試方案包括單個(gè)節(jié)點(diǎn)測試和系統(tǒng)級測試 [4]。
2.1 單個(gè)節(jié)點(diǎn)BUSOFF測試方法
需要對單個(gè)零部件節(jié)點(diǎn)進(jìn)行BUSOFF 測試的目的是測試各個(gè)節(jié)點(diǎn)的BUSOFF 恢復(fù)機(jī)制與預(yù)定義的恢復(fù)機(jī)制是否一致。
CANOE CAN 是用來總線監(jiān)測報(bào)文和分析報(bào)文,CANSTRESS 是模擬CAN 總線的故障發(fā)生器。使用
CANSTRESS來干擾待測節(jié)點(diǎn)某一幀報(bào)文的RTR位,使其發(fā)生總線關(guān)閉故障,同時(shí)通過CANOE觀察此節(jié)點(diǎn)發(fā)出的錯(cuò)誤幀個(gè)數(shù)和恢復(fù)時(shí)間,得到如圖2所示的BUSOFF的恢復(fù)時(shí)序圖。表3表示此節(jié)點(diǎn)出現(xiàn)總線關(guān)閉后的請求BUSOFF恢復(fù)的時(shí)間間隔。
表3 請求BUSOFF恢復(fù)的時(shí)間間隔
圖2和表3說明:
(1)在BUSOFF COUNTER值小于6時(shí),每100ms左右嘗試恢復(fù),BUSOFF COUNTER值等于6時(shí),每1000ms嘗試恢復(fù)。
(2)當(dāng)BUSOFF COUNTER達(dá)到6時(shí),此后,如繼續(xù)檢測到BUSOFF, BUSOFF COUNTER仍保持為6。
(3)在5000ms時(shí)間內(nèi)未檢測到BUSOFF,則BUSOFF COUNTER清零,BUSOFF恢復(fù)成功,故障類型由當(dāng)前故障轉(zhuǎn)換為歷史故障。
結(jié)果分析:對于不帶網(wǎng)絡(luò)管理的節(jié)點(diǎn),使用CANOE能監(jiān)測到的錯(cuò)誤幀和上述規(guī)定恢復(fù)方式一樣。那么可以判斷單個(gè)節(jié)點(diǎn)的BUSOFF恢復(fù)策略符合預(yù)定義的要求。
2.2 整車CAN網(wǎng)絡(luò)BUSOFF系統(tǒng)級的測試
本文使用兩種思路來對整車CAN網(wǎng)絡(luò)BUSOFF系統(tǒng)級的測試。第一種是采用干擾其中一個(gè)節(jié)點(diǎn)所有報(bào)文的機(jī)制,第二種是使用最高優(yōu)先級報(bào)文或網(wǎng)絡(luò)管理報(bào)文的干擾機(jī)制。
2.2.1 采用干擾節(jié)點(diǎn)所有報(bào)文的測試機(jī)制
在整車CAN網(wǎng)絡(luò)的BUSOFF的測試中,采用干擾某節(jié)點(diǎn)所有報(bào)文的測試機(jī)制,測試結(jié)果見表4。
表4 采用干擾某節(jié)點(diǎn)所有報(bào)文機(jī)制的測試結(jié)果
(“√”表示該幀報(bào)文正常發(fā)送,“×”表示該幀報(bào)文不能正常發(fā)送)
從表4的測試結(jié)果可以看出:
(1)當(dāng)干擾ICM、BCM、TPMS的全部報(bào)文時(shí),都不影響其他節(jié)點(diǎn)的通信。
(2)當(dāng)干擾EMS的全部報(bào)文時(shí),其他所有節(jié)點(diǎn)的報(bào)文也不能正常發(fā)送,影響了整個(gè)網(wǎng)絡(luò)的通信。
這種測試機(jī)制是不符合ISO11898標(biāo)準(zhǔn)的,一個(gè)節(jié)點(diǎn)出現(xiàn)BUSOFF故障,影響其他正常節(jié)點(diǎn)正常通信,這種測試方法不利于完善整車BUSOFF測試規(guī)范。
2.2.2 采用最高優(yōu)先級報(bào)文或網(wǎng)絡(luò)管理報(bào)文的干擾機(jī)制
在整車CAN網(wǎng)絡(luò)的BUSOFF的測試中,采用最高優(yōu)先級報(bào)文或網(wǎng)絡(luò)管理報(bào)文的干擾機(jī)制。測試結(jié)果見表5。
從表5的測試結(jié)果可以看出:
(1)干擾其中一個(gè)節(jié)點(diǎn)的一幀報(bào)文的時(shí)候不影響其他節(jié)點(diǎn)正常通信,也不影響整個(gè)網(wǎng)絡(luò)的通信。
(2)干擾某個(gè)節(jié)點(diǎn)優(yōu)先級比較高的報(bào)文時(shí),該節(jié)點(diǎn)優(yōu)先級比較低的報(bào)文發(fā)不出來;干擾其中一個(gè)節(jié)點(diǎn)的優(yōu)先級比較低的報(bào)文的時(shí)候,該節(jié)點(diǎn)優(yōu)先級比較高的報(bào)文依然可以正常發(fā)送。
(3)同時(shí)干擾EMS兩個(gè)最高優(yōu)先級的報(bào)文,EMS節(jié)點(diǎn)所有報(bào)文被干擾,但是不影響其他節(jié)點(diǎn)通信,同時(shí)也不影響整個(gè)網(wǎng)絡(luò)的通信。
(4)干擾BCM和ICM的網(wǎng)絡(luò)管理報(bào)文,本節(jié)點(diǎn)的其他應(yīng)用報(bào)文無法發(fā)出。
這種測試機(jī)制是符合CAN網(wǎng)絡(luò)協(xié)議規(guī)范的。通過采用最高優(yōu)先級報(bào)文或網(wǎng)絡(luò)管理報(bào)文的干擾機(jī)制,達(dá)到了只干擾網(wǎng)絡(luò)中某個(gè)節(jié)點(diǎn)的目的,不影響CAN網(wǎng)絡(luò)的其他正常節(jié)點(diǎn)的通信。測試結(jié)果驗(yàn)證此干擾性機(jī)制的有效性與準(zhǔn)確性。
表5 采用最高優(yōu)先級報(bào)文或網(wǎng)絡(luò)管理報(bào)文干擾機(jī)制的測試結(jié)果
(“√”表示該幀報(bào)文正常發(fā)送,“×”表示該幀報(bào)文不能正常發(fā)送)
本節(jié)的目的:分析采用干擾某節(jié)點(diǎn)所有報(bào)文的測試機(jī)制,影響其他正常節(jié)點(diǎn)正常通信的原因;分析采用最高優(yōu)先級報(bào)文或網(wǎng)絡(luò)管理報(bào)文的干擾機(jī)制時(shí)的有效性與準(zhǔn)確性。
在CANSTRESS干擾多個(gè)報(bào)文的機(jī)制下,多個(gè)報(bào)文的
ID“與”之后,得到一個(gè)共同的序列號,然后凡事符合此序列號的報(bào)文ID都會(huì)被覆蓋,受到干擾。使用CANSTRESS多報(bào)文干擾機(jī)制得到報(bào)文ID“與”分析的結(jié)果,如表6。
表6 CANSTRESS多個(gè)報(bào)文干擾機(jī)制
相同的就是“0”或“1”,不相同的就用“X”
3.1 分析干擾節(jié)點(diǎn)所有報(bào)文的測試機(jī)制
由表6,選擇EMS這個(gè)節(jié)點(diǎn)的所有報(bào)文時(shí),得到的干擾序列為“0XX XX0X XXXX”。而此干擾序列可以同時(shí)覆蓋EMS全部報(bào)文和ICM、BCM、TPMS優(yōu)先級比較高的報(bào)文或是網(wǎng)絡(luò)管理報(bào)文,所以干擾EMS的所有報(bào)文導(dǎo)致整個(gè)網(wǎng)絡(luò)無法通信,只能監(jiān)測到錯(cuò)誤幀的現(xiàn)象,而正常節(jié)點(diǎn)的通信信號被覆蓋在干擾信號中檢測不到。
3.2 分析最高優(yōu)先級報(bào)文或網(wǎng)絡(luò)管理報(bào)文的干擾機(jī)制
以EMS高優(yōu)先級的報(bào)文為例來分析第二種干擾機(jī)制時(shí)的有效性與準(zhǔn)確性。
由表2可以得出EMS高優(yōu)先級的報(bào)文是0x10C和0X117,所以使用CANSTRESS干擾報(bào)文0x10C和0X117得到的干擾序列號是“001 000XX1XX”,由表6中報(bào)文ID的二進(jìn)制碼可以發(fā)現(xiàn)此序列號不會(huì)覆蓋其他節(jié)點(diǎn)上的報(bào)文ID,所以此干擾序列號不會(huì)影響其他節(jié)點(diǎn)(BCM、ICM、TPMS)的正常通信。但是根據(jù)EMS報(bào)文ID的優(yōu)先級或者EMS的控制器工作流程可知,EMS的其他兩個(gè)報(bào)文ID0x256、0x280也無法正常通信,使EMS節(jié)點(diǎn)的所有報(bào)文無法發(fā)到總線上。所以出現(xiàn)如表5的測試結(jié)果。
同理,分別干擾ICM、BCM節(jié)點(diǎn)的網(wǎng)絡(luò)管理報(bào)文0x102、0x101也會(huì)產(chǎn)生如表5的結(jié)果。
因此在進(jìn)行整車級的BUSOFF測試時(shí),不應(yīng)該單純的選擇某個(gè)節(jié)點(diǎn)的所有報(bào)文進(jìn)行干擾,對于不帶網(wǎng)絡(luò)管理的節(jié)點(diǎn)應(yīng)該選擇單個(gè)ECU最高優(yōu)先級的報(bào)文進(jìn)行干擾;帶網(wǎng)絡(luò)管理得報(bào)文選擇干擾網(wǎng)絡(luò)管理報(bào)文就可以干擾該節(jié)點(diǎn)的所有報(bào)文。
本文基于美國Vector公司的CANOE和CANSTRESS測試軟件工具實(shí)現(xiàn)了一種對整車BUSOFF進(jìn)行系統(tǒng)級的測試方案,包括單個(gè)節(jié)點(diǎn)測試和系統(tǒng)級測試。方案使用最高優(yōu)先級報(bào)文或網(wǎng)絡(luò)管理報(bào)文的干擾機(jī)制來驗(yàn)證在總線關(guān)閉時(shí)CAN網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)的互不干擾性。分析了此干擾機(jī)制的原理,從理論上說明干擾機(jī)制的正確性,通過測試用例驗(yàn)證了此干擾機(jī)制以及整體測試方案的準(zhǔn)確性、高效性與有效性,并且完善了整車CAN網(wǎng)絡(luò)的測試方案與測試規(guī)范。為下一步構(gòu)建一個(gè)CAN網(wǎng)絡(luò)自動(dòng)化測試平臺(tái)做準(zhǔn)備。
[1] 葉強(qiáng)生,陳書明.CAN總線在汽車網(wǎng)絡(luò)系統(tǒng)中的研究與應(yīng)用[ J].微計(jì)算機(jī)信息.2008.(14).
[2] 吳海峰. 重型卡車總線檢測技術(shù)研究[J]. 汽車實(shí)用技術(shù). 2011, (4):40-43.
[3] 藺春明,孫永鋒,俞燚等.商用車車載CAN網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)思考[J].汽車實(shí)用技術(shù).2013,(12).
[4] 馬繼周,楊濤.車用CAN總線自動(dòng)化測試平臺(tái)的研發(fā)與應(yīng)用[J].汽車實(shí)用技術(shù).2012,(10).
[5] Vector Informatik GmbH. CANoe User Manual. Version 7 [M].
[6] 鄔寬明. CAN總線原理和應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,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
李攀,就職于安徽江淮汽車股份有限公司技術(shù)中心。