朱 龍, 周 旋, 王 凱, 黃 帥
(徐州徐工汽車(chē)制造有限公司, 江蘇 徐州 221100)
汽車(chē)技術(shù)在朝著電子化發(fā)展的過(guò)程中,車(chē)載ECU(Electronic Control Unit,電子控制單元) 的數(shù)量必然急劇增加。ECU通信過(guò)程中,為防止其他節(jié)點(diǎn)未在線或處于故障狀態(tài)而導(dǎo)致網(wǎng)絡(luò)信號(hào)的丟失,專門(mén)的網(wǎng)絡(luò)管理機(jī)制隨之出現(xiàn)[1]。網(wǎng)絡(luò)管理機(jī)制不僅能夠保證ECU間通信的穩(wěn)定,也可以作為休眠喚醒的管理機(jī)制,使ECU適時(shí)地進(jìn)入靜態(tài)功耗狀態(tài)[2]。
汽車(chē)軟件標(biāo)準(zhǔn)OESK/VDX規(guī)范提供了兩種網(wǎng)絡(luò)管理機(jī)制,直接網(wǎng)絡(luò)管理和間接網(wǎng)絡(luò)管理,統(tǒng)稱OSEK網(wǎng)絡(luò)管理。間接網(wǎng)絡(luò)管理基本沒(méi)有節(jié)點(diǎn)間的通信控制邏輯,而直接網(wǎng)絡(luò)管理涉及較為復(fù)雜的測(cè)試邏輯,因此也是本系統(tǒng)測(cè)試的重點(diǎn)。OSEK網(wǎng)絡(luò)管理定義了NM通信報(bào)文,以特定ID作為與其他應(yīng)用報(bào)文的區(qū)分,并為報(bào)文設(shè)定了特定數(shù)據(jù)內(nèi)容。
網(wǎng)絡(luò)管理 (Network Management,簡(jiǎn)稱NM) 測(cè)試主要關(guān)注NM報(bào)文格式、NM時(shí)間參數(shù)測(cè)試和NM管理邏輯測(cè)試。下文將會(huì)詳細(xì)討論OSEK NM的測(cè)試內(nèi)容和方法。
通過(guò)分析OSEK網(wǎng)絡(luò)管理的需求規(guī)范,確定NM一致性測(cè)試的測(cè)試內(nèi)容及方法。
如圖1所示為OSEK網(wǎng)絡(luò)管理狀態(tài)跳轉(zhuǎn)示意圖,網(wǎng)絡(luò)管理狀態(tài)如下:NM Off、NM On、NM ShutDown,其中NM On狀態(tài)下,又分為NM Iinit、NM Awake、NM BusSleep三種子狀 態(tài) , NM Awake 又 包 含 NM Reset、 NM Normal、 NM LimpHome三種狀態(tài)。

圖1 OSEK網(wǎng)絡(luò)管理狀態(tài)跳轉(zhuǎn)示意圖
OSEK通過(guò)讓各節(jié)點(diǎn)建環(huán)的形式進(jìn)行網(wǎng)絡(luò)的管理,如網(wǎng)段上包含A、B、C三個(gè)節(jié)點(diǎn),則邏輯環(huán)為A-B-C-A,如此循環(huán)往復(fù)。為滿足NM通信需求,OSEK定義了3種NMPDU (網(wǎng)絡(luò)管理數(shù)據(jù)幀):Alive、Ring、LimpHome報(bào)文,并定義了幾個(gè)重要時(shí)間參數(shù),見(jiàn)表1。

