新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種基于單片機(jī)的車輛虛擬儀表數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

一種基于單片機(jī)的車輛虛擬儀表數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

作者: 時(shí)間:2016-11-30 來(lái)源:網(wǎng)絡(luò) 收藏

  表1 SFR功能簡(jiǎn)述

  

  CAN控制器初始化(圖4)是CAN通信中一個(gè)非常重要的子程序,程序是否合理將直接影響整個(gè)通信過程。CAN控制器的初始化首先必須通過置位 CAN控制寄存器的"復(fù)位請(qǐng)求"位,置位"復(fù)位請(qǐng)求"并不影響正在進(jìn)行的一個(gè)收發(fā)作業(yè),特別需要注意的是,只有當(dāng)復(fù)位請(qǐng)求被置位時(shí),CAN內(nèi)部地址為 4-8的寄存器方可被訪問,在復(fù)位操作結(jié)束后必須將該位置0以保持所進(jìn)行的設(shè)置并使CAN返回工作狀態(tài)。

  

  圖4 CAN通信中一個(gè)重要的子程序

  P80C592和其在片CAN控制器都具有中斷寄存器,必須注意兩者的區(qū)別。CAN中斷子程序(圖5)首先讀CAN中斷寄存器(IR)以判斷中斷類型,據(jù)此轉(zhuǎn)入相應(yīng)的操作。如果接收緩存器滿而另一個(gè)報(bào)文的首字節(jié)又需要被存儲(chǔ)時(shí),數(shù)據(jù)超限位被置位,此時(shí)應(yīng)清除超限并釋放接收緩存,然后重新發(fā)送數(shù)據(jù)請(qǐng)求。在數(shù)據(jù)接受子程序中當(dāng)數(shù)據(jù)被轉(zhuǎn)入RAM區(qū)后,應(yīng)及時(shí)釋放接受緩存器,以便為接收下一幀數(shù)據(jù)做好準(zhǔn)備。

  

  圖5 CAN中斷子程序

  數(shù)據(jù)發(fā)送子程序見圖6.CAN控制器向總線發(fā)送數(shù)據(jù)時(shí),首先將在片主RAM中數(shù)據(jù)存放的首地址寫入CANSTA,然后讀取CANSTA.6的值(讀 CANSTA的操作其實(shí)是對(duì)CAN控制器內(nèi)部狀態(tài)寄存器的讀操作,CANSTA.6是錯(cuò)誤顯示位,當(dāng)至少有一個(gè)總線錯(cuò)誤計(jì)數(shù)器計(jì)數(shù)達(dá)到CPU告警極限時(shí),該位將被CAN控制器置位。),若檢測(cè)出錯(cuò),則執(zhí)行CAN初始化子程序,若正常,則繼續(xù)檢測(cè)接收狀態(tài)和發(fā)送緩沖器狀態(tài),若發(fā)送條件滿足則在CANADR中寫入發(fā)送緩存器地址并置位DMA控制位,DMA傳送隨即被啟動(dòng),數(shù)據(jù)場(chǎng)由RAM拷貝到發(fā)送緩存器,置發(fā)送請(qǐng)求位后數(shù)據(jù)開始發(fā)送。

  4 結(jié)語(yǔ)

  用高性能的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)將會(huì)有更廣闊的應(yīng)用前景。


上一頁(yè) 1 2 3 下一頁(yè)

評(píng)論


技術(shù)專區(qū)

關(guān)閉