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