余軍軍,王勇
(四川大學(xué)電子信息學(xué)院,成都610065)
對(duì)車(chē)輛行駛過(guò)程中的速度狀態(tài)監(jiān)視、速度數(shù)據(jù)存儲(chǔ)以及結(jié)果分析,在測(cè)速同時(shí)又需要對(duì)車(chē)輛速度的檢測(cè)和分析這就需要涉及到多線程支持,并支持在線數(shù)據(jù)下載、軟件更新等。因此系統(tǒng)采用AMM335X作為CPU,AM335X是 TI(德州儀器)基于 ARM Cortex-A8內(nèi)核的AM335X微處理器,其定位是工業(yè)控制MCU。AM335X搭載Linux操作系統(tǒng),支持多線程,網(wǎng)絡(luò)通信等。然后通過(guò)串口屏將速度等信息實(shí)時(shí)顯示,并使用SD卡將速度數(shù)據(jù)進(jìn)行存儲(chǔ),以滿足對(duì)車(chē)輛測(cè)速、顯示和存儲(chǔ)分析的需求。
系統(tǒng)主通過(guò)主機(jī)對(duì)速度傳感器的輸出信號(hào)進(jìn)行采樣,并結(jié)合設(shè)置的輪徑值計(jì)算車(chē)輛當(dāng)前的速度值。計(jì)算后的速度值在顯示屏上實(shí)時(shí)顯示,并對(duì)異常的速度值進(jìn)行聲光報(bào)警。速度數(shù)據(jù)以間隔1秒鐘和20秒鐘兩種形式存儲(chǔ)至主機(jī)和顯示器的存儲(chǔ)模塊中,用戶可以通過(guò)上位機(jī)的網(wǎng)絡(luò)來(lái)下載數(shù)據(jù),也可以通過(guò)讀取存儲(chǔ)模的SD卡下載數(shù)據(jù),以提供使用者進(jìn)行數(shù)據(jù)查詢。系統(tǒng)框圖如圖1所示。
車(chē)輛速度顯示記錄系統(tǒng)主要包括速度傳感器,主機(jī)、存儲(chǔ)設(shè)備和顯示設(shè)備。用來(lái)采集、顯示和記錄車(chē)輛的行駛速度,監(jiān)控車(chē)輛超速等異常情況以及下載歷史數(shù)據(jù)。系統(tǒng)主要由主機(jī)對(duì)兩路各自獨(dú)立的速度傳感器的輸出信號(hào)進(jìn)行采樣,其中一路速度傳感器作為冗余備份,當(dāng)一路速度傳感器信號(hào)出現(xiàn)故障時(shí),自動(dòng)切換到另外一路使用。一共有兩路傳感器輸出信號(hào),信號(hào)1和信號(hào)2,主機(jī)只對(duì)信號(hào)1進(jìn)行采樣,對(duì)信號(hào)2不采樣,系統(tǒng)結(jié)合設(shè)置的輪徑值計(jì)算車(chē)輛當(dāng)前的速度值。計(jì)算后的速度值可以在顯示屏上實(shí)時(shí)顯示,并對(duì)異常的速度值進(jìn)行聲光報(bào)警。速度數(shù)據(jù)以1秒鐘和20秒鐘的時(shí)間間隔這兩種方式存儲(chǔ)至主機(jī)和存儲(chǔ)設(shè)備中,可以通過(guò)上位機(jī)下載數(shù)據(jù),由使用者進(jìn)行數(shù)據(jù)查詢操作。
速度顯示記錄系統(tǒng)工作原理框圖如圖2所示。
速度顯示記錄系統(tǒng)主要包括速度傳感器、主機(jī)、顯示模塊和存儲(chǔ)模塊,系統(tǒng)拓?fù)淙鐖D3所示。
圖1
圖2
圖3
主機(jī)是整個(gè)系統(tǒng)的核心組成,主要實(shí)現(xiàn)采集傳感器信號(hào)、計(jì)算速度值、存儲(chǔ)數(shù)據(jù)、數(shù)據(jù)通訊等功能。它集成電源模塊,并從實(shí)現(xiàn)功能上劃分為速度測(cè)量模塊、通訊模塊、存儲(chǔ)模塊、超速報(bào)警模塊和CPU模塊(AM335X),其功能框圖如圖4所示。
圖4
(1)速度測(cè)量電路
速度測(cè)量電路用于將傳感器輸出的模擬信號(hào)轉(zhuǎn)換為CPU系統(tǒng)模塊可識(shí)別的數(shù)字信號(hào)。通過(guò)霍爾傳感器非接觸測(cè)量鐵磁性信號(hào)盤(pán)轉(zhuǎn)速,車(chē)輛的測(cè)速信號(hào)盤(pán)齒數(shù)為80個(gè),按默認(rèn)車(chē)輛車(chē)輪輪徑84cm計(jì)算,車(chē)輪周長(zhǎng) l=0.84×π≈2.639m,默認(rèn)最高車(chē)速為120km/h≈33.33m/s,車(chē)輛車(chē)輪轉(zhuǎn)速=33.33÷2.639≈12.6轉(zhuǎn)/s,傳感器輸出頻率≈12.63×80=1.01kHz。傳感器工作頻率為0-20kHz,滿足使用需求。
速度傳感器主要參數(shù)如下:
輸出大電流12mA-16mA,典型值14mA
小電流4mA-8mA,典型值7mA
負(fù)載電阻:≤300Ω
根據(jù)上述主要參數(shù),選用100Ω電阻對(duì)輸出電流進(jìn)行采樣,大電流在電阻上產(chǎn)生的電壓為1.2-1.6V,小電流在電阻上產(chǎn)生的電壓為0.4-0.8V。采用1V電壓與傳感器信號(hào)進(jìn)行比較,將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)輸入主機(jī)進(jìn)行采集。速度測(cè)量電路原理框圖如圖5所示。
圖5
傳感器信號(hào)和自檢信號(hào)通過(guò)模擬開(kāi)關(guān)接入比較器,1.2V和0.8V自檢信號(hào)分別模擬傳感器的大電流和小電流所產(chǎn)生的電壓,用于驗(yàn)證比較器是否處于正常狀態(tài)。
(2)速度數(shù)據(jù)分析
主機(jī)對(duì)當(dāng)前計(jì)算得出的車(chē)輛運(yùn)行速度進(jìn)行分析判斷。
①主機(jī)判斷速度值是否大于等于系統(tǒng)中的超速參數(shù)值。若判斷成立,則進(jìn)入超速報(bào)警處理流程。
②主機(jī)判斷速度值是否在一段時(shí)間5s內(nèi)上下無(wú)序波動(dòng)。若判斷成立,則進(jìn)入系統(tǒng)采集部分故障處理流程。
③主機(jī)接收到顯示屏或維護(hù)軟件下發(fā)的“車(chē)輛運(yùn)行檢測(cè)”信號(hào),判斷速度值是否長(zhǎng)時(shí)間30s波動(dòng)于0km/h附近(波動(dòng)范圍默認(rèn)為±2km/h,該數(shù)值可通過(guò)上位機(jī)或顯示屏進(jìn)行參數(shù)配置)。若判斷成立,則進(jìn)入系統(tǒng)采集部分故障處理流程。
④主機(jī)判斷車(chē)輛是否處于啟車(chē)階段。若判斷成立,則進(jìn)入車(chē)輛啟車(chē)處理流程。
⑤主機(jī)判斷車(chē)輛是否處于停車(chē)階段。若判斷成立,則進(jìn)入車(chē)輛停車(chē)處理流程。
⑥主機(jī)判斷車(chē)輛停車(chē)是否超過(guò)5分鐘。若判斷成立,車(chē)速表應(yīng)停止記錄數(shù)據(jù),并且將此事件記錄,當(dāng)列車(chē)行駛時(shí),它應(yīng)該再次自動(dòng)啟動(dòng)。
(3)超速報(bào)警處理
主機(jī)具有超速報(bào)警處理流程,超速閾值存儲(chǔ)在主機(jī)的存儲(chǔ)模塊中,該值可以通過(guò)上位機(jī)和顯示屏進(jìn)行設(shè)置。
①當(dāng)發(fā)生超速事件時(shí),對(duì)“超速報(bào)警”這一事件進(jìn)行標(biāo)定,并結(jié)合當(dāng)前的時(shí)間信息,保存至存儲(chǔ)模塊的事件數(shù)據(jù)區(qū)。只記錄事件開(kāi)始時(shí)刻和結(jié)束時(shí)刻的數(shù)據(jù)。
②當(dāng)發(fā)生超速事件時(shí),主機(jī)通過(guò)GPIO控制LED和蜂鳴器開(kāi)始聲光報(bào)警,顯示屏同時(shí)切換到超速報(bào)警的界面。
③當(dāng)發(fā)生超速事件時(shí),主機(jī)持續(xù)輸出報(bào)警信號(hào)進(jìn)行聲光報(bào)警,直至主機(jī)分析到當(dāng)前的速度值低于超速報(bào)警的速度,或主機(jī)接收到顯示屏下發(fā)的“超速報(bào)警信號(hào)人工切斷”信號(hào),主機(jī)就會(huì)關(guān)閉報(bào)警信號(hào)的輸出。
(4)車(chē)輛啟車(chē)和停車(chē)處理
①主機(jī)判斷車(chē)輛處于啟車(chē)狀態(tài)后,對(duì)啟車(chē)前的最后一個(gè)“0km/h”值進(jìn)行“開(kāi)始行車(chē)”事件標(biāo)定,并保持至存儲(chǔ)模塊的速度數(shù)據(jù)區(qū)。
②主機(jī)判斷車(chē)輛處于停車(chē)狀態(tài)后,對(duì)啟車(chē)前的第一個(gè)“0km/h”值進(jìn)行“結(jié)束行車(chē)”事件標(biāo)定,并保持至存儲(chǔ)模塊的速度數(shù)據(jù)區(qū)。
(5)事件記錄
通過(guò)分析車(chē)輛的速度數(shù)據(jù),判斷是否為某一事件發(fā)生,若發(fā)生則將事件的對(duì)應(yīng)標(biāo)志記錄并存儲(chǔ)下來(lái),對(duì)應(yīng)的事件標(biāo)志如表1所示。
表1 事件標(biāo)志對(duì)應(yīng)
(6)故障記錄
通過(guò)分析車(chē)輛的速度數(shù)據(jù),判斷是否為某一故障發(fā)生,若發(fā)生則將故障的對(duì)應(yīng)標(biāo)志記錄存儲(chǔ)下來(lái),對(duì)應(yīng)的故障標(biāo)志如表2所示。
表2 故障標(biāo)志對(duì)應(yīng)
顯示模塊主要完成速度值的實(shí)時(shí)顯示、車(chē)輛參數(shù)設(shè)置和超速報(bào)警等。顯示屏的亮度可以調(diào)節(jié),分5個(gè)亮度等級(jí)。通過(guò)顯示屏進(jìn)行參數(shù)設(shè)置前,需要輸入登錄口令才能進(jìn)行設(shè)置。顯示模塊通過(guò)RS485串口接收來(lái)自主機(jī)的速度值以及歷史里程等值,同樣通過(guò)RS485串口發(fā)送通過(guò)顯示屏進(jìn)行設(shè)置的參數(shù)值給主機(jī)。由于RS485串口是半雙工的,主機(jī)或顯示模塊在同一時(shí)刻只能接收數(shù)據(jù)或者發(fā)送數(shù)據(jù),因此為了避免在發(fā)送和接收數(shù)據(jù)的時(shí)候出現(xiàn)沖突,當(dāng)顯示屏處于速度和里程顯示界面的時(shí)候,主機(jī)不斷地發(fā)送數(shù)據(jù),顯示模塊處于接收數(shù)據(jù)的狀態(tài),當(dāng)顯示屏處于參數(shù)設(shè)置的界面時(shí),主機(jī)暫停數(shù)據(jù)發(fā)送的工作,切換到接收數(shù)據(jù)的狀態(tài),這樣就避免了由于RS485半雙工通訊導(dǎo)致的數(shù)據(jù)沖突。顯示模塊的主界面(顯示速度和里程等信息)如圖6所示,顯示模塊的參數(shù)設(shè)置界面如圖7所示。
(1)速度顯示
顯示模塊以虛擬儀表界面的方式實(shí)時(shí)顯示車(chē)輛當(dāng)前的速度、里程等信息。實(shí)時(shí)速度以模擬指針和數(shù)字兩種方式顯示給用戶。設(shè)置的最高速度以紅底白字的數(shù)字在數(shù)字速度的右邊顯示,累計(jì)歷史里程顯示在實(shí)時(shí)速度的下方。
(2)超速報(bào)警顯示
報(bào)警模塊實(shí)時(shí)監(jiān)控主機(jī)的報(bào)警信號(hào)。若產(chǎn)生超速報(bào)警的信號(hào),立即進(jìn)入報(bào)警狀態(tài),聲光報(bào)警開(kāi)啟,顯示模塊界面切換到超速報(bào)警手動(dòng)關(guān)閉界面,如圖8所示,可以通過(guò)“Artificial over speed alarm shutoff”按鈕手動(dòng)關(guān)閉超速報(bào)警。若超速報(bào)警信號(hào)消失,則關(guān)閉聲光報(bào)警,并將顯示模塊的畫(huà)面切換到主界面。
(3)顯示模塊參數(shù)設(shè)置
顯示屏可進(jìn)行設(shè)置的參數(shù)如表3所示。當(dāng)前參數(shù)的值顯示在CURRENT列,如圖9所示,需要更改參數(shù)值則點(diǎn)擊SET列的輸入框進(jìn)行設(shè)置。當(dāng)參數(shù)設(shè)置成功后,CURRENT列對(duì)應(yīng)的參數(shù)值就會(huì)發(fā)生改變。
表3 顯示模塊可設(shè)置的參數(shù)列表
存儲(chǔ)模塊位于顯示模塊下方,存儲(chǔ)模塊采用SD卡存儲(chǔ),支持熱插拔。存儲(chǔ)模塊使用AM335X通過(guò)RS485串口和主機(jī)進(jìn)行通訊,接收從主機(jī)發(fā)送來(lái)的速度等信息數(shù)據(jù)并存儲(chǔ)到SD中。存儲(chǔ)方式為先進(jìn)先出的循環(huán)存儲(chǔ)方式。當(dāng)存儲(chǔ)空間容量達(dá)到85%時(shí),控制LED燈閃爍以提醒用戶更換SD卡或清理SD卡的存儲(chǔ)空間。數(shù)據(jù)的存儲(chǔ)格式為“里程速度事件/故障標(biāo)志時(shí)間”。
車(chē)輛速度顯示記錄系統(tǒng)軟件分為主機(jī)軟件、存儲(chǔ)模塊軟件兩部分。主機(jī)軟件為嵌入式軟件,主機(jī)軟件為整個(gè)系統(tǒng)核心,系統(tǒng)所有功能均由主機(jī)軟件控制;存儲(chǔ)模塊軟件也為嵌入式軟件,主要負(fù)責(zé)數(shù)據(jù)存儲(chǔ)等功能。
圖6
圖7
圖8
主機(jī)軟件分為傳感器數(shù)據(jù)讀取、速度計(jì)算分析、顯示模塊通訊、顯示模塊通訊、參數(shù)修改、超速報(bào)警處理、啟車(chē)停車(chē)處理、故障處理和數(shù)據(jù)存儲(chǔ)功能。主機(jī)軟件用于讀取傳感器得到的脈沖數(shù),并對(duì)計(jì)算得出的速度進(jìn)行分析,判斷車(chē)輛當(dāng)前狀態(tài)及設(shè)備工作是否正常,并存儲(chǔ)車(chē)輛當(dāng)前的狀態(tài)信息,用戶可使用維護(hù)軟件通過(guò)網(wǎng)絡(luò)或操作顯示模塊對(duì)設(shè)備參數(shù)進(jìn)行設(shè)置,車(chē)輛狀態(tài)數(shù)據(jù)可通過(guò)維護(hù)軟件進(jìn)行下載,也可以通過(guò)顯示模塊顯示。主機(jī)軟件框圖如圖9所示。
圖9
顯示存儲(chǔ)模塊軟件分為數(shù)據(jù)處理、主機(jī)通訊、數(shù)據(jù)存儲(chǔ)、觸摸屏操作、界面顯示和報(bào)警狀態(tài)讀取功能。顯示模塊軟件用于控制顯示模塊界面顯示、切換,讀取觸摸屏信息,并轉(zhuǎn)換為相應(yīng)指令發(fā)送給主機(jī),對(duì)主機(jī)發(fā)送的顯示數(shù)據(jù)進(jìn)行存儲(chǔ)。顯示存儲(chǔ)模塊軟件框圖如圖10所示。
本文對(duì)基于AM335X芯片的車(chē)輛速度顯示記錄系統(tǒng)核心技術(shù)、整體框架以及詳細(xì)內(nèi)容給出了全面的分析,并給出了系統(tǒng)的硬件和軟件設(shè)計(jì)過(guò)程,并且經(jīng)過(guò)實(shí)驗(yàn)進(jìn)行驗(yàn)證本次設(shè)計(jì)基本能夠完成所需功能。與傳統(tǒng)相比,本文設(shè)計(jì)的車(chē)輛速度顯示記錄系具有以下優(yōu)點(diǎn):采用Linux操作系統(tǒng)多線程編程,不僅實(shí)現(xiàn)了基本的速度采集功能,同時(shí)將速度實(shí)時(shí)顯示到顯示模塊,并且記錄速度等數(shù)據(jù),同時(shí)也對(duì)速度數(shù)據(jù)進(jìn)行分析,對(duì)超速等異常情況的監(jiān)控;通過(guò)網(wǎng)絡(luò)可以在上位機(jī)進(jìn)行軟件的更新和歷史數(shù)據(jù)的下載等。此系統(tǒng)結(jié)構(gòu)簡(jiǎn)單、設(shè)計(jì)合理、維護(hù)方便。
圖10
參考文獻(xiàn):
[1]謝勇.一種新型的電感式位移傳感器.傳感器技術(shù),1999,18(2):22-24
[2]嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)[M].北京:清華大學(xué)出版社,1997.
[3]弓雷.ARM嵌入式Linux系統(tǒng)開(kāi)發(fā)詳解[M].北京:清華大學(xué)出版社,2014.
[4]W.Richard Stevens.UNIX環(huán)境高級(jí)編程.尤晉元,張亞英,戚正偉譯.北京:人民郵電出版社,2011.