楊光(北京汽車研究總院有限公司,北京 101300)
應(yīng)用于HIL系統(tǒng)中的自動(dòng)診斷程序的研究設(shè)計(jì)
楊光
(北京汽車研究總院有限公司,北京101300)
針對基于NI公司平臺(tái)的HIL測試系統(tǒng),提出一種經(jīng)濟(jì)可行的方法來實(shí)現(xiàn)在自動(dòng)測試序列中針對CAN總線中的故障診斷碼DTC的測試。
HIL;CAN;故障診斷
隨著電子技術(shù)的飛速發(fā)展,汽車上使用的電控單元越來越多。網(wǎng)絡(luò)技術(shù)在汽車上的廣泛應(yīng)用,使得ECU的軟件功能越來越復(fù)雜,各控制器間的聯(lián)系也越來越緊密。對汽車上的ECU進(jìn)行全面綜合的測試,尤其是故障情況和極限條件下的測試顯得格外重要。硬件在回路仿真HIL是一種可行的測試手段,通過HIL可以在虛擬環(huán)境中對新的電控單元及軟件進(jìn)行大量測試,而無需在真實(shí)的汽車或原型上進(jìn)行。這種測試系統(tǒng)性強(qiáng),而且非常安全,即使測試中超過極限條件,也不會(huì)造成任何損壞,隨時(shí)可以重現(xiàn)ECU的錯(cuò)誤。還可以搭建自動(dòng)測試序列,簡化了測試流程,提高了測試的效率。HIL系統(tǒng)基本組成如圖1所示。
圖1 HIL系統(tǒng)基本組成圖
故障注入模塊是HIL測試系統(tǒng)的重要組成部分,在實(shí)際走線中是串聯(lián)于信號(hào)通路中。當(dāng)不進(jìn)行故障注入時(shí),僅相當(dāng)于導(dǎo)線。故障注入模塊模擬常見的車載電氣故障,比如導(dǎo)線的開路、短路 (對電源,對搭鐵,對其他信號(hào))等情況,以測試控制器的故障診斷功能。ECU在正常工作時(shí)會(huì)實(shí)時(shí)監(jiān)測自身工作情況,一旦發(fā)現(xiàn)故障會(huì)將故障碼存入內(nèi)存,同時(shí)根據(jù)故障的輕重等級(jí)決定是否點(diǎn)亮故障燈。實(shí)際的HIL測試臺(tái)架如圖2所示。
圖2 HIL測試臺(tái)架
在基于NI公司平臺(tái)的HIL測試系統(tǒng)中,在進(jìn)行硬線故障注入后,可以很方便地在系統(tǒng)中測量到線路通道的電信號(hào)和通斷情況,但是由于硬件資源驅(qū)動(dòng)和系統(tǒng)軟件都運(yùn)行于下位機(jī)的實(shí)時(shí)系統(tǒng)中,這種情況下對于ECU中自動(dòng)產(chǎn)生的故障碼DTC無能為力進(jìn)行識(shí)別。但是在進(jìn)行自動(dòng)測試時(shí),對于DCT正確性與否的驗(yàn)證很有必要。那么有沒有一種方法,能夠脫離于下位機(jī)的實(shí)時(shí)模型系統(tǒng)而又能夠?qū)崿F(xiàn)對于故障碼DTC的自動(dòng)測試呢?針對這種實(shí)際存在的需求和系統(tǒng)的功能短板,本文設(shè)計(jì)了一種脫離于下位機(jī)模型存在的軟件診斷程序,從而使自動(dòng)化的故障診斷流程變?yōu)榭赡堋?/p>
本設(shè)計(jì)已應(yīng)用于北汽的Cxx車型項(xiàng)目。本應(yīng)用設(shè)計(jì)的重點(diǎn)是要繞過硬件在環(huán)系統(tǒng)下位機(jī)的實(shí)時(shí)運(yùn)行環(huán)境而進(jìn)行自動(dòng)的故障診斷測試。在系統(tǒng)中本身包含CAN板卡設(shè)備,但是其調(diào)用完全是在模型和實(shí)時(shí)系統(tǒng)中,很難進(jìn)行編程更改并且滿足自動(dòng)的故障診斷的要求,所以我們必須考慮使用其他的方法進(jìn)行創(chuàng)新。在本設(shè)計(jì)中,借助了一個(gè)經(jīng)濟(jì)USB的總線設(shè)備,實(shí)現(xiàn)了在上位機(jī)編程,并能自動(dòng)進(jìn)行故障診斷測試。
USB接口CAN卡選用KVASER LEAF設(shè)備,此設(shè)備構(gòu)造小巧、成本經(jīng)濟(jì),能夠通過USB口和上位機(jī)進(jìn)行快速連接并且無需額外供電,它能夠兼容高速CAN、低速CAN和LIN總線協(xié)議。我們使用此設(shè)備可以快速構(gòu)建起系統(tǒng)所需的總線環(huán)境。KVASER LEAF設(shè)備如圖3所示。
圖3 KVASER LEAF設(shè)備
圖4 診斷體系結(jié)構(gòu)
圖5 診斷多幀報(bào)文收發(fā)結(jié)構(gòu)
圖6 多幀報(bào)文收發(fā)程序
在進(jìn)行上位機(jī)程序設(shè)計(jì)時(shí),軟件開發(fā)平臺(tái)采用NI LabVIEW,它是圖形化開發(fā)環(huán)境,內(nèi)置信號(hào)采集、測量分析與數(shù)據(jù)顯示功能,摒棄了傳統(tǒng)開發(fā)工具的復(fù)雜性,提供強(qiáng)大功能的同時(shí)還保證了系統(tǒng)靈活性。進(jìn)行程序設(shè)計(jì)必須嚴(yán)格遵循故障診斷的相關(guān)規(guī)范,包括ISO 15765[1]和ISO 14229[2]以及ISO 11898[3]。診斷功能實(shí)現(xiàn)的體系結(jié)構(gòu)如圖4所示。
以診斷多幀報(bào)文傳送機(jī)制舉例,根據(jù) 《ISO 15765 -2網(wǎng)絡(luò)層服務(wù)》規(guī)范定義中,上位機(jī)與控制器之間的多幀報(bào)文傳送應(yīng)當(dāng)依據(jù)如圖5所示的規(guī)則進(jìn)行。
根據(jù) 《ISO 14229-1道路車輛統(tǒng)一診斷服務(wù)》[2]定義,診斷服務(wù)包含如診斷和通信管理功能、數(shù)據(jù)傳輸功能、傳輸存儲(chǔ)的數(shù)據(jù)功能、輸入輸出控制功能、遠(yuǎn)程激活例程功能、上傳下載功能等項(xiàng)目。下文中示范了請求DTC的子功能,并將此功能加入到自動(dòng)的測試序列當(dāng)中。
多幀報(bào)文收發(fā)程序如圖6所示。上位機(jī)發(fā)送請求報(bào)文到控制器,首先是頭幀,跟著是流控幀,隨后控制器返回一個(gè)多幀報(bào)文給上位機(jī)。通過返回多幀報(bào)文的解析,可以知道報(bào)文中的內(nèi)容,其內(nèi)容中就包含有由于我們?nèi)藶樽⑷牍收隙a(chǎn)生的故障碼DTC。
在解析完成報(bào)文中的內(nèi)容之后,我們得到了相應(yīng)的DTC代碼。這時(shí)候還需要根據(jù)控制器的功能規(guī)范,將此DCT與控制器中定義的具體故障碼進(jìn)行比對和匹配,從而能夠正確顯示出故障的具體信息。具體故障碼的匹配程序如圖7所示。
圖7 故障碼匹配程序
在完成故障定位之后,還需要清除控制器中的錯(cuò)誤信息,從而開始新的測試。在此處,還示范了如何清除控制器中的錯(cuò)誤代碼信息。如圖8所示。
圖8 控制器故障碼清除程序
本程序作為獨(dú)立的子程序,完全脫離于下位機(jī)的實(shí)時(shí)運(yùn)行環(huán)境而獨(dú)立運(yùn)行。作為程序模塊,可以被上位機(jī)中的測試管理軟件TestStand調(diào)用和配置,從而將此功能融入到整個(gè)車輛子系統(tǒng)的自動(dòng)測試序列當(dāng)中。
在實(shí)際應(yīng)用中,例如在Cxx車型的車身控制器測試項(xiàng)目中,診斷子程序被上位機(jī)管理軟件調(diào)用,加載進(jìn)測試流程序列腳本中,和原有流程腳本可以無縫連接。在進(jìn)行基本的功能測試項(xiàng)之中,可以完美實(shí)現(xiàn)對控制器故障診斷碼的反饋定位。自動(dòng)測試序列如圖9所示。
依照上述的方法和思路,可以進(jìn)一步優(yōu)化和擴(kuò)充,從而將 《ISO 14229-1道路車輛統(tǒng)一診斷服務(wù)》[2]中定義的更多種類的功能模塊加入到自動(dòng)測試序列當(dāng)中,此處只舉例了請求DTC的子功能,更多功能開發(fā)不在此一一贅述。
此程序模塊設(shè)計(jì)完成后,一直應(yīng)用于北汽的Cxx車型項(xiàng)目中,功能穩(wěn)定可靠,為車型的設(shè)計(jì)開發(fā)解決了大量的實(shí)際問題。
[1]ISO 15765—3(2004),道路車輛——控制局域網(wǎng)絡(luò)診斷[S].
[2]ISO 14229—1,道路車輛統(tǒng)一診斷服務(wù)[S].
[3]ISO 11898,道路車輛控制器局域網(wǎng)絡(luò)[S].
(編輯楊景)
Research and Design of Automatic Diagnostic Program Applied In HIL System
YANG Guang
(Beijing Automotive Technology Center,Beijing 101300,China)
An economic and viable approach to test the fault diagnosis codes in CAN bus is proposed based on the NI HIL test system.
HIL;CAN bus;fault diagnosis
U463.835
A
1003-8639(2016)02-0063-03
2015-11-09;
2015-12-14
楊光 (1984-),工程師,從事汽車電子電器測試相關(guān)工作。