?

嵌入式系統測試

two
當前位置:首頁 > 嵌入式系統測試

2016-09-10

引言

某型工程機械的電子監測儀是集微電子技術、計算機技術、數字顯示技術和電子傳感技術為一體的嵌入式設備,主要用于變速油壓、燃油液位、發動機轉速、制動氣壓、冷卻液溫度、蓄電池電壓等信息的采集處理,并實現對全車各部件的狀態監控與管理。為了完成該型電子監測儀的嵌入式軟件測試,利用通用嵌入式系統軟件測試平臺(ETest),模擬電子監測儀需要處理的9DI信號、2路脈沖信號和7DA信號,通過ETest測試平臺的測試用例腳本編碼功能,實現了電子監測儀的功能、性能、負載以及連續運行時間等軟件的自動測試任務,確保了電子監測儀嵌入式軟件運行的可靠性。

2  電子監測儀的測試需求分析

2.1電子監測儀的外部接口

電子監測儀是工程機械裝備的一個重要零部件,是適應工程機械裝備使用的電子化、數字化、信息化發展的高技術產品,主要用于工程機械的各類信號采集和狀態監控管理,具有數據采集、接口通信、參數設置、信息報警等功能。圖1為該型電子監測儀的外部接口關系圖。

應用2.gif

圖1 電子監測儀外部接口關系圖

電子監測儀通過航插接口接收5類輸入信號,輸出2類輸出信號。

第一類輸入信號是4~20mA標準電流型信號,共7路,用于采集變速油壓、燃油液位、油溫、油壓、制動氣壓等傳感器的信號。

第二類輸入信號是脈沖信號,共2路,用于實現發動機轉速、車速的信號采集處理。第三類輸入信號是數字量輸入信號DI,共9路,為24V的高低電平,用于濾油器、空氣濾清器、轉向燈、遠光燈等狀態量的采集。

第四類輸入信號是模擬電壓信號,只有一路,為蓄電池電壓的采集輸入量,電壓范圍0~36V。

第五類輸入信號是來自于CAN總線的通信接口,用于接收外部發送來的各種指令。

電子監測儀輸出2路的燈光報警信號,為TTL電平的數字量輸出信號。另外1路輸出信號為CAN總線輸出,需要將采集到的各類信息,通過CAN總線發送給工程機械的儀表終端,用于完成各類信息的顯示處理。

2.2 測試需求分析

為了開展對電子監測儀嵌入式軟件的全面測試,除需要對單個功能逐項測試外,還需要將多路輸入信號與輸出信號全部連接起來進行長時間的自動化測試[1,2],模擬電子監測儀的實際運行情況,檢驗電子監測儀嵌入式軟件對多路信號的采集處理以及CAN總線的通信處理,確保最終發布的電子監測儀嵌入式軟件能可靠運行。

除了對電子監測儀開展長時間的自動化綜合測試外,在電子監測儀功能中,還有2項功能為報警輸出的時間性能要求,第1項是發動機油壓的報警延時,另外1項是變速箱油壓報警延時,這兩項報警延時都要求當油壓低于設定的最低閾值時,5秒內發出燈光報警。

3  ETest測試平臺介紹

3.1  ETest概要描述

通用嵌入式系統軟件測試平臺(ETest)是凱云聯創(北京)科技有限公司研制的一款高度集成的可用于嵌入式系統軟件測試的綜合測試平臺,具有測試工程管理、測試交聯環境仿真建模、應用協議描述與編譯處理、測試用例腳本編碼、測試監控窗體設計、測試執行過程控制、測試結果分析等功能[3]。

ETest測試平臺主要用于支持嵌入式軟件配置項級別和系統級別的動態驗證測試,能夠對嵌入式系統外部各類接口(CAN、AD、DA、DI、DO、RS232、RS422)進行輸入模擬和輸出監視,可以完成軟件配置項單接口、多接口和多配置項的系統測試,具有攜帶方便、配置靈活的特點,可適應不同類型的嵌入式系統測試要求。

3.1 ETest的系統組成

ETest測試平臺由硬件部分和軟件部分組成,如圖2所示。硬件部分由PC機和各類USB接口設備組成,USB接口設備包括CAN通信設備、1553B通信設備,RS232、RS422/485串口通信設備,DA轉換設備,AD采集設備,DI/DO設備,繼電器???、虛擬示波器和波形發生器等。軟件部分主要包括測試設計軟件、測試執行服務器軟件、測試執行客戶端軟件、設備資源管理軟件以及USB接口設備所提供的輔助調試軟件。

應用3.gif

2 ETest測試平臺的軟硬件組成

