新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于LPC2104型CPU的汽車(chē)行使記錄儀

基于LPC2104型CPU的汽車(chē)行使記錄儀

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

摘要:介紹基于的汽車(chē)行駛。該采用大容量閃速存儲(chǔ)器作為存儲(chǔ)載體,利用定時(shí)器中斷方式來(lái)實(shí)現(xiàn)秒間隔的數(shù)據(jù)采集與存儲(chǔ),用利串行口中斷方式實(shí)現(xiàn)與微機(jī)的數(shù)據(jù)通信。 關(guān)鍵詞:汽車(chē)行駛;;閃速存儲(chǔ)器 引言 隨著汽車(chē)擁有量的增加,發(fā)生交通事故的概率也隨之增加,發(fā)生事故后用傳統(tǒng)的方法進(jìn)行分析、判斷、維修有一定的困難。這樣,就給人們提出了一個(gè)問(wèn)題,怎樣及時(shí)、準(zhǔn)備地分析故障的存在,客觀地分析事故的責(zé)任。由此聯(lián)系到飛機(jī)上裝的“黑匣子”,一旦飛機(jī)失事,“黑匣子”里的資料是判斷失事原因的重要依據(jù)。因?yàn)樗脑靸r(jià)高、技術(shù)復(fù)雜,在普通汽車(chē)上使用有一定的難。本文介紹一種價(jià)格低,功能較齊全且能擴(kuò)展的汽車(chē)行駛記錄儀。 本記錄儀采用帶ARM7內(nèi)核的作為主控機(jī),大容量閃速存儲(chǔ)器作為存儲(chǔ)載體,帶有精確的時(shí)鐘電路,利用高精度A/D轉(zhuǎn)換器采集汽車(chē)傳感器轉(zhuǎn)換的模擬量,并直接記錄汽車(chē)信號(hào)燈等的各種開(kāi)關(guān)量。同時(shí)利用串口實(shí)現(xiàn)與微機(jī)的數(shù)據(jù)通信,把汽車(chē)行駛記錄低度的信息以二進(jìn)制文件的形式存儲(chǔ)到硬盤(pán)上。

本文引用地址:http://m.butianyuan.cn/article/201610/307518.htm
1.png

1 系統(tǒng)的硬件設(shè)計(jì) 系統(tǒng)的總體框架如圖1所示。帶ARM7內(nèi)核的LPC2104型是汽車(chē)行駛記錄儀的核心,整個(gè)系統(tǒng)由信息采集模塊、信息處理及存儲(chǔ)模塊和串口通信模塊組成。 LPC2104是Philips公司生產(chǎn)的一款支持實(shí)時(shí)仿真和跟蹤的ARM7TDMI-S CPU,內(nèi)部集成有與片內(nèi)存儲(chǔ)器控制器接口的ARM7局部總線、與中斷控制器接口的AMBA高性能總線(AHB)和連接片內(nèi)外設(shè)功能的VLSI外設(shè)總線(VPB,ARM,AMBA總線的兼容超大規(guī)模集成電路),并嵌入了128KB高速Flash存儲(chǔ)器。LPC2104將ARM7TDMI-S配置為小端(Iittle-endian)字節(jié)順序,具有封裝小、功耗低、多個(gè)32位定時(shí)器、多種總線接口及多達(dá)9個(gè)外部中斷等優(yōu)點(diǎn),非常適合作為汽車(chē)行駛記錄儀的主控CPU。同時(shí),LPC2104還具有128位寬度的存儲(chǔ)器接口和獨(dú)特的加速結(jié)構(gòu),從而使得32位代碼能夠在最大時(shí)鐘頻率下運(yùn)行。 2 信息采集模塊設(shè)計(jì) 汽車(chē)行駛記錄儀要求實(shí)時(shí)記錄車(chē)輛行駛的各種狀態(tài)信息,因此本系統(tǒng)將信息采集模塊分為開(kāi)關(guān)量數(shù)據(jù)采集模塊、模擬量數(shù)據(jù)采集模塊、時(shí)鐘數(shù)據(jù)采集模塊。

2.png

