• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      汽車儀表網(wǎng)絡(luò)管理一致性測試系統(tǒng)設(shè)計

      2019-03-28 06:17:58唐華亮方紅萍
      儀表技術(shù)與傳感器 2019年2期
      關(guān)鍵詞:測試用例網(wǎng)絡(luò)管理報文

      唐華亮,方紅萍,謝 斌

      (1.武漢科技大學(xué)冶金自動化與檢測技術(shù)教育部工程研究中心,湖北武漢 430081;2.武漢保華顯示有限公司,湖北武漢 430082)

      0 引言

      汽車儀表能為駕駛員提供重要的車輛信息,如車速、轉(zhuǎn)速、油量、故障報警和指示信息等,一方面能有效保障駕駛員安全駕駛,另一方面也是車輛上協(xié)調(diào)控制其他節(jié)點合理運作的重要組成部分,如管理車載ECU(Electronic Control Unit)節(jié)點滿足協(xié)同睡眠而又隨需喚醒的低功耗需求等[1-2]。

      網(wǎng)絡(luò)管理(Network Management,簡稱NM)是汽車儀表的關(guān)鍵模塊。OSEK(Open Systems and the Corresponding Interface for Automotive Electronics)和AUTOSAR (Automotive Open System Architecture)是目前兩種主流的車載網(wǎng)絡(luò)管理策略和接口服務(wù)實現(xiàn)規(guī)范[3-4]。但是上述規(guī)范均采用非形式化語言描述,一旦存在理解偏差就很容易導(dǎo)致汽車儀表網(wǎng)絡(luò)管理協(xié)議實現(xiàn)和協(xié)議規(guī)范不一致,對汽車安全造成潛在隱患[5-6]。因此汽車儀表網(wǎng)絡(luò)管理一致性測試是重要汽車儀表測試環(huán)節(jié)。

      網(wǎng)絡(luò)管理一致性測試是一種功能性黑盒測試,它通過輸入測試信號觸發(fā)被測儀表,通過對比儀表的響應(yīng)信息與預(yù)定協(xié)議規(guī)范是否一致來評價協(xié)議測試是否合格。目前國外已有CANOE測試工具、TTCN測試套件描述語言等聚焦汽車儀表網(wǎng)絡(luò)管理協(xié)議測試,配套使用CAN適配器CANcaseXL和CAN總線干擾設(shè)備CANstress實現(xiàn)一致性測試[7-8]。但是上述工具和設(shè)備均為國外商業(yè)軟件和設(shè)備,設(shè)備購買價格或者相應(yīng)測試套件服務(wù)收費相當(dāng)昂貴。另外基于TTCN的測試用例定義過程較為復(fù)雜、繁瑣,一方面容易產(chǎn)生較多的空表項,影響測試效率,另一方面降低了測試人員結(jié)合測試需求編寫、修改測試腳本的靈活度。國內(nèi)研究學(xué)者在協(xié)議形式化描述、協(xié)議一致性測試序列生成和協(xié)議一致性測試執(zhí)行等方面也開展了一系列研究[9]。如文獻[10]提出了一種基于分類樹的OSEK協(xié)議操作系統(tǒng)一致性測試用例生成方法。文獻[11]驗證了TTCN-3語言進行AUTOSAR一致性測試的可行性,但國內(nèi)總體而言在此方面的研究還不夠深入。

      本文參考汽車儀表網(wǎng)絡(luò)管理一致性測試的國際標(biāo)準(zhǔn),設(shè)計一種支持結(jié)構(gòu)化編程的TSCN測試用例腳本語言,然后在此基礎(chǔ)上設(shè)計一個基于測試腳本驅(qū)動的汽車儀表網(wǎng)絡(luò)管理協(xié)議一致性自動測試系統(tǒng),實現(xiàn)了測試用例編寫、存儲、執(zhí)行和測試狀態(tài)監(jiān)控的全過程自動化。

      1 汽車儀表NM協(xié)議一致性測試項目分析

      車載網(wǎng)絡(luò)中每個ECU節(jié)點有唯一地址編號。OSEK/VDX直接網(wǎng)絡(luò)管理按照ECU地址遞增順序構(gòu)造邏輯環(huán),并采用邏輯環(huán)機制監(jiān)控網(wǎng)絡(luò)各ECU節(jié)點正常模式、睡眠模式及錯誤處理模式之間的狀態(tài)切換,實現(xiàn)對網(wǎng)絡(luò)節(jié)點的協(xié)同管理。AUTOSAR網(wǎng)絡(luò)管理采用分布式直接網(wǎng)絡(luò)管理策略,根據(jù)網(wǎng)絡(luò)管理協(xié)議數(shù)據(jù)單元(NMPDU)接收情況來監(jiān)控網(wǎng)絡(luò)狀態(tài)[12-13]。

      OSEK/VDX和AUTOSAR的NMPDU均包含地址域、控制域和數(shù)據(jù)域三個部分。地址域指定通信雙方ECU節(jié)點地址;操作域說明具體報文類型,OSEK/VDX網(wǎng)絡(luò)管理報文有Alive、Ring和 Limphome 3種報文,AUTOSAR網(wǎng)絡(luò)管理主要有RepeatMessage和NormalOperation兩種報文;數(shù)據(jù)域指定報文附加信息(可選)。

      NM協(xié)議一致性測試主要分為物理層、網(wǎng)絡(luò)層和通信層測試3個部分。物理層測試通過操控某些物理模塊來模擬物理干擾(如CAN干擾或電壓干擾等),測試ECU節(jié)點的干擾恢復(fù)能力。網(wǎng)絡(luò)層測試主要監(jiān)控ECU節(jié)點網(wǎng)絡(luò)狀態(tài)切換,如喚醒、休眠或者邏輯環(huán)建立等。通信層測試主要測試汽車儀表網(wǎng)絡(luò)管理報文的周期、類型或其他參數(shù)等。各層常用測試用例及所涉及到的信號類型見表1。

      表1 NM協(xié)議一致性測試分層表

      2 測試用例腳本語言TSCN設(shè)計

      基于表1中測試用例和信號響應(yīng)類型的對應(yīng)關(guān)系,借鑒C語言結(jié)構(gòu)化控制思路[14],本文設(shè)計了一種新的測試用例腳本語言TSCN (Test Script Control Notation )。TSCN語言中主要包含標(biāo)識符、指令關(guān)鍵字和控制關(guān)鍵字3個部分。

      標(biāo)識符由字母和數(shù)字組成。

      指令關(guān)鍵字包含主關(guān)鍵字和次關(guān)鍵字。指令主關(guān)鍵字VOL、IO、TIMER、CAN和RESULT依次對應(yīng)電壓信號、IO口信號、TIMER定時器信號、CAN信號和結(jié)果返回指令類型。次關(guān)鍵字則指定相應(yīng)測試指令具體操作碼,見表2。

      表2 TSCN語言關(guān)鍵字

      部分基礎(chǔ)指令結(jié)構(gòu)展示,見表3。

      為了實現(xiàn)對測試指令執(zhí)行邏輯的有效控制,參考結(jié)構(gòu)化語言的特點,TSCN腳本語言中引入TEST、IF和WHILE等控制關(guān)鍵字。

      表3 基礎(chǔ)指令結(jié)構(gòu)

      TSCN用例中包含兩類指令語句。一類基礎(chǔ)指令語句以“<”開始,以“>”結(jié)束。每條基礎(chǔ)指令包含指令主關(guān)鍵字、指令次關(guān)鍵字、參數(shù)三個部分見表3。如VOL、IO、TIMER、CAN和RESULT語句。第二類復(fù)合指令語句,控制多條基礎(chǔ)指令按照指定邏輯執(zhí)行,如IF、WHILE語句。

      TSCN用例語法規(guī)則樹見圖1。按照語法規(guī)則測試人員可以快速編寫測試用例腳本,同時用例編譯器也會按照語法規(guī)則樹對腳本進行語法檢查。

      圖1 TSCN語法規(guī)則樹

      3 NM協(xié)議一致性測試系統(tǒng)設(shè)計與實現(xiàn)

      一致性測試系統(tǒng)(Conformance Test System,CTS)由上位機監(jiān)測儀、下位機測試儀和被測儀表三部分組成,見圖2。

      圖2 NM協(xié)議一致性測試系統(tǒng)總體架構(gòu)

      基于PC平臺的上位機監(jiān)測儀主要實現(xiàn)測試用例編輯、編譯、編碼下載和測試過程狀態(tài)自動監(jiān)控等功能,它和下位機測試儀采用串口通信方式。

      基于STM32的下位機測試儀存儲上位機下載的測試用例指令,并采用解釋執(zhí)行方式自動執(zhí)行測試用例腳本。下位機測試儀和被測儀表通過CAN、IO和VOL接口連接。CAN接口實現(xiàn)報文傳輸,IO接口實現(xiàn)對被測儀表IO端口對應(yīng)的開關(guān)信號的檢測,VOL接口實現(xiàn)給被測儀表供電。

      3.1 下位機測試儀的硬件設(shè)計

      下位機測試儀選用STM32F105RCT6作為主控芯片,硬件框架見圖3。其主要功能模塊包括物理層程控電壓模塊、物理層干擾模擬(含電壓干擾和CAN干擾)、CAN通信模塊、顯示報警模塊、定時器實時控制模塊。

      圖3 測試儀硬件主框架圖

      程控電壓模塊:選用LM2596-ADJ(簡稱ADJ)芯片輸出程控可調(diào)電壓。ADJ芯片內(nèi)含基準(zhǔn)穩(wěn)壓器(1.23 V),通過ADJ輸出引腳、地線和主控芯片DAC引腳分別相對于反饋引腳FB接一個電阻R1、R2和R3,電阻阻值根據(jù)需求進行計算和設(shè)計。控制數(shù)模轉(zhuǎn)換器的輸出電壓,實現(xiàn)ADJ變換器輸出電壓的調(diào)整。

      干擾模塊:電壓干擾模塊采用繼電器多級串聯(lián)方式控制可調(diào)電壓輸出線路的短路、斷路、懸空幾種狀態(tài),實現(xiàn)被測設(shè)備供電電壓的拉高、拉低、懸空情況的模擬。CAN干擾模塊采用繼電器多級串并聯(lián)方式,控制CAN高、CAN低和電源輸出線多種組合接觸情況的CAN干擾模擬。

      CAN通信模塊:STM32F105RCT6主芯片有兩路CAN接口,滿足系統(tǒng)多路CAN同時工作的需求,且CAN收發(fā)器的型號選用TJA1040芯片,輸出端通過導(dǎo)線連接CAN干擾模塊。

      顯示報警模塊:添加LED、顯示屏和報警裝置,實時監(jiān)控測試狀態(tài)。

      定時器實時控制模塊:STM32F105RCT6芯片有10個定時器且支持引腳重映射功能。系統(tǒng)將部分定時器用于程序中斷或周期性操作,另一部分供用戶配置使用,實現(xiàn)報文收發(fā)計時、延時等操作。

      3.2 基于TSCN腳本的測試用例編寫

      以某款汽車儀表物理CAN干擾一致性測試用例為例,介紹基于TSCN的測試用例腳本編寫過程。

      3.2.1 測試目的

      該款汽車儀表ECU節(jié)點(地址:X430)正常通信時,測試CAN干擾后的通信恢復(fù)能力。

      3.2.2 測試步驟

      (1)通過CAN高和CAN低短路產(chǎn)生CAN干擾;

      (2)延時1 s;

      (3)CAN高和CAN低短路恢復(fù)正常,消除干擾;

      (4)檢測Busoff恢復(fù)時間內(nèi)是否接收Limphome報文,如果接受到,測試合格返回通過信號;如果沒接受到,測試不合格返回失敗信號。

      3.2.3 預(yù)期結(jié)果

      (1)總線短路后,若停止收發(fā)報文則說明總線進入Busoff狀態(tài),干擾模擬測試成功,否則失敗;

      (2)干擾消除后,測試儀在Busoff恢復(fù)時間(200 ms)內(nèi)接收到第一幀Limphome報文,則說明CAN干擾恢復(fù)測試符合測試協(xié)議標(biāo)準(zhǔn),否則測試不合格。

      測試用例的TSCN語言腳本

      //CAN高和CAN低短路,Busoff模擬

      //延時1s的時間

      //消除故障,Busoff恢復(fù)

      IF(TEST

      //檢測條件,ID號為X430,數(shù)據(jù)為3004

      [

      //接收Limphome報文,時間0~200 ms

      ]>) //CAN接收,X430:儀表節(jié)點地址,2:檢測的數(shù)據(jù)長度DLC,

      {

      //延時1 s的時間

      //返回TP_1項目測試結(jié)果,合格

      }

      ELSE

      {

      //延時1s的時間

      //返回TP_1項目測試結(jié)果,不合格

      }

      3.3 TSCN腳本驅(qū)動的NM協(xié)議一致性自動測試

      下位機測試儀采用解釋執(zhí)行方式順序執(zhí)行。腳本中指令語句的合理存儲是腳本有效執(zhí)行的關(guān)鍵。

      TSCN測試腳本從上至下由若干條指令語句組成,指令語句分為基礎(chǔ)指令和復(fù)合指令兩類。測試腳本對應(yīng)的指令數(shù)據(jù)存儲結(jié)構(gòu)如下:

      #include MaxsizeComm 200

      //基礎(chǔ)指令數(shù)據(jù)結(jié)構(gòu)

      typedef struct baseCom

      {char mainKey[10];

      char subKey[10];

      char paramData[100];

      struct baseComm *nextComm;

      };

      typedef struct //命令行數(shù)據(jù)結(jié)構(gòu)

      {

      char comType[10];

      char commCondiiton[50];

      struct baseCom *condition0pter;

      struct baseComm *success0pter;

      struct baseComm *fail0pter;

      }commandLine;

      commandLine com[MaxsizeComm];

      經(jīng)分析不難發(fā)現(xiàn),在執(zhí)行過程中IF或者WHILE等復(fù)合指令語句實際上是依據(jù)一定邏輯條件控制多條基礎(chǔ)指令語句組合執(zhí)行。如果將基礎(chǔ)指令語句看作邏輯條件恒為真的特殊復(fù)合指令語句,這樣兩類指令語句就可以統(tǒng)一用命令行(commandLine)結(jié)構(gòu)描述。commandLine結(jié)構(gòu)包含5個數(shù)據(jù)子項,前兩項描述指令語句的類型和執(zhí)行條件,后三項分別是基礎(chǔ)指令baseComm鏈表的頭指針域,描述條件判斷、條件成立和不成立時要執(zhí)行的多個基礎(chǔ)測試指令集合?;A(chǔ)指令語句對應(yīng)的commandLine結(jié)構(gòu)中,commCondition子項默認(rèn)為’

      安龙县| 玉屏| 巍山| 呼伦贝尔市| 沙洋县| 怀集县| 西宁市| 敖汉旗| 洮南市| 青岛市| 济宁市| 民和| 县级市| 清镇市| 调兵山市| 九龙坡区| 克山县| 河津市| 九江市| 平江县| 肥乡县| 余姚市| 松原市| 广汉市| 中牟县| 铅山县| 赞皇县| 汪清县| 霍城县| 察哈| 昌江| 宣武区| 琼中| 安图县| 全椒县| 南木林县| 囊谦县| 田阳县| 溧水县| 会宁县| 苏尼特右旗|