USB接口設備一端與客戶端PC的USB接口相連,另一端與待測系統的特定接口相連??突Ф?/span>PC機負責運行測試執行客戶端軟件,實現與待測系統的接口互聯,處理測試數據。服務器端統一進行測試設計和測試執行控制。多臺PC機構成C/S結構的分布式系統,從而組成不同規模需求的測試環境。

3.3 平臺使用流程

利用ETest測試平臺進行嵌入式系統軟件測試的主要流程如下。

1)首先在設備資源管理軟件中對通信設備及設備下的通道進行維護,生成資源配置文件,供測試設計軟件進行設備規劃時使用;

2)使用測試設計軟件創建測試方案、測試項目,在測試項目下創建仿真模型,添加待測系統、外圍系統、通道、協議,創建設備規劃、PC規劃,設計測試監控窗體;

3)使用測試執行服務器軟件,打開測試方案,監聽客戶端的連接請求,建立與客戶端的連接,形成分布式的測試網絡結構;

4)使用測試腳本編寫測試用例,測試用例執行時發送測試數據經客戶端到USB設備,最終到達待測系統中,并接收經由客戶端返回的待測系統數據;

5)選擇編寫好的測試用例腳本執行,在測試執行過程中,服務器端和客戶端均能打開測試監控窗臺,實時對測試執行中的通信數據顯示和保存;

6)測試用例腳本執行完成后,如果測試用例腳本中具有預期結果與實際結果判斷的邏輯,則會自動給出本次測試執行是否通過,如果腳本中沒有預期結果與實際結果的判斷邏輯,事后可以對記錄的測試數據進行分析,判斷本測試用例腳本是否執行通過。

4  ETest平臺在電子監測儀測試中的應用

4.1  測試環境搭建

3為利用ETest測試平臺搭建的電子監測儀綜合測試環境,測試環境由1個服務器端、2個客戶端、2AD/DA板卡(EM9636BD)、1塊繼電器板卡(USB2211)、1塊虛擬波形發生器卡(DDS3005)、1DI/DO板卡(USB-7660B/2)、1CAN通信板卡(GY8508)組成。

應用1.gif

2 電子監測儀的ETest測試環境搭建

服務器端通過USB連接兩個EM9636BD,通過隔離??榻?/span>EM9636BD0-5V模擬電壓輸出轉為0-20mA的模擬電流輸出,共7路;同時通過第2EM9636BDDI輸入接收電子監測儀的2路報警輸出信號;通過ESITest測試平臺客戶端1連接1個繼電器???/span>USB-2211,通過繼電器開關的閉合模擬24V的開關量信號共9路,此開關量信號由24直流電源供電;同時客戶端1再連接1CAN總線GY8508板卡,用于與電子監測儀之間實現CAN通信交互;通過ESITest測試平臺客戶端2連接1個任意波形發生器USB-DDS3005產生驅動USB-7660B/2的時鐘信號,由USB-7660B/2分頻產生2路計數器輸出,通過ESITest測試平臺客戶端設置分頻的計數值用于驅動產生發動機轉速和車速的脈沖信號。

4.2  基于ETest的測試設計

搭建好硬件測試環境后,需要利用ETest測試平臺開展測試設計工作。首先在ETest測試平臺中進行測試交聯環境仿真建模,添加外圍系統以及7DA(模擬量輸出)通道、1DI(數字量輸入)通道、9DO(數字量輸出)通道、2CTO(計數器輸出)通道和1CAN通信通道。并為每個通道設置相應的屬性和添加相應的協議。DA通道屬性設置為:輸出模式:物理值,輸出范圍:0V-10V,通道號:1-4;DO通道屬性只需設置通道號1-9;CTO通道:工作方式:方式3(輸出方波),計數初值:100,通道號:1-2。CAN通道:波特率:115200bps,過濾模式:雙濾波,過濾屏蔽碼:0xFF、0xED、0xfd、0xbe。

為設備規劃添加所用到的板卡設備,添加好設備后,將交聯環境建模的各個通道分別綁定到相應的板卡設備上, 2CTO通道綁定到USB7660B/2上,7DA1DI通道綁定到2EM9636BD上,9DO綁定在USB-2211繼電器板卡上,CAN綁定在GY8508板卡上。然后將規劃好的硬件板卡與測試計算機終端相連,建立PC規劃方案,通過三臺筆記本電腦作為測試服務器與客戶端,設置各個測試終端的IP地址與端口號。

未標題-4.gif

2  ETest測試平臺交聯環境建模

為每個通道連線編寫應用層的協議,對于AD、DA、DI、DO以及CTO通道,其協議只包括一個字段,定義為Segment Data StandardUInt8  Default=0 即可,對于CAN總線接口,按照CAN應用協議的定義用ESITest測試平臺提供的通信協議描述編輯器描述如下:

