新聞中心

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)閉