<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)RM及CAN總線(xiàn)的汽車(chē)行駛記錄儀的開(kāi)發(fā)

基于A(yíng)RM及CAN總線(xiàn)的汽車(chē)行駛記錄儀的開(kāi)發(fā)

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


打印輸出電路

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

的軟件設計

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

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

A/D采樣模塊

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

FLASH數據存儲模塊

為了調用方便,系統軟件部分對FLASH操作做了函數封裝,主要有如下兩個(gè)函數接口:

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

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

RS232串口通信模塊

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

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

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

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

LCD液晶顯示模塊

主要包括的函數模塊如下:

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

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

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

CAN-BUS通信模塊

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

結束語(yǔ)

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

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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>