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