曾悅 江蘇第二師范學院數學與信息技術學院
基于ARM的車輛速度監(jiān)控系統(tǒng)設計研究
曾悅 江蘇第二師范學院數學與信息技術學院
車輛監(jiān)控系統(tǒng)的研究是集全球衛(wèi)星定位系統(tǒng)(GPS)、地理信息系統(tǒng)(GAS)和無線通訊技術為一體產生的一個嶄新的領域。論文首先提出了嵌入式車輛速度監(jiān)控系統(tǒng)的總體設計思想和所用技術,然后闡述了系統(tǒng)的需求分析,系統(tǒng)使用嵌入式實驗箱Cortex-A8的使用方法、Linux交叉編譯軟件環(huán)境。利用嵌入式實驗箱Cortex-A8搭建嵌入式系統(tǒng)開發(fā)環(huán)境,搭建Boa服務器,利用Cgi編寫網頁程序,而后分別介紹了步進電機、LED矩陣、跑馬燈、數碼管以及蜂鳴器模塊的功能設計,在此基礎上給出了系統(tǒng)的實現方法,并對于各功能模塊進行測試。
嵌入式 ARM Cortex-A8 web 車輛速度監(jiān)控 單片機
隨著國民經濟增長,伴隨著生活質量的改善,私家車數量呈指數增長,同時也帶來了愈來愈多的交通事故,其中車輛速度是引起交通事故的重要原因之一,故而實時的 車輛速度報告是減少車禍隱患的重要方法之一?,F有的交通數據監(jiān)測技術中,常見的檢測器種類包括磁感應檢測器,波頻車輛檢測器,視頻檢測器等。交警部門常用的測速儀原理是測速儀前后兩次發(fā)出并接受被測車返回的超聲波信號,再根據兩次信號的時間差,測出車速?;蚴歉鶕曨l錄像中車輛移動距離及時間計算車速。目前較智能的百度地圖通過GPS技術接收衛(wèi)星信號計算車速,但由于時延和障礙物的影響,存在難以準確分析具體的復雜路況、提供準確數據的問題,并沒能做到真正意義上的實時性和穩(wěn)定性。
現今ARM技術已發(fā)展較為成熟,深入到各個領域:工業(yè)控制、無線通訊、網絡應用、消費類電子產品和成像與安全成品等等。ARM技術本身具有ARM嵌入式技術具有低功耗、性能高、成本低的特點,軟件代碼小,高度自動化,響應速度快,能實現軟件與硬件的一體化,實現真正的實時性。
本文設計了一種基于ARM Cortex-A8處理器在Linux操作系統(tǒng)下的車輛速度監(jiān)控系統(tǒng)。首先對系統(tǒng)進行了總體的方案設計,介紹了環(huán)境搭建方法,其次對各功能模塊進行細致設計,最后以S5PV210芯片為例進行了軟件測試。
2.1 基于Cortex-A8的嵌入式系統(tǒng)的硬件架構
Cortex系列處理器,是ARM公司繼經典ARM處理器系列之后的又一個新的產品系列。原先ARM系列處理器自ARM 11型號之后便不再生產。新的Cortex系列處理器,基于ARM公司最新的ARMv7架構的處理器,總共分為面向高規(guī)格的基于虛擬內存的操作系統(tǒng)和用戶應用領域的Cortex-A系列、針對實時系統(tǒng)的Cortex-R系列以及專業(yè)用于微控制領域的Cortex-M系列三大類。
本系統(tǒng)中選用的主控板為S5PV210的開發(fā)板,S5PV210是著名的半導體公司SAMSUNG推出的一款32位RISC處理器,它為手持設備和一般類型的應用提供了低價格、低功耗、高性能微控制器的解決方案。S5PV210的內核基于Cortex-A8,帶有MMU(Memory Management Unit)功能,該開發(fā)板硬件資源豐富,是Cortex-A系列性能最優(yōu)秀的開發(fā)板之一。
2.2 S5PV210硬件結構
S5PV210采取了64位的內部總線架構,并包括許多性能強大的加速硬件,例如針對于圖形圖像加速、顯示、伸縮裁剪、集成的多媒體格式編碼(MFC),硬件加速還支持實時會議、模擬電視輸出、高清視頻、PAL等。
S5PV210還支持一個可擴展高端內存的接口,其中DRAM接口可配置支持DDR、DDR2、LPDDR2。其結構框圖如圖1所示。
圖1 S5PV210結構框圖
完成起入室系統(tǒng)實驗需要借助計算機系統(tǒng)作為終端和編譯器,要完成從物理連接到系統(tǒng)相通。首先物理連接要完成實驗平臺和計算機的連接,分2種線連:一是網絡互通,Cortex-A8系統(tǒng)平臺和實體計算機及安裝在實體機上的虛擬機之間的網絡互通。二是串口通信,由于Cortex-A8平臺沒有執(zhí)行命令的界面,必須借助計算機通信終端幫助完成。
第一步:將網線和串口線連接在計算機和實驗箱。
第二步:安裝虛擬機,選用VMware Workstation,安裝Fedora10_A8_Linux。
第三步:配置三個系統(tǒng)的IP設置,首先配置虛擬機的IP,其次配置實體計算機的IP,最后配置Cortex-A8平臺的IP,確保三個IP在同一個網段。配置完成后利用ping命令檢測。
第四步:使用Samba服務,Windows系統(tǒng)下的實體計算機可訪問虛擬機共享。為Cortex-A8掛載NFS服務,可實現虛擬機和Cortex-A8系統(tǒng)平臺板之間的通信。
第五步:安裝Boa服務器。
4.1 總體設計
設計網頁,在網頁上給定車輛初始速度和加速度,網頁上設計“開始”,“加速”,“減速”,“停止”,“重置”5個按鈕來控制車輛,并在網頁上顯示當前車輛速度和加速度,點擊“開始”按鈕車輛開始啟動,車輛按照初速速度開始行駛并且按照指定的加速度加速或減速;每點擊一次“加速”按鈕,將使車輛的加速度增加2;每點擊一次“減速”按鈕,將使車輛的加速度減少2;點擊“停止”按鈕將使車輛速度不會變化,讓其以當前速度行駛;點擊“重置”按鈕將使車輛的速度和加速度都重置為初始速度和加速度。同時控制鍵盤方向鍵中的“上下”鍵來增減車輛的加速度,控制“空格”鍵來讓車輛速度停止變化,控制“Enter”鍵讓車輛以初始速度和加速度開始行駛,控制“Esc”鍵使車輛的速度和加速度都重置為初始速度和加速度,即以“Enter”鍵、“上下”鍵、“空格”鍵、“Esc”鍵分別實現“開始”,“加速”,“減速”,“停止”,“重置”5個按鈕的功能,讓使用此系統(tǒng)的用戶可以有多種方式控制車輛。
同時,每隔一秒web頁面向實驗箱發(fā)送一次請求,傳入當前的車輛速度,實驗箱接收到車輛的速度,后臺程序分別控制實驗箱的5個硬件分別以不同的形式模擬顯示當前的車輛實時速度,實現車輛速度的監(jiān)控,如果車輛速度大于80m/s時,蜂鳴器將會發(fā)出警報并且矩陣Led將顯示危險標志同時提示用戶速度過高,并在網頁上顯示“速度過高,請減速”的提示。
4.2 人機交互的Web網頁設計
整個web就一個頁面,所有的動態(tài)效果,與后臺的交互都是通過JavaScript來實現的。首先就是頁面的設計,主要有速度,加速度顯示框。開始,停止,重置,加速,減速按鈕。
①開始按鈕控制系統(tǒng)啟動,即啟動定時器也可以使用回車鍵,當定時器啟動后,速度會根據加速度每秒中變化一次并向后臺發(fā)送請求
②加速按鈕使加速度+2
③減速按鈕使加速度-2
④停止按鈕停止定時器,速度不再發(fā)生變化
⑤重置按鈕使速度,加速度初始化,并停止系統(tǒng)
⑥Info框是用來顯示當前速度是否合理,速度<=60顯示綠色,速度>80顯示紅色并給出提示,處在60和80之間顯示黃色。
4.3 功能模塊
4.3.1 步進電機
本模塊功能是模擬車輛發(fā)動機的轉動速度,隨著速度的增加,步進電機轉速越快。從網頁中接收車輛速度值來控制步進電機的轉動,需要考慮如何將速度轉換為轉速,假設將車輛速度轉換成步進電機的休眠時間來控制步進電機的轉速,當然在編寫代碼時還需要編寫相應代碼打開步進電機的驅動和將外部傳入車輛進行調用。
4.3.2 LED矩陣
對LED矩陣的設想是能夠根據車輛的速度繪制相應的圖形并向用戶形象地展示出來。本模塊設法將速度分為4種范圍:慢、正常、快、超速,每個范圍對應繪制相應的矩陣LED的顯示圖像。故需要編寫矩陣LED控制程序,錄入四種圖像的控制數據,后需在與驅動的協(xié)調運作上下一些功夫,對硬件驅動完成較好,整體難度不算高,系統(tǒng)協(xié)調度較好。
4.3.3 跑馬燈
跑馬燈模塊的設計思想來源于跑馬燈的亮滅原理,在該模塊通過跑馬燈的亮滅個數來直觀地表示速度的范圍區(qū)間,特別的針對大于8時是點亮8個跑馬燈。并且當其傳來重置命令時(即速度為-1),會熄滅全部跑馬燈。
4.3.4 數碼管
數碼管部分的設想是為實現顯示當前速度的功能。生活中車輛的速度不會超過三位數,故而設想選擇seg4、seg5、seg6三位數碼管顯示當前車輛速度。故本模塊的重點放在如何能夠將網頁上的速度傳到數碼管中,并且能夠準確的顯示出來。因此驅動部分要設計好與應用程序的參數接口部分,同時配置好相關初始化如數碼管的接口地址配置,由于數碼管是共陽極方式顯示,為了讓三位數碼管顯示不同的數字,則分別控制seg4、seg5、seg6顯示,先控制seg4顯示速度的百位,然后睡眠1ms(很短的時間)后再控制seg5顯示速度的十位,再睡眠1ms再控制seg6顯示速度的個位;然后再循環(huán)上面的操作,由于人的視覺暫留效應,即可將web頁面的速度實時顯示在數碼管上。
4.3.5 蜂鳴器
蜂鳴器是通過I/O口GPD0CON3來間接控制的,為了增加驅動能力,增加了三級管驅動電路。當三極管的基極(B)為高電平即GPF15為高電平時,蜂鳴器會鳴叫,反之則不響。通過設置兩者之間的時間(即改變頻率)可以使蜂鳴器發(fā)出不同的聲音,蜂鳴器在此處,應其特性實現超速預警。
5.1 步進電機和蜂鳴器
5.1.1 測試方法
①虛擬機Linux系統(tǒng)中編寫一個steppertest.c和pwmtest.c文件,編譯后掛載到實驗箱中,輸入./steppertest和/pwmtest運行,并通過不斷修改代碼、編譯運行來控制步進電機轉動和蜂鳴器報警,檢查步進電機的轉動速度是否如預期那樣隨著車輛速度的增加而增加,蜂鳴器是否能在車輛速度大于80的情況下報警。
②將所有的代碼整理好放到實驗箱web目錄下,并利用網頁來模擬車輛速度的變化過程,從而測試步進電機和蜂鳴器是否能正常工作,最后形成最終版的代碼。
5.1.2 測試結果如圖2所示
圖2 步進電機測試結果示意圖
5.2 LED矩陣
5.2.1 測試方法
①虛擬機Linux系統(tǒng)中編寫一個matrixledtest.c文件,編譯后掛載到實驗箱中,輸入./matrixledtest運行,并通過不斷修改代碼、編譯運行來顯示不同的圖像,檢查矩陣LED顯示的圖像是否和預期的效果相符。
②將所有的代碼整理好放到實驗箱web目錄下,并利用網頁來模擬車輛速度的變化過程,從而測試矩陣LED的顯示是否正常,最后形成最終版的代碼。
5.2.2 測試結果如圖3所示
圖3 LED矩陣模塊測試結果示意圖
5.3 跑馬燈
5.3.1 測試方法
①虛擬機Linux系統(tǒng)中編寫一個ledtest.c文件,編譯后掛載到實驗箱中,輸入./ledtest運行,并通過不斷修改代碼、編譯運行來點亮不同個數的跑馬燈,檢查跑馬燈顯示的個數是否和預期的效果相符。
②將所有的代碼整理好放到實驗箱web目錄下,并利用網頁來模擬車輛速度的變化過程,從而測試跑馬燈的顯示是否正常,最后形成最終版的代碼。
5.3.2 測試結果如圖4所示
圖4 跑馬燈測試結果示意圖
5.4 數碼管
5.4.1 測試方法
①燒寫驅動后,先編寫一個segtest.c文件,編譯后掛載到實驗箱中,輸入./segtest運行,并通過在segtest.c程序中使用循環(huán)來改變速度來測試數碼管可否根據要求實時顯示當前速度。
②將寫好的segtest.c代碼進行修改,編寫好接口供main()函數調用,在main()函數中與其他硬件的應用程序實現集成,再通過web頁面?zhèn)魅氘斍败囕v速度,調用main()函數去控制各個硬件進行調試,實現整體測試。5.4.2 測試結果如圖5所示
圖5 數碼管測試結果示意圖
本設計是實現車輛速度的實時監(jiān)控,并對于超速行為進行及時報警,提示駕駛員減速慢行,降低交通事故發(fā)生的可能。由于本次設計采用了性能高、成本低、能耗省的ARM芯片,軟件代碼小,高度自動化,響應速度快,使得本次設計成本降低,可靠性提高,程序運行速度快,功耗降低?;贏RM技術的車輛速度監(jiān)控系統(tǒng)開發(fā),與傳統(tǒng)單片機控制的車輛監(jiān)控系統(tǒng)相比,本系統(tǒng)克服了單片機系統(tǒng)因其功能簡單、無操作系統(tǒng)、程序移植性差而只能滿足簡單控制的缺點,能實現復雜任務的監(jiān)控,以及對web頁面各個參數進行收集、處理、顯示。車輛速度監(jiān)控系統(tǒng)發(fā)展成熟后可以被廣泛使用,成為現代智能交通(ITS)系統(tǒng)的發(fā)展方向和趨勢,而且車輛速度的檢測是智能交通系統(tǒng)的重要組成部分,實現真正“萬物相連”的物聯網。
[1]張慶全基于GPS_GIS車輛監(jiān)控系統(tǒng)的設計與實現[D].哈爾濱:哈爾濱理工大學,2007
[2]范靈基于CORTEX-A8的物聯網智能應用[D].成都:電子科技大學,2014
[3]朱存,潘春花,孫燕基于VMware的Linux系統(tǒng)下Cortex-A8平臺的環(huán)境搭建[J].無限互聯科技Wireless Internet Technology,2015,(19):7-9,34
江蘇省大學生實踐創(chuàng)新訓練計劃項目(201614436030Y)。