《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > OSEK/VDX直接網(wǎng)絡(luò)管理一致測試方法設(shè)計
OSEK/VDX直接網(wǎng)絡(luò)管理一致測試方法設(shè)計
來源:電子技術(shù)應(yīng)用2012年第4期
程安宇1,2, 苗艷強1, 蔡林沁1, 金 輝1
1. 重慶郵電大學(xué) 自動化學(xué)院,重慶 400065; 2. 武漢大學(xué) 電子信息學(xué)院, 湖北 武漢430072
摘要: 在深入研究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ò)管理的睡眠過程為例進行一致性測試。測試結(jié)果表明,該方法能有效地檢測OSEK直接網(wǎng)絡(luò)管理功能與OSEK NM規(guī)范的一致性。
中圖分類號: TP311
文獻標識碼: A
文章編號: 0258-7998(2012)04-0126-04
Design of OSEK/VDX direct network management conformance test methods
Cheng Anyu1,2, Miao Yanqiang1, Cai Linqin1, Jin Hui1
1. Automation Institute, Chongqing University of Posts and Telecommunications, Chongqing 400065,China; 2. School of Electronic Information, WuHan University, Wuhan 430072, China
Abstract: A test method of the OSEK direct network management has been proposed after in-depth study of OSEK/VDX network management specification. According to OSEK NM specification, test architecture and test solutions of direct network management are designed, and structure of test message is defined. Finally, build the test platform based on CANoe bus analysis testing software, and take the sleeping process of OSEK direct network management as an example to do the conformance test. Test result shows that the method can effectively detect the consistency between the OSEK direct network management functions and the OSEK NM specification.
Key words : OSEK/VDX network management; conformance test; CAN bus; CANoe

    隨著近年汽車產(chǎn)業(yè)的快速發(fā)展,電子產(chǎn)品廣泛應(yīng)用于汽車控制,如發(fā)動機控制系統(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é)點未上線或出現(xiàn)故障而造成信息丟失,所以需要專門的網(wǎng)絡(luò)管理組件對車載網(wǎng)絡(luò)進行管理,以達到車載網(wǎng)絡(luò)信息傳輸準確性、安全性的目的。

    OSEK/VDX (Open Systems and the Corresponding Interfaces for Automotive Electronics/Vehicle Distributed eXecutive) 是歐洲主要的汽車廠商和研究機構(gòu)聯(lián)合提出的一種基于汽車電子開放式系統(tǒng)及其接口的軟件標準。鑒于汽車網(wǎng)絡(luò)的安全性和可靠性,OSEK/VDX中的網(wǎng)絡(luò)管理NM(Network Management)規(guī)范提供了標準的管理策略,通過接口和服務(wù)來實現(xiàn)汽車網(wǎng)絡(luò)中ECU節(jié)點的監(jiān)控和管理[3]。OSEK/VDX規(guī)范對網(wǎng)絡(luò)管理提出直接網(wǎng)絡(luò)管理和間接網(wǎng)絡(luò)管理兩種實現(xiàn)機制。
    OSEK/VDX規(guī)范是通過自然語言和圖表形式進行描述的,程序開發(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)的一致性測試方法提出了一些解決方案。參考文獻[4]提出了一種OSEK OS服務(wù)調(diào)用規(guī)范的一致性測試方法,參考文獻[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é)點之間沒有主從之分,每個節(jié)點都被網(wǎng)絡(luò)中其他的節(jié)點監(jiān)控,同時該節(jié)點也監(jiān)控網(wǎng)絡(luò)中的其他節(jié)點。直接網(wǎng)絡(luò)管理通過邏輯環(huán)對車載網(wǎng)絡(luò)進行管理與監(jiān)控,如圖1所示為直接網(wǎng)絡(luò)管理邏輯環(huán)的體系結(jié)構(gòu)。連接在總線上的A、B、C 3個節(jié)點都擁有自己唯一的網(wǎng)絡(luò)管理身份標識ID,且IDA<IDB<IDC,根據(jù)ID的大小,以A&rarr;B&rarr;C&rarr;A的順序傳輸特定的網(wǎng)絡(luò)管理報文,形成一個虛擬邏輯環(huán)。在邏輯環(huán)中連接的所有節(jié)點按照邏輯環(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é)點的狀態(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é)點地址;

    Destination ID表示網(wǎng)絡(luò)管理報文的目標地址,即接收該網(wǎng)絡(luò)管理報文的節(jié)點地址;Option Code表示操作碼,用來設(shè)置網(wǎng)絡(luò)管理報文的類型,其有Ring、Alive、LimpHome三種。    Data表示數(shù)據(jù)場,用于定義網(wǎng)絡(luò)管理報文中的附加信息。
    直接網(wǎng)絡(luò)管理中各類型報文的作用:
    (1)Ring報文:一個基本的監(jiān)視報文,當網(wǎng)絡(luò)狀態(tài)為正常狀態(tài)時,網(wǎng)絡(luò)節(jié)點在定時器的觸發(fā)下,根據(jù)節(jié)點ID的大小順序地傳送Ring報文。
    (2)Alive報文:一個在非正常狀態(tài)下的特殊報文,當一個新的節(jié)點要加入網(wǎng)絡(luò)時,節(jié)點向網(wǎng)絡(luò)中發(fā)送Alive報文。
    (3)LimpHome報文:當接收/發(fā)送錯誤計數(shù)器超過其閾值或總線出現(xiàn)嚴重錯誤時,節(jié)點進入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)中運行;輔助測試模塊作為被測系統(tǒng)的應(yīng)用程序在被測設(shè)備中運行,用來配合測試管理模塊完成網(wǎng)絡(luò)管理功能的測試。在網(wǎng)絡(luò)管理功能測試中,輔助測試模塊起到兩方面的作用,一方面用來響應(yīng)測試系統(tǒng)的發(fā)來的請求,另一方面作為被測系統(tǒng)的應(yīng)用程序,通過調(diào)用NM API函數(shù),控制IUT的運行模式,并收集被測系統(tǒng)中IUT當前的狀態(tài)信息,返回給測試系統(tǒng)。
     測試管理模塊和輔助測試模塊之間的數(shù)據(jù)信息交換通過應(yīng)用報文完成,該報文為測試管理協(xié)議數(shù)據(jù)單元(TM_PDU)。該方式下,2個測試模塊之間的通信獨立于底層網(wǎng)絡(luò)管理通信協(xié)議,不影響網(wǎng)絡(luò)管理功能。
   在OSEK 直接網(wǎng)絡(luò)管理中,網(wǎng)絡(luò)出錯處理機制是很重要的一部分。根據(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é)點的網(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模塊當前的狀態(tài)以及配置信息,用圖4(b)所示的通信模式控制輔助測試模塊調(diào)用NM服務(wù)函數(shù),圖中虛線箭頭表示根據(jù)需求服務(wù)的返回值可以選擇性的傳回測試系統(tǒng)。

 

 

    測試管理報文的格式有apiCall和apiStatus兩種:
  (1)apiCall:用來請求輔助測試模塊調(diào)用NM API,控制OSEK NM實現(xiàn)特定的動作。報文名定義形式為CallXXX(其中&ldquo;XXX&rdquo;表示NM API名稱,如:StartNM);
    (2)apiStatus:將調(diào)用NM API函數(shù)的返回值和當前NM的狀態(tài)信息返回給測試系統(tǒng),相應(yīng)的報文有APIStatus,NetStatusMsg等。
    測試管理報文兩種格式的數(shù)據(jù)單元映射到CAN報文的數(shù)據(jù)幀上,如表1所示。其中,報文名編號為不同功能測試管理報文的編號;服務(wù)編號為NM API編號,用以標識該報文是控制某個API的調(diào)用或?qū)δ硞€API的響應(yīng);目的ID為標識該測試管理報文要發(fā)送到的目標網(wǎng)絡(luò)管理節(jié)點;報文數(shù)據(jù)單元為apiStatus報文專有數(shù)據(jù)單元,用來存儲API函數(shù)調(diào)用的返回值或當前網(wǎng)絡(luò)管理單元的配置和狀態(tài)信息。

