OSEK/VDX直接網(wǎng)絡(luò)管理一致測試方法設(shè)計
摘 要: 在深入研究OSEK/VDX網(wǎng)絡(luò)管理規(guī)范的基礎(chǔ)上,提出一種針對OSEK直接網(wǎng)絡(luò)管理的測試方法。根據(jù)OSEK NM規(guī)范設(shè)計直接網(wǎng)絡(luò)管理測試架構(gòu)以及測試方案,定義測試報文的數(shù)據(jù)結(jié)構(gòu)。最后以CANoe總線分析測試軟件為基礎(chǔ)搭建測試平臺,以O(shè)SEK直接網(wǎng)絡(luò)管理的睡眠過程為例進(jìn)行一致性測試。測試結(jié)果表明,該方法能有效地檢測OSEK直接網(wǎng)絡(luò)管理功能與OSEK NM規(guī)范的一致性。
關(guān)鍵詞: OSEK/VDX網(wǎng)絡(luò)管理; 一致性測試; CAN總線; CANoe
隨著近年汽車產(chǎn)業(yè)的快速發(fā)展,電子產(chǎn)品廣泛應(yīng)用于汽車控制,如發(fā)動機(jī)控制系統(tǒng)、轉(zhuǎn)向系統(tǒng)、制動系統(tǒng)等裝置中都采用電子控制單元ECU(Electronic Control Unit)[1]。一些高檔的轎車大約有70個ECU,ECU之間傳遞的信息超過2500條[2]。為了使ECU之間實現(xiàn)信息共享,誕生了在汽車控制系統(tǒng)中應(yīng)用的互聯(lián)網(wǎng)絡(luò),即車載網(wǎng)絡(luò)。隨著汽車中電子單元的增加,網(wǎng)絡(luò)越來越復(fù)雜,ECU在通信時,可能由于其他節(jié)點(diǎn)未上線或出現(xiàn)故障而造成信息丟失,所以需要專門的網(wǎng)絡(luò)管理組件對車載網(wǎng)絡(luò)進(jìn)行管理,以達(dá)到車載網(wǎng)絡(luò)信息傳輸準(zhǔn)確性、安全性的目的。
OSEK/VDX (Open Systems and the Corresponding Interfaces for Automotive Electronics/Vehicle Distributed eXecutive) 是歐洲主要的汽車廠商和研究機(jī)構(gòu)聯(lián)合提出的一種基于汽車電子開放式系統(tǒng)及其接口的軟件標(biāo)準(zhǔn)。鑒于汽車網(wǎng)絡(luò)的安全性和可靠性,OSEK/VDX中的網(wǎng)絡(luò)管理NM(Network Management)規(guī)范提供了標(biāo)準(zhǔn)的管理策略,通過接口和服務(wù)來實現(xiàn)汽車網(wǎng)絡(luò)中ECU節(jié)點(diǎn)的監(jiān)控和管理[3]。OSEK/VDX規(guī)范對網(wǎng)絡(luò)管理提出直接網(wǎng)絡(luò)管理和間接網(wǎng)絡(luò)管理兩種實現(xiàn)機(jī)制。
OSEK/VDX規(guī)范是通過自然語言和圖表形式進(jìn)行描述的,程序開發(fā)人員在根據(jù)規(guī)范編寫應(yīng)用程序時,可能因為對規(guī)范的不同理解、編寫代碼時的失誤等原因,導(dǎo)致應(yīng)用程序與規(guī)范的不一致。對于安全性有極高要求的汽車電子系統(tǒng)而言,這種現(xiàn)象是不允許的。因此,有必要通過一致性測試來判斷開發(fā)的應(yīng)用程序是否符合預(yù)定規(guī)范。近年來,學(xué)術(shù)界對OSEK OS(OSEK Operation System)的一致性測試方法提出了一些解決方案。參考文獻(xiàn)[4]提出了一種OSEK OS服務(wù)調(diào)用規(guī)范的一致性測試方法,參考文獻(xiàn)[5]設(shè)計了一種OSEK OS一致性測試用例生成的方法,但是很少對OSEK NM的一致性測試做相應(yīng)研究。
本文在深入研究OSEK網(wǎng)絡(luò)管理規(guī)范的基礎(chǔ)上提出了一種OSEK NM一致性測試方法,設(shè)計出一種基于直接網(wǎng)絡(luò)管理功能的測試架構(gòu),并定義了測試方案、測試報文的數(shù)據(jù)結(jié)構(gòu)和測試流程。
1 OSEK直接網(wǎng)絡(luò)管理基本原理
在OSEK NM規(guī)范中,直接網(wǎng)絡(luò)管理是一種自組織形式網(wǎng)絡(luò)管理。網(wǎng)絡(luò)中節(jié)點(diǎn)之間沒有主從之分,每個節(jié)點(diǎn)都被網(wǎng)絡(luò)中其他的節(jié)點(diǎn)監(jiān)控,同時該節(jié)點(diǎn)也監(jiān)控網(wǎng)絡(luò)中的其他節(jié)點(diǎn)。直接網(wǎng)絡(luò)管理通過邏輯環(huán)對車載網(wǎng)絡(luò)進(jìn)行管理與監(jiān)控,如圖1所示為直接網(wǎng)絡(luò)管理邏輯環(huán)的體系結(jié)構(gòu)。連接在總線上的A、B、C 3個節(jié)點(diǎn)都擁有自己唯一的網(wǎng)絡(luò)管理身份標(biāo)識ID,且IDA<IDB<IDC,根據(jù)ID的大小,以A→B→C→A的順序傳輸特定的網(wǎng)絡(luò)管理報文,形成一個虛擬邏輯環(huán)。在邏輯環(huán)中連接的所有節(jié)點(diǎn)按照邏輯環(huán)規(guī)定的方向發(fā)送特定的網(wǎng)絡(luò)管理報文,實現(xiàn)直接網(wǎng)絡(luò)管理功能。
圖2所示為直接網(wǎng)絡(luò)管理的狀態(tài)模型。通過網(wǎng)絡(luò)管理服務(wù)的調(diào)用和網(wǎng)絡(luò)通信狀況的改變,引起網(wǎng)絡(luò)管理狀態(tài)的遷移,如調(diào)用StartNM()服務(wù)可啟動網(wǎng)絡(luò)管理功能,使節(jié)點(diǎn)的狀態(tài)從NMOff轉(zhuǎn)為NMOn。
在直接網(wǎng)絡(luò)管理中,為了滿足通信和網(wǎng)絡(luò)管理的需要,網(wǎng)絡(luò)管理協(xié)議數(shù)據(jù)單元NMPDU(NM Protocol Data Unit)包括地址域、控制域和數(shù)據(jù)域。圖3是網(wǎng)絡(luò)管理協(xié)議數(shù)據(jù)單元的基本格式。其中,Source ID表示網(wǎng)絡(luò)管理報文的源地址,即發(fā)送該網(wǎng)絡(luò)管理報文的節(jié)點(diǎn)地址;
Destination ID表示網(wǎng)絡(luò)管理報文的目標(biāo)地址,即接收該網(wǎng)絡(luò)管理報文的節(jié)點(diǎn)地址;Option Code表示操作碼,用來設(shè)置網(wǎng)絡(luò)管理報文的類型,其有Ring、Alive、LimpHome三種。 Data表示數(shù)據(jù)場,用于定義網(wǎng)絡(luò)管理報文中的附加信息。
直接網(wǎng)絡(luò)管理中各類型報文的作用:
(1)Ring報文:一個基本的監(jiān)視報文,當(dāng)網(wǎng)絡(luò)狀態(tài)為正常狀態(tài)時,網(wǎng)絡(luò)節(jié)點(diǎn)在定時器的觸發(fā)下,根據(jù)節(jié)點(diǎn)ID的大小順序地傳送Ring報文。
(2)Alive報文:一個在非正常狀態(tài)下的特殊報文,當(dāng)一個新的節(jié)點(diǎn)要加入網(wǎng)絡(luò)時,節(jié)點(diǎn)向網(wǎng)絡(luò)中發(fā)送Alive報文。
(3)LimpHome報文:當(dāng)接收/發(fā)送錯誤計數(shù)器超過其閾值或總線出現(xiàn)嚴(yán)重錯誤時,節(jié)點(diǎn)進(jìn)入NMLimpHome狀態(tài),并周期地發(fā)送LimpHome報文。
2 OSEK NM的一致性測試方法
OSEK NM的一致性測試是一種功能性測試,在一致性測試中,測試者不必關(guān)心被測IUT(Implementation Under Test)內(nèi)部的具體實現(xiàn),只需關(guān)心其表現(xiàn)出來的外部行為[6-7]。
2.1 測試的體系結(jié)構(gòu)
根據(jù)OSEK NM規(guī)范,將網(wǎng)絡(luò)管理的測試體系結(jié)構(gòu)分為兩個部分,即被測系統(tǒng)及測試系統(tǒng)。
(1)被測系統(tǒng),是IUT的載體,在測試系統(tǒng)中實現(xiàn)網(wǎng)絡(luò)管理功能。
(2)測試系統(tǒng),用來執(zhí)行測試案例程序,該設(shè)備通過網(wǎng)絡(luò)跟被測設(shè)備相互通信。
整個網(wǎng)絡(luò)管理測試方案分為兩個子塊,即測試管理模塊和輔助測試模塊。測試管理模塊由測試案例組成,在測試系統(tǒng)中運(yùn)行;輔助測試模塊作為被測系統(tǒng)的應(yīng)用程序在被測設(shè)備中運(yùn)行,用來配合測試管理模塊完成網(wǎng)絡(luò)管理功能的測試。在網(wǎng)絡(luò)管理功能測試中,輔助測試模塊起到兩方面的作用,一方面用來響應(yīng)測試系統(tǒng)的發(fā)來的請求,另一方面作為被測系統(tǒng)的應(yīng)用程序,通過調(diào)用NM API函數(shù),控制IUT的運(yùn)行模式,并收集被測系統(tǒng)中IUT當(dāng)前的狀態(tài)信息,返回給測試系統(tǒng)。
測試管理模塊和輔助測試模塊之間的數(shù)據(jù)信息交換通過應(yīng)用報文完成,該報文為測試管理協(xié)議數(shù)據(jù)單元(TM_PDU)。該方式下,2個測試模塊之間的通信獨(dú)立于底層網(wǎng)絡(luò)管理通信協(xié)議,不影響網(wǎng)絡(luò)管理功能。
在OSEK 直接網(wǎng)絡(luò)管理中,網(wǎng)絡(luò)出錯處理機(jī)制是很重要的一部分。根據(jù)OSEK NM規(guī)范,OSEK NM可以處理一些常見的網(wǎng)絡(luò)錯誤,如通信超時、BusOff等,所以本文在網(wǎng)絡(luò)管理功能測試系統(tǒng)中增加了模擬和制造網(wǎng)絡(luò)錯誤的模塊。
綜上所述,在直接網(wǎng)絡(luò)管理的測試架構(gòu)中,測試系統(tǒng)必須具備以下功能:
(1)測試系統(tǒng)必須具備網(wǎng)絡(luò)管理功能,發(fā)送網(wǎng)絡(luò)管理報文,并能模擬一個或多個網(wǎng)絡(luò)管理節(jié)點(diǎn)的網(wǎng)絡(luò)關(guān)系行為。
(2)測試系統(tǒng)能接受并分析NMPDU,判斷被測系統(tǒng)中的IUT是否符合網(wǎng)絡(luò)管理規(guī)范,即帶有OSEK 直接網(wǎng)絡(luò)管理功能。
(3)測試系統(tǒng)能夠通過測試設(shè)備中一種特定的測試軟件編程來控制相應(yīng)的硬件設(shè)備,使總線出現(xiàn)特定的網(wǎng)絡(luò)故障(如Vector公司的CAN總線干擾儀CANstress)。
2.2 測試方案和測試管理報文的定義
在直接網(wǎng)絡(luò)管理模塊正常工作時,ECU應(yīng)用程序通過調(diào)用NM API接口函數(shù)來控制OSEK NM的相關(guān)動作,如功能開啟、關(guān)閉及睡眠等。而在直接網(wǎng)絡(luò)管理的測試過程中,整個測試系統(tǒng)必須能夠模擬這一過程。為了實現(xiàn)這一功能,在測試系統(tǒng)與被測系統(tǒng)之間有兩種類型的報文,即直接網(wǎng)絡(luò)管理報文和測試管理報文。測試管理報文是測試管理模塊和輔助測試模塊之間的數(shù)據(jù)通道,使測試管理模塊能夠間接控制IUT,從而實現(xiàn)測試功能。圖4所示為測試管理模塊和輔助測試模塊之間的兩種通信模式。
測試系統(tǒng)用圖4(a)所示的通信模式獲取被測系統(tǒng)中
NM模塊當(dāng)前的狀態(tài)以及配置信息,用圖4(b)所示的通信模式控制輔助測試模塊調(diào)用NM服務(wù)函數(shù),圖中虛線箭頭表示根據(jù)需求服務(wù)的返回值可以選擇性的傳回測試系統(tǒng)。