余軍軍,王勇
(四川大學電子信息學院,成都610065)
對車輛行駛過程中的速度狀態監視、速度數據存儲以及結果分析,在測速同時又需要對車輛速度的檢測和分析這就需要涉及到多線程支持,并支持在線數據下載、軟件更新等。因此系統采用AMM335X作為CPU,AM335X是 TI(德州儀器)基于 ARM Cortex-A8內核的AM335X微處理器,其定位是工業控制MCU。AM335X搭載Linux操作系統,支持多線程,網絡通信等。然后通過串口屏將速度等信息實時顯示,并使用SD卡將速度數據進行存儲,以滿足對車輛測速、顯示和存儲分析的需求。
系統主通過主機對速度傳感器的輸出信號進行采樣,并結合設置的輪徑值計算車輛當前的速度值。計算后的速度值在顯示屏上實時顯示,并對異常的速度值進行聲光報警。速度數據以間隔1秒鐘和20秒鐘兩種形式存儲至主機和顯示器的存儲模塊中,用戶可以通過上位機的網絡來下載數據,也可以通過讀取存儲模的SD卡下載數據,以提供使用者進行數據查詢。系統框圖如圖1所示。
車輛速度顯示記錄系統主要包括速度傳感器,主機、存儲設備和顯示設備。用來采集、顯示和記錄車輛的行駛速度,監控車輛超速等異常情況以及下載歷史數據。系統主要由主機對兩路各自獨立的速度傳感器的輸出信號進行采樣,其中一路速度傳感器作為冗余備份,當一路速度傳感器信號出現故障時,自動切換到另外一路使用。一共有兩路傳感器輸出信號,信號1和信號2,主機只對信號1進行采樣,對信號2不采樣,系統結合設置的輪徑值計算車輛當前的速度值。計算后的速度值可以在顯示屏上實時顯示,并對異常的速度值進行聲光報警。速度數據以1秒鐘和20秒鐘的時間間隔這兩種方式存儲至主機和存儲設備中,可以通過上位機下載數據,由使用者進行數據查詢操作。
速度顯示記錄系統工作原理框圖如圖2所示。
速度顯示記錄系統主要包括速度傳感器、主機、顯示模塊和存儲模塊,系統拓撲如圖3所示。

圖1

圖2

圖3
主機是整個系統的核心組成,主要實現采集傳感器信號、計算速度值、存儲數據、數據通訊等功能。它集成電源模塊,并從實現功能上劃分為速度測量模塊、通訊模塊、存儲模塊、超速報警模塊和CPU模塊(AM335X),其功能框圖如圖4所示。

圖4
(1)速度測量電路
速度測量電路用于將傳感器輸出的模擬信號轉換為CPU系統模塊可識別的數字信號。通過霍爾傳感器非接觸測量鐵磁性信號盤轉速,車輛的測速信號盤齒數為80個,按默認車輛車輪輪徑84cm計算,車輪周長 l=0.84×π≈2.639m,默認最高車速為120km/h≈33.33m/s,車輛車輪轉速=33.33÷2.639≈12.6轉/s,傳感器輸出頻率≈12.63×80=1.01kHz。傳感器工作頻率為0-20kHz,滿足使用需求。
速度傳感器主要參數如下:
輸出大電流12mA-16mA,典型值14mA
小電流4mA-8mA,典型值7mA
負載電阻:≤300Ω
根據上述主要參數,選用100Ω電阻對輸出電流進行采樣,大電流在電阻上產生的電壓為1.2-1.6V,小電流在電阻上產生的電壓為0.4-0.8V。采用1V電壓與傳感器信號進行比較,將模擬信號轉換為數字信號輸入主機進行采集。速度測量電路原理框圖如圖5所示。

圖5
傳感器信號和自檢信號通過模擬開關接入比較器,1.2V和0.8V自檢信號分別模擬傳感器的大電流和小電流所產生的電壓,用于驗證比較器是否處于正常狀態。
(2)速度數據分析
主機對當前計算得出的車輛運行速度進行分析判斷。
①主機判斷速度值是否大于等于系統中的超速參數值。若判斷成立,則進入超速報警處理流程。
②主機判斷速度值是否在一段時間5s內上下無序波動。若判斷成立,則進入系統采集部分故障處理流程。
③主機接收到顯示屏或維護軟件下發的“車輛運行檢測”信號,判斷速度值是否長時間30s波動于0km/h附近(波動范圍默認為±2km/h,該數值可通過上位機或顯示屏進行參數配置)。若判斷成立,則進入系統采集部分故障處理流程。
④主機判斷車輛是否處于啟車階段。若判斷成立,則進入車輛啟車處理流程。
⑤主機判斷車輛是否處于停車階段。若判斷成立,則進入車輛停車處理流程。
⑥主機判斷車輛停車是否超過5分鐘。若判斷成立,車速表應停止記錄數據,并且將此事件記錄,當列車行駛時,它應該再次自動啟動。
(3)超速報警處理
主機具有超速報警處理流程,超速閾值存儲在主機的存儲模塊中,該值可以通過上位機和顯示屏進行設置。
①當發生超速事件時,對“超速報警”這一事件進行標定,并結合當前的時間信息,保存至存儲模塊的事件數據區。只記錄事件開始時刻和結束時刻的數據。
②當發生超速事件時,主機通過GPIO控制LED和蜂鳴器開始聲光報警,顯示屏同時切換到超速報警的界面。
③當發生超速事件時,主機持續輸出報警信號進行聲光報警,直至主機分析到當前的速度值低于超速報警的速度,或主機接收到顯示屏下發的“超速報警信號人工切斷”信號,主機就會關閉報警信號的輸出。
(4)車輛啟車和停車處理
①主機判斷車輛處于啟車狀態后,對啟車前的最后一個“0km/h”值進行“開始行車”事件標定,并保持至存儲模塊的速度數據區。
②主機判斷車輛處于停車狀態后,對啟車前的第一個“0km/h”值進行“結束行車”事件標定,并保持至存儲模塊的速度數據區。
(5)事件記錄
通過分析車輛的速度數據,判斷是否為某一事件發生,若發生則將事件的對應標志記錄并存儲下來,對應的事件標志如表1所示。