2.3 測試的流程
    OSEK NM測試可分為以下步驟:
    (1)根據(jù)OSEK NM規(guī)范,抽象出需要測試的內(nèi)容。如從NMNormal&rarr;NMBusSleep轉(zhuǎn)換過程中,網(wǎng)絡(luò)管理內(nèi)部狀態(tài)的變化。
    (2)根據(jù)測試內(nèi)容和測試方法,將直接網(wǎng)絡(luò)管理功能分為一個或多個功能模塊,針對各個功能模塊設(shè)計相應(yīng)的測試用例。
    (3)在測試系統(tǒng)中執(zhí)行測試用例,并記錄執(zhí)行過程中測試系統(tǒng)獲取的網(wǎng)絡(luò)管理狀態(tài)數(shù)據(jù)。
    (4)將測試結(jié)果數(shù)據(jù)與OSEK NM管理協(xié)議做對比,分析被測功能模塊是否與協(xié)議一致,并分析不一致的可能原因。
3 測試方法驗證
3.1 測試用例設(shè)計

    本文以網(wǎng)絡(luò)管理狀態(tài)從NMNormal轉(zhuǎn)向NMBusSleep為例進行測試。測試用例分為三個部分,即初始狀態(tài)、測試步驟和期望結(jié)果。下面給出測試用例的詳細內(nèi)容:
  (1)初始狀態(tài)
 ?、俨僮髂J綖橹鲃幽J剑∟MActive);
 ?、诒镜豊M設(shè)置networkstatus.bussleep=0;
 ?、劬W(wǎng)絡(luò)管理狀態(tài)為NMNormal;
  ④測試系統(tǒng)狀態(tài)與被測節(jié)點一致,在整個網(wǎng)絡(luò)中已建立邏輯環(huán),并正常工作。
  (2)測試步驟
 ?、贉y試設(shè)備發(fā)送CallGotoMode(Sleep)報文;
 ?、诋斀邮战酉聛鞩UT發(fā)來的第一條報文后使測試系統(tǒng)中其他的虛擬節(jié)點調(diào)用GotoMode(Sleep)服務(wù);
 ?、郛斀邮盏絀UT發(fā)來的第二條報文后,測試設(shè)備發(fā)送CallGetStatus報文,等待NetStatusMsg報文的響應(yīng),讀取被測節(jié)點中IUT當前的狀態(tài);
     ④等待TwaitBusSleep時間段后,再次發(fā)送CallGetStatus報文,等待NetStatusMsg報文的響應(yīng),讀取被測節(jié)點中IUT當前的狀態(tài)。
  (3)期望結(jié)果
 ?、買UT發(fā)送的第一條網(wǎng)絡(luò)管理報文中,sleep.ind位被置位;
 ?、贗UT發(fā)送的第二條網(wǎng)絡(luò)管理報文中,sleep.ack位被置位,且當前IUT的網(wǎng)絡(luò)狀態(tài)為NMTwbsNormal;
 ?、劢邮盏絪leep.ack=1的報文TwaitBusSleep后節(jié)點進入NMBusSleep狀態(tài);
 ?、苷麄€運行過程中,IUT都處于NMActive狀態(tài)。
