田曉鴻
(西安航空職業技術學院 陜西 西安 710089)
隨著科學技術的不斷發展,大量電子器件與設備被應用于汽車制造領域,以此滿足人們日益提高的對汽車性能的需求。但與此同時,汽車各控制單元間的連接及通信的復雜度也隨之增加。上世紀八十年代中期,德國的Bosch公司開發了一種多主從方式的串行數據通信協議,即CAN通訊協議。與其它通訊總線相比,CAN總線在通訊的實時性、可靠性以及靈活性等諸多方面都具有較為顯著的優勢。因此,本文提出一種基于CAN總線的車用儀表系統設計方案,旨在解決相關電子器件與設備間的通信問題。
隨著人們對汽車整體性能要求的不斷提高,車用儀表系統除了要具備顯示車身及路況信息的傳統功能外,應當顯示更多的信息內容并縮短響應時間,同時還需要保障信息顯示的穩定性以及直觀性。
隨著汽車所應用的電子器件與設備的增加,車用儀表系統除了顯示油量、車速、溫度等常規信息之外,還應當顯示更加豐富全面的信息內容。例如顯示單位時間內的油耗信息,可以幫助駕駛員控制油耗,從而降低經濟成本。
汽車在行駛過程當中,車用儀表系統所顯示的信息內容應當具備良好的時效性,從而準確反映當前實時的車身及路況信息。因此,車用儀表系統必須具備較高的通訊速率,縮短響應時間。
車用儀表系統所顯示的信息內容是否準確可靠,直接影響駕駛員操作行為的正確性。若信息內容出現誤報,極易導致交通事故的發生。因此,車用儀表系統必須具備較高的可靠性,即使是在復雜路況環境下,依然能夠為駕駛員提供準確可靠的信息。
駕駛員通過車用儀表系統了解車輛的實時狀態信息,隨著電子器件與設備的增加,信息的種類與規模也相應增加[1]。為了使駕駛員能夠迅速了解掌握車輛的實時狀態信息,車用儀表系統必須以直觀簡明的界面來進行顯示。
根據上文所述的系統需求分析結果,本文提出基于CAN總線的車用儀表系統的總體結構設計方案,如圖1所示。

圖1 車用儀表系統的總體結構
如圖1中所示,本文設計的車用儀表系統選用了MCUMB594微控制器,由CAN總線來進行各模塊間的通信。由于在該系統中儀表僅作為CAN網絡中的一個節點,因此有效減少了布線的復雜度,并與其他控制單元共同構成一個統一的網絡體系。
根據前文所述的系統需求以及總體結構設計方案,本文進一步對MCU微控制器、CAN總線收發器等核心硬件模塊進行設計,并繪制硬件電路。
2.2.1 MCU微控制器
MCU微控制器選用MB954車載微控制器,該微控制器內部為FR81S高性能CPU內核,集成了視頻信號輸入、彩色信息顯示、CAN通信接口電路、A/D轉換器以及I/O通信接口等多個功能模塊,具有高性能、低功耗、運行快、穩定可靠、兼容性好等諸多優點。
2.2.2 CAN通信總線收發器
CAN通訊總線屬于多主從串行數據通信總線類型,CAN通信總線收發器的選型應當考慮抗電磁干擾、傳輸速率等性能以及檢測各種錯誤的功能,從而達到CAN通信總線基本規范的要求[2]。根據上述需求,本文選用的CAN通信總線收發器為TJA1042,其引腳結構如圖2所示。

圖2 TJA1042引腳結構
TJA1042有工作和待機2種操作模式:工作模式下,MCU微控制器向CAN-STB發送的信號為低電平信號;待機模式下,MCU微控制器向CAN-STB發送的信號為高電平信號。
基于硬件選型結果,車用儀表系統的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引腳與接地間連接了兩個電容。
車用儀表系統的穩定運行,需要硬件與軟件之間相互協調。本文在上述硬件部分設計的基礎上,對軟件部分進行設計,以此實現系統功能需求。
2.4.1 軟件部分總體結構設計
本文基于系統需求分析結果以及硬件設計對軟件部分進行設計,總體結構框圖如圖4所示。
如圖4所示,系統的主要軟件模塊包括主程序、數據采集、CAN總線通信、定速巡航以及LCD液晶顯示等模塊。其中,主程序模塊負責調度驅動各子程序模塊執行任務;數據采集模塊負責對車身及路況信息進行采集、處理及響應;CAN總線通信模塊負責通信數據的實時收發;定速巡航模塊負責通過巡航系統來實現未在踩油門情況下保持車速;顯示模塊負責向駕駛員提供各參數信息的顯示功能。本文重點就其中的主程序、數據采集以及CAN總線通信等3個核心模塊進行詳細設計。

