巫輝燕,林漢雄
(廣州汽車集團(tuán)股份有限公司汽車工程研究院,廣東 廣州 510640)
網(wǎng)關(guān)控制器是汽車整車電子電氣架構(gòu)中的核心ECU,車載網(wǎng)關(guān)作為車載網(wǎng)絡(luò)中信息交換的核心[1],整車信號(hào)傳輸?shù)臉屑~,其主要的功能有路由、網(wǎng)絡(luò)管理、波特率轉(zhuǎn)換以及診斷刷新等。
網(wǎng)關(guān)控制器實(shí)現(xiàn)車內(nèi)不同網(wǎng)段電控單元之間的數(shù)據(jù)轉(zhuǎn)發(fā)[2],在整車上電之后,網(wǎng)關(guān)將不斷進(jìn)行不同網(wǎng)絡(luò)之間的報(bào)文或者信號(hào)的路由轉(zhuǎn)發(fā),若網(wǎng)關(guān)轉(zhuǎn)發(fā)延遲、錯(cuò)誤或者停止轉(zhuǎn)發(fā),將帶來整車功能異常甚至出現(xiàn)安全性問題。當(dāng)前汽車仍然以分布式系統(tǒng)為主,CAN通信為車載通信的主要方式,本文針對(duì)網(wǎng)關(guān)的CAN路由功能進(jìn)行了HIL自動(dòng)化測(cè)試研究。
如圖1所示為連接3路CAN的網(wǎng)關(guān)控制器,網(wǎng)關(guān)常電直接由蓄電池通過線束連接到1腳,ON檔電在整車上電之后供電,GND為地。圖1中的3路CAN分別ACAN、BCAN以及PCAN,每路CAN由CAN_H以及CAN_L組成,CAN_H以及CAN_L為雙絞線。在汽車電子電氣架構(gòu)中,動(dòng)力、安全等控制器一般分布在高速 PCAN上,波特率為 500kb/s,車身、空調(diào)等控制器分布在BCAN低速CAN上,波特率為125kb/s。不同 ECU的所需要其他網(wǎng)絡(luò)上的報(bào)文或者信號(hào)通過網(wǎng)關(guān)路由到其所在網(wǎng)絡(luò)上后進(jìn)行接收。
GW自動(dòng)化測(cè)試系統(tǒng)所圖2所示,主要由Dspace HIL機(jī)柜、電腦、被測(cè)網(wǎng)關(guān)控制器、通信電纜以及線束組成。HIL(Hardware-in-the-loop),即硬件在環(huán),是一種有效可行的能夠?qū)崿F(xiàn)高效地創(chuàng)建測(cè)試和自動(dòng)化執(zhí)行測(cè)試的手段,通過HIL對(duì)控制器進(jìn)行大量測(cè)試,實(shí)現(xiàn)全天候的自動(dòng)化測(cè)試[3]。HIL機(jī)柜用來供電、模擬其他ECU發(fā)送報(bào)文以及接受GW轉(zhuǎn)發(fā)的報(bào)文等。電腦上需要安裝測(cè)試管理軟件 Control Desk、自動(dòng)化測(cè)試軟件Automation Desk以及仿真模型軟件Simulink等實(shí)現(xiàn)對(duì)自動(dòng)化測(cè)試模型建立、測(cè)試界面創(chuàng)建以及測(cè)試用例搭建等。
圖1 網(wǎng)關(guān)系統(tǒng)原理框圖
圖2 網(wǎng)關(guān)自動(dòng)化測(cè)試系統(tǒng)組成圖
在使用Dspace機(jī)柜進(jìn)行GW自動(dòng)化測(cè)試時(shí),可以通過利用Automation Desk軟件中模塊化的測(cè)試步驟Test Step開展測(cè)試或者利用API接口通過腳本方式開展自動(dòng)化測(cè)試。本論文分別對(duì)這2種方式進(jìn)行了實(shí)踐與研究。
利用Automation Desk軟件開展自動(dòng)化測(cè)試,一個(gè)測(cè)試用例可以通過一個(gè)TestBody來實(shí)現(xiàn),一個(gè)Testbody包括測(cè)試初始化(TestInitialization)、測(cè)試執(zhí)行以及評(píng)估(TestSteps AndEvauation)以及測(cè)試復(fù)位(TestCleanUp)組成,TestBody工作流程圖如圖3。
圖3 TestBody工作流程圖
測(cè)試初始化主要包括HIL機(jī)柜程控電源上電以及GW上電;執(zhí)行與評(píng)估過程包括被測(cè)信號(hào)的路由值設(shè)置、發(fā)送以及機(jī)柜回采對(duì)比,網(wǎng)關(guān)轉(zhuǎn)發(fā)值機(jī)柜回采并與期望值對(duì)比,若與期望值一致則通過;測(cè)試復(fù)位主要包括被測(cè)信號(hào)的值恢復(fù)默認(rèn)值以及GW下電。
圖4為Automation Desk中BCAN中一個(gè)信號(hào)通過GW轉(zhuǎn)發(fā)到PCAN以及ACAN的自動(dòng)化測(cè)試用例。所有需要通過GW路由的信號(hào)可以通過該方式進(jìn)行所有值的路由測(cè)試用例搭建,搭建完之后即可開展GW路由功能自動(dòng)化測(cè)試。
圖4 TestBody工作流程圖
Dspace API支持Python、C以及VB等語言,Python 是一種面向?qū)ο?、解釋型、跨平臺(tái)的高級(jí)程序設(shè)計(jì)語言,可以應(yīng)用于自動(dòng)化測(cè)試,數(shù)據(jù)分析等眾多領(lǐng)域[4],Python語言代碼簡潔,結(jié)構(gòu)簡單,有極其強(qiáng)大內(nèi)置的本地庫和第三方庫[5],論文中使用了Python語言進(jìn)行了GW自動(dòng)化測(cè)試程序開發(fā)。
GW自動(dòng)化測(cè)試程序由主程序、總線映射程序、信號(hào)映射程序、測(cè)試用例程序、基礎(chǔ)函數(shù)程序及報(bào)告生成程序,這六個(gè)程序的代碼已經(jīng)封裝成Python模塊庫,在測(cè)試過程中調(diào)用使用。
圖5 GW自動(dòng)化測(cè)試程序結(jié)構(gòu)框圖
主程序的功能是統(tǒng)籌其他五個(gè)程序塊,是測(cè)試的入口程序,它通過調(diào)用其它程序模塊來保證程序正常運(yùn)行,同時(shí)實(shí)現(xiàn)與其它程序模塊的數(shù)據(jù)交互。
總線映射程序主要定義一些路徑變量,這些變量值為測(cè)試需要用的總線信號(hào)路徑等。
信號(hào)映射程序主要用于存放通信矩陣中所定義的GW的所有信號(hào)包括接收信號(hào)和外發(fā)信號(hào)。
基礎(chǔ)函數(shù)程序?yàn)镈space HIL的接口程序,基礎(chǔ)函數(shù)程序通過調(diào)用Dspace HIL API并進(jìn)行重新封裝形成更加便于其它程序模塊使用的函數(shù),比如信號(hào)的讀寫操作。
測(cè)試用例程序是自動(dòng)化測(cè)試程序中的核心部分,將GW的測(cè)試需求轉(zhuǎn)化測(cè)試腳本,需要覆蓋GW所有信號(hào)的路由。
報(bào)告生成程序是Dspace HIL訪問EXCEL的入口程序,通過對(duì)Dspace HIL API進(jìn)行封裝,以實(shí)現(xiàn)自動(dòng)生成測(cè)試報(bào)告。
本論文對(duì)GW的HIL自動(dòng)化測(cè)試進(jìn)行了研究,分別介紹了2兩種實(shí)現(xiàn)自動(dòng)化測(cè)試方法。在信號(hào)名稱以及信號(hào)定義經(jīng)常變化的情況下利用Automation Desk中的Testbody開展自動(dòng)化測(cè)試,需要花費(fèi)大量的時(shí)間人工修改測(cè)試執(zhí)行與評(píng)估步驟中信號(hào)名稱與數(shù)值,效率不高。相比而言,利用API接口通過腳本方式開展GW自動(dòng)化測(cè)試通過信號(hào)映射程序自動(dòng)讀取信號(hào)列表中的信號(hào)和數(shù)值可以大大提高測(cè)試效率。這兩種實(shí)現(xiàn)方式,前者簡單直觀,適合剛接觸自動(dòng)化測(cè)試人員開展測(cè)試并熟悉自動(dòng)化測(cè)試;后者效率高,對(duì)于有編程經(jīng)驗(yàn)的自動(dòng)化測(cè)試工程師來說,是一種明智的選擇。
論文通過對(duì)Dspace HIL機(jī)柜實(shí)現(xiàn)GW自動(dòng)化測(cè)試進(jìn)行了實(shí)踐與研究,對(duì)于GW測(cè)試驗(yàn)證以及自動(dòng)化測(cè)試的方法提供非常有用的參考價(jià)值。