2.1 開(kāi)關(guān)量數(shù)據(jù)采集模塊 該模塊利用74LS165型并行輸入8位移位寄存器擴(kuò)展16位并行輸入口,其硬件電路如圖2所示。其中利用LPC2104的3根I/O口線擴(kuò)展為16位的輸入口線,圖中由2片74LS165串接擴(kuò)展16位的輸入線,CLK為時(shí)鐘脈沖輸入端,D0-D7為并行輸入端,前級(jí)的數(shù)據(jù)輸出端QH與后級(jí)的信號(hào)輸入端 SIN相連,S/L為低電平時(shí),允許并行置入數(shù)據(jù),S/L為高電平時(shí)允許串行移位。這樣左右方向燈、前車(chē)燈、開(kāi)門(mén)信號(hào)、剎車(chē)燈信號(hào)等16路開(kāi)關(guān)量經(jīng)過(guò)光電耦合器隔離后并行輸入到2片74LS165中,再經(jīng)74LS165轉(zhuǎn)換后,串行輸出給LPC2104進(jìn)行處理。 2.2 模擬量數(shù)據(jù)采集模塊 在進(jìn)行模擬數(shù)據(jù)采集時(shí),水溫、水位等8路傳感器采集的信號(hào)先經(jīng)過(guò)模擬信號(hào)調(diào)理環(huán)節(jié),將其整定在A/D轉(zhuǎn)換器參考電壓Vref決定的滿量程輸入電壓信號(hào)以內(nèi),然后經(jīng)過(guò)A/D轉(zhuǎn)換器進(jìn)行A/D轉(zhuǎn)換。該模塊采用美國(guó)德州儀器公司推出的TLC0838型8路8位逐次逼近型模、數(shù)轉(zhuǎn)換器,采樣頻率為100kHz,與外部通信采用SPI總線接口。LPC2104通過(guò)其內(nèi)嵌的SPI總線接口與TLC0838進(jìn)行通信,其硬件電路如圖3所示。其中SCK為SPI主機(jī)輸入或從機(jī)輸入的時(shí)鐘,MOSI為SPI主機(jī)到從機(jī)的數(shù)據(jù)傳輸,MISO為SPI從機(jī)到主機(jī)的數(shù)據(jù)傳輸,SSEL為SPI從機(jī)選擇。

3.png

汽車(chē)速度的測(cè)量是通過(guò)計(jì)數(shù)速度傳感器產(chǎn)生的脈沖信號(hào)實(shí)現(xiàn)的。本系統(tǒng)利用AT89C2051型單片機(jī)來(lái)計(jì)數(shù)速度脈沖信號(hào)。該單片機(jī)可設(shè)定一個(gè)守量器來(lái)計(jì)數(shù)速度脈沖信號(hào),并將其轉(zhuǎn)換成汽車(chē)的實(shí)際量程。同時(shí)根據(jù)行程和時(shí)間可計(jì)算汽車(chē)的速度,并通過(guò)串口UART0將數(shù)據(jù)傳送給LPC2104。 2.3 時(shí)鐘數(shù)據(jù)采集模塊 為了記錄行車(chē)的時(shí)間,使行駛記錄儀能夠?qū)崟r(shí)記錄汽車(chē)狀態(tài),采用專門(mén)的時(shí)鐘模塊提供時(shí)間信號(hào),本系統(tǒng)選用DS12887時(shí)鐘電路。DS12887是跨越 2000年的時(shí)鐘電路,采用4位數(shù)表示年度的日歷系統(tǒng)。電路的晶體振蕩器、振蕩電路、充電電路和可充電鋰電池等一起封裝在芯片的止方,組成一個(gè)加厚的集成電路模塊。DS12887能夠自動(dòng)存取并更新當(dāng)前的時(shí)間,LPC2104可通過(guò)讀DS12887的內(nèi)部時(shí)標(biāo)寄存器得到當(dāng)前的時(shí)間和日歷,也可通過(guò)選擇二進(jìn) 進(jìn)碼或BCD碼初始化電路的10個(gè)時(shí)標(biāo)寄存器。 3 信息處理及存儲(chǔ)模塊設(shè)計(jì) 由于Flash的存儲(chǔ)結(jié)構(gòu)適宜是固態(tài)存儲(chǔ),EPROM的存儲(chǔ)結(jié)構(gòu)適宜于動(dòng)態(tài)存儲(chǔ),因此,本系統(tǒng)根據(jù)實(shí)際需要,有用Flash固態(tài)存儲(chǔ)和EPROM動(dòng)態(tài)存儲(chǔ)相結(jié)合的方式進(jìn)行數(shù)據(jù)存儲(chǔ)和記憶,即用Flash固態(tài)存儲(chǔ)采集的汽車(chē)狀態(tài)數(shù)據(jù),用EPROM動(dòng)態(tài)存儲(chǔ)Flash最新存儲(chǔ)的扇區(qū)號(hào)和存儲(chǔ)地址。閃速存儲(chǔ)器選用美信公司生產(chǎn)的MX29F800BTC型,EPROM選用Microchip公司的24C32型,同時(shí)利用LPC2104內(nèi)嵌的I2C總線接口與 24C32進(jìn)行通信。 本系統(tǒng)工作時(shí),首先由LPC2104主控CPU從24C32中讀取Flash最近存儲(chǔ)的扇區(qū)號(hào)和存儲(chǔ)地址,然后以此地址為參照,以這個(gè)地址的一個(gè)地址值為 Flash的起點(diǎn)地址,以這個(gè)地址的下一個(gè)地址值為Flash的起點(diǎn)地址,按順序進(jìn)行存儲(chǔ)。Flash需要存儲(chǔ)的數(shù)據(jù)有16路開(kāi)關(guān)量信息、8路模擬量信息有及時(shí)鐘信息。本系統(tǒng)利用二字節(jié)(共16位)存儲(chǔ)16路開(kāi)關(guān)量信息,利用8個(gè)字節(jié)的存儲(chǔ)空間存儲(chǔ)8路模擬量信息。為了節(jié)省存儲(chǔ)空間,系統(tǒng)并非每次存儲(chǔ)采集數(shù)據(jù)時(shí)都存儲(chǔ)時(shí)間標(biāo)志。由于數(shù)據(jù)采集以固定的秒間隔來(lái)進(jìn)行,因此,系統(tǒng)只是在剛開(kāi)始運(yùn)行時(shí)和每個(gè)扇區(qū)的起始位置采集并存儲(chǔ)時(shí)鐘信號(hào)作為時(shí)間標(biāo)記,而后面數(shù)據(jù)的采集時(shí)間則以這些時(shí)間標(biāo)記為參照。

