汽車行駛記錄系統(tǒng)中AT89C51ED2的設(shè)計與實(shí)現(xiàn)
摘要:本文介紹了AT89C51ED2 在汽車行駛記錄儀中的實(shí)現(xiàn)。該記錄儀采用大容量閃速存儲器FM1808 作為存儲載體,利用定時器中斷方式來實(shí)現(xiàn)秒間隔的數(shù)據(jù)采集與存儲,利用串行口中斷方式實(shí)現(xiàn)與微機(jī)的數(shù)據(jù)通信,通過USB HOST 和IC 卡實(shí)現(xiàn)對車輛記錄數(shù)據(jù)的快速下載和出行任務(wù)的靈活設(shè)置。
本文引用地址:http://butianyuan.cn/article/273423.htm關(guān)鍵詞:汽車行駛記錄儀;AT89C51ED2;閃速存儲器
隨著社會的發(fā)展,汽車越來越普及,隨著汽車擁有量的增加,發(fā)生交通事故的概率也隨之增加,發(fā)生事故后用傳統(tǒng)的方法進(jìn)行分析、判斷、維修有一定的困難。這樣,就給人們提出了一個問題,怎樣及時、準(zhǔn)備地分析故障的存在,客觀地分析事故的責(zé)任。汽車行駛記錄儀作為一種降低交通事故的發(fā)生率,規(guī)范和保障駕駛?cè)藛T的行為和權(quán)益,方便交通管理部門執(zhí)法檢查和事故責(zé)任認(rèn)定,提高運(yùn)營單位對司乘人員和車輛的監(jiān)督管理的一種重要手段,越來越得到人們的關(guān)注和重視。設(shè)計一種能滿足車輛管理,事故認(rèn)定及疲勞駕駛提醒的車載儀器迫在眉睫。本文介紹一種價格低,功能較齊全且能擴(kuò)展的采用AT89C51ED2 作為MCU 的汽車行駛記錄系統(tǒng)設(shè)計與實(shí)現(xiàn)。
1 系統(tǒng)的硬件總體設(shè)計
本記錄儀采用Atmel 公司AT89C51ED2 單片機(jī)作為主控機(jī),并行接口鐵電存儲器FM1808 作為大容量閃速存儲器,選用DS12C887 時鐘電路,利用高精度A/D 轉(zhuǎn)換器采集汽車傳感器轉(zhuǎn)換的模擬量,并直接記錄各種汽車信號的開關(guān)量。同時利用USB 口、IC 卡或串口實(shí)現(xiàn)與微機(jī)的數(shù)據(jù)通信,把汽車行駛記錄數(shù)據(jù)信息存儲到計算機(jī)上。汽車行駛記錄儀工作時,由單片機(jī)通過前端接口電路拾取汽車行駛狀態(tài)的各種信息,包括車速、發(fā)動機(jī)轉(zhuǎn)速和車輛各種開關(guān)信號等。汽車行駛記錄儀以實(shí)時時鐘為基準(zhǔn),把車輛信息按類別分別存入FRAM 和FLASH。需要從汽車行駛記錄儀中獲取汽車記錄狀態(tài)信息時,用戶插入優(yōu)盤,單片機(jī)自動識別優(yōu)盤并加載驅(qū)動程序,當(dāng)完成設(shè)備枚舉和Bulk_Only 傳輸協(xié)議后,單片機(jī)就可以把汽車行駛記錄儀中記錄的狀態(tài)信息以文件的形式傳輸?shù)絻?yōu)盤,也可以通過協(xié)議將信息以文件的形式傳輸?shù)酱笕萘康?4C64 的IC 卡上。系統(tǒng)框架如圖1 所示。AT89C51ED2 單片機(jī)是汽車行駛記錄儀的核心,整個系統(tǒng)由數(shù)據(jù)采集模塊、信息處理、存儲模塊、時鐘模塊、通信模塊、顯示模塊和電源模塊組成。考慮到汽車的復(fù)雜工況以及記錄儀的性價比,單片機(jī)至少為工業(yè)級產(chǎn)品,AT89C51ED2 是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS 8 位單片機(jī),片內(nèi)含4k byte 的可反復(fù)擦寫的只讀程序存儲器(PEROM)和128 bytes 的隨機(jī)存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL 公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51 指令系統(tǒng),片內(nèi)置通用8 位中央處理器(CPU)和16KB 的Flash 存儲單元,2KB 的EEPROM,3 個16 位定時器,有看門狗和ISP 功能,同時具有封裝小、功耗低等優(yōu)點(diǎn),非常適合作為汽車行駛記錄儀的主控MCU。
2 主控單元實(shí)現(xiàn)信息采集和數(shù)據(jù)處理設(shè)計
汽車行駛記錄儀要求實(shí)時記錄車輛行駛的各種狀態(tài)信息,MCU 主控單元把從外圍設(shè)備傳來的數(shù)據(jù)進(jìn)行分析、處理并作出相應(yīng)的指令。而其外圍設(shè)備主要包括開關(guān)量數(shù)據(jù)采集模塊、時鐘數(shù)據(jù)采集模塊、速度數(shù)據(jù)采集模塊、信息處理及存儲模塊設(shè)計、模擬量數(shù)據(jù)采集模塊。
2.1 開關(guān)量數(shù)據(jù)采集
如圖2 所示開關(guān)量數(shù)據(jù)采集示意圖。汽車行駛記錄儀要求實(shí)時記錄車輛行駛的各種狀態(tài)信息,如圖所示各種車輛開關(guān)量數(shù)據(jù)狀態(tài)信息,都必須經(jīng)過光耦的隔離,并行輸入74HC573 中,然后經(jīng)過74HC573轉(zhuǎn)換成CPU 能接收的“0”或“1”狀態(tài)信號,再由AT89C51ED2 進(jìn)行接收,按一定的時間間隔傳送到存儲器相應(yīng)的地址位。
2.2 速度數(shù)據(jù)采集設(shè)計
汽車速度的測量是通過計數(shù)速度傳感器產(chǎn)生的脈沖信號,脈沖信號經(jīng)過抗擾度大于50%施密特觸發(fā)器電路CD40106 傳送到AT89C51ED2 型單片機(jī)的P3.2 口,該單片機(jī)可設(shè)定一個守量器來計數(shù)速度脈沖信號,并將其轉(zhuǎn)換成汽車的實(shí)際行程,同時根據(jù)行程和時間可計算汽車行駛的速度,按一定的時間間隔傳送到存儲器相應(yīng)的地址位。速度計算運(yùn)行部分程序如下
2.3 信息處理及存儲設(shè)計
由于要求系統(tǒng)具有實(shí)時時間、日期及駕駛時間的采集、記錄、存儲功能;車輛行駛速度的測量、記錄、存儲功能;車輛行駛里程的測量、記錄、存儲功能;記錄儀應(yīng)能以不大于0.2 s 的時間間隔,持續(xù)記錄并存儲停車前20 s 實(shí)時時間對應(yīng)的車輛行駛速度值,及車輛制動狀態(tài)信號,記錄次數(shù)至少為10 次的功能。因此要有既滿足了數(shù)據(jù)存儲擦寫次數(shù)的要求,也有存儲量大和成本比較低的功能。RAMTRON 公司生產(chǎn)的并行接口高性能鐵電存儲器FM1808 是比較理想選擇產(chǎn)品,F(xiàn)M1808 具有100 億次的讀寫壽命,幾乎可以像RAM 那樣無限次寫入;廣泛應(yīng)用于在系統(tǒng)掉電后需要可靠保存程序及數(shù)據(jù)的應(yīng)用領(lǐng)域;數(shù)據(jù)存儲模塊 FM1808 的引腳如圖3 所示,AT89C51ED2 通過AD0~AD7八位數(shù)據(jù)總線和FM1808 相連,AT89C51ED2 通過八位數(shù)據(jù)總線把記錄下來的整度、汽車的實(shí)時行駛狀態(tài)定時地傳送到存儲器的相應(yīng)地址位置上(程序略)。
2.4 時鐘數(shù)據(jù)采集
本系統(tǒng)選用DS12887 時鐘電路。DS12887 是跨越 2000 年的時鐘電路,采用4 位數(shù)表示年度的日歷系統(tǒng)。DS12887 能夠自動存取并更新當(dāng)前的時間,AT89C51ED2 通過讀DS12887 的內(nèi)部時標(biāo)寄存器得到當(dāng)前的時間和日
歷,也可通過選擇二進(jìn)制碼或BCD 碼初始化電路的10 個時標(biāo)寄存器。由于數(shù)據(jù)采集以固定的秒間隔來進(jìn)行,因此,系統(tǒng)只是在剛開始運(yùn)行時和每個扇區(qū)的起始位置采集并存儲時鐘信號作為時間標(biāo)記,而后面數(shù)據(jù)的采集時間則以這些時間標(biāo)記為參照。在本系統(tǒng)重新上電運(yùn)行時,需要記錄開始采集的時間信息。由于系統(tǒng)電源是由汽車電源提供的,所以開始采集的時間也就是汽車啟動的時間,以此作為汽車開始行駛的時間標(biāo)記。在程序運(yùn)行中,由主程序設(shè)定一個汽車啟動標(biāo)志,在第一次寫數(shù)據(jù)之前汽車啟動標(biāo)志有效,然后首先判斷當(dāng)前存儲地址是否有某個扇區(qū)的首地址,如果是,則根據(jù)寫扇區(qū)的要求在第七個字節(jié)開始處存儲當(dāng)前的時鐘信號,否則,在當(dāng)前存儲地址處開始用10 個字節(jié)存儲當(dāng)前的時鐘信號,記錄汽車開始運(yùn)行的起始時間,然后清除汽車啟動標(biāo)志。扇區(qū)開始地址處記錄的時間信息是否是汽車開始運(yùn)行的起始時間,可根據(jù)前一個扇區(qū)記錄的時間信息進(jìn)行判斷。若前后兩個扇區(qū)記錄的數(shù)據(jù)是連續(xù)的,則后一個扇區(qū)頭記錄的時間信息不是表示汽車開始運(yùn)行的起始時間,否則情況相反。
2.5 串口通信和USB 存儲設(shè)計
計算機(jī)可以通過串口讀取行駛記錄儀存儲的數(shù)據(jù)。行駛記錄儀與計算機(jī)之間的串口通信遵循RS232協(xié)議。串行通信時,CPU 依次將Flash 中存儲的數(shù)據(jù)讀出并經(jīng)P3.0(OUT)串口發(fā)出,然后經(jīng)過MAX232電平轉(zhuǎn)換器送給計算機(jī),再由計算機(jī)通過串口接收該數(shù)據(jù)。接收數(shù)據(jù)時, 計算機(jī)通過串口發(fā)送數(shù)據(jù)給MAX232 電平轉(zhuǎn)換器, MCU 經(jīng)P3.1(IN)串口接收。用 USB 進(jìn)行數(shù)據(jù)的采集,目前市場上的USB 設(shè)備芯片比較多,而HOST 要少一些,選擇USB HOST接口芯片主要考慮兩點(diǎn):一是在硬件上比較容易和51 單片機(jī)相連接,二是軟件開發(fā)難度不太大,因此選擇
SL811HST 比較合適。SL811HST 通過D0~D7 和AT89C51DE2 的P0.0~P0.7 來進(jìn)行數(shù)據(jù)的交換。存儲器上存儲的數(shù)據(jù)也可以通過AT89C51DE2 的P3.4 和P3.5 口直接寫到24C64 的IC 卡上。
3 管理軟件的設(shè)計
由于國家對行駛記錄儀通信協(xié)議有具體的要求,因此行駛記錄儀和管理軟件的通信協(xié)議滿足國家規(guī)定要求。它將從記錄儀上傳來的各種信息進(jìn)行歸類整理。利用Visual C++ 6.0 作為開發(fā)工具,編寫微機(jī)數(shù)據(jù)分析處理程序,模擬顯示汽車運(yùn)行時的狀態(tài);利用圖形顯示各分量的波形,如前向燈開關(guān)情況、左右方向燈開關(guān)情況、開門信息、剎車信號、水溫變化情況(范圍為0℃~100℃)等,并能實(shí)現(xiàn)文檔保存,也可以進(jìn)行打印。
4 結(jié)束語
本車輛充分發(fā)揮了AT89C51ED2 微控制器強(qiáng)大的功能、簡化了外圍電路設(shè)計,同時采用嵌入式USB數(shù)據(jù)管理機(jī)制加上通過串口或IC 卡接收汽車行駛的數(shù)據(jù),并對數(shù)據(jù)進(jìn)行分析處理;不僅解決了以往車輛行駛記錄儀中數(shù)據(jù)難以管理的問題,而且大大降低了硬件成本。采用本設(shè)計的車輛行駛記錄儀已應(yīng)用到企事業(yè)單位的車輛管理中,實(shí)現(xiàn)了對車輛運(yùn)營的透明化管理,節(jié)約了運(yùn)營費(fèi)用。
參考文獻(xiàn):
[1]Abraham I.Pressman.Switching Power Supply Design[M].Mc Graw-Hill.,1998,25:180.
[2]]靳達(dá).單片機(jī)應(yīng)用系統(tǒng)開發(fā)實(shí)例導(dǎo)航[M].北京:人民郵電出版社,2003.213-262.
[3]余永權(quán).Flash 單片機(jī)原理及應(yīng)用[M].北京:電子工業(yè)出版社,1997.183-221.
[4]郭兵.電子設(shè)計自動化(EDA)技術(shù)應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2004.52-159.
[5]黃書偉,盧申林,錢毓清.印刷電路板的可靠性[M].北京:國防工業(yè)出版社,2004.59-192.
[6]馬忠梅.單片機(jī)的C 語言應(yīng)用程序設(shè)計[M].北京:北京航空航天出版社,1999.123-211.
[7]蔣建軍.GPS 車輛監(jiān)控系統(tǒng)中串行總線接口設(shè)計與實(shí)現(xiàn)[J].微計算機(jī)信息,2006,4-1:262-264
光耦相關(guān)文章:光耦原理
c++相關(guān)文章:c++教程
存儲器相關(guān)文章:存儲器原理
施密特觸發(fā)器相關(guān)文章:施密特觸發(fā)器原理
評論