3.2 測試平臺搭建與測試
     測試設(shè)備由裝有CANoe軟件的PC機、CANcaseXL和CANstress組成。CANoe是由Vector公司開發(fā)的網(wǎng)絡(luò)分析、設(shè)計和測試的專用工具,支持多種總線系統(tǒng)。CANcaseXL為Vector提供的新一代CAN和LIN的USB 2.0接口卡,與CANoe軟件組合使用。CANstress是CAN總線干擾儀,它可以直接串連到CAN網(wǎng)絡(luò)中,實現(xiàn)各種觸發(fā)條件與邏輯的干擾。被測設(shè)備為帶有OSEK NM功能的汽車儀表,外接12 V直流電源為汽車儀表供電。
    基于上述測試平臺進行網(wǎng)絡(luò)管理功能測試。首先在CANoe軟件平臺上實現(xiàn)3個CAN節(jié)點,并用CAPL語言對每個節(jié)點編程,實現(xiàn)基于OSEK 規(guī)范的直接網(wǎng)絡(luò)管理功能,在其中一個節(jié)點中添加測試管理功能模塊,運行測試用例,實現(xiàn)總體測試管理控制。汽車儀表ECU軟件中添加輔助測試程序模塊,作為儀表的應(yīng)用軟件。最后,根據(jù)預(yù)先設(shè)計好的測試用例對NMNormal到NMBusSleep的狀態(tài)轉(zhuǎn)換進行一致性測試,并記錄測試結(jié)果。
