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