汽車行駛記錄系統(tǒng)中AT89C51ED2 的設(shè)計(jì)與實(shí)現(xiàn)
隨著社會的發(fā)展,汽車越來越普及,隨著汽車擁有量的增加,發(fā)生交通事故的概率也隨之增加,發(fā)生事故后用傳統(tǒng)的方法進(jìn)行分析、判斷、維修有一定的困難。這樣,就給人們提出了一個(gè)問題,怎樣及時(shí)、準(zhǔn)備地分析故障的存在,客觀地分析事故的責(zé)任。汽車行駛記錄儀作為一種降低交通事故的發(fā)生率,規(guī)范和保障駕駛?cè)藛T的行為和權(quán)益, 方便交通管理部門執(zhí)法檢查和事故責(zé)任認(rèn)定, 提高運(yùn)營單位對司乘人員和車輛的監(jiān)督管理的一種重要手段,越來越得到人們的關(guān)注和重視。設(shè)計(jì)一種能滿足車輛管理,事故認(rèn)定及疲勞駕駛提醒的車載儀器迫在眉睫。本文介紹一種價(jià)格低,功能較齊全且能擴(kuò)展的采用AT89C51ED2 作為MCU 的汽車行駛記錄系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)。
本文引用地址:http://www.ex-cimer.com/article/173902.htm1 系統(tǒng)的硬件總體設(shè)計(jì)
本記錄儀采用Atmel 公司AT89C51ED2 單片機(jī)作為主控機(jī),并行接口鐵電存儲器FM1808 作為大容量閃速存儲器,選用DS12C887 時(shí)鐘電路,利用高精度A/D 轉(zhuǎn)換器采集汽車傳感器轉(zhuǎn)換的模擬量,并直接記錄各種汽車信號的開關(guān)量。同時(shí)利用USB 口、IC 卡或串口實(shí)現(xiàn)與微機(jī)的數(shù)據(jù)通信,把汽車行駛記錄數(shù)據(jù)信息存儲到計(jì)算機(jī)上。汽車行駛記錄儀工作時(shí),由單片機(jī)通過前端接口電路拾取汽車行駛狀態(tài)的各種信息, 包括車速、發(fā)動機(jī)轉(zhuǎn)速和車輛各種開關(guān)信號等。汽車行駛記錄儀以實(shí)時(shí)時(shí)鐘為基準(zhǔn), 把車輛信息按類別分別存入FRAM 和FLASH。需要從汽車行駛記錄儀中獲取汽車記錄狀態(tài)信息時(shí),用戶插入優(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ī)是汽車行駛記錄儀的核心,整個(gè)系統(tǒng)由數(shù)據(jù)采集模塊、信息處理、存儲模塊、時(shí)鐘模塊、通信模塊、顯示模塊和電源模塊組成。
考慮到汽車的復(fù)雜工況以及記錄儀的性價(jià)比,單片機(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 個(gè)16 位定時(shí)器,有看門狗和ISP 功能,同時(shí)具有封裝小、功耗低等優(yōu)點(diǎn),非常適合作為汽車行駛記錄儀的主控MCU 。
2 主控單元實(shí)現(xiàn)信息采集和數(shù)據(jù)處理設(shè)計(jì)
汽車行駛記錄儀要求實(shí)時(shí)記錄車輛行駛的各種狀態(tài)信息,MCU 主控單元把從外圍設(shè)備傳來的數(shù)據(jù)進(jìn)行分析、處理并作出相應(yīng)的指令。而其外圍設(shè)備主要包括開關(guān)量數(shù)據(jù)采集模塊、時(shí)鐘數(shù)據(jù)采集模塊、速度數(shù)據(jù)采集模塊、信息處理及存儲模塊設(shè)計(jì)、模擬量數(shù)據(jù)采集模塊。
2.1 開關(guān)量數(shù)據(jù)采集
如圖2 所示開關(guān)量數(shù)據(jù)采集示意圖。汽車行駛記錄儀要求實(shí)時(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)行接收,按一定的時(shí)間間隔傳送到存儲器相應(yīng)的地址位。
2.2 速度數(shù)據(jù)采集設(shè)計(jì)
汽車速度的測量是通過計(jì)數(shù)速度傳感器產(chǎn)生的脈沖信號,脈沖信號經(jīng)過抗擾度大于50% 施密特觸發(fā)器電路CD40106 傳送到AT89C51ED2 型單片機(jī)的P3.2 口,該單片機(jī)可設(shè)定一個(gè)守量器來計(jì)數(shù)速度脈沖信號, 并將其轉(zhuǎn)換成汽車的實(shí)際行程, 同時(shí)根據(jù)行程和時(shí)間可計(jì)算汽車行駛的速度,按一定的時(shí)間間隔傳送到存儲器相應(yīng)的地址位。速度計(jì)算運(yùn)行部分程序如下
2.3 信息處理及存儲設(shè)計(jì)
由于要求系統(tǒng)具有實(shí)時(shí)時(shí)間、日期及駕駛時(shí)間的采集、記錄、存儲功能;車輛行駛速度的測量、記錄、存儲功能;車輛行駛里程的測量、記錄、存儲功能;記錄儀應(yīng)能以不大于0.2 s 的時(shí)間間隔,持續(xù)記錄并存儲停車前20 s 實(shí)時(shí)時(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í)時(shí)行駛狀態(tài)定時(shí)地傳送到存儲器的相應(yīng)地址位置上(程序略)。
2.4 時(shí)鐘數(shù)據(jù)采集
本系統(tǒng)選用DS12887 時(shí)鐘電路。DS12887 是跨越 2000 年的時(shí)鐘電路,采用4 位數(shù)表示年度的日歷系統(tǒng)。DS12887 能夠自動存取并更新當(dāng)前的時(shí)間,AT89C51ED2 通過讀DS12887 的內(nèi)部時(shí)標(biāo)寄存器得到當(dāng)前的時(shí)間和日歷,也可通過選擇二進(jìn)制碼或BCD 碼初始化電路的10 個(gè)時(shí)標(biāo)寄存器。由于 圖3 FM1808 封裝及引腳排列數(shù)據(jù)采集以固定的秒間隔來進(jìn)行,因此,系統(tǒng)只是在剛開始運(yùn)行時(shí)和每個(gè)扇區(qū)的起始位置采集并存儲時(shí)鐘信號作為時(shí)間標(biāo)記, 而后面數(shù)據(jù)的采集時(shí)間則以這些時(shí)間標(biāo)記為參照。在本系統(tǒng)重新上電運(yùn)行時(shí), 需要記錄開始采集的時(shí)間信息。由于系統(tǒng)電源是由汽車電源提供的, 所以開始采集的時(shí)間也就是汽車啟動的時(shí)間, 以此作為汽車開始行駛的時(shí)間標(biāo)記。在程序運(yùn)行中, 由主程序設(shè)定一個(gè)汽車啟動標(biāo)志, 在第一次寫數(shù)據(jù)之前汽車啟動標(biāo)志有效, 然后首先判斷當(dāng)前存儲地址是否有某個(gè)扇區(qū)的首地址, 如果是, 則根據(jù)寫扇區(qū)的要求在第七個(gè)字節(jié)開始處存儲當(dāng)前的時(shí)鐘信號, 否則, 在當(dāng)前存儲地址處開始用10 個(gè)字節(jié)存儲當(dāng)前的時(shí)鐘信號,記錄汽車開始運(yùn)行的起始時(shí)間,然后清除汽車啟動標(biāo)志。扇區(qū)開始地址處記錄的時(shí)間信息是否是汽車開始運(yùn)行的起始時(shí)間, 可根據(jù)前一個(gè)扇區(qū)記錄的時(shí)間信息進(jìn)行判斷。若前后兩個(gè)扇區(qū)記錄的數(shù)據(jù)是連續(xù)的, 則后一個(gè)扇區(qū)頭記錄的時(shí)間信息不是表示汽車開始運(yùn)行的起始時(shí)間,否則情況相反。
2.5 串口通信和USB 存儲設(shè)計(jì)
計(jì)算機(jī)可以通過串口讀取行駛記錄儀存儲的數(shù)據(jù)。行駛記錄儀與計(jì)算機(jī)之間的串口通信遵循RS232 協(xié)議。串行通信時(shí),CPU 依次將Flash 中存儲的數(shù)據(jù)讀出并經(jīng)P3.0(OUT) 串口發(fā)出,然后經(jīng)過MAX232 電平轉(zhuǎn)換器送給計(jì)算機(jī),再由計(jì)算機(jī)通過串口接收該數(shù)據(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è)計(jì)
由于國家對行駛記錄儀通信協(xié)議有具體的要求,因此行駛記錄儀和管理軟件的通信協(xié)議滿足國家規(guī)定要求。它將從記錄儀上傳來的各種信息進(jìn)行歸類整理。利用Visual C++ 6.0 作為開發(fā)工具,編寫微機(jī)數(shù)據(jù)分析處理程序, 模擬顯示汽車運(yùn)行時(shí)的狀態(tài); 利用圖形顯示各分量的波形, 如前向燈開關(guān)情況、左右方向燈開關(guān)情況、開門信息、剎車信號、水溫變化情況(范圍為0℃~100℃) 等,并能實(shí)現(xiàn)文檔保存,也可以進(jìn)行打印。4 結(jié)束語
本車輛充分發(fā)揮了AT89C51ED2 微控制器強(qiáng)大的功能、簡化了外圍電路設(shè)計(jì),同時(shí)采用嵌入式USB 數(shù)據(jù)管理機(jī)制加上通過串口或IC 卡接收汽車行駛的數(shù)據(jù),并對數(shù)據(jù)進(jìn)行分析處理;不僅解決了以往車輛行駛記錄儀中數(shù)據(jù)難以管理的問題, 而且大大降低了硬件成本。采用本設(shè)計(jì)的車輛行駛記錄儀已應(yīng)用到企事業(yè)單位的車輛管理中,實(shí)現(xiàn)了對車輛運(yùn)營的透明化管理,節(jié)約了運(yùn)營費(fèi)用
評論