圖3 CAN總線通信接口電路

圖4 總體結構框圖
2.4.2 核心模塊設計
主程序開始運行后,首先完成各程序模塊的初始化設置使其進入正常工作狀態,然后循環地收發CAN總線上的信號并及時進行處理和響應,最終通過CAN發送程序調用各功能模塊來保障車用儀表系統的正常工作。
數據采集模塊的主要功能是對汽車行駛過程中的車輛及路況等信息參數進行實時采集,然后對不同類型的信號進行處理和轉換,并且在對其進行響應的同時,通過液晶顯示屏向駕駛員顯示數據參數[3]。
CAN總線通信模塊的設計是該車用儀表系統軟件設計的核心部分,本文采用的MB954集成了CAN總線通信模塊,其中包含的主要器件有CAN核心、位流處理器、控制寄存器、消息存儲器和數據模塊接口等。
在本文所設計的車用儀表系統中,CAN總線所發送的節點子程序數據信號為基于CAN2.0標準協議的編碼,具體的數據發送流程如下:首先,確定處于空閑狀態下的緩沖區;然后,將需要發送的節點數據組成一個符合格式要求的數據幀,并將其發送至緩沖區;最后,通過寄存器寫命令將數據幀發送至CAN總線。在上述數據發送流程中,CAN總線通信模塊根據數據幀的優先級來確定CAN發送節點的標識符位值。若CAN發送節點的標識符位值為0,說明該節點正在發送數據幀,而其它節點則向CAN總線發出應答信號;當接收到數據幀后,CAN發送節點的標識符位值為1,說明數據幀以及成功發送。
與數據發送流程類似,CAN總線接收節點子程序數據信號的流程如下:首先,由CAN控制器將CAN通信總線上的數據信息發送至接收緩沖器,接收緩沖器的狀態標志位PBS為1;然后,接收子程序根據需要從接收緩沖器讀取所需要的數據信息。當MB594從總線上接收到濾波測試通過的數據信息時會產生接收中斷響應,并在接收緩沖區的數據信息被讀取后對其進行相應處理。
為了驗證本文所設計的基于CAN總線的車用儀表系統的可行性,通過Vector公司研發的CANoe測試工具來對其進行仿真測試,并對測試數據進行統計分析。
CAN總線通信測試是在CANoe測試環境下,通過示波器等工具來測試車用儀表系統工作過程中的CAN總線通信報文,并根據CAN控制器所輸出的信號電平和位時間等參數進行評估。報文測試信號波形圖如圖5所示。
圖5中所展示的測試對象為CAN發送的某一數據幀,CAN_H信號以黑色曲線的形式進行顯示,CAN_H信號則以紅色曲線的形式進行顯示。從波形圖中可以發現,該數據幀的相關數據信息清晰且完整,說明車用儀表系統的CAN總線通信測試結果為工作正常。

圖5 CAN總線通信時的報文測試信號波形圖
系統功能測試的方法如下:首先將汽車儀表連接到測試所用的CAN通信總線上;然后在CANoe測試環境下,使汽車儀表在接收到數據信號后顯示對應的參數信息;最后通過將汽車儀表與軟件所顯示的數據信息進行對比,以此驗證本文所設計的基于CAN總線的車用儀表系統是否達到了預期的功能目標。系統功能測試的結果如圖6所示。

圖6 系統功能測試結果
從圖6中可以看到,本文所設計的車用儀表系統能夠通過CAN總線準確、實時地接收到數據采集節點所采集的當前車速、轉速等信息,并通過CANoe工具顯示出來。同時,相關數據信息也在汽車儀表的顯示屏中顯示出來。經對比發現,本文所設計的車用儀表系統能夠準確地顯示當前車速、轉速等相關信息,達到了設計目標。
本文將CAN總線技術引入到車用儀表系統中,由此設計出基于CAN總線的新型車用儀表系統。該系統基于CAN總線來實現數據通信,具有較高的傳輸速率以及良好的穩定性。此外,本設計中采用了液晶顯示屏,能夠更加直觀、清晰地為駕駛員顯示數據信息。