《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > 基于CAN總線的汽車儀表設(shè)計研究
基于CAN總線的汽車儀表設(shè)計研究
摘要: 汽車儀表是汽車與駕駛員進行信息交流的窗口,,是汽車信息的中心,,能夠集中,、直觀,、迅速地反映汽車在行駛過程中的各種動態(tài)指標,如行駛速度,、里程,、電系狀況,、制動,、壓力,、發(fā)動機轉(zhuǎn)速、冷卻液溫度,、油量,、各種危險報警,。
Abstract:
Key words :

汽車儀表是汽車與駕駛員進行信息交流的窗口,,是汽車信息的中心,能夠集中,、直觀,、迅速地反映汽車在行駛過程中的各種動態(tài)指標,,如行駛速度、里程,、電系狀況,、制動、壓力,、發(fā)動機轉(zhuǎn)速,、冷卻液溫度、油量,、各種危險報警,。隨著科技進步,汽車排放,、節(jié)能,、安全和舒適性等使用性能不斷提高,汽車電子控制程度也越來越高,。汽車電子控制裝置必須迅速,、準確地處理各種信息,并通過儀表顯示出來,,使駕駛員能夠及時了解并掌握汽車的運行狀態(tài),,以妥善處理各種情況。

這里給出一種基于CAN(Controller Area Network)總線的汽車儀表設(shè)計方案,。該儀表利用CAN總線使其成為車身網(wǎng)絡(luò)一部分,,遵循SAE J1939協(xié)議讀取發(fā)動機轉(zhuǎn)速、水溫等信息,。儀表還能接收傳感器的車速,、油量、油壓,、制動氣壓等信號并顯示,,為駕駛員提供實時車輛工況。所設(shè)計的儀表主要應(yīng)用于重型運輸車等領(lǐng)域,,在某重型車輛工廠進行的試驗結(jié)果表明,,該儀表能夠滿足數(shù)據(jù)可靠性及實時性等要求。

1 CAN總線及SAE J1939協(xié)議

1.1 CAN總線及SAE J1939協(xié)議簡介

CAN總線屬于現(xiàn)場總線的范疇,,是德國Bosch公司在20世紀80年代初為解決現(xiàn)代汽車中眾多的控制和測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種有效支持分布式控制或?qū)崟r控制的串行通信網(wǎng)絡(luò),。CAN總線的通信實時性強,數(shù)據(jù)傳輸速率可高達1 Mb/s,,通信介質(zhì)可以是雙絞線,、同軸電纜或者光導(dǎo)纖維,通過標準的插接件能夠方便的連接,。CAN總線的數(shù)據(jù)通信具有突出的可靠性,、實時性和靈活性,,是目前應(yīng)用最廣泛的一種汽車總線。

SAE J1939協(xié)議是美國汽車工程師協(xié)會SAE(Societv of Automotive Engineer)發(fā)布的以CAN2.0B作為網(wǎng)絡(luò)核心協(xié)議的車輛網(wǎng)絡(luò)串行通信和控制協(xié)議,。J1939是參照ISO的開放式數(shù)據(jù)互聯(lián)模型定義的7層基準參考模型而制定的,。該協(xié)議明確規(guī)定汽車內(nèi)部ECU的地址配置、命名,、通訊方式以及報文發(fā)送優(yōu)先級等,,并且對汽車內(nèi)部各個具體的ECU通訊作了詳細的說明。它使用多路復(fù)用技術(shù),,為汽車上的各種傳感器,、執(zhí)行器和控制器提供建立在CAN總線基礎(chǔ)上的標準化的高速網(wǎng)絡(luò)連接,在車載電子裝置之間實現(xiàn)高速數(shù)據(jù)共享,,有效地減少了電子線束的數(shù)量,,提高了車輛電子控制系統(tǒng)的靈活性、可靠性,、可維修性和標準化程度,,更大程度地發(fā)揮了CAN優(yōu)異的性能。

1.2 SAE J1939數(shù)據(jù)幀格式

SAE J1939數(shù)據(jù)幀是以PDU(協(xié)議數(shù)據(jù)單元)為單位,,共由優(yōu)先權(quán)(P),、保留位(R)、數(shù)據(jù)頁(DP),、PDU格式(PF),、PDU細節(jié)(Ps)、源地址(SA)及數(shù)據(jù)域(Date Field)等7個域組成,。除了數(shù)據(jù)域之外的PDU對應(yīng)于CAN擴展幀的29位標識符,。其中PS是1個8位段,其定義取決于PF值,。若PF值小于240,,PS是目標地址(DA)。若PF值介于240和255之間,,則PS為組擴展(GE),。

有些CAN數(shù)據(jù)幀不是在PDU中定義,包括SOF,、SRR,、IDE、RTR,、控制域部分,、CRC域、ACK域和EOF域。這些域是由CAN定義的,,SAE J1939不作修改。

2 CAN總線汽車儀表設(shè)計

2.1 儀表整體設(shè)計

