巫輝燕,林漢雄
(廣州汽車集團股份有限公司汽車工程研究院,廣東 廣州 510640)
網關控制器是汽車整車電子電氣架構中的核心ECU,車載網關作為車載網絡中信息交換的核心[1],整車信號傳輸的樞紐,其主要的功能有路由、網絡管理、波特率轉換以及診斷刷新等。
網關控制器實現車內不同網段電控單元之間的數據轉發[2],在整車上電之后,網關將不斷進行不同網絡之間的報文或者信號的路由轉發,若網關轉發延遲、錯誤或者停止轉發,將帶來整車功能異常甚至出現安全性問題。當前汽車仍然以分布式系統為主,CAN通信為車載通信的主要方式,本文針對網關的CAN路由功能進行了HIL自動化測試研究。
如圖1所示為連接3路CAN的網關控制器,網關常電直接由蓄電池通過線束連接到1腳,ON檔電在整車上電之后供電,GND為地。圖1中的3路CAN分別ACAN、BCAN以及PCAN,每路CAN由CAN_H以及CAN_L組成,CAN_H以及CAN_L為雙絞線。在汽車電子電氣架構中,動力、安全等控制器一般分布在高速 PCAN上,波特率為 500kb/s,車身、空調等控制器分布在BCAN低速CAN上,波特率為125kb/s。不同 ECU的所需要其他網絡上的報文或者信號通過網關路由到其所在網絡上后進行接收。
GW自動化測試系統所圖2所示,主要由Dspace HIL機柜、電腦、被測網關控制器、通信電纜以及線束組成。HIL(Hardware-in-the-loop),即硬件在環,是一種有效可行的能夠實現高效地創建測試和自動化執行測試的手段,通過HIL對控制器進行大量測試,實現全天候的自動化測試[3]。HIL機柜用來供電、模擬其他ECU發送報文以及接受GW轉發的報文等。電腦上需要安裝測試管理軟件 Control Desk、自動化測試軟件Automation Desk以及仿真模型軟件Simulink等實現對自動化測試模型建立、測試界面創建以及測試用例搭建等。

圖1 網關系統原理框圖

圖2 網關自動化測試系統組成圖
在使用Dspace機柜進行GW自動化測試時,可以通過利用Automation Desk軟件中模塊化的測試步驟Test Step開展測試或者利用API接口通過腳本方式開展自動化測試。本論文分別對這2種方式進行了實踐與研究。
利用Automation Desk軟件開展自動化測試,一個測試用例可以通過一個TestBody來實現,一個Testbody包括測試初始化(TestInitialization)、測試執行以及評估(TestSteps AndEvauation)以及測試復位(TestCleanUp)組成,TestBody工作流程圖如圖3。

圖3 TestBody工作流程圖
測試初始化主要包括HIL機柜程控電源上電以及GW上電;執行與評估過程包括被測信號的路由值設置、發送以及機柜回采對比,網關轉發值機柜回采并與期望值對比,若與期望值一致則通過;測試復位主要包括被測信號的值恢復默認值以及GW下電。
圖4為Automation Desk中BCAN中一個信號通過GW轉發到PCAN以及ACAN的自動化測試用例。所有需要通過GW路由的信號可以通過該方式進行所有值的路由測試用例搭建,搭建完之后即可開展GW路由功能自動化測試。

圖4 TestBody工作流程圖
Dspace API支持Python、C以及VB等語言,Python 是一種面向對象、解釋型、跨平臺的高級程序設計語言,可以應用于自動化測試,數據分析等眾多領域[4],Python語言代碼簡潔,結構簡單,有極其強大內置的本地庫和第三方庫[5],論文中使用了Python語言進行了GW自動化測試程序開發。
GW自動化測試程序由主程序、總線映射程序、信號映射程序、測試用例程序、基礎函數程序及報告生成程序,這六個程序的代碼已經封裝成Python模塊庫,在測試過程中調用使用。

圖5 GW自動化測試程序結構框圖
主程序的功能是統籌其他五個程序塊,是測試的入口程序,它通過調用其它程序模塊來保證程序正常運行,同時實現與其它程序模塊的數據交互。
總線映射程序主要定義一些路徑變量,這些變量值為測試需要用的總線信號路徑等。
信號映射程序主要用于存放通信矩陣中所定義的GW的所有信號包括接收信號和外發信號。
基礎函數程序為Dspace HIL的接口程序,基礎函數程序通過調用Dspace HIL API并進行重新封裝形成更加便于其它程序模塊使用的函數,比如信號的讀寫操作。
測試用例程序是自動化測試程序中的核心部分,將GW的測試需求轉化測試腳本,需要覆蓋GW所有信號的路由。
報告生成程序是Dspace HIL訪問EXCEL的入口程序,通過對Dspace HIL API進行封裝,以實現自動生成測試報告。
本論文對GW的HIL自動化測試進行了研究,分別介紹了2兩種實現自動化測試方法。在信號名稱以及信號定義經常變化的情況下利用Automation Desk中的Testbody開展自動化測試,需要花費大量的時間人工修改測試執行與評估步驟中信號名稱與數值,效率不高。相比而言,利用API接口通過腳本方式開展GW自動化測試通過信號映射程序自動讀取信號列表中的信號和數值可以大大提高測試效率。這兩種實現方式,前者簡單直觀,適合剛接觸自動化測試人員開展測試并熟悉自動化測試;后者效率高,對于有編程經驗的自動化測試工程師來說,是一種明智的選擇。
論文通過對Dspace HIL機柜實現GW自動化測試進行了實踐與研究,對于GW測試驗證以及自動化測試的方法提供非常有用的參考價值。