3.3 測試結(jié)果
    圖5所示為直接網(wǎng)絡(luò)管理測試在CANoe的Trace窗口上的顯示結(jié)果。圖中對報文和數(shù)據(jù)的含義做了相應(yīng)的說明。在測試系統(tǒng)的控制下,整個網(wǎng)絡(luò)進入睡眠狀態(tài),并根據(jù)測試案例成功讀取到直接網(wǎng)絡(luò)管理的狀態(tài)信息。
    通過對Trace窗口中的數(shù)據(jù)進行分析可見,測試結(jié)果跟測試案例中的預(yù)期結(jié)果一致,這說明儀表節(jié)點中直接網(wǎng)絡(luò)管理睡眠流程符合OSEK NM規(guī)范。同時也驗證了該測試方法的正確性。

    本文提出了一種基于OSEK NM管理的一致性測試方法,并詳細敘述了測試系統(tǒng)的體系結(jié)構(gòu)、測試方案、測試管理報文的定義,以及測試流程。最后通過對儀表節(jié)點的直接網(wǎng)絡(luò)管理睡眠過程的測試,說明了該方法的有效性。通過對基于OSEK規(guī)范的直接網(wǎng)絡(luò)管理的測試,能夠發(fā)現(xiàn)OSEK NM在正常工作中很難出現(xiàn)的錯誤,并能有效地驗證OSEK NM的正確性,對提高基于OSEK規(guī)范的直接網(wǎng)絡(luò)管理可靠性和穩(wěn)定性有重要的作用。
參考文獻
[1] SUWATTHIKUL J, MCMURRAN R, JONES R. Adaptive OSEK network management for in-vehicle network fault detection[C]. Vehicular Electronics and Safety,2007.ICVES. IEEE International Conference. Feb. 2008
[2] ALBERT A. Comparison of event-triggered and time-triggered concepts with regard to distributed control systems[C].Embedded World 2004, 2004.
[3] SEK Network Management-Concept and Application Programming Interface.V2.5.3[S].http://www.osek-vdx.org,2004.
[4] 李銀國,葉家盛,蔣建春. OSEK/VDX OS服務(wù)調(diào)用的規(guī)范一致性檢測方法[J].重慶郵電大學(xué)學(xué)報:自然科學(xué)版,2010,22(6):786-790.
[5] 李銳,王三宏,范德全,等. OSEK操作系統(tǒng)一致性測試用例的生成[J]. 計算機工程,2011,37(9):54-56.
[6] 朱振華,許毅平,周曼麗. 網(wǎng)絡(luò)協(xié)議測試生成方法綜述[J]. 計算機工程與應(yīng)用, 2005(15):172-175.
[7] 邢熠,葉新銘,謝高崗.網(wǎng)絡(luò)協(xié)議測試的符號化一致性關(guān)系研究[J]. 計算機工程與應(yīng)用, 2008,44(29):11-16.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。