基于虛擬儀器的車載CAN總線監(jiān)控系統(tǒng)開發(fā)
掃描二維碼
隨時隨地手機看文章
汽車在開發(fā)過程中需要對整車運行參數(shù)進行采集和監(jiān)控,以便分析各部件的運行狀況,優(yōu)化和改進整車控制策略。在整車耐久性考核中也需要全程采集和記錄運行數(shù)據(jù),以便對整車及部件性能變化進行分析。因此車載CAN總線監(jiān)控系統(tǒng)是電動汽車研究和開發(fā)的重要工具,本文重點論述車載CAN總線監(jiān)控系統(tǒng)的開發(fā)以及在燃料電池汽車道路考核試驗中的應(yīng)用。
1 汽車CAN網(wǎng)絡(luò)結(jié)構(gòu)及通訊協(xié)議
在電動汽車中,整車控制器通過CAN總線與電機、蓄電池等部件通訊,讀取各部件的狀態(tài)信息并向部件發(fā)送控制信息。圖1為一種燃料電池汽車的CAN網(wǎng)絡(luò)結(jié)構(gòu),整車控制器通過CAN網(wǎng)絡(luò)采集燃料電池、DC/DC轉(zhuǎn)換器、蓄電池和電機等部件狀態(tài)參數(shù),根據(jù)一定的控制策略向DC/DC轉(zhuǎn)換器和電機發(fā)送控制命令,使動力系統(tǒng)各部件協(xié)調(diào)工作,實現(xiàn)整車的動力性和經(jīng)濟性指標(biāo)。監(jiān)控系統(tǒng)連接到CAN總線上,讀取總線的數(shù)據(jù)幀,實現(xiàn)數(shù)據(jù)的采集和存儲。
在CAN網(wǎng)絡(luò)中數(shù)據(jù)以報文為單位進行傳輸,節(jié)點對總線的訪問采取位仲裁方式。報文起始部分為標(biāo)識符,在CAN2.0B中標(biāo)識符采用29位格式,如圖2所示。其中,優(yōu)先級為3位,共8個優(yōu)先級;8位PS為發(fā)送此報文的源地址,8位SA為目標(biāo)地址,8位PF為報文代碼。
監(jiān)控系統(tǒng)與整車CAN網(wǎng)絡(luò)連接,可接收總線上的全部數(shù)據(jù)幀。一個CAN數(shù)據(jù)幀包括標(biāo)識符和8字節(jié)數(shù)據(jù)。根據(jù)標(biāo)識符可判斷出該數(shù)據(jù)幀是哪個部件發(fā)送的,再根據(jù)部件的通訊協(xié)議對8個字節(jié)數(shù)據(jù)進行解析可得到實際的參數(shù)值。
圖3為燃料電池汽車中燃料電池控制器向整車控制器發(fā)送的一個數(shù)據(jù)幀的格式。標(biāo)識符ID為29位數(shù)據(jù),根據(jù)標(biāo)識符格式定義可以得出燃料電池地址為11,整車控制器地址為10,數(shù)據(jù)幀優(yōu)先級為3。數(shù)據(jù)部分包含燃料電池輸出電壓、燃料電池輸出電流、電堆溫度、故障碼、狀態(tài)位和控制器LIFE信號等信息。
2 監(jiān)控系統(tǒng)硬件設(shè)計
車載CAN總線監(jiān)控系統(tǒng)硬件結(jié)構(gòu)如圖4所示,采用基于PC總線工業(yè)控制計算機(IPC)的硬件設(shè)計。便攜式工控機Apollo150具有抗干擾和減震設(shè)計,適合于車載使用;具有一體化的液晶顯示屏和鍵盤鼠標(biāo)設(shè)計,便于人機界面設(shè)計;通過USB2.0接口連接U盤進行存儲,保證車載環(huán)境下大量數(shù)據(jù)的可靠存儲;可以通過PCI和ISA擴展槽擴展數(shù)據(jù)采集和通訊接口;燃料電池汽車提供24V直流電源,經(jīng)逆變電源轉(zhuǎn)換成220V交流電,經(jīng)UPS給工控機供電?;贗PC的硬件結(jié)構(gòu)具有可靠性好、便于擴展的特點 ,同時可以利用PC機強大的軟硬件資源,提高開發(fā)效率。
CAN通訊接口卡選用PCI7841雙口隔離型CAN接口卡,該接口卡插在Apollo150的PCI擴展槽上,采用SJA1000 CAN控制器以及82C250 CAN接收器芯片,提供總線仲裁和錯誤檢測功能,以確保數(shù)據(jù)通訊的可靠性。PCI7841具有兩個獨立的CAN接口,最高通訊速率為1Mbps。
3 監(jiān)控系統(tǒng)軟件設(shè)計
3.1軟件功能需求分析
CAN總線監(jiān)控系統(tǒng)軟件功能主要包括數(shù)據(jù)采集、故障診斷、界面顯示和數(shù)據(jù)存儲。數(shù)據(jù)采集功能對整車CAN網(wǎng)絡(luò)上的數(shù)據(jù)幀進行采集,根據(jù)通訊協(xié)議對數(shù)據(jù)進行解析,提取相應(yīng)的數(shù)據(jù);故障診斷功能對部件發(fā)送數(shù)據(jù)幀中的故障碼進行分析,判斷當(dāng)前系統(tǒng)存在的故障信息;界面顯示功能對采集的數(shù)據(jù)以各種形式顯示在液晶屏上;數(shù)據(jù)存儲功能將采集數(shù)據(jù)以文件形式連續(xù)存儲在U盤上。
3.2 基于虛擬儀器的軟件設(shè)計
虛擬儀器技術(shù)目前已成為測試領(lǐng)域的主流技術(shù),一個虛擬儀器系統(tǒng)主要由儀器硬件、計算機硬件和應(yīng)用軟件組成,應(yīng)用軟件又包括開發(fā)環(huán)境、應(yīng)用程序和儀器驅(qū)動程序三部分[4]。LabVIEW是NI公司推出的虛擬儀器開發(fā)平臺,采用圖形化的編程語言,具有強大的人機界面設(shè)計和數(shù)據(jù)分析處理功能,提供了豐富的儀器驅(qū)動程序,便于快速創(chuàng)建靈活可靠的應(yīng)用系統(tǒng)?;贚abVIEW環(huán)境的虛擬儀器體系結(jié)構(gòu)如圖5所示。
CAN總線監(jiān)控系統(tǒng)軟件采用虛擬儀器開發(fā)平臺LabVIEW開發(fā),儀器硬件部分包括便攜式工控機和PCI總線CAN通訊接口卡。PCI-7841 CAN接口卡提供了動態(tài)鏈接庫(DLL)形式的Windows2000/XP驅(qū)動程序,在LabVIEW中通過DLL調(diào)用實現(xiàn)第三方硬件的儀器驅(qū)動。PCI-7841提供的主要驅(qū)動程序功能如表1所示。
車載CAN總線監(jiān)控系統(tǒng)采用了PC架構(gòu)和高性能數(shù)據(jù)通訊接口卡,利用虛擬儀器軟件開發(fā)平臺的儀器驅(qū)動、界面控件以及應(yīng)用程序開發(fā)調(diào)試環(huán)境,提高了系統(tǒng)的可靠性和開發(fā)效率。
3.3 監(jiān)控軟件流程設(shè)計
CAN總線監(jiān)控程序流程如圖6所示。首先進行硬件初始化,創(chuàng)建文件目錄。讀取CAN信息幀后按照協(xié)議進行解析,首先將數(shù)據(jù)幀分離成ID部分和數(shù)據(jù)部分,根據(jù)ID判斷是哪一個部件的信息;然后根據(jù)協(xié)議中定義的參數(shù)起始字節(jié)和總字節(jié)數(shù)取出數(shù)據(jù),經(jīng)過偏移量和比例因子運算得出該參數(shù)的實際值。由于CAN網(wǎng)絡(luò)中包含了整車控制器和各部件的控制器節(jié)點,在當(dāng)前時刻緩沖區(qū)內(nèi)有多個數(shù)據(jù)幀,監(jiān)控程序在進入讀數(shù)據(jù)循環(huán)時不停地讀緩沖區(qū)的CAN數(shù)據(jù),直到緩沖區(qū)數(shù)據(jù)讀取完畢為止,這樣保證了讀取數(shù)據(jù)的實時性。讀取的數(shù)據(jù)連續(xù)存儲在U盤上,存儲頻率為10Hz,由于數(shù)據(jù)量較大,為了避免數(shù)據(jù)文件過大,監(jiān)控系統(tǒng)每隔1小時重新創(chuàng)建一次文件,根據(jù)當(dāng)前時間生成文件名。當(dāng)用戶按下結(jié)束按鈕后監(jiān)控程序結(jié)束。
4 應(yīng)用實例
在燃料電池汽車道路考核試驗中,應(yīng)用車載CAN總線監(jiān)控系統(tǒng)采集和記錄整車CAN網(wǎng)絡(luò)數(shù)據(jù)。圖7為采集的車速曲線,圖8為燃料電池電壓電流曲線,其中車速數(shù)據(jù)來自于整車控制器,電壓、電流數(shù)據(jù)來自于燃料電池發(fā)動機控制器。