該汽車儀表系統(tǒng)由數(shù)據(jù)采集,、處理以及顯示3個模塊組成,。其中數(shù)據(jù)采集模塊負責接收車輛的各種數(shù)據(jù),并將數(shù)據(jù)預(yù)處理后發(fā)送至微處理器,。其中模擬量信號,、脈沖信號以及開關(guān)量信號等傳感器信號在各傳感器處采集后,分別經(jīng)過分壓,、濾波整形以及光電隔離后發(fā)送至微處理器,。而發(fā)動機轉(zhuǎn)速、水溫和故障代碼等CAN總線數(shù)據(jù)通過發(fā)動機CAN模塊發(fā)送至CAN總線后,,通過CAN收發(fā)器進行接收,。微處理器接收到需要的數(shù)據(jù)后,根據(jù)預(yù)定的算法對數(shù)據(jù)進行處理,,并將處理結(jié)果輸出,。顯示模塊包括指針、LCD以及各種信號燈的顯示,。微處理器將發(fā)動機轉(zhuǎn)速,、車速等結(jié)果輸出至電機驅(qū)動器,驅(qū)動器驅(qū)動步進電機轉(zhuǎn)動,,從而帶動指針顯示,;微處理器直接驅(qū)動LCD顯示及LED燈的亮滅。汽車儀表系統(tǒng)結(jié)構(gòu)如圖1所示,。


根據(jù)對汽車儀表的整體分析,,汽車儀表盤由3個分表盤組成,左分表盤顯示發(fā)動機轉(zhuǎn)速,、油量等數(shù)據(jù),,右分表盤顯示車速、油壓等數(shù)據(jù),,中分表盤用于放置LCD顯示屏以及各種指示燈,。儀表指針全部采用步進電機驅(qū)動。儀表接收到的各種數(shù)據(jù)中,,從CAN總線獲取發(fā)動機轉(zhuǎn)速,、水溫以及電壓,從各種傳感器獲取車速,、油量,、氣壓以及油壓。

2.2 系統(tǒng)硬件設(shè)計

儀表采用Luminarv公司的LM3S2948處理器。這是一款基于ARMCortexM3內(nèi)核的微處理器,,采用32位RISC,,內(nèi)嵌CAN控制器、模數(shù)轉(zhuǎn)換器(ADC),、模擬比較器等功能模塊,,減少了外圍電路,降低了系統(tǒng)設(shè)計成本,。LM3S2948處理器內(nèi)置CAN模塊方便了CAN總線數(shù)據(jù)的傳輸,,同時使儀表的通信容易實現(xiàn),提高了可靠性,。其內(nèi)置CAN模塊具有以下特點:支持CAN 2.0B協(xié)議并支持符合SAE J1939協(xié)議的擴展幀的報文傳輸:位速率可高達l Mb/s,;具有32個報文對象,每個對象都具有自己的標識符屏蔽碼,;包含可屏蔽中斷,,針對時間觸發(fā)的CAN(1TrCAN)應(yīng)用,可選擇禁止自動重發(fā)送模式,;通過CANOTx和CANORx引腳與外部CAN PHY無縫連接,;具有可編程的F1F0模式。

LM3S2948微處理器具有運算速度快,、功耗小,、體積小、價位低等特點,。其CAN控制器模塊特性完全滿足CAN總線汽車儀表的應(yīng)用要求,。該處理器具有強大的處理能力,在車輛的各種工況下都能夠?qū)崟r反映車輛信息,,同時該處理器具有很大的可擴展空間,,有利于后續(xù)開發(fā)。

由于LM3S2948內(nèi)置CAN控制器模塊,,所以只需外接一個CAN收發(fā)器即可接收總線數(shù)據(jù),。該儀表選用CTM8251T作為CAN收發(fā)器。CTM8251T是一款通用的帶隔離的CAN收發(fā)器,,該器件內(nèi)部集成所有必需的CAN隔離及CAN收發(fā)器,。該器件可連接任何一款CAN協(xié)議控制器,實現(xiàn)CAN節(jié)點的收發(fā)與隔離功能,。該器件設(shè)計體積小,,集成度高,可取代傳統(tǒng)的CAN收發(fā)器及其外圍電路,,降低了電路的復(fù)雜程度,,減少了設(shè)計成本,,如圖2所示。

 


儀表采用VID6606驅(qū)動器驅(qū)動步進電機,。每片VID6606可同時驅(qū)動4路步進電機,。在其頻率控制端輸入脈沖序列F(SCX),即可控制輸出端使步進電機的輸出軸以微步轉(zhuǎn)動,,每個微步電機輸出軸轉(zhuǎn)動1/12(°),,最大角速度可達600(°)/s。該電機驅(qū)動器具有以下特點:硬件微步驅(qū)動,、簡單易用,,電機只需速度F(sex)和方向(CW/CCW)2個控制端,、所有輸入引腳都有干擾過濾器,、寬工作電壓、低電磁干擾輻射,。儀表板指針采用VID-29電機驅(qū)動,,電機內(nèi)置減速比180/1的齒輪系,能夠?qū)?shù)字信號直接準確地轉(zhuǎn)為模擬的顯示輸出,。該電機具有很高的顯示精度,,其步距角最小可達到1/2(°)。圖3所示為VID6606驅(qū)動儀表電路,。

 