表1 OSEK網(wǎng)絡(luò)管理參數(shù)
根據(jù)上述,可以設(shè)計(jì)一致性測(cè)試用例,本系統(tǒng)涵蓋50+條OSEK NM測(cè)試用例,覆蓋范圍廣泛,測(cè)試用例劃分為以下幾部分。
1) NM報(bào)文格式測(cè)試,如Alive報(bào)文格式、Ring報(bào)文格式、Limphome報(bào)文格式測(cè)試等。
2) NM 時(shí) 間 參 數(shù) 測(cè) 試 : 如 T_Typ、 T_Max、T_Error、T_WaitBusSleep等時(shí)間測(cè)試。
3) 邏輯環(huán)測(cè)試:如邏輯環(huán)建立、異常Ring報(bào)文干擾等測(cè)試。
4) 狀態(tài)跳轉(zhuǎn)測(cè)試:如Normal狀態(tài)下睡眠響應(yīng)、Limphome狀態(tài)下睡眠響應(yīng)、Limphome復(fù)位、睡眠中斷等測(cè)試。
基于以上測(cè)試需求,本文設(shè)計(jì)了一套車(chē)載電控單元網(wǎng)絡(luò)管理自動(dòng)化測(cè)試設(shè)備。設(shè)備以CANoe為軟件平臺(tái),輔以針對(duì)測(cè)試而開(kāi)發(fā)的OSEK NM通信模型,實(shí)現(xiàn)NM的自動(dòng)化測(cè)試。較手動(dòng)測(cè)試而言,該設(shè)備具有自動(dòng)化程度高、通用性強(qiáng)、執(zhí)行效率高等優(yōu)點(diǎn),通過(guò)NM通信模型的加入,可以模擬各種NM邏輯,使測(cè)試范圍覆蓋度遠(yuǎn)遠(yuǎn)高于手動(dòng)測(cè)試。
該測(cè)試設(shè)備基于測(cè)試內(nèi)容設(shè)計(jì),由測(cè)試執(zhí)行軟件、硬件系統(tǒng)、NM通信模型、測(cè)試腳本4部分組成。
測(cè)試執(zhí)行軟件選用Vector公司的CANoe軟件。CANoe具有分布式系統(tǒng)設(shè)計(jì)、仿真、測(cè)試、評(píng)估等功能,支持CAN總線通信仿真模型編寫(xiě)[3]。本設(shè)備應(yīng)用到CANoe的CAPL編程環(huán)境,進(jìn)行NM通信模型及測(cè)試腳本的開(kāi)發(fā)。
測(cè)試硬件系統(tǒng)包括總線接口卡、測(cè)試配置板卡、程控電源等,硬件通過(guò)開(kāi)發(fā)程控包,可在CANoe中直接調(diào)用,例如配置測(cè)試終端電阻,通過(guò)串口進(jìn)行供電電源的電壓輸出控制等[4]。測(cè)試配置示意如圖2所示,虛線框內(nèi)為通過(guò)測(cè)試配置板卡控制的可選終端電阻。

圖2 測(cè)試配置示意圖
NM通信模型由CAPL開(kāi)發(fā),因此可以與下位機(jī)執(zhí)行軟件無(wú)縫銜接。NM通信模型實(shí)現(xiàn)OSEK網(wǎng)絡(luò)管理的虛擬節(jié)點(diǎn)在線仿真功能,如可以建立OSEK虛擬邏輯環(huán)、邏輯環(huán)異常干擾等,如圖3所示。虛擬節(jié)點(diǎn)支持對(duì)NM報(bào)文的信號(hào)值、周期等參數(shù)進(jìn)行設(shè)置,以滿足不同的測(cè)試項(xiàng)要求,這些模型參數(shù)的調(diào)整接口在測(cè)試腳本中能夠直接調(diào)用。

圖3 OSEK NM通信模型示意圖
測(cè)試腳本同樣基于CAPL編寫(xiě),因此可與NM通信模型聯(lián)合運(yùn)行在CANoe平臺(tái)上進(jìn)行NM測(cè)試。
假定測(cè)試ECU的NM網(wǎng)絡(luò)管理報(bào)文ID為0x627,則設(shè)置NM通信模型主要參數(shù)如表2所示。根據(jù)測(cè)試需求,可以提煉出幾種模型狀態(tài)定義,如圖4所示。

表2 OSEK NM模型參數(shù)

