羅 繁 李 曦 張保平
隨著現(xiàn)代交通的迅速發(fā)展,頻繁的交通事故造成的無數(shù)人員傷亡和巨大財富損失也越來越引起人們的重視。為了更加有效地監(jiān)督駕駛?cè)藛T的駕駛行為,使交通安全管理制度能夠真正得到貫徹落實,以達到降低交通事故率的目的。汽車行駛狀態(tài)記錄儀可以記錄汽車在行駛過程中的各種狀態(tài)及數(shù)據(jù)。它既可以作為事故分析的客觀依據(jù),同時也是考核駕駛員違規(guī)操作的重要監(jiān)督手段,由于這種“監(jiān)督”和“見證”的功能,所以,它能提高駕駛員的安全責任感,從而大幅度降低事故率。
系統(tǒng)簡介
本汽車行駛狀態(tài)記錄儀可以記錄汽車在行駛過程中的剎車、主光燈、左轉(zhuǎn)向燈、右轉(zhuǎn)向燈、雙跳燈、機油壓力、制動氣壓、空濾堵塞和手制動9個開關(guān)狀態(tài)量以及水溫、發(fā)動機轉(zhuǎn)速和行駛速度3個模擬量。同時可以記錄汽車啟動和停止的日期和時間(即記錄儀的開機及關(guān)機的日期和時間),并可以根據(jù)行駛速度計算出行駛里程,而且可以通過串口與計算機進行通信,把所記錄的數(shù)據(jù)發(fā)送給計算機進行處理、分類后存入到數(shù)據(jù)庫中供用戶查看,本記錄儀還可以根據(jù)計算機發(fā)出的命令執(zhí)行設(shè)置實時時鐘和實時測試汽車行駛狀態(tài)等操作。
系統(tǒng)硬件
整個硬件系統(tǒng)主要由數(shù)據(jù)采集模塊、微處理器(MPU)、存儲模塊、實時時鐘模塊(RTC)和通信口構(gòu)成。系統(tǒng)硬件原理框圖如圖1所示。
數(shù)據(jù)采集模塊 數(shù)據(jù)采集模塊主要由輸入通道、I/O口、計數(shù)器和A/D轉(zhuǎn)換器構(gòu)成,其主要功能是采集記錄儀要記錄的各種狀態(tài)信號,包括開關(guān)狀態(tài)量和模擬量兩種信號。
所有要采集的信號都是從輸入通道引入的,每一路輸入通道的電路如圖2所示,輸入信號先通過阻容濾波電路,消除掉抖動及脈沖干擾,然后通過光電隔離電路,這在電氣上使得輸入信號(S)和輸出信號(IN)完全絕緣,抑制了各種干擾信號通過輸入通道進入記錄儀而影響微處理器的正常工作。
對于不同的狀態(tài)信號所采用的數(shù)據(jù)采集通道也有所不同。
開關(guān)狀態(tài)量信號:它通過輸入通道后直接送給I/O口供微處理器讀取。
水溫:通過車載溫度傳感器獲得信號,然后通過輸入通道引入到A/D轉(zhuǎn)換器上,經(jīng)過A/D轉(zhuǎn)換后送微處理器處理。
車速:電磁式速度傳感器將速度轉(zhuǎn)化成脈沖信號,該信號的頻率與速度成正比。該脈沖信號通過輸入通道引入到計數(shù)器上進行定時脈沖計數(shù)(即測頻),即可獲得車速數(shù)據(jù)。
轉(zhuǎn)速:轉(zhuǎn)速的獲取和速度基本相同,只不過轉(zhuǎn)速傳感器將轉(zhuǎn)速轉(zhuǎn)化成了正弦信號,在輸入到計數(shù)器之前要把正弦信號通過施密特觸發(fā)器整形成脈沖信號。
微處理器 選用MCS-98單片機,它具有10位精度的內(nèi)部A/D轉(zhuǎn)換功能,再加上單片機內(nèi)部的定時/計數(shù)器及串行通訊接口(SCI),這樣就可以方便地實現(xiàn)水溫、車速和轉(zhuǎn)速這三個模擬量的測量以及與計算機的串口通信。同時片內(nèi)具有Watchdog功能,當程序由于某種干擾而死機時,系統(tǒng)可以可靠復(fù)位,保證系統(tǒng)的正常運行。而且其內(nèi)部總線為16位,運算能力和計算速度都大為提高,特別適合用于模擬量數(shù)據(jù)采集系統(tǒng)。
實時時鐘模塊(RTC)選用DALLAS公司的實時時鐘芯片DS1302,該芯片為8引腳小型DIP封裝,附加31字節(jié)靜態(tài)RAM,采用串行通信方式,只需三條連接線即可與單片機通信,可提供秒、分、時、日、月和年等信息,一個月小于31天時可自動調(diào)整,包括閏年,有效至2100年。可采用12h或24h方式計時,采用雙電源(主電源VC2和備用電源VC1)供電,DS1302由VC1和VC2兩者中較大者供電,使系統(tǒng)在沒有主電源的情況下也能保持時鐘的連續(xù)運行。其作用是作為記錄信息的時間標準,在記錄時,微處理器(MPU)從DS1302讀出實時時鐘,為各種信息打上時間標記。
存儲模塊 存儲模塊由緩沖存儲器和主存儲器兩種存儲器構(gòu)成。其中主存儲器選用Flash RAM,F(xiàn)lash存儲器無需電池即可保存數(shù)據(jù)長達10年。Flash存儲器在寫入時有復(fù)雜的命令操作,因此可以減少在受到干擾時Flash的數(shù)據(jù)被改寫的可能性,另一方面,采用Flash技術(shù)可以使系統(tǒng)記錄數(shù)據(jù)的容量增加,成本下降。
但是由于Flash RAM速度不夠快,所以,還需要緩沖存儲器,這里選用E2PROM作為緩沖存儲器。
通信口 記錄儀通過MCS-98單片機的片內(nèi)串行通信接口(SCI)與計算機進行通信。由于通信速度要求并不高,為了降低成本,這里直接采用RS-232標準接口電路。
電源直接利用汽車常規(guī)電瓶的24/12V電壓供電,通過過壓保護和濾波電路穩(wěn)壓到系統(tǒng)的工作電壓5V。
系統(tǒng)軟件
系統(tǒng)軟件由底層軟件和頂層軟件組成。
底層軟件 底層軟件為記錄儀的控制軟件。其主要功能是巡回檢測各個開關(guān)狀態(tài)量和模擬量,采用相應(yīng)的“動態(tài)壓縮算法”進行采集和記錄,并根據(jù)計算機通過串口所發(fā)出的命令進行日期設(shè)置、實時測試和發(fā)送所記錄數(shù)據(jù)給計算機等一系列操作。這里的“動態(tài)壓縮算法”是指在周期性采集的基礎(chǔ)上,對于開關(guān)狀態(tài)量將本次狀態(tài)Si和前次狀態(tài)Si-1進行邏輯異或運算,當運算結(jié)果為“1”,表明狀態(tài)發(fā)生了變化才記錄本次狀態(tài);而對于模擬量,將本次采集到的數(shù)值和前次采集到的數(shù)值相減,絕對值大于一定的閾值(|Si-Si-1|>d),表明模擬量的變化超過了所設(shè)定的閾值才記錄本次數(shù)值,其中閾值d可以根據(jù)用戶的需要進行調(diào)節(jié)。這樣提高了記錄密度,減少了冗余數(shù)據(jù)量。
軟件采用MCS-98系列匯編語言按模塊化結(jié)構(gòu)進行編寫,主要由主程序、1s中斷程序、串口中斷程序三大模塊組成。
主程序模塊:主程序框圖如圖3所示。
它主要進行系統(tǒng)初始化并記錄上次關(guān)機日期和時間以及本次開機日期和時間(上次關(guān)機時間放到本次來讀取,這是因為關(guān)機瞬間單片機來不及記錄關(guān)機日期和時間),然后進入“等待中斷”,不斷等待1s中斷和串口中斷的到來(直到關(guān)機為止),并跳轉(zhuǎn)到相應(yīng)的中斷程序模塊。
1s中斷程序模塊:用實時時鐘芯片產(chǎn)生1s中斷,該中斷主要實現(xiàn)數(shù)據(jù)采集和記錄。該系統(tǒng)要求對狀態(tài)的記錄精確度為秒,因此在1s中斷中完成對全部9個開關(guān)量和3個模擬量的采集和記錄就可以滿足要求了。為了防止抖動及脈沖干擾確保開關(guān)量狀態(tài)的采樣準確性,在“逐個采集各路數(shù)據(jù)”模塊中,對于開關(guān)量的采樣安排了8ms的數(shù)字濾波。若開關(guān)量狀態(tài)在8ms內(nèi)保持穩(wěn)定,則認為這次的采樣是正確的。將本次狀態(tài)和前次狀態(tài)進行比較(這采用“動態(tài)壓縮算法”來實現(xiàn)),若狀態(tài)發(fā)生了變化,則將對應(yīng)的狀態(tài)號、日期和時間以及數(shù)值轉(zhuǎn)換成自定義格式的二進制數(shù)據(jù)(對于開關(guān)狀態(tài)量:狀態(tài)號、年、月、日、時、分、秒;對于模擬量:狀態(tài)號、年、月、日、時、分、秒、數(shù)值)存入Flash RAM中。另外還將當前日期和時間存入到Flash RAM中自定的××存儲單元中,不斷進行覆蓋,這樣最靠近關(guān)機瞬間的日期和時間就記錄下來,作為關(guān)機時間,供下次開機時讀取。1s中斷程序框圖如圖4所示。
串口中斷程序模塊:主要是根據(jù)計算機發(fā)出的命令進行相應(yīng)的操作,即發(fā)送所記錄的數(shù)據(jù)給計算機、設(shè)置實時時鐘和實時測試汽車行駛狀態(tài)。串口中斷的優(yōu)先級比1s中斷的優(yōu)先級要高。
頂層軟件頂層軟件為計算機的控制軟件,采用VC++編寫。這個軟件提供了用戶友好的界面,它通過串口與記錄儀進行通信。用戶只需點擊用戶界面上的相應(yīng)按鈕就可以發(fā)送相應(yīng)命令給記錄儀,讓它執(zhí)行相應(yīng)的操作,例如,設(shè)置實時時鐘日期和時間、讀取記錄儀數(shù)據(jù)和汽車行駛狀態(tài)實時測試等。
設(shè)置實時時鐘日期和時間:這是用計算機的系統(tǒng)日期和時間來校準記錄儀的實時時鐘芯片的日期和時間,確保其日期和時間的準確性。
讀取記錄儀數(shù)據(jù):記錄儀所記錄的數(shù)據(jù)是自定義格式的二進制數(shù)據(jù)(對于開關(guān)狀態(tài)量:狀態(tài)號、年、月、日、時、分、秒;對于模擬量:狀態(tài)號、年、月、日、時、分、秒、數(shù)值),要把這些原始數(shù)據(jù)按自定義格式解碼,轉(zhuǎn)換成相應(yīng)的狀態(tài)名(如剎車等)、狀態(tài)記錄的日期和時間以及狀態(tài)的數(shù)值(對模擬量而言),存入數(shù)據(jù)庫中,供用戶查看。
汽車行駛狀態(tài)實時測試:此時需要使用筆記本電腦隨車測試,記錄儀一邊實時采集和記錄汽車行駛過程中的狀態(tài),一邊把所記錄的數(shù)據(jù)發(fā)送給筆記本電腦進行處理后顯示。這既方便了用戶實時測試汽車的行駛狀態(tài)也可以作為在開發(fā)過程中調(diào)試記錄儀的一種方法。
結(jié) 論
該記錄儀可以將汽車行駛過程中的多種狀態(tài)記錄下來,而且這些記錄可以發(fā)送給計算機進行處理和存儲,以供用戶查看。它為有關(guān)部門管理和監(jiān)督駕駛員的違規(guī)駕駛提供了極大的方便,能有效地降低和防止事故的發(fā)生,減少和避免經(jīng)濟損失。也為事故分析提供了客觀、科學的見證。