該儀表利用LCD顯示時間,、燃油消耗量以及產(chǎn)生故障時故障名稱,處理器發(fā)送的信號先經(jīng)74HC245功率放大后,,然后送至液晶屏F2000LCD顯示,。LCD電路如圖4所示。

 

 

2.3 系統(tǒng)軟件設(shè)計


 

系統(tǒng)軟件設(shè)計分為主程序,、CAN通信,、數(shù)據(jù)采集處理和數(shù)據(jù)顯示等4個模塊。主程序模塊通過調(diào)用各個子模塊程序來處理數(shù)據(jù)處理:CAN通信模塊負責發(fā)送和接收數(shù)據(jù),;數(shù)據(jù)采集及處理模塊完成對各種類型數(shù)據(jù)的采集以及計算,;數(shù)據(jù)顯示模塊將車速、油壓以及信號燈等信息顯示在儀表上,。


 


圖5為系統(tǒng)主程序流程,,該系統(tǒng)主程序流程分為:

1)系統(tǒng)初始化。系統(tǒng)初始化主要包括初始化系統(tǒng)時鐘,、CAN節(jié)點,、LCD液晶屏、步進電機等,,并使能CAN中斷,,設(shè)置CAN屏蔽碼和驗收碼。CAN節(jié)點初始化主要是初始化CAN控制器并中斷CAN控制器:

2)讀取傳感器以及CAN總線數(shù)據(jù),并驅(qū)動指針以及LCD等顯示,,同時等待CAN接收中斷,。

3)CAN接收中斷產(chǎn)生,進入接收中斷子程序讀取數(shù)據(jù),。判斷數(shù)據(jù)是否符合數(shù)據(jù)接收條件,,如果符合,則接收數(shù)據(jù),。此過程逐位比較接收到的29位標識符與驗收碼,、屏蔽碼,只有標識符相應(yīng)位與驗收碼相應(yīng)位相同,,系統(tǒng)才開始接收數(shù)據(jù),。

4)處理器將接收的報文進行解析,提取需要的數(shù)據(jù)并進行處理,。處理器對傳感器傳來的數(shù)據(jù)和CAN總線讀取的數(shù)據(jù)進行處理計算,,得到相應(yīng)的指針驅(qū)動參數(shù),計算出指針轉(zhuǎn)角,,并根據(jù)初始化的步進電機的參數(shù)計算出指針轉(zhuǎn)動速度,。指針轉(zhuǎn)動速度與相應(yīng)的參數(shù)變化速度成正比。同時計算出車輛行駛里程并累加到總路程上,。

5)處理器將包含車輛工況的一組脈沖序列發(fā)送至步進電機驅(qū)動器,,驅(qū)動器驅(qū)動步進電機以微步方式轉(zhuǎn)動,指示出相應(yīng)的發(fā)動機轉(zhuǎn)速,、車速,、水溫以及油壓等;處理器將包含車輛總路程等信息的數(shù)據(jù)發(fā)送至LCD控制器,,控制器控制LCD顯示相應(yīng)的總路程等:處理器改變相應(yīng)的I/O引腳狀態(tài)直接點亮/關(guān)閉相應(yīng)的指示燈,。

2.4 故障顯示

該儀表能夠從CAN總線接收故障代碼并對故障代碼進行解析,與預(yù)先寫入的故障碼比對后找到對應(yīng)的故障信息并顯示在LCD屏幕上,。每一類型的數(shù)據(jù)都有特定的數(shù)據(jù)幀ID,,系統(tǒng)根據(jù)幀ID判斷故障產(chǎn)生的位置。如果收到的是單幀故障,,則系統(tǒng)來提取總字節(jié)數(shù)和總包數(shù),;如果收到的是多幀故障,系統(tǒng)則連續(xù)提取故障診斷報文至特定的字節(jié),,然后根據(jù)故障代碼查找故障類型,。

3 結(jié)束語

在研究CAN總線和SAE J1939協(xié)議的基礎(chǔ)上,設(shè)計CAN總線汽車儀表,。該設(shè)計充分利用LM3S2948以及VID6606的功能,,較大程度上降低了系統(tǒng)外圍電路的設(shè)計以及成本,。多次實車試驗結(jié)果表明,相對于常規(guī)儀表,,該CAN總線儀表具有以下優(yōu)點:抗干擾能力強,,傳輸速率高,能夠保證數(shù)據(jù)有效,、快速,、穩(wěn)定地傳輸;減少車身布線,,硬件方案軟件化實現(xiàn),,簡化了設(shè)計,降低了成本,;及時,、直觀地查看車輛故障;CAN總線將整車構(gòu)成一個網(wǎng)絡(luò)系統(tǒng),,能夠提升系統(tǒng)的靈活性,,方便地增加設(shè)備,,擴大了可開發(fā)的空間,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。