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