表1 事件標志對應
(6)故障記錄
通過分析車輛的速度數據,判斷是否為某一故障發生,若發生則將故障的對應標志記錄存儲下來,對應的故障標志如表2所示。

表2 故障標志對應
顯示模塊主要完成速度值的實時顯示、車輛參數設置和超速報警等。顯示屏的亮度可以調節,分5個亮度等級。通過顯示屏進行參數設置前,需要輸入登錄口令才能進行設置。顯示模塊通過RS485串口接收來自主機的速度值以及歷史里程等值,同樣通過RS485串口發送通過顯示屏進行設置的參數值給主機。由于RS485串口是半雙工的,主機或顯示模塊在同一時刻只能接收數據或者發送數據,因此為了避免在發送和接收數據的時候出現沖突,當顯示屏處于速度和里程顯示界面的時候,主機不斷地發送數據,顯示模塊處于接收數據的狀態,當顯示屏處于參數設置的界面時,主機暫停數據發送的工作,切換到接收數據的狀態,這樣就避免了由于RS485半雙工通訊導致的數據沖突。顯示模塊的主界面(顯示速度和里程等信息)如圖6所示,顯示模塊的參數設置界面如圖7所示。
(1)速度顯示
顯示模塊以虛擬儀表界面的方式實時顯示車輛當前的速度、里程等信息。實時速度以模擬指針和數字兩種方式顯示給用戶。設置的最高速度以紅底白字的數字在數字速度的右邊顯示,累計歷史里程顯示在實時速度的下方。
(2)超速報警顯示
報警模塊實時監控主機的報警信號。若產生超速報警的信號,立即進入報警狀態,聲光報警開啟,顯示模塊界面切換到超速報警手動關閉界面,如圖8所示,可以通過“Artificial over speed alarm shutoff”按鈕手動關閉超速報警。若超速報警信號消失,則關閉聲光報警,并將顯示模塊的畫面切換到主界面。
(3)顯示模塊參數設置
顯示屏可進行設置的參數如表3所示。當前參數的值顯示在CURRENT列,如圖9所示,需要更改參數值則點擊SET列的輸入框進行設置。當參數設置成功后,CURRENT列對應的參數值就會發生改變。

表3 顯示模塊可設置的參數列表
存儲模塊位于顯示模塊下方,存儲模塊采用SD卡存儲,支持熱插拔。存儲模塊使用AM335X通過RS485串口和主機進行通訊,接收從主機發送來的速度等信息數據并存儲到SD中。存儲方式為先進先出的循環存儲方式。當存儲空間容量達到85%時,控制LED燈閃爍以提醒用戶更換SD卡或清理SD卡的存儲空間。數據的存儲格式為“里程速度事件/故障標志時間”。
車輛速度顯示記錄系統軟件分為主機軟件、存儲模塊軟件兩部分。主機軟件為嵌入式軟件,主機軟件為整個系統核心,系統所有功能均由主機軟件控制;存儲模塊軟件也為嵌入式軟件,主要負責數據存儲等功能。

圖6

圖7

圖8
主機軟件分為傳感器數據讀取、速度計算分析、顯示模塊通訊、顯示模塊通訊、參數修改、超速報警處理、啟車停車處理、故障處理和數據存儲功能。主機軟件用于讀取傳感器得到的脈沖數,并對計算得出的速度進行分析,判斷車輛當前狀態及設備工作是否正常,并存儲車輛當前的狀態信息,用戶可使用維護軟件通過網絡或操作顯示模塊對設備參數進行設置,車輛狀態數據可通過維護軟件進行下載,也可以通過顯示模塊顯示。主機軟件框圖如圖9所示。

圖9
顯示存儲模塊軟件分為數據處理、主機通訊、數據存儲、觸摸屏操作、界面顯示和報警狀態讀取功能。顯示模塊軟件用于控制顯示模塊界面顯示、切換,讀取觸摸屏信息,并轉換為相應指令發送給主機,對主機發送的顯示數據進行存儲。顯示存儲模塊軟件框圖如圖10所示。
本文對基于AM335X芯片的車輛速度顯示記錄系統核心技術、整體框架以及詳細內容給出了全面的分析,并給出了系統的硬件和軟件設計過程,并且經過實驗進行驗證本次設計基本能夠完成所需功能。與傳統相比,本文設計的車輛速度顯示記錄系具有以下優點:采用Linux操作系統多線程編程,不僅實現了基本的速度采集功能,同時將速度實時顯示到顯示模塊,并且記錄速度等數據,同時也對速度數據進行分析,對超速等異常情況的監控;通過網絡可以在上位機進行軟件的更新和歷史數據的下載等。此系統結構簡單、設計合理、維護方便。

圖10
參考文獻:
[1]謝勇.一種新型的電感式位移傳感器.傳感器技術,1999,18(2):22-24
[2]嚴蔚敏,吳偉民.數據結構(C語言版)[M].北京:清華大學出版社,1997.
[3]弓雷.ARM嵌入式Linux系統開發詳解[M].北京:清華大學出版社,2014.
[4]W.Richard Stevens.UNIX環境高級編程.尤晉元,張亞英,戚正偉譯.北京:人民郵電出版社,2011.