4.png

系統(tǒng)存儲(chǔ)的軟件流程如圖4所示。在本系統(tǒng)重裝上電運(yùn)行時(shí),需要記錄開(kāi)始采集的時(shí)間信息。由于系統(tǒng)電源是由汽車(chē)電源提供的,所以開(kāi)始采集的時(shí)間也就是汽車(chē)啟動(dòng)的時(shí)間,以此作為汽車(chē)開(kāi)始行駛的時(shí)間標(biāo)記。在程序運(yùn)行中,由主程序設(shè)定一個(gè)汽車(chē)啟動(dòng)標(biāo)志,在第一次寫(xiě)數(shù)據(jù)之前汽車(chē)啟動(dòng)標(biāo)志有效,然后首先判斷當(dāng)前存儲(chǔ)地址是否有某個(gè)扇區(qū)的首地址,如果是,則根據(jù)寫(xiě)扇區(qū)的要求在第七個(gè)字節(jié)開(kāi)始處存儲(chǔ)當(dāng)前的時(shí)鐘信號(hào),否則,在當(dāng)前存儲(chǔ)地址處開(kāi)始用10個(gè)字節(jié)存儲(chǔ)當(dāng)前的時(shí)鐘信號(hào),記錄汽車(chē)開(kāi)始運(yùn)行的起始時(shí)間,然后清除汽車(chē)啟動(dòng)標(biāo)志。扇區(qū)開(kāi)始地址處記錄的時(shí)間信息是否是汽車(chē)開(kāi)始運(yùn)行的起始時(shí)間,可根據(jù)前一個(gè)扇區(qū)記錄的時(shí)間信息進(jìn)行判斷。若前后兩個(gè)扇區(qū)記錄的數(shù)據(jù)是連續(xù)的,則后一個(gè)扇區(qū)頭記錄的時(shí)間信息不是表示汽車(chē)開(kāi)始運(yùn)行的起始時(shí)間,否則情況相反。 4 串口通信模塊設(shè)計(jì) 計(jì)算機(jī)可以通過(guò)串口隨時(shí)讀取行駛記錄儀存儲(chǔ)的數(shù)據(jù)。行駛記錄儀與計(jì)算機(jī)之間的串口通信遵循RS232協(xié)議。串行通信時(shí),LPC2104依次將Flash中存儲(chǔ)的數(shù)據(jù)讀出并經(jīng)UART0串口發(fā)出,然后經(jīng)過(guò)MAX232電平轉(zhuǎn)換器送給計(jì)算機(jī),再由計(jì)算機(jī)通過(guò)串口接收該數(shù)據(jù)。 圖5 5 結(jié)束語(yǔ) 汽車(chē)行駛記錄儀利用微機(jī)通過(guò)串口接收汽車(chē)行駛的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行分析處理;利用Visual C++ 6.0作為開(kāi)發(fā)工具,編寫(xiě)微機(jī)數(shù)據(jù)分析處理程序,模擬顯示汽車(chē)運(yùn)行時(shí)的狀態(tài);利用圖形顯示各分量的波形,如前向燈開(kāi)關(guān)情況、左右方向燈開(kāi)關(guān)情況、開(kāi)門(mén)信息、剎車(chē)信號(hào)、水溫變化情況(范圍為0℃100℃)等。將該行駛記錄儀安裝在汽車(chē)上進(jìn)行測(cè)試,結(jié)果也較理想,能夠滿足設(shè)計(jì)要求。其測(cè)試結(jié)果如圖5所示。



關(guān)鍵詞: LPC2104 CPU 記錄儀

評(píng)論


相關(guān)推薦

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

關(guān)閉