基于ARM及CAN總線的汽車行駛記錄儀的開發(fā)
打印輸出電路
微型打印機M-1926有串口和并口兩種接口,系統(tǒng)采用其串口功能,與LPC2292的DART1接口連接,實現(xiàn)對微機的控制輸出。
汽車行駛記錄儀的軟件設(shè)計
本系統(tǒng)軟件部分的設(shè)計都是在ADS開發(fā)環(huán)境下進行的,并通過JTAG仿真器進行軟件調(diào)試。ADS(ARM Developer Suite)集成開發(fā)環(huán)境是ARM公司推出的ARM核處理器集成開發(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總線進行初始化操作,包括CAN控制器的選擇、數(shù)據(jù)寄存器的設(shè)置以及通信波特率的設(shè)置等。初始化完成后,則需要設(shè)置雙方的通信協(xié)議,建立彼此的連接。只有在同一協(xié)議下工作的雙方才能正確進行數(shù)據(jù)的交換。軟件提供的CAN-BUS通信函數(shù)接口包括初始化CAN、CAN總線發(fā)送數(shù)據(jù)以及CAN總線接收數(shù)據(jù)等。
結(jié)束語
該汽車行駛記錄儀結(jié)合了計算機技術(shù)、嵌入式技術(shù)以及現(xiàn)場總線技術(shù)等多項先進技術(shù),具有高實時性、抗干擾能力強、可靠性高、數(shù)據(jù)精度高以及系統(tǒng)擴展方便等特點,可以在車輛實時警告與稽核、公安交警部門的事故處理等方面發(fā)揮一定的作用。(end)
評論