您現(xiàn)在的位置:
中國傳動網(wǎng)
>
技術(shù)頻道
>
技術(shù)百科
>
基于CAN總線技術(shù)的車輛虛擬儀表數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)
時(shí)間:2009-01-19 11:54:44來源:ronggang
圖3[/align]
. 主程序采用模塊化編程。具有故障自診斷功能是虛擬儀表的重要特征之一,為此數(shù)據(jù)采集系統(tǒng)中設(shè)計(jì)了3組標(biāo)準(zhǔn)信號,分別是頻率信號、電壓信號和電阻信號,自檢模塊的主要功能是:當(dāng)接收到上位機(jī)發(fā)出的自檢命令后,微控制器斷開傳感器輸入,標(biāo)準(zhǔn)信號被接入數(shù)據(jù)采集系統(tǒng),將得到的數(shù)據(jù)上傳到上位機(jī)與標(biāo)準(zhǔn)值進(jìn)行比較,以確定故障點(diǎn)是傳感器系統(tǒng)還是數(shù)據(jù)采集系統(tǒng),若自檢通過則表示數(shù)據(jù)采集系統(tǒng)工作正常。數(shù)據(jù)發(fā)送模塊主要實(shí)現(xiàn)對上位機(jī)的數(shù)據(jù)通信,本系統(tǒng)設(shè)計(jì)為每隔20毫秒將數(shù)據(jù)分組發(fā)送到上位機(jī)。數(shù)據(jù)轉(zhuǎn)存模塊完成各種數(shù)據(jù)寫入在片主RAM的操作,為了區(qū)分?jǐn)?shù)據(jù)類型,需要在數(shù)據(jù)塊中添加相應(yīng)的類型標(biāo)識碼,該碼由用戶層協(xié)議自行定義。A/D采樣模塊控制系統(tǒng)采樣過程,并將每一路12位采樣數(shù)據(jù)分兩次讀入指定的RAM單元中。
頻率信號處理模塊完成對捕獲端口頻率的測量,其基本思想是:在被測信號的一個(gè)周期時(shí)間內(nèi),2次脈沖下降沿分別啟動和停止定時(shí)器T2計(jì)數(shù),兩次計(jì)數(shù)值之差的倒數(shù)即為頻率值,本模塊只需計(jì)算差值,頻率值由上位機(jī)解算。
3.1 CAN控制器編程
本系統(tǒng)軟件設(shè)計(jì)的一個(gè)難點(diǎn)在于關(guān)于CAN的編程。本系統(tǒng)處理的CAN程序模塊有:CAN初始化子程序、CAN中斷程序和CAN數(shù)據(jù)收發(fā)子程序。
CAN控制器是以CPU存儲器映像外圍設(shè)備出現(xiàn)的。P80C592的CPU與CAN控制器之間的數(shù)據(jù)傳輸通過4個(gè)特殊功能寄存器來實(shí)現(xiàn),即: CANADR、CANCON、CANSTA和CANDAT,通過這四個(gè)特殊功能寄存器,CPU可以訪問CAN控制器內(nèi)部的任一寄存器(地址為0~29)和DMA邏輯。表2給出了這四個(gè)SFR的功能簡述,其中CANCON和CANSTA的讀寫操作含義不同。CAN控制器內(nèi)部所有寄存器詳細(xì)介紹請參閱參考文獻(xiàn)[1]。
[align=center]
表1[/align]
CAN控制器初始化(圖4)是CAN通信中一個(gè)非常重要的子程序,程序是否合理將直接影響整個(gè)通信過程。CAN控制器的初始化首先必須通過置位CAN控制寄存器的“復(fù)位請求”位,置位“復(fù)位請求”并不影響正在進(jìn)行的一個(gè)收發(fā)作業(yè),特別需要注意的是,只有當(dāng)復(fù)位請求被置位時(shí),CAN內(nèi)部地址為4-8的寄存器方可被訪問,在復(fù)位操作結(jié)束后必須將該位置0以保持所進(jìn)行的設(shè)置并使CAN返回工作狀態(tài)。
[align=center]
圖4[/align]
P80C592和其在片CAN控制器都具有中斷寄存器,必須注意兩者的區(qū)別。CAN中斷子程序(圖5)首先讀CAN中斷寄存器(IR)以判斷中斷類型,據(jù)此轉(zhuǎn)入相應(yīng)的操作。如果接收緩存器滿而另一個(gè)報(bào)文的首字節(jié)又需要被存儲時(shí),數(shù)據(jù)超限位被置位,此時(shí)應(yīng)清除超限并釋放接收緩存,然后重新發(fā)送數(shù)據(jù)請求。在數(shù)據(jù)接受子程序中當(dāng)數(shù)據(jù)被轉(zhuǎn)入RAM區(qū)后,應(yīng)及時(shí)釋放接受緩存器,以便為接收下一幀數(shù)據(jù)做好準(zhǔn)備。
[align=center]
圖5[/align]
[align=center]
圖6[/align]
數(shù)據(jù)發(fā)送子程序見圖6。CAN控制器向總線發(fā)送數(shù)據(jù)時(shí),首先將在片主RAM中數(shù)據(jù)存放的首地址寫入CANSTA,然后讀取CANSTA.6的值(讀CANSTA的操作其實(shí)是對CAN控制器內(nèi)部狀態(tài)寄存器的讀操作,CANSTA.6是錯(cuò)誤顯示位,當(dāng)至少有一個(gè)總線錯(cuò)誤計(jì)數(shù)器計(jì)數(shù)達(dá)到CPU告警極限時(shí),該位將被CAN控制器置位。),若檢測出錯(cuò),則執(zhí)行CAN初始化子程序,若正常,則繼續(xù)檢測接收狀態(tài)和發(fā)送緩沖器狀態(tài),若發(fā)送條件滿足則在CANADR中寫入發(fā)送緩存器地址并置位DMA控制位(MOV CANADR , 8AH),DMA傳送隨即被啟動,數(shù)據(jù)場由RAM拷貝到發(fā)送緩存器,置發(fā)送請求位(CANCON.0)后數(shù)據(jù)開始發(fā)送。
4 結(jié)束語
用高性能的P80C592和AD1674A數(shù)據(jù)采集模塊組成車輛環(huán)境數(shù)據(jù)采集系統(tǒng)具有較高的性價(jià)比,目前該系統(tǒng)已投入試用階段,運(yùn)行狀況良好。CAN總線非常適合分布式控制或適時(shí)控制的串行通信網(wǎng)絡(luò),本課題只涉及了數(shù)據(jù)采集,如果在此基礎(chǔ)上擴(kuò)展車輛輔助控制和重要數(shù)據(jù)備份功能,系統(tǒng)將會有更廣闊的應(yīng)用前景。
參考文獻(xiàn):
[1] 鄔寬明. CAN總線原理和應(yīng)用系統(tǒng)設(shè)計(jì). 北京航空航天大學(xué)出版社. 1996
標(biāo)簽:
![]()
傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為傳動網(wǎng)(connectcrack.com)獨(dú)家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>「一體機(jī)性價(jià)比王者」NK290M普及型數(shù)控...
2025-10-09
2025-09-23
2025-09-23
「頻」實(shí)力,新上市——富士電機(jī) FRENIC...
2025-09-08
華為昇騰Atlas800iA2 910B服務(wù)器Deepsee...
2025-09-04
TaiShan(泰山)200 2280系列服務(wù)器 鯤...
2025-09-03