Protocol ExtendedFrame
    Segment Len  RandomUInt        Length=4           #數據長度
    Segment h1      RandomInt Length=2    Format=Complement   #保留
    Segment FrameType    Boolean     #幀類型
    Segment FrameFormat  Boolean     #幀格式
    Segment ID    StandardUInt32    ByteOrder=Big #ID
    Segment LQYWD StandardUInt8  Default=0 #冷卻液溫度
    Segment ZLQWD StandardUInt8  Default=0 #中冷器溫度
    Segment YYYW StandardUInt8  Default=0 #液壓油溫
    Segment BJQYW StandardUInt8  Default=0 #變矩器油溫
    Segment h2 StandardInt32 Format=Complement #保留
End

最后,為了方便對測試數據的觀測,在三個測試終端上分別建立數據監控窗口,在監控窗口設計時,對于每個監控控件,只需要直接綁定協議描述語言中的字段變量,就可以實現測試過程中的自動監控。

4.3  連續運行時間測試

編寫電子監測儀連續運行時間的python測試用例腳本[4],主要代碼如下:

tm=8*60*1000 #設置連續運行8小時

steptm=4000#設置每4秒改變一次輸入模擬

N=tm/400 #求取運行的次數

for i in range(N) #多次循環以測試連續運行情況

DA1_P.P1.DA.Value = DA1[i] #為通道協議賦值

DO1_P.P1.DO.Value = DO1[i]

CTO1_P.P1.CTO.Value = CTO1[i]

DA1_P.Write() #進行通道輸出

DO1_P.Write()

CTO1_P.Write()

CAN1.Read(true)#等待從CAN總線中讀取響應數據

Assert(CAN1.ExtendedFrame.LQYWD.Value= DA1_P.P1.DA.Value/65536*100)#判斷是否通過

Sleep(steptm) #等待steptm ms,以進行下一循環測試

測試用例腳本編寫非常簡單,用戶只需要編寫很短的幾行代碼,就可以完成較復雜的自動化測試。在該測試用例腳本中,設置tm為需要運行的時間,這里設置運行8小時,就可以連續不斷地開展對電子監測儀的測試,并且不同通道的數據可以根據事先設置的數組取值,確保了連續運行時間測試時對不同的數據輸入達到覆蓋率的要求,同時還可以在腳本中加入測試用例是否通過的判定語句。測試執行時,只需要在ESITest測試平臺選擇編寫好的測試用例腳本進行執行,執行的過程中可以打開不同的監控窗體監控通道的數據變化情況。如圖3所示。

未標題-5.gif

電子監測儀測試執行中的ETest監控窗體

4.3 報警時間性能測試

為測試油壓報警延時,需要利用ETest測試平臺模擬報警事件,并計算出從電子監測儀接收到超出閾值的信號到電子監測儀輸出報警信號的時間,驗證電子監測儀的報警延時時間是否在允許的誤差范圍內。主要的測試腳本編碼如下:

DA1_P.P1.DA.Value = 3050 #設置模擬的油壓信號,使其超出閾值范圍

a = HNow()#取出當前時間

DA1_P.Write()#輸出給電子監測儀

while 1: #等待報警輸出DO為高點平
          DI1_P.Read(True)
          if DI1_P.P1.DI7.Value == 1:
              b = HNow()
            break

printf  b-a #輸出給控制臺時間性能值
     Assertb-a < 5000 #判斷是否滿足5s的要求

在服務器端運行該測試用例腳本后,就可以輸出相應的報警延時時間值,可以多次運行取出最大值、最小值以及平均值,以此來作為報警延時的時間性能測量結果。

5 結束語

ETest測試平臺提供了高度集成的測試設計開發環境,具有測試項目管理、交聯環境仿真建模、應用協議描述、測試資源規劃、實時監控設計、測試用腳本開發及管理、測試執行、測試數據統計及分析、測試報告生成等功能,分布式的系統架構使其具有極強的擴展能力,可靈活組件不同規模要求的測試環境。利用ETest測試平臺所完成的某型工程機械電子監測儀的自動化測試任務,極大地提高了電子監測儀嵌入式軟件測試的覆蓋率和可靠性,通過ETest測試平臺服務器的統一時鐘管理優勢,實現了電子監測儀油壓報警延時的時間性能測試,為電子監測儀的報警反應時間性能指標驗收提供了技術手段。


上一篇:第一篇
相關信息
?
Copyright ??凱云聯創(北京)科技有限公司
京ICP備17011758號-3 (内蒙古11选5走势图软件下载 www.ogqcpe.com.cn)
網站由奇奇科技提供技術支持

提交成功

謝謝您的寶貴意見,我們將安排客服盡快與您溝通

在線留言