圖4 OSEK NM通信模型定義
測(cè)試用例實(shí)現(xiàn)的過(guò)程,就是根據(jù)不同測(cè)試目的,調(diào)整NM通信模型,實(shí)現(xiàn)數(shù)據(jù)驗(yàn)證。因測(cè)試條目較多,因此選擇兩個(gè)比較典型的測(cè)試用例加以說(shuō)明。
1) 插入指向ECU的Ring報(bào)文測(cè)試。
首先,為ECU供電,使ECU喚醒;調(diào)用VirNode建環(huán)模型,使ECU與編號(hào)1~3的虛擬節(jié)點(diǎn)建立正常的邏輯環(huán);然后調(diào)用VirNode異常干擾模型,即插入編號(hào)4的虛擬節(jié)點(diǎn),且設(shè)置VirNode4.Byte (0) =0x27,VirNode4.OpCode=0x2,即指向ECU的Ring報(bào)文;最后觀察ECU發(fā)送報(bào)文狀態(tài)。
2) Normal狀態(tài)進(jìn)入睡眠時(shí)NM喚醒中斷測(cè)試。
首先,為ECU供電,使ECU喚醒;調(diào)用VirNode建環(huán)模型,使ECU與編號(hào)1~3的虛擬節(jié)點(diǎn)建立正常的邏輯環(huán);然后改變ECU供電狀態(tài),使其滿足睡眠條件,則ECU發(fā)送帶有睡眠請(qǐng)求的Ring報(bào)文;之后調(diào)用VirNode睡眠響應(yīng)模型,滿足總線睡眠;在T_WaitBusSleep時(shí)間內(nèi),調(diào)用VirNode睡眠中斷模型,即重新使編號(hào)1的模擬節(jié)點(diǎn)上線,發(fā)送VirNode1.Byte(0)=0x28,VirNode1.OpCode=0x1的Alive報(bào)文;最后觀察ECU發(fā)送報(bào)文狀態(tài)。
因OSEK NM的測(cè)試條目總和達(dá)到了50條以上的規(guī)模,因此本節(jié)也只選取了兩個(gè)典型的測(cè)試案例進(jìn)行分析說(shuō)明。
測(cè)試描述:驗(yàn)證T_WaitBusSleep時(shí)間參數(shù)的偏差。
評(píng)價(jià)標(biāo)準(zhǔn):T_WaitBusSleep時(shí)間應(yīng)滿足在4~6s時(shí)間內(nèi)。測(cè)試結(jié)果分析如下。
1) 如圖5所示,ECU在時(shí)間戳940.396s發(fā)送了睡眠幀,但是在之后又發(fā)送了一幀ID為0x2C9的應(yīng)用幀,不滿足OSEK的要求。

圖5 T_WaitBusSleep時(shí)間測(cè)試數(shù)據(jù)1
2) 如圖6所示,在時(shí)間戳945.397s出現(xiàn)ECU不應(yīng)答的發(fā)送錯(cuò)誤幀,說(shuō)明ECU進(jìn)入睡眠狀態(tài),則T_WaitBusSleep時(shí)間為睡眠幀到出現(xiàn)錯(cuò)誤幀的時(shí)間差,即5.001s。

圖6 T_WaitBusSleep時(shí)間測(cè)試數(shù)據(jù)2
綜合1)、2) 結(jié)果分析,該項(xiàng)測(cè)試結(jié)果為錯(cuò)誤,雖然T_WaitBusSleep時(shí)間正確,但是睡眠幀發(fā)出后,ECU應(yīng)停止發(fā)送所有報(bào)文,因此狀態(tài)錯(cuò)誤。
測(cè)試用例:Limphome狀態(tài)進(jìn)入睡眠時(shí)NM喚醒中斷測(cè)試。
測(cè)試描述:驗(yàn)證在ECU從Limphome狀態(tài)進(jìn)入睡眠模式過(guò)程中,接收到NM報(bào)文時(shí)的睡眠中斷反應(yīng)。
評(píng)價(jià)標(biāo)準(zhǔn):T_WaitBusSleep時(shí)間內(nèi),接收到NM報(bào)文時(shí),ECU能被喚醒,并重新發(fā)送Limphome報(bào)文。
測(cè)試結(jié)果分析如下。
1) 如圖7所示,在時(shí)間戳1866.971s接收到NM報(bào)文,ECU在1867.962s發(fā)出自身NM報(bào)文。

圖7 OSEK NM總線數(shù)據(jù)
2) 喚醒后,ECU仍然處于limphome狀態(tài)。喚醒后ECU.OpCode=0x14。
綜合1)、2) 評(píng)價(jià),本項(xiàng)測(cè)試結(jié)果正確。
基于OSEK/VDX網(wǎng)絡(luò)管理規(guī)范開(kāi)發(fā)的車(chē)載電控單元OSEK網(wǎng)絡(luò)管理測(cè)試設(shè)備,通過(guò)開(kāi)發(fā)NM通信模型的設(shè)計(jì)理念,使系統(tǒng)對(duì)于OSEK網(wǎng)絡(luò)管理的測(cè)試更智能、更準(zhǔn)確,且能覆蓋更多的測(cè)試用例。通過(guò)驗(yàn)證,該設(shè)備能夠準(zhǔn)確的完成網(wǎng)絡(luò)管理測(cè)試,且比人工測(cè)試縮短3倍以上的時(shí)間,因此極大提高了OSEK網(wǎng)絡(luò)管理的整體測(cè)試效率。