王樂樂 陳聰
摘要:隨著近年汽車產(chǎn)業(yè)的快速發(fā)展,電子產(chǎn)品廣泛應(yīng)用于汽車儀表,隨著汽車中電子單元的增加,網(wǎng)絡(luò)越來越復(fù)雜,ECU在通信時,可能由于其他節(jié)點未上線或出現(xiàn)故障而造成信息丟失,所以需要專門的網(wǎng)絡(luò)管理組件對車載網(wǎng)絡(luò)進(jìn)行管理,以達(dá)到車載網(wǎng)絡(luò)信息傳輸準(zhǔn)確性、安全性的目的。
關(guān)鍵詞:汽車儀表;網(wǎng)絡(luò)管理;一致性測試;系統(tǒng)設(shè)計
1 汽車儀表NM協(xié)議一致性測試項目分析
車載網(wǎng)絡(luò)中每個ECU節(jié)點有唯一地址編號。OS-EK/VDX直接網(wǎng)絡(luò)管理按照ECU地址遞增順序構(gòu)造邏輯環(huán),并采用邏輯環(huán)機制監(jiān)控網(wǎng)絡(luò)各ECU節(jié)點正常模式、睡眠模式及錯誤處理模式之間的狀態(tài)切換,實現(xiàn)對網(wǎng)絡(luò)節(jié)點的協(xié)同管理。AUTOSAR網(wǎng)絡(luò)管理采用分布式直接網(wǎng)絡(luò)管理策略,根據(jù)網(wǎng)絡(luò)管理協(xié)議數(shù)據(jù)單元(NMPDU)接收情況來監(jiān)控網(wǎng)絡(luò)狀態(tài)。OSEK/VDX和AUTOSAR的NMPDU均包含地址域、控制域和數(shù)據(jù)域三個部分。地址域指定通信雙方ECU節(jié)點地址;操作域說明具體報文類型,OSEK/VDX網(wǎng)絡(luò)管理報文有Alive、Ring和Limphome3種報文,AUTOSAR網(wǎng)絡(luò)管理主要有RepeatMessage和Nor-malOperation兩種報文;數(shù)據(jù)域指定報文附加信息(可選)。NM協(xié)議一致性測試主要分為物理層、網(wǎng)絡(luò)層和通信層測試3個部分。物理層測試通過操控某些物理模塊來模擬物理干擾(如CAN干擾或電壓干擾等),測試ECU節(jié)點的干擾恢復(fù)能力。網(wǎng)絡(luò)層測試主要監(jiān)控ECU節(jié)點網(wǎng)絡(luò)狀態(tài)切換,如喚醒、休眠或者邏輯環(huán)建立等。通信層測試主要測試汽車儀表網(wǎng)絡(luò)管理報文的周期、類型或其他參數(shù)等。各層常用測試用例及所涉及到的信號類型見表1。
2 NM協(xié)議一致性測試系統(tǒng)設(shè)計與實現(xiàn)
2.1 下位機測試儀的硬件設(shè)計
下位機測試儀選用STM32F105RCT6作為主控芯片,硬件框架見圖1。其主要功能模塊包括物理層程控電壓模塊、物理層干擾模擬(含電壓干擾和CAN干擾)、CAN通信模塊、顯示報警模塊、定時器實時控制模塊。
程控電壓模塊:選用LM2596-ADJ(簡稱ADJ)芯片輸出程控可調(diào)電壓。ADJ芯片內(nèi)含基準(zhǔn)穩(wěn)壓器(1.23V),通過ADJ輸出引腳、地線和主控芯片DAC引腳分別相對于反饋引腳FB接一個電阻R1、R2和R3,電阻阻值根據(jù)需求進(jìn)行計算和設(shè)計。控制數(shù)模轉(zhuǎn)換器的輸出電壓,實現(xiàn)ADJ變換器輸出電壓的調(diào)整。
2.2 基于TSCN腳本的測試用例編寫
以某款汽車儀表物理CAN干擾一致性測試用例為例,介紹基于TSCN的測試用例腳本編寫過程。
2.2.1 測試目的該款汽車儀表ECU節(jié)點(地址:X430)正常通信時,測試CAN干擾后的通信恢復(fù)能力。
2.2.2 測試步驟
(1)通過CAN高和CAN低短路產(chǎn)生CAN干擾;(2)延時1s;(3)CAN高和CAN低短路恢復(fù)正常,消除干擾;(4)檢測Busoff恢復(fù)時間內(nèi)是否接收Limphome報文,如果接受到,測試合格返回通過信號;如果沒接受到,測試不合格返回失敗信號。
2.2.3 預(yù)期結(jié)果
(1)總線短路后,若停止收發(fā)報文則說明總線進(jìn)入Busoff狀態(tài),干擾模擬測試成功,否則失??;(2)干擾消除后,測試儀在Busoff恢復(fù)時間(200ms)內(nèi)接收到第一幀Limphome報文,則說明CAN干擾恢復(fù)測試符合測試協(xié)議標(biāo)準(zhǔn),否則測試不合格。
2.3 TSCN腳本驅(qū)動的NM協(xié)議一致性自動測試
下位機測試儀采用解釋執(zhí)行方式順序執(zhí)行。腳本中指令語句的合理存儲是腳本有效執(zhí)行的關(guān)鍵。TSCN測試腳本從上至下由若干條指令語句組成,指令語句分為基礎(chǔ)指令和復(fù)合指令兩類。測試腳本對應(yīng)的指令數(shù)據(jù)存儲結(jié)構(gòu)如下:
#includeMaxsizeComm200
//基礎(chǔ)指令數(shù)據(jù)結(jié)構(gòu)
typedefstructbaseCom
{charmainKey[10];charsubKey[10];charparamData[100];structbaseComm*nextComm;};
typedefstruct//命令行數(shù)據(jù)結(jié)構(gòu)
{charcomType[10];charcommCondiiton[50];structbaseCom*condition0pter;structbaseComm*success0pter;structbaseComm*fail0pter;}
commandLine;commandLinecom[MaxsizeComm];
經(jīng)分析不難發(fā)現(xiàn),在執(zhí)行過程中IF或者WHILE等復(fù)合指令語句實際上是依據(jù)一定邏輯條件控制多條基礎(chǔ)指令語句組合執(zhí)行。如果將基礎(chǔ)指令語句看作邏輯條件恒為真的特殊復(fù)合指令語句,這樣兩類指令語句就可以統(tǒng)一用命令行(commandLine)結(jié)構(gòu)描述。commandLine結(jié)構(gòu)包含5個數(shù)據(jù)子項,前兩項描述指令語句的類型和執(zhí)行條件,后三項分別是基礎(chǔ)指令baseComm鏈表的頭指針域,描述條件判斷、條件成立和不成立時要執(zhí)行的多個基礎(chǔ)測試指令集合?;A(chǔ)指令語句對應(yīng)的commandLine結(jié)構(gòu)中,commCondi-tion子項默認(rèn)為\0,conditionOpter和failOpter指針默認(rèn)NULL;WHILE復(fù)合語句對應(yīng)的commandLine結(jié)構(gòu)中,failOpter指針默認(rèn)為NULL?;A(chǔ)測試指令采用baseComm結(jié)構(gòu)體描述,分別對應(yīng)VOL、IO、TIMER、CAN和RESULT等基礎(chǔ)指令的主關(guān)鍵字、次關(guān)鍵字和參數(shù)信息。TSCN腳本中所有指令語句從上至下依次存儲到comm結(jié)構(gòu)順序表中?;谝陨现噶畲鎯Y(jié)構(gòu),用例腳本解釋執(zhí)行算法如下:
先取出當(dāng)前指令語句的指令類型,如果是基礎(chǔ)指令,直接執(zhí)行成功指令集,如果不是,判斷是否為IF語句;如果為IF語句,直接執(zhí)行條件指令集,然后根據(jù)結(jié)果對比條件文本串,滿足條件時則執(zhí)行成功指令集,不滿足則執(zhí)行失敗指令集;如果不是IF語句,則為WHILE語句,條件指令集執(zhí)行后,結(jié)果滿足條件時,會執(zhí)行成功指令集,進(jìn)而跳轉(zhuǎn)到條件指令集繼續(xù)執(zhí)行,如果條件指令集執(zhí)行后結(jié)果不滿足條件,執(zhí)行失敗指令集,而后判斷下一條指令。
3結(jié)語
實驗結(jié)果表明:該系統(tǒng)能有效實現(xiàn)汽車儀表網(wǎng)絡(luò)管理協(xié)議在物理層、網(wǎng)絡(luò)層和通信層上的一致性自動測試,而且平均測試耗時明顯減少,測試效率提高。
參考文獻(xiàn):
[1] 吳偉,馬繼周,張志敏.基于AUTOSAR標(biāo)準(zhǔn)的網(wǎng)絡(luò)管理協(xié)議的設(shè)計[J].汽車實用技術(shù),2012(9):10-13.
(作者單位:長城汽車股份有限公司-哈弗技術(shù)中心)
第一作者簡介:王樂樂,男,漢,河北保定,本科,助理工程師,汽車電子電器開發(fā)。