田曉鴻
(西安航空職業(yè)技術(shù)學(xué)院 陜西 西安 710089)
隨著科學(xué)技術(shù)的不斷發(fā)展,大量電子器件與設(shè)備被應(yīng)用于汽車制造領(lǐng)域,以此滿足人們?nèi)找嫣岣叩膶ζ囆阅艿男枨?。但與此同時,汽車各控制單元間的連接及通信的復(fù)雜度也隨之增加。上世紀(jì)八十年代中期,德國的Bosch公司開發(fā)了一種多主從方式的串行數(shù)據(jù)通信協(xié)議,即CAN通訊協(xié)議。與其它通訊總線相比,CAN總線在通訊的實時性、可靠性以及靈活性等諸多方面都具有較為顯著的優(yōu)勢。因此,本文提出一種基于CAN總線的車用儀表系統(tǒng)設(shè)計方案,旨在解決相關(guān)電子器件與設(shè)備間的通信問題。
隨著人們對汽車整體性能要求的不斷提高,車用儀表系統(tǒng)除了要具備顯示車身及路況信息的傳統(tǒng)功能外,應(yīng)當(dāng)顯示更多的信息內(nèi)容并縮短響應(yīng)時間,同時還需要保障信息顯示的穩(wěn)定性以及直觀性。
隨著汽車所應(yīng)用的電子器件與設(shè)備的增加,車用儀表系統(tǒng)除了顯示油量、車速、溫度等常規(guī)信息之外,還應(yīng)當(dāng)顯示更加豐富全面的信息內(nèi)容。例如顯示單位時間內(nèi)的油耗信息,可以幫助駕駛員控制油耗,從而降低經(jīng)濟成本。
汽車在行駛過程當(dāng)中,車用儀表系統(tǒng)所顯示的信息內(nèi)容應(yīng)當(dāng)具備良好的時效性,從而準(zhǔn)確反映當(dāng)前實時的車身及路況信息。因此,車用儀表系統(tǒng)必須具備較高的通訊速率,縮短響應(yīng)時間。
車用儀表系統(tǒng)所顯示的信息內(nèi)容是否準(zhǔn)確可靠,直接影響駕駛員操作行為的正確性。若信息內(nèi)容出現(xiàn)誤報,極易導(dǎo)致交通事故的發(fā)生。因此,車用儀表系統(tǒng)必須具備較高的可靠性,即使是在復(fù)雜路況環(huán)境下,依然能夠為駕駛員提供準(zhǔn)確可靠的信息。
駕駛員通過車用儀表系統(tǒng)了解車輛的實時狀態(tài)信息,隨著電子器件與設(shè)備的增加,信息的種類與規(guī)模也相應(yīng)增加[1]。為了使駕駛員能夠迅速了解掌握車輛的實時狀態(tài)信息,車用儀表系統(tǒng)必須以直觀簡明的界面來進(jìn)行顯示。
根據(jù)上文所述的系統(tǒng)需求分析結(jié)果,本文提出基于CAN總線的車用儀表系統(tǒng)的總體結(jié)構(gòu)設(shè)計方案,如圖1所示。
圖1 車用儀表系統(tǒng)的總體結(jié)構(gòu)
如圖1中所示,本文設(shè)計的車用儀表系統(tǒng)選用了MCUMB594微控制器,由CAN總線來進(jìn)行各模塊間的通信。由于在該系統(tǒng)中儀表僅作為CAN網(wǎng)絡(luò)中的一個節(jié)點,因此有效減少了布線的復(fù)雜度,并與其他控制單元共同構(gòu)成一個統(tǒng)一的網(wǎng)絡(luò)體系。
根據(jù)前文所述的系統(tǒng)需求以及總體結(jié)構(gòu)設(shè)計方案,本文進(jìn)一步對MCU微控制器、CAN總線收發(fā)器等核心硬件模塊進(jìn)行設(shè)計,并繪制硬件電路。
2.2.1 MCU微控制器
MCU微控制器選用MB954車載微控制器,該微控制器內(nèi)部為FR81S高性能CPU內(nèi)核,集成了視頻信號輸入、彩色信息顯示、CAN通信接口電路、A/D轉(zhuǎn)換器以及I/O通信接口等多個功能模塊,具有高性能、低功耗、運行快、穩(wěn)定可靠、兼容性好等諸多優(yōu)點。
2.2.2 CAN通信總線收發(fā)器
CAN通訊總線屬于多主從串行數(shù)據(jù)通信總線類型,CAN通信總線收發(fā)器的選型應(yīng)當(dāng)考慮抗電磁干擾、傳輸速率等性能以及檢測各種錯誤的功能,從而達(dá)到CAN通信總線基本規(guī)范的要求[2]。根據(jù)上述需求,本文選用的CAN通信總線收發(fā)器為TJA1042,其引腳結(jié)構(gòu)如圖2所示。
圖2 TJA1042引腳結(jié)構(gòu)
TJA1042有工作和待機2種操作模式:工作模式下,MCU微控制器向CAN-STB發(fā)送的信號為低電平信號;待機模式下,MCU微控制器向CAN-STB發(fā)送的信號為高電平信號。
基于硬件選型結(jié)果,車用儀表系統(tǒng)的CAN通信總線電路主要包括MB954以及TJA1042,其硬件接口電路原理圖如圖3所示。
從圖3中可以看到,TJA1042的RXD引腳連接了 MB594的 106引腳 CAN_RXD,TJA1042的 TXD引腳則連接了MB594的107引腳CAN_TXD。此外,為了濾除干擾,將電容C13、C14與TJA1042的引腳VCC連接,并在CAN_L、CAN_H引腳與接地間連接了兩個電容。
車用儀表系統(tǒng)的穩(wěn)定運行,需要硬件與軟件之間相互協(xié)調(diào)。本文在上述硬件部分設(shè)計的基礎(chǔ)上,對軟件部分進(jìn)行設(shè)計,以此實現(xiàn)系統(tǒng)功能需求。
2.4.1 軟件部分總體結(jié)構(gòu)設(shè)計
本文基于系統(tǒng)需求分析結(jié)果以及硬件設(shè)計對軟件部分進(jìn)行設(shè)計,總體結(jié)構(gòu)框圖如圖4所示。
如圖4所示,系統(tǒng)的主要軟件模塊包括主程序、數(shù)據(jù)采集、CAN總線通信、定速巡航以及LCD液晶顯示等模塊。其中,主程序模塊負(fù)責(zé)調(diào)度驅(qū)動各子程序模塊執(zhí)行任務(wù);數(shù)據(jù)采集模塊負(fù)責(zé)對車身及路況信息進(jìn)行采集、處理及響應(yīng);CAN總線通信模塊負(fù)責(zé)通信數(shù)據(jù)的實時收發(fā);定速巡航模塊負(fù)責(zé)通過巡航系統(tǒng)來實現(xiàn)未在踩油門情況下保持車速;顯示模塊負(fù)責(zé)向駕駛員提供各參數(shù)信息的顯示功能。本文重點就其中的主程序、數(shù)據(jù)采集以及CAN總線通信等3個核心模塊進(jìn)行詳細(xì)設(shè)計。
圖3 CAN總線通信接口電路
圖4 總體結(jié)構(gòu)框圖
2.4.2 核心模塊設(shè)計
主程序開始運行后,首先完成各程序模塊的初始化設(shè)置使其進(jìn)入正常工作狀態(tài),然后循環(huán)地收發(fā)CAN總線上的信號并及時進(jìn)行處理和響應(yīng),最終通過CAN發(fā)送程序調(diào)用各功能模塊來保障車用儀表系統(tǒng)的正常工作。
數(shù)據(jù)采集模塊的主要功能是對汽車行駛過程中的車輛及路況等信息參數(shù)進(jìn)行實時采集,然后對不同類型的信號進(jìn)行處理和轉(zhuǎn)換,并且在對其進(jìn)行響應(yīng)的同時,通過液晶顯示屏向駕駛員顯示數(shù)據(jù)參數(shù)[3]。
CAN總線通信模塊的設(shè)計是該車用儀表系統(tǒng)軟件設(shè)計的核心部分,本文采用的MB954集成了CAN總線通信模塊,其中包含的主要器件有CAN核心、位流處理器、控制寄存器、消息存儲器和數(shù)據(jù)模塊接口等。
在本文所設(shè)計的車用儀表系統(tǒng)中,CAN總線所發(fā)送的節(jié)點子程序數(shù)據(jù)信號為基于CAN2.0標(biāo)準(zhǔn)協(xié)議的編碼,具體的數(shù)據(jù)發(fā)送流程如下:首先,確定處于空閑狀態(tài)下的緩沖區(qū);然后,將需要發(fā)送的節(jié)點數(shù)據(jù)組成一個符合格式要求的數(shù)據(jù)幀,并將其發(fā)送至緩沖區(qū);最后,通過寄存器寫命令將數(shù)據(jù)幀發(fā)送至CAN總線。在上述數(shù)據(jù)發(fā)送流程中,CAN總線通信模塊根據(jù)數(shù)據(jù)幀的優(yōu)先級來確定CAN發(fā)送節(jié)點的標(biāo)識符位值。若CAN發(fā)送節(jié)點的標(biāo)識符位值為0,說明該節(jié)點正在發(fā)送數(shù)據(jù)幀,而其它節(jié)點則向CAN總線發(fā)出應(yīng)答信號;當(dāng)接收到數(shù)據(jù)幀后,CAN發(fā)送節(jié)點的標(biāo)識符位值為1,說明數(shù)據(jù)幀以及成功發(fā)送。
與數(shù)據(jù)發(fā)送流程類似,CAN總線接收節(jié)點子程序數(shù)據(jù)信號的流程如下:首先,由CAN控制器將CAN通信總線上的數(shù)據(jù)信息發(fā)送至接收緩沖器,接收緩沖器的狀態(tài)標(biāo)志位PBS為1;然后,接收子程序根據(jù)需要從接收緩沖器讀取所需要的數(shù)據(jù)信息。當(dāng)MB594從總線上接收到濾波測試通過的數(shù)據(jù)信息時會產(chǎn)生接收中斷響應(yīng),并在接收緩沖區(qū)的數(shù)據(jù)信息被讀取后對其進(jìn)行相應(yīng)處理。
為了驗證本文所設(shè)計的基于CAN總線的車用儀表系統(tǒng)的可行性,通過Vector公司研發(fā)的CANoe測試工具來對其進(jìn)行仿真測試,并對測試數(shù)據(jù)進(jìn)行統(tǒng)計分析。
CAN總線通信測試是在CANoe測試環(huán)境下,通過示波器等工具來測試車用儀表系統(tǒng)工作過程中的CAN總線通信報文,并根據(jù)CAN控制器所輸出的信號電平和位時間等參數(shù)進(jìn)行評估。報文測試信號波形圖如圖5所示。
圖5中所展示的測試對象為CAN發(fā)送的某一數(shù)據(jù)幀,CAN_H信號以黑色曲線的形式進(jìn)行顯示,CAN_H信號則以紅色曲線的形式進(jìn)行顯示。從波形圖中可以發(fā)現(xiàn),該數(shù)據(jù)幀的相關(guān)數(shù)據(jù)信息清晰且完整,說明車用儀表系統(tǒng)的CAN總線通信測試結(jié)果為工作正常。
圖5 CAN總線通信時的報文測試信號波形圖
系統(tǒng)功能測試的方法如下:首先將汽車儀表連接到測試所用的CAN通信總線上;然后在CANoe測試環(huán)境下,使汽車儀表在接收到數(shù)據(jù)信號后顯示對應(yīng)的參數(shù)信息;最后通過將汽車儀表與軟件所顯示的數(shù)據(jù)信息進(jìn)行對比,以此驗證本文所設(shè)計的基于CAN總線的車用儀表系統(tǒng)是否達(dá)到了預(yù)期的功能目標(biāo)。系統(tǒng)功能測試的結(jié)果如圖6所示。
圖6 系統(tǒng)功能測試結(jié)果
從圖6中可以看到,本文所設(shè)計的車用儀表系統(tǒng)能夠通過CAN總線準(zhǔn)確、實時地接收到數(shù)據(jù)采集節(jié)點所采集的當(dāng)前車速、轉(zhuǎn)速等信息,并通過CANoe工具顯示出來。同時,相關(guān)數(shù)據(jù)信息也在汽車儀表的顯示屏中顯示出來。經(jīng)對比發(fā)現(xiàn),本文所設(shè)計的車用儀表系統(tǒng)能夠準(zhǔn)確地顯示當(dāng)前車速、轉(zhuǎn)速等相關(guān)信息,達(dá)到了設(shè)計目標(biāo)。
本文將CAN總線技術(shù)引入到車用儀表系統(tǒng)中,由此設(shè)計出基于CAN總線的新型車用儀表系統(tǒng)。該系統(tǒng)基于CAN總線來實現(xiàn)數(shù)據(jù)通信,具有較高的傳輸速率以及良好的穩(wěn)定性。此外,本設(shè)計中采用了液晶顯示屏,能夠更加直觀、清晰地為駕駛員顯示數(shù)據(jù)信息。