王濤 楊年炯 宋李棟
摘? 要:隨著智能網(wǎng)聯(lián)車輛技術(shù)的迅速發(fā)展,汽車自動化程度越來越高,當(dāng)總線網(wǎng)絡(luò)需要更多數(shù)量的電子控制單元(ECU,electronic control unit),車載總線的布局越來越復(fù)雜時,傳統(tǒng)搭建車載總線測試臺架效率較低、通用性差,不能滿足主機(jī)廠測試需求.通過深入研究車載控制器局域網(wǎng)(CAN,controller area network)總線的測試,分析了傳統(tǒng)測試臺架的缺點,提出了一種基于Vector工具鏈車載CAN總線自動化測試系統(tǒng).該系統(tǒng)通過Vector工具鏈之間的功能聯(lián)系,采用能被CAPL語言調(diào)用的C++語言開發(fā)的底層驅(qū)動,以實現(xiàn)車載CAN總線、LIN(local? ?interconnect network)總線自動化測試.本文設(shè)計了與人工測試的對比實驗,驗證了該系統(tǒng)不僅能解決車載總線測試通用性差的缺點,而且還提高了測試效率.
關(guān)鍵詞:CAN總線;自動化測試;Vector工具鏈
中圖分類號:TP273;U463.6? ? ? ? ?DOI:10.16375/j.cnki.cn45-1395/t.2021.01.009
0? ? 引言
CAN是控制器局域網(wǎng)(controller area network)的簡稱,是德國Bosch開發(fā)的一種數(shù)據(jù)通信協(xié)議,主要進(jìn)行汽車執(zhí)行元件之間的數(shù)據(jù)通信[1].目前國內(nèi)中高檔轎車中至少包含20~30個電子控制單元(ECU,electronic control unit),這些電控單元分布在3~5種不同的網(wǎng)段中,有可能造成總線網(wǎng)絡(luò)異常,難以保障汽車安全性.隨著ECU數(shù)量的增加以及子網(wǎng)段數(shù)量的增加,國內(nèi)外普遍采用自動化的網(wǎng)絡(luò)測試系統(tǒng)完成各子網(wǎng)段不同ECU的網(wǎng)絡(luò)測試工作.
對此,國內(nèi)外學(xué)者均做了一定的研究.曹尚貴 等[2]解決了測試精度差、偶發(fā)網(wǎng)絡(luò)故障等問題;郭志剛、李中偉等[3-4]研究一套車載總線自動化測試系統(tǒng)解決總線通訊安全、測試效率低的問題;王征宇等[5-7]提出基于Vector工具鏈車載總線硬件在環(huán)自動化測試系統(tǒng).雖然上述總線測試系統(tǒng)都有各自的優(yōu)點,但是還不能滿足當(dāng)前主機(jī)廠總線測試需求.文中提出了一種基于Vector工具鏈車載總線自動化測試系統(tǒng),該系統(tǒng)具有通用性強(qiáng)(可實現(xiàn)CAN總線和LIN總線測試)、測試效率高的優(yōu)點,解決以往車載總線測試項目中周期長、測試類型單一的缺點.
1? ? 測試需求分析
目前,多數(shù)汽車的控制器聯(lián)網(wǎng)都以CAN作為通信協(xié)議,在人工測試環(huán)境下,效率較低,影響主機(jī)廠生產(chǎn)效率[8],因此,擁有一整套車載總線自動化測試成為主機(jī)廠的迫切需求.實車電子控制單元總線自動化測試需求表現(xiàn)在以下幾個方面.
1.1? ?測試環(huán)境
傳統(tǒng)測試環(huán)境如圖1所示.根據(jù)測試需求,把被測設(shè)備與測試儀器進(jìn)行連接.測試過程中不斷改變供電情況,反復(fù)切換電源開關(guān),這樣復(fù)雜的線路連接可能導(dǎo)致線路短接、斷開等.
1.2? ?測試效率
隨著現(xiàn)代汽車智能化的快速發(fā)展,車載CAN總線結(jié)構(gòu)越來越復(fù)雜,測試時間成倍增加,測試周期較長,因此,測試效率成為考核自動化測試系統(tǒng)的一個重要指標(biāo).
1.3? ?自動生成測試報告功能
完成測試后,需要做出測試報告,每個主機(jī)廠對報告格式的要求不同.測試數(shù)據(jù)整理完成后,人工輸出測試報告,大量耗費測試人員的時間,效率較低.自動化測試系統(tǒng)根據(jù)主機(jī)廠測試規(guī)范自動生成測試報告,大大提高了測試效率.
1.4? ?測試范圍廣
本文研究的自動化測試系統(tǒng)可完成包括CAN通信測試、CAN網(wǎng)關(guān)測試和LIN總線測試等,實現(xiàn)一體多用.
2? ? 軟件與硬件平臺實現(xiàn)自動化
車載總線自動化測試系統(tǒng)分硬件平臺與軟件管理平臺兩大部分.通過Vector工具(CANcase、CANscope、CANstress等)實現(xiàn)集成硬件平臺,主要對被測ECU實現(xiàn)電源管理、數(shù)據(jù)記錄、診斷分析、波形分析等功能[9].自動化測試系統(tǒng)軟件管理平臺,通過CANoe(CAN open environment)[10]實現(xiàn)自動化測試系統(tǒng)軟件管理平臺的仿真模型建立.通過CAPL程序語言,開發(fā)自動化測試程序,根據(jù)測試規(guī)范編寫用例.CANoe導(dǎo)入DBC(database can)完成數(shù)據(jù)配置.設(shè)備程控管理、自動執(zhí)行總線測試、測試報告表的生成及上傳等功能[11-12],通過CAPL程序?qū)崿F(xiàn),并調(diào)用底層庫函數(shù).
2.1? ?硬件平臺設(shè)計
測試平臺的各個硬件設(shè)備之間的連接需要有序?qū)崿F(xiàn)測試過程中設(shè)備之間的交互通信,安裝設(shè)備在機(jī)柜中的位置選擇需要充分考慮人性化[13].
電源管理模塊用于供電控制測試系統(tǒng),可以通斷電源,同時具備保護(hù)電路功能.如圖2 所示,PDU電源模塊有獨立開關(guān),可以實現(xiàn)啟動和關(guān)閉,防止突然斷電或短路等而損壞設(shè)備.高精度網(wǎng)絡(luò)示波器(agilent DSO-X 3014A)主要實現(xiàn)對CAN信號輸出特性的精確捕捉、測量及分析.該示波器可以通過波形分析實現(xiàn)CAN總線物理層測試,且其帶有示波器程控接口,具有CAN/LIN信號采集分析能力,帶CAN/LIN解碼模塊,可同時測量兩路不同速率的CAN信號,自動獲取波特率.CANstress主要是對CAN總線信號、物理屬性及邏輯電位進(jìn)行干擾,自動化測試系統(tǒng)通過CAPL程序執(zhí)行命令,干擾邏輯控制短路、線/電源(地)短路及斷路、位錯誤模擬,這些有目的的干擾節(jié)點,可破壞CAN報文特定的位域.
硬件平臺設(shè)計的核心部分是多通道測試板卡,如圖3所示.多通道測試板卡的功能主要是對機(jī)柜電源及信號的控制.板卡通過對繼電器矩陣的? ? ? 控制,可實現(xiàn)對CANH、CANL、GENG、Power Supply等的控制;板卡內(nèi)部有CANstress、Input、 Output接口,用于連接放置在機(jī)柜內(nèi)部的CAN stress設(shè)備(在物理層測試時斷開CANstress設(shè)備,避免其干擾總線物理層波形);IO板卡可模擬被測控制器的觸發(fā)信號,實現(xiàn)事件報文的測試;通過硬件平臺設(shè)計的多通道測試板卡的不同總線信號控制,實現(xiàn)不同總線的測試.接口面板固定在測試板卡前面板中,通過接口面板可以連接ECU的兩路電源、地、CANH、CANL及IO控制端.
2.2? ?軟件管理平臺系統(tǒng)
通過上位機(jī)實現(xiàn)測試設(shè)備、被測設(shè)備之間的交互是自動化測試的關(guān)鍵.實現(xiàn)自動化首先要通過編寫驅(qū)動底層的驅(qū)動程序來控制設(shè)備,建立基本通信.在自動化測試機(jī)柜中,開發(fā)程控電源、示波器和CANstress DR底層驅(qū)動,主要實現(xiàn)測試用的自動執(zhí)行和對設(shè)備遠(yuǎn)程控制.開發(fā)語言需要能被CAPL調(diào)用的底層驅(qū)動.采用C++語言,在CANoe軟件提供的CAPLDLL工程中對設(shè)備的調(diào)用進(jìn)行封裝,生成capldll.dll文件[10].具備測試執(zhí)行、數(shù)據(jù)庫管理功能的 CAN總線網(wǎng)絡(luò)測試管理系統(tǒng),也是前臺運(yùn)行軟件,主要實現(xiàn)以下功能:
1)數(shù)據(jù)記錄:測試執(zhí)行過程中的相關(guān)數(shù)據(jù)按測試用例保存至系統(tǒng)指定文件夾,方便對結(jié)果的分析.對于CAN測試,測試過程的日志(LOG)文件將以 ASC 格式的測試數(shù)據(jù)文件自動存儲在特定的文件夾目錄中,并可以打開查看.
2)測試報告:測試報告主要用來記錄測試結(jié)果.在測試執(zhí)行完成后點擊測試執(zhí)行界面的“生成測試報告”即可生成excel格式的測試報告.測試報告中不僅有目錄,還有詳細(xì)的測試標(biāo)準(zhǔn),程序會根據(jù)測試結(jié)果和評價標(biāo)準(zhǔn)準(zhǔn)確判斷該測試項通過與否,測試人員可以根據(jù)測試報告清楚知道問題出在哪里.
3)參數(shù)配置:可以通過參數(shù)配置面板進(jìn)行常用參數(shù)配置,具體配置參數(shù)在測試程序開發(fā)中定義.
4)導(dǎo)入配置:除了通過配置面板進(jìn)行參數(shù)配置,也可以采用參數(shù)導(dǎo)入方式增加配置.例如測試信息錄入:采用特定的excel模板可自動導(dǎo)入DUT版本信息,包括測試人員信息、被測設(shè)備供電電壓以及測試時間等.
2.3? ?管理軟件與執(zhí)行軟件交互方式
動態(tài)鏈接庫、INI配置文件是執(zhí)行軟件與測試管理軟件之間的交互方式.管理軟件將從執(zhí)行軟件中獲得的信息存入數(shù)據(jù)庫中,用來生成測試報告(包括當(dāng)前測試及歷史測試).管理軟件與執(zhí)行軟件的交互可以實現(xiàn)測試管理軟件對CAN總線測試軟件的調(diào)用,并獲得最終的測試狀態(tài)(例如是否測試執(zhí)行完成).對于用戶輸入的數(shù)據(jù)和文件,上位機(jī)管理軟件會自動生成對應(yīng)的INI文件,在測試執(zhí)行過程中進(jìn)行調(diào)用.圖4為交互流程圖.
3? ? 自動化測試系統(tǒng)實驗驗證
為驗證自動化測試系統(tǒng)測試效率與通用性,以某主機(jī)廠BCM(body control module)車身模塊CAN總線“BUS OFF”和LIN主節(jié)點調(diào)度表測試為例,設(shè)計人工測試和自動化測試系統(tǒng)測試,通過比較分析,驗證了自動化測試系統(tǒng)的測試效率高、通用性強(qiáng).
3.1? 人工測試分析
BUS OFF是BCM發(fā)送錯誤幀計數(shù)器累計超過255后進(jìn)入的總線關(guān)閉狀態(tài).CAN總線通訊協(xié)議定義每個節(jié)點都有一個接收和發(fā)送錯誤幀計數(shù)器,發(fā)送或接收有錯誤幀,計數(shù)器增加特定的值,如果計數(shù)器減1,說明發(fā)送或接收成功.BCM進(jìn)入BUS OFF狀態(tài)后,進(jìn)入連續(xù)5次快速恢復(fù)模式,如果總線上仍有錯誤幀,將執(zhí)行慢速恢復(fù),直到總線關(guān)閉,故障恢復(fù),并且慢速恢復(fù)模式結(jié)束.DUT上電,總線通信穩(wěn)定,DUT所發(fā)送的報文用CANoe記錄,使用CAN stress(DR)使ID報文發(fā)生? 32*6次干擾,監(jiān)控DUT快速恢復(fù)的次數(shù).
首先,通過有線連接搭建BCM測試臺架,人為制造BUS OFF故障.用電腦連接臺架記錄通訊數(shù)據(jù),如圖5所示為CANoe的Trace窗口記錄情況.Trace窗口中標(biāo)記之間分別是一次快恢復(fù)和一次慢恢復(fù),通過觀察Trace窗口的報文記錄快(上)、慢(下)恢復(fù)次數(shù).由于快恢復(fù)需要50 s左右,慢恢復(fù)需要差不多190 s,Trace窗口報文數(shù)量較多,需要整理數(shù)據(jù)才能完成測試報告,使BCM主機(jī)廠測試耗時長且效率低.
3.2? ?CAN總線自動化測試
自動化測試系統(tǒng)只需從測試系統(tǒng)接出CANH、CANL、KL30電、KL15電和GND與被測BCM相連接,即可開始測試.自動化測試環(huán)境如圖6所示.
與手動測試相比,自動化測試系統(tǒng)有良好的測試環(huán)境,不會發(fā)生導(dǎo)線之間短路導(dǎo)致測試過程中出現(xiàn)錯誤幀的情況.自動化測試系統(tǒng)通過測試工程師登錄測試系統(tǒng)界面,根據(jù)測試需求進(jìn)行測試類型和測試用例的選取;其次,填寫節(jié)點配置表(主節(jié)點、有無終端電阻等內(nèi)容),一鍵導(dǎo)入DBC配置節(jié)點屬性信息;然后,測試人員運(yùn)行測試系統(tǒng),自動分析數(shù)據(jù)后執(zhí)行系統(tǒng)會調(diào)用CANoe;最后,自動生成測試報告.圖7為系統(tǒng)自動生成的測試報告,直接顯示出進(jìn)行BUS OFF測試的快速恢復(fù)和慢恢復(fù)次數(shù).由于被測BCM BUS OFF滿足測試定義,進(jìn)行了5次快速恢復(fù)再進(jìn)入慢恢復(fù),所以該項測試結(jié)果為通過項.整個自動測試過程時間大概30 s,這相比于手動測試速度提升了十幾倍,驗證了自動化測試系統(tǒng)的高效的執(zhí)行率.
3.3? ?LIN總線主節(jié)點調(diào)度表自動化測試分析
現(xiàn)對LIN主節(jié)點調(diào)度表順序測試,進(jìn)一步驗證測試系統(tǒng)的通用性.首先自動化測試系統(tǒng)接入BCM樣件,運(yùn)行系統(tǒng),測試系統(tǒng)自動調(diào)用Trace記錄窗口,清楚地看到BCM發(fā)送“LIN主節(jié)點”的數(shù)據(jù),如圖8 Trace記錄窗口所示.如果主節(jié)點判斷沒有新的調(diào)度表需要處理,當(dāng)前運(yùn)行的調(diào)度表將一直順序執(zhí)行,結(jié)束后再從開始循環(huán)執(zhí)行.當(dāng)主節(jié)點判斷需要切換新的調(diào)度表時,必須在幀時隙開始時進(jìn)行切換,以保證不破壞之前傳輸?shù)膱笪?
最后,系統(tǒng)自動生成測試報告.如圖9所示,“LIN主節(jié)點調(diào)度測試表”實際發(fā)送LIN主節(jié)點ID與標(biāo)準(zhǔn)ID有部分不一致,主節(jié)點判斷需要切換新的調(diào)度表,保證不破壞報文傳輸.
4? ? 結(jié)論
本文針對車載總線自動化測試展開討論,通過CAPL語言環(huán)境實現(xiàn)上機(jī)位平臺操作,提出一種基于Vector工具鏈車載總線自動化測試系統(tǒng).最后進(jìn)行手動測試與自動化測試的比較分析并結(jié)合實踐操作,通過驗證后得出以下結(jié)論:
1)通過與手動測試的比較分析,驗證了自動化測試系統(tǒng)在很大程度上提高了主機(jī)廠測試效率.
2)通過“LIN主節(jié)點調(diào)度表”測試,驗證了自動化測試系統(tǒng)的通用性.
車載總線自動化測試系統(tǒng)相對于傳統(tǒng)測試能大大提高主機(jī)廠效率,且能實現(xiàn)一體多用,對車載總線自動化測試有一定借鑒作用.
參考文獻(xiàn)
[1]? ? ?張培仁.CAN總線設(shè)計及分布式控制[M].北京:清華大學(xué)出版社,2012.
[2]? ? ?曹尚貴,張頌,田飛雄.基于網(wǎng)關(guān)架構(gòu)的車載網(wǎng)絡(luò)總線自動化測試系統(tǒng)[J].工業(yè)儀表與自動化裝置,2020(4):52-56.
[3]? ? ?郭志剛.車載總線自動化測試系統(tǒng)研究[D].天津:河北工業(yè)大學(xué),2015.
[4]? ? ?李中偉,譚凱,關(guān)亞東,等.車載CAN總線脫離? ? ? 攻擊及其入侵檢測算法[J/OL].計算機(jī)應(yīng)用:1-7? ? ? ?[2020-09-19].http://kns.cnki.net/kcms/detail/51.1307.TP.20200721.1710.016.html.
[5]? ? ?王征宇,程小猛,陸海峰.基于CAN總線和虛擬儀器技術(shù)的變頻調(diào)速實時監(jiān)控系統(tǒng)[J/OL].電測與儀表:1-5[2020-09-19].http://kns.cnki.net/kcms/detail/23.1202.TH.20200722.1013.018.html.
[6]? ? ?保志遠(yuǎn). 基于硬件在環(huán)技術(shù)的車輛診斷自動化測試系統(tǒng)的開發(fā)與應(yīng)用[D].重慶:重慶大學(xué),2018.
[7]? ? ?熊賢超.CAN總線測試與仿真平臺的系統(tǒng)設(shè)計[D].上海:上海工程技術(shù)大學(xué),2016.
[8]? ? ?丁張根,羅文廣.基于CANoe-MATLAB的電動機(jī)仿真控制的研究[J].廣西科技大學(xué)學(xué)報,2014,25(2):58-63.
[9]? ? ?LIU X N,F(xiàn)ANG Z Y,SHI L J.Securing vehicular ad hoc networks[C]//International Conference on Pervasive Computing and Applications. New York:IEEE Xplore,2007:424-429.DOI:10.1109/ICPCA.2007.4365481.
[10]? ?MANDUCHI G,DE MARCHI E,MANDELLI A. A new LabVIEW interface for MDSplus[J]. Fusion Engineering and Design,2013,88 (6-8):1196-1199.
[11]? ?FREIBERGER S,ALBRECHT M,K?UFL J.Reverse engineering technologies for remanufacturing of? ?automotive systems communicating via CAN bus[J].Journal of Remanufacturing,2011,6(1):1-14.https://doi.org/10.1186/2210-4690-1-6.
[12]? ?JAIN S,GUAJARDO MERCHAN J,DAS S. Methods for minimizing side channel leakage for group key agreement for controller area network:US2018/021604[P].2018-09-13.
[13]? ?魏曉兵,喬維高,杜常清,等.基于LabVIEW的拖拉機(jī)電氣故障檢測系統(tǒng)設(shè)計與試驗[J].中國農(nóng)機(jī)化學(xué)報,2020,41(7):143-149.