<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于ARM及CAN總線的汽車行駛記錄儀的開發(fā)

          基于ARM及CAN總線的汽車行駛記錄儀的開發(fā)

          作者: 時間:2013-05-31 來源:網(wǎng)絡(luò) 收藏


          打印輸出電路

          微型打印機M-1926有串口和并口兩種接口,系統(tǒng)采用其串口功能,與LPC2292的DART1接口連接,實現(xiàn)對微機的控制輸出。

          的軟件設(shè)計

          本系統(tǒng)軟件部分的設(shè)計都是在ADS開發(fā)環(huán)境下進行的,并通過JTAG仿真器進行軟件調(diào)試。ADS( Developer Suite)集成開發(fā)環(huán)境是公司推出的核處理器集成開發(fā)工具。JTAG(Joint Test Action Group)是一種通過ARM芯片的JTAG邊界掃描口進行調(diào)試的仿真設(shè)備,它比在線實時仿真器要廉價簡單,是現(xiàn)在較為流行的一種仿真器。本系統(tǒng)采用的EasyJTAG是廣州周立功單片機發(fā)展有限公司開發(fā)的LPC2000系列ARM7微控制器的JTAG仿真器。

          本系統(tǒng)軟件部分的程序流程圖如圖2所示。軟件部分主要包括以下幾個模塊:

          A/D采樣模塊

          LPC2292內(nèi)置有8個模數(shù)轉(zhuǎn)換器ADC,其控制器只有2個,即ADCR、ADDR。本系統(tǒng)使用3個ADC分別采集、轉(zhuǎn)換3路模擬信號。首先將ADC設(shè)置為向量IRQ中斷,為其中斷通道分配一個優(yōu)先級,并設(shè)置中斷服務(wù)程序地址向量,此后將ADCR的START位置1來啟動ADC轉(zhuǎn)換。每當ADC完成一次轉(zhuǎn)換,ADDR寄存器(A/D Data Register)的DONE位置1,從而引起中斷,轉(zhuǎn)入中斷處理程序,在該處理程序中從ADDR寄存器的6-15位讀取轉(zhuǎn)換結(jié)果,再將二進制數(shù)轉(zhuǎn)換成十進制數(shù)予以保存并顯示。

          FLASH數(shù)據(jù)存儲模塊

          為了調(diào)用方便,系統(tǒng)軟件部分對FLASH操作做了函數(shù)封裝,主要有如下兩個函數(shù)接口:

          1、頁寫操作:將一字節(jié)數(shù)據(jù)寫入FLASH的某個特定地址。當命令下發(fā)完之后延時一段微秒級的時間,然后把被寫數(shù)據(jù)所在頁整頁讀出,將被寫數(shù)據(jù)所在地址的數(shù)據(jù)值替換為被寫數(shù)據(jù),其余地址的數(shù)據(jù)值不變,然后整頁寫入FLASH,完成頁寫操作。

          2、整片擦除操作:對FLASH存儲陣列中的內(nèi)容進行整片擦除。通過給FLASH下發(fā)特定地址的特定六個字 節(jié)的命令字來完成FLASH整片擦除操作,數(shù)據(jù)下發(fā)完畢后需要等 待50mS,或等待內(nèi)部toggle/plling操作完成。

          RS232串口通信模塊

          本系統(tǒng)利用兩個UART,一個用于提供主機與上位機軟件的通信接口,另一個用于提供微型打印機與主機的連接接口。主機和上位機軟件的RS232串口通信協(xié)議如下:通信波特率為15200, 8位數(shù)據(jù)位,1位停止位,無奇偶校驗。

          軟件為RS232串口通信提供的函數(shù)接口有:

          1、串口發(fā)送一個字節(jié)數(shù)據(jù):將要發(fā)送的數(shù)據(jù)裝載到串口發(fā)送寄存器中,等待串口狀態(tài)字變1,則表示數(shù)據(jù)發(fā)送完畢。

          2、串口初始化:根據(jù)串口通信協(xié)議對波特率、奇偶校驗、數(shù)據(jù)位和停止位進行設(shè)置。

          LCD液晶顯示模塊

          主要包括的函數(shù)模塊如下:

          1、LCD“忙”檢查:對LCD操作很重要的部分就是進行時序模擬,而時序模擬最重要的是LCD“忙”檢查。程序代碼如下:
          uint32 rb;I02DIR=LCD_DO_D7; //P2口連接的D0到D7口設(shè)為輸入方式,然后讀取狀態(tài)命令

          IO1CLR=LCD_RS;
          IO1SET=LCD_RW;
          if(rb!=0)
          {IO1SET=LCD_E;
          rb=(I02PIN0x80000000);
          IO1CLR=LCD_E;
          }; //忙等待
          IO2DIR=LCD_DO_D7;//將LCD數(shù)據(jù)位重新設(shè)為輸出方式

          2、向LCD下發(fā)命令:若LCD“不忙”,在LCD的管腳E的下降沿鎖存命令字節(jié)完成命令的發(fā)送。
          3、LCD初始化:對LCD內(nèi)部“忙”操作狀態(tài)進行檢查,設(shè)置顯示的起始行,然后開顯示。
          4、LCD液晶寫一組漢字:函數(shù)寫漢字的時候?qū)嶋H上是將漢字字模寫入LCD。
          5 、LCD液晶畫圖:LCD畫圖和寫字其實很類似,將相應(yīng)的字模寫入規(guī)定的LCD屏幕的位置即可。LCD液晶畫圖用于報警信號的顯示。

          CAN-BUS通信模塊

          CAN通信與一般的串口通信類似,在數(shù)據(jù)通信前要對進行初始化操作,包括CAN控制器的選擇、數(shù)據(jù)寄存器的設(shè)置以及通信波特率的設(shè)置等。初始化完成后,則需要設(shè)置雙方的通信協(xié)議,建立彼此的連接。只有在同一協(xié)議下工作的雙方才能正確進行數(shù)據(jù)的交換。軟件提供的CAN-BUS通信函數(shù)接口包括初始化CAN、發(fā)送數(shù)據(jù)以及接收數(shù)據(jù)等。

          結(jié)束語

          結(jié)合了計算機技術(shù)、嵌入式技術(shù)以及現(xiàn)場總線技術(shù)等多項先進技術(shù),具有高實時性、抗干擾能力強、可靠性高、數(shù)據(jù)精度高以及系統(tǒng)擴展方便等特點,可以在車輛實時警告與稽核、公安交警部門的事故處理等方面發(fā)揮一定的作用。(end)

          上一頁 1 2 下一頁

          關(guān)鍵詞: ARM CAN總線 汽車行駛記錄儀

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();