新聞中心

        EEPW首頁 > 汽車電子 > 設計應用 > OSEK/VDX直接網絡管理一致測試方法設計

        OSEK/VDX直接網絡管理一致測試方法設計

        作者: 時間:2017-06-07 來源:網絡 收藏

        隨著近年汽車產業的快速發展,電子產品廣泛應用于汽車控制,如發動機控制系統、轉向系統、制動系統等裝置中都采用電子控制單元ECU(Electronic Control Unit)[1]。一些高檔的轎車大約有70個ECU,ECU之間傳遞的信息超過2500條[2]。為了使ECU之間實現信息共享,誕生了在汽車控制系統中應用的互聯網絡,即車載網絡。隨著汽車中電子單元的增加,網絡越來越復雜,ECU在通信時,可能由于其他節點未上線或出現故障而造成信息丟失,所以需要專門的組件對車載網絡進行管理,以達到車載網絡信息傳輸準確性、安全性的目的。

        /VDX (Open Systems and the Corresponding Interfaces for Automotive Electronics/Vehicle Distributed eXecutive) 是歐洲主要的汽車廠商和研究機構聯合提出的一種基于汽車電子開放式系統及其接口的軟件標準。鑒于汽車網絡的安全性和可靠性,/VDX中的NM(Network Management)規范提供了標準的管理策略,通過接口和服務來實現汽車網絡中ECU節點的監控和管理[3]。/VDX規范對提出直接網絡管理和間接網絡管理兩種實現機制。

        OSEK/VDX規范是通過自然語言和圖表形式進行描述的,程序開發人員在根據規范編寫應用程序時,可能因為對規范的不同理解、編寫代碼時的失誤等原因,導致應用程序與規范的不一致。對于安全性有極高要求的汽車電子系統而言,這種現象是不允許的。因此,有必要通過來判斷開發的應用程序是否符合預定規范。近年來,學術界對OSEK OS(OSEK Operation System)的方法提出了一些解決方案。參考文獻[4]提出了一種OSEK OS服務調用規范的方法,參考文獻[5]設計了一種OSEK OS一致性測試用例生成的方法,但是很少對OSEK NM的一致性測試做相應研究。

        本文在深入研究OSEK網絡管理規范的基礎上提出了一種OSEK NM一致性測試方法,設計出一種基于直接網絡管理功能的測試架構,并定義了測試方案、測試報文的數據結構和測試流程。

        1 OSEK直接網絡管理基本原理


        在OSEK NM規范中,直接網絡管理是一種自組織形式網絡管理。網絡中節點之間沒有主從之分,每個節點都被網絡中其他的節點監控,同時該節點也監控網絡中的其他節點。直接網絡管理通過邏輯環對車載網絡進行管理與監控,如圖1所示為直接網絡管理邏輯環的體系結構。連接在總線上的A、B、C 3個節點都擁有自己唯一的網絡管理身份標識ID,且IDAIDBIDC,根據ID的大小,以A→B→C→A的順序傳輸特定的網絡管理報文,形成一個虛擬邏輯環。在邏輯環中連接的所有節點按照邏輯環規定的方向發送特定的網絡管理報文,實現直接網絡管理功能。

        圖2所示為直接網絡管理的狀態模型。通過網絡管理服務的調用和網絡通信狀況的改變,引起網絡管理狀態的遷移,如調用StartNM()服務可啟動網絡管理功能,使節點的狀態從NMOff轉為NMOn。

        在直接網絡管理中,為了滿足通信和網絡管理的需要,網絡管理協議數據單元NMPDU(NM Protocol Data Unit)包括地址域、控制域和數據域。圖3是網絡管理協議數據單元的基本格式。其中,Source ID表示網絡管理報文的源地址,即發送該網絡管理報文的節點地址;

        Destination ID表示網絡管理報文的目標地址,即接收該網絡管理報文的節點地址;Option Code表示操作碼,用來設置網絡管理報文的類型,其有Ring、Alive、LimpHome三種。 Data表示數據場,用于定義網絡管理報文中的附加信息。

        本文引用地址:http://www.104case.com/article/201706/350621.htm

        直接網絡管理中各類型報文的作用:

        (1)Ring報文:一個基本的監視報文,當網絡狀態為正常狀態時,網絡節點在定時器的觸發下,根據節點ID的大小順序地傳送Ring報文。

        (2)Alive報文:一個在非正常狀態下的特殊報文,當一個新的節點要加入網絡時,節點向網絡中發送Alive報文。

        (3)LimpHome報文:當接收/發送錯誤計數器超過其閾值或總線出現嚴重錯誤時,節點進入NMLimpHome狀態,并周期地發送LimpHome報文。

        2 OSEK NM的一致性測試方法

        OSEK NM的一致性測試是一種功能性測試,在一致性測試中,測試者不必關心被測IUT(Implementation Under Test)內部的具體實現,只需關心其表現出來的外部行為[6-7]。

        2.1 測試的體系結構

        根據OSEK NM規范,將網絡管理的測試體系結構分為兩個部分,即被測系統及測試系統。

        (1)被測系統,是IUT的載體,在測試系統中實現網絡管理功能。

        (2)測試系統,用來執行測試案例程序,該設備通過網絡跟被測設備相互通信。

        整個網絡管理測試方案分為兩個子塊,即測試管理模塊和輔助測試模塊。測試管理模塊由測試案例組成,在測試系統中運行;輔助測試模塊作為被測系統的應用程序在被測設備中運行,用來配合測試管理模塊完成網絡管理功能的測試。在網絡管理功能測試中,輔助測試模塊起到兩方面的作用,一方面用來響應測試系統的發來的請求,另一方面作為被測系統的應用程序,通過調用NM API函數,控制IUT的運行模式,并收集被測系統中IUT當前的狀態信息,返回給測試系統。

        測試管理模塊和輔助測試模塊之間的數據信息交換通過應用報文完成,該報文為測試管理協議數據單元(TM_PDU)。該方式下,2個測試模塊之間的通信獨立于底層網絡管理通信協議,不影響網絡管理功能。

        在OSEK 直接網絡管理中,網絡出錯處理機制是很重要的一部分。根據OSEK NM規范,OSEK NM可以處理一些常見的網絡錯誤,如通信超時、BusOff等,所以本文在網絡管理功能測試系統中增加了模擬和制造網絡錯誤的模塊。

        綜上所述,在直接網絡管理的測試架構中,測試系統必須具備以下功能:

        (1)測試系統必須具備網絡管理功能,發送網絡管理報文,并能模擬一個或多個網絡管理節點的網絡關系行為。

        (2)測試系統能接受并分析NMPDU,判斷被測系統中的IUT是否符合網絡管理規范,即帶有OSEK 直接網絡管理功能。

        (3)測試系統能夠通過測試設備中一種特定的測試軟件編程來控制相應的硬件設備,使總線出現特定的網絡故障(如Vector公司的CAN總線干擾儀CANstress)。

        2.2 測試方案和測試管理報文的定義

        在直接網絡管理模塊正常工作時,ECU應用程序通過調用NM API接口函數來控制OSEK NM的相關動作,如功能開啟、關閉及睡眠等。而在直接網絡管理的測試過程中,整個測試系統必須能夠模擬這一過程。為了實現這一功能,在測試系統與被測系統之間有兩種類型的報文,即直接網絡管理報文和測試管理報文。測試管理報文是測試管理模塊和輔助測試模塊之間的數據通道,使測試管理模塊能夠間接控制IUT,從而實現測試功能。圖4所示為測試管理模塊和輔助測試模塊之間的兩種通信模式。

        測試系統用圖4(a)所示的通信模式獲取被測系統中NM模塊當前的狀態以及配置信息,用圖4(b)所示的通信模式控制輔助測試模塊調用NM服務函數,圖中虛線箭頭表示根據需求服務的返回值可以選擇性的傳回測試系統。

        測試管理報文的格式有apiCall和apiStatus兩種:

        (1)apiCall:用來請求輔助測試模塊調用NM API,控制OSEK NM實現特定的動作。報文名定義形式為CallXXX(其中“XXX”表示NM API名稱,如:StartNM);
        (2)apiStatus:將調用NM API函數的返回值和當前NM的狀態信息返回給測試系統,相應的報文有APIStatus,NetStatusMsg等。

        測試管理報文兩種格式的數據單元映射到CAN報文的數據幀上,如表1所示。其中,報文名編號為不同功能測試管理報文的編號;服務編號為NM API編號,用以標識該報文是控制某個API的調用或對某個API的響應;目的ID為標識該測試管理報文要發送到的目標網絡管理節點;報文數據單元為apiStatus報文專有數據單元,用來存儲API函數調用的返回值或當前網絡管理單元的配置和狀態信息。


        2.3 測試的流程

        OSEK NM測試可分為以下步驟:
        (1)根據OSEK NM規范,抽象出需要測試的內容。如從NMNormal→NMBusSleep轉換過程中,網絡管理內部狀態的變化。
        (2)根據測試內容和測試方法,將直接網絡管理功能分為一個或多個功能模塊,針對各個功能模塊設計相應的測試用例。
        (3)在測試系統中執行測試用例,并記錄執行過程中測試系統獲取的網絡管理狀態數據。
        (4)將測試結果數據與OSEK NM管理協議做對比,分析被測功能模塊是否與協議一致,并分析不一致的可能原因。

        3 測試方法驗證

        3.1 測試用例設計

        本文以網絡管理狀態從NMNormal轉向NMBusSleep為例進行測試。測試用例分為三個部分,即初始狀態、測試步驟和期望結果。下面給出測試用例的詳細內容:

        (1)初始狀態

        ①操作模式為主動模式(NMActive);
        ②本地NM設置networkstatus.bussleep=0;
        ③網絡管理狀態為NMNormal;
        ④測試系統狀態與被測節點一致,在整個網絡中已建立邏輯環,并正常工作。

        (2)測試步驟

        ①測試設備發送CallGotoMode(Sleep)報文;
        ②當接收接下來IUT發來的第一條報文后使測試系統中其他的虛擬節點調用GotoMode(Sleep)服務;
        ③當接收到IUT發來的第二條報文后,測試設備發送CallGetStatus報文,等待NetStatusMsg報文的響應,讀取被測節點中IUT當前的狀態;
        ④等待TwaitBusSleep時間段后,再次發送CallGetStatus報文,等待NetStatusMsg報文的響應,讀取被測節點中IUT當前的狀態。

        (3)期望結果

        ①IUT發送的第一條網絡管理報文中,sleep.ind位被置位;
        ②IUT發送的第二條網絡管理報文中,sleep.ack位被置位,且當前IUT的網絡狀態為NMTwbsNormal;
        ③接收到sleep.ack=1的報文TwaitBusSleep后節點進入NMBusSleep狀態;
        ④整個運行過程中,IUT都處于NMActive狀態。

        3.2 測試平臺搭建與測試

        測試設備由裝有CANoe軟件的PC機、CANcaseXL和CANstress組成。CANoe是由Vector公司開發的網絡分析、設計和測試的專用工具,支持多種總線系統。CANcaseXL為Vector提供的新一代CAN和LIN的USB 2.0接口卡,與CANoe軟件組合使用。CANstress是CAN總線干擾儀,它可以直接串連到CAN網絡中,實現各種觸發條件與邏輯的干擾。被測設備為帶有OSEK NM功能的汽車儀表,外接12 V直流電源為汽車儀表供電。

        基于上述測試平臺進行網絡管理功能測試。首先在CANoe軟件平臺上實現3個CAN節點,并用CAPL語言對每個節點編程,實現基于OSEK 規范的直接網絡管理功能,在其中一個節點中添加測試管理功能模塊,運行測試用例,實現總體測試管理控制。汽車儀表ECU軟件中添加輔助測試程序模塊,作為儀表的應用軟件。最后,根據預先設計好的測試用例對NMNormal到NMBusSleep的狀態轉換進行一致性測試,并記錄測試結果。

        3.3 測試結果

        圖5所示為直接網絡管理測試在CANoe的Trace窗口上的顯示結果。圖中對報文和數據的含義做了相應的說明。在測試系統的控制下,整個網絡進入睡眠狀態,并根據測試案例成功讀取到直接網絡管理的狀態信息。

        通過對Trace窗口中的數據進行分析可見,測試結果跟測試案例中的預期結果一致,這說明儀表節點中直接網絡管理睡眠流程符合OSEK NM規范。同時也驗證了該測試方法的正確性。

        本文提出了一種基于OSEK NM管理的一致性測試方法,并詳細敘述了測試系統的體系結構、測試方案、測試管理報文的定義,以及測試流程。最后通過對儀表節點的直接網絡管理睡眠過程的測試,說明了該方法的有效性。通過對基于OSEK規范的直接網絡管理的測試,能夠發現OSEK NM在正常工作中很難出現的錯誤,并能有效地驗證OSEK NM的正確性,對提高基于OSEK規范的直接網絡管理可靠性和穩定性有重要的作用。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 苍山县| 安康市| 安龙县| 亚东县| 安陆市| 读书| 惠安县| 康定县| 收藏| 左云县| 兴和县| 嘉定区| 秭归县| 卢氏县| 菏泽市| 寻乌县| 扬中市| 蚌埠市| 新巴尔虎右旗| 抚顺县| 武川县| 曲松县| 道孚县| 天长市| 巴里| 简阳市| 当涂县| 禄劝| 夏邑县| 屏东市| 桐柏县| 安顺市| 安平县| 南城县| 申扎县| 平利县| 阿勒泰市| 大渡口区| 无极县| 武乡县| 鞍山市|