關(guān)于CAN總線汽車儀表的研究
儀表采用VID6606驅(qū)動(dòng)器驅(qū)動(dòng)步進(jìn)電機(jī)。每片VID6606可同時(shí)驅(qū)動(dòng)4路步進(jìn)電機(jī)。在其頻率控制端輸入脈沖序列F(SCX),即可控制輸出端使步進(jìn)電機(jī)的輸出軸以微步轉(zhuǎn)動(dòng),每個(gè)微步電機(jī)輸出軸轉(zhuǎn)動(dòng)1/12(°),最大角速度可達(dá)600(°)/s。該電機(jī)驅(qū)動(dòng)器具有以下特點(diǎn):硬件微步驅(qū)動(dòng)、簡(jiǎn)單易用,電機(jī)只需速度F(sex)和方向(CW/CCW)2個(gè)控制端、所有輸入引腳都有干擾過濾器、寬工作電壓、低電磁干擾輻射。儀表板指針采用VID-29電機(jī)驅(qū)動(dòng),電機(jī)內(nèi)置減速比180/1的齒輪系,能夠?qū)?shù)字信號(hào)直接準(zhǔn)確地轉(zhuǎn)為模擬的顯示輸出。該電機(jī)具有很高的顯示精度,其步距角最小可達(dá)到1/2(°)。圖 3所示為VID6606驅(qū)動(dòng)儀表電路。
該儀表利用LCD顯示時(shí)間、燃油消耗量以及產(chǎn)生故障時(shí)故障名稱,處理器發(fā)送的信號(hào)先經(jīng)74HC245功率放大后,然后送至液晶屏F2000LCD顯示。LCD電路如圖4所示。
2.3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)分為主程序、CAN通信、數(shù)據(jù)采集處理和數(shù)據(jù)顯示等4個(gè)模塊。主程序模塊通過調(diào)用各個(gè)子模塊程序來處理數(shù)據(jù)處理:CAN通信模塊負(fù)責(zé)發(fā)送和接收數(shù)據(jù);數(shù)據(jù)采集及處理模塊完成對(duì)各種類型數(shù)據(jù)的采集以及計(jì)算;數(shù)據(jù)顯示模塊將車速、油壓以及信號(hào)燈等信息顯示在儀表上。
圖5為系統(tǒng)主程序流程,該系統(tǒng)主程序流程分為:1)系統(tǒng)初始化。系統(tǒng)初始化主要包括初始化系統(tǒng)時(shí)鐘、CAN節(jié)點(diǎn)、LCD液晶屏、步進(jìn)電機(jī)等,并使能CAN 中斷,設(shè)置CAN屏蔽碼和驗(yàn)收碼。CAN節(jié)點(diǎn)初始化主要是初始化CAN控制器并中斷CAN控制器:2)讀取傳感器以及CAN總線數(shù)據(jù),并驅(qū)動(dòng)指針以及 LCD等顯示,同時(shí)等待CAN接收中斷。3)CAN接收中斷產(chǎn)生,進(jìn)入接收中斷子程序讀取數(shù)據(jù)。判斷數(shù)據(jù)是否符合數(shù)據(jù)接收條件,如果符合,則接收數(shù)據(jù)。此過程逐位比較接收到的29位標(biāo)識(shí)符與驗(yàn)收碼、屏蔽碼,只有標(biāo)識(shí)符相應(yīng)位與驗(yàn)收碼相應(yīng)位相同,系統(tǒng)才開始接收數(shù)據(jù)。4)處理器將接收的報(bào)文進(jìn)行解析,提取需要的數(shù)據(jù)并進(jìn)行處理。處理器對(duì)傳感器傳來的數(shù)據(jù)和CAN總線讀取的數(shù)據(jù)進(jìn)行處理計(jì)算,得到相應(yīng)的指針驅(qū)動(dòng)參數(shù),計(jì)算出指針轉(zhuǎn)角,并根據(jù)初始化的步進(jìn)電機(jī)的參數(shù)計(jì)算出指針轉(zhuǎn)動(dòng)速度。指針轉(zhuǎn)動(dòng)速度與相應(yīng)的參數(shù)變化速度成正比。同時(shí)計(jì)算出車輛行駛里程并累加到總路程上。5)處理器將包含車輛工況的一組脈沖序列發(fā)送至步進(jìn)電機(jī)驅(qū)動(dòng)器,驅(qū)動(dòng)器驅(qū)動(dòng)步進(jìn)電機(jī)以微步方式轉(zhuǎn)動(dòng),指示出相應(yīng)的發(fā)動(dòng)機(jī)轉(zhuǎn)速、車速、水溫以及油壓等;處理器將包含車輛總路程等信息的數(shù)據(jù)發(fā)送至 LCD控制器,控制器控制LCD顯示相應(yīng)的總路程等:處理器改變相應(yīng)的I/O引腳狀態(tài)直接點(diǎn)亮/關(guān)閉相應(yīng)的指示燈。
2.4 故障顯示
該儀表能夠從CAN總線接收故障代碼并對(duì)故障代碼進(jìn)行解析,與預(yù)先寫入的故障碼比對(duì)后找到對(duì)應(yīng)的故障信息并顯示在LCD屏幕上。每一類型的數(shù)據(jù)都有特定的數(shù)據(jù)幀ID,系統(tǒng)根據(jù)幀ID判斷故障產(chǎn)生的位置。如果收到的是單幀故障,則系統(tǒng)來提取總字節(jié)數(shù)和總包數(shù);如果收到的是多幀故障,系統(tǒng)則連續(xù)提取故障診斷報(bào)文至特定的字節(jié),然后根據(jù)故障代碼查找故障類型。
3 結(jié)束語
在研究CAN總線和SAE J1939協(xié)議的基礎(chǔ)上,設(shè)計(jì)CAN總線汽車儀表。該設(shè)計(jì)充分利用LM3S2948以及VID6606的功能,較大程度上降低了系統(tǒng)外圍電路的設(shè)計(jì)以及成本。多次實(shí)車試驗(yàn)結(jié)果表明,相對(duì)于常規(guī)儀表,該CAN總線儀表具有以下優(yōu)點(diǎn):抗干擾能力強(qiáng),傳輸速率高,能夠保證數(shù)據(jù)有效、快速、穩(wěn)定地傳輸;減少車身布線,硬件方案軟件化實(shí)現(xiàn),簡(jiǎn)化了設(shè)計(jì),降低了成本;及時(shí)、直觀地查看車輛故障;CAN總線將整車構(gòu)成一個(gè)網(wǎng)絡(luò)系統(tǒng),能夠提升系統(tǒng)的靈活性,方便地增加設(shè)備,擴(kuò)大了可開發(fā)的空間。
評(píng)論