當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于ARM 的紅外光汽車速度管理系統(tǒng)研究

引 言

  車輛在公路上應(yīng)以與路況相符的速度行駛,太快了易出事故, 太慢了將成為后續(xù)車輛的絆腳石。但是,常有個別司機不按規(guī)定的速度行駛而違章,導(dǎo)致事故頻生。交管部門為了取證糾違, 目前多采用雷達測速系統(tǒng)(利用多普勒效應(yīng))對違章車輛進行測速取證,予以處罰。

  可近期市場上出現(xiàn)了一種叫做“電子狗”的反雷達測速裝置,此裝置在接近雷達測速區(qū)時,能提前捕捉到雷達測速的信息而報警,使違章車輛逃脫處罰,事故隱患猶存。因此,研究一套既能準確測定汽車速度, 又不會被“電子狗”所發(fā)現(xiàn)的可靠測速、管理系統(tǒng)就尤為必要。

  本文研究的以紅外光傳感器、ARM 為核心部件的新型測速系統(tǒng)測速時不會被“電子狗”所發(fā)現(xiàn),不僅能識別汽車速度V 的大小,還能測出其速度超過上限速度(Vmax)的量值(+△V)或低于下限速度(Vmin)的量值(—△V)等信息,據(jù)該信息酌情驅(qū)動取證系統(tǒng)(打印、照相)工作,能有效提高交通管制的力度。

1 系統(tǒng)工作原理

  系統(tǒng)由調(diào)制式紅外光傳感器[1]、飛利浦公司的LPC2294 ARM 嵌入式處理器,帶觸摸屏的彩色液晶顯示器以及報警攝像等系統(tǒng)構(gòu)成,如圖1 所示。圖1 中M、N 兩點是路旁一側(cè)護欄上的兩點,分別安裝著可發(fā)射38KHz 的紅外發(fā)光管,一直向外發(fā)射調(diào)制式紅外光。調(diào)制式紅外光被另一側(cè)護欄上相應(yīng)的兩點M’、N’處安放的光電接收器接收,共同組成一個光控測速區(qū)。當(dāng)有車輛通過光控測速區(qū)時,M 點發(fā)出的光線首先被阻斷,第一個光電探測器M-M’將光信號轉(zhuǎn)換為電信號送入信號調(diào)理電路,經(jīng)過放大、整形,送至ARM 處理器。ARM接到此觸發(fā)信號,打開內(nèi)部計數(shù)器開始計數(shù),時間t 的值相應(yīng)不斷增加。當(dāng)汽車達到N 點時,第二個光電探測器N-N’將光信號轉(zhuǎn)換為電信號經(jīng)信號調(diào)理電路送至ARM 處理器使計數(shù)器停止計數(shù),t 的值就確定了。由M、N 兩點間的距離L 除以t 便得到速度V。如果計算得到的V 值在設(shè)定的安全速度范圍之內(nèi),顯示屏則顯示當(dāng)前安全速度值,攝像、報警電路就不工作;如果V 值超出設(shè)定范圍之外,則計算速度偏移量△V =Vmax—V,同時顯示該車輛超速行駛,并讓攝像、報警電路啟動工作。同理,若車輛以V<Vmin 的低速狀態(tài)通過光控測速區(qū)時,照相及報警系統(tǒng)亦啟動工作,顯示屏顯示超速信息,提示此時車輛處于超低速行駛狀態(tài)。


2 系統(tǒng)硬件設(shè)計

  2.1 光電發(fā)射接收系統(tǒng)

  光電發(fā)射接收系統(tǒng)原理如圖2 所示。振蕩器產(chǎn)生頻率為38KHz 的信號, 驅(qū)動紅外發(fā)光管發(fā)光。光電接收器則接收紅外發(fā)光管射出的光脈沖,接收到的光脈沖信號經(jīng)調(diào)節(jié)電位器連接到檢測器的輸入端[2]。將接收到的調(diào)制式光脈沖信號送入放大器進行放大,經(jīng)閾值檢測后變成與同步振蕩器同步輸出的邏輯電平脈沖,再通過脈沖同步解調(diào),得到與車輛運動狀態(tài)相關(guān)的光電信號,并經(jīng)緩沖輸出。

 2.2 信號接收與定時器工作

  如圖3 所示,在沒有車輛經(jīng)過光控測速區(qū)時,M’、N’兩

點一直能接收到38KHz 的調(diào)制紅外光,均輸出高電平,暫穩(wěn)態(tài)

電路均處在穩(wěn)態(tài)。門G 的輸出為邏輯1,UL 始終為高電平。當(dāng)

有車輛通過光控測速區(qū)時,M 點發(fā)出的光線首先被阻斷,UM 由

高電平先變?yōu)榈碗娖?,暫穩(wěn)態(tài)電路1 被觸發(fā)而進入暫穩(wěn)態(tài),如

圖4 中的t1 時刻之后所示。此時,UM’為低電平,G 門觸發(fā),

輸出UL 為低電平。ARM 系統(tǒng)的CAP1.0 捕獲到UL 由高電平變低

電平,發(fā)生下降沿捕獲,自動裝載T1TC 的值傳輸?shù)讲东@寄存器

T1CR,并產(chǎn)生中斷,進入中斷服務(wù)子程序,讀取T1CR 的值而保

存。 [!--empirenews.page--]

  隨后,當(dāng)汽車達到N 點時——即在t2 時刻,暫穩(wěn)態(tài)電路2

被觸發(fā),UN’變?yōu)楦唠娖?,?jīng)過非門變?yōu)榈碗娖経N’’。此時G

門輸出由低電平變?yōu)楦唠娖?,ARM 的CAP1.0 捕獲到UL由低電平

變高電平,發(fā)生上升沿捕獲,自動裝載T1TC 的值到捕獲寄存器

T1CR,并產(chǎn)生中斷,進入中斷服務(wù)子程序。計算兩次捕獲寄存

器T1CR 的差值N 及計數(shù)器的工作頻率f,得到車輛通過兩測試

點M 點和N 點的時間差t2-t1。

  2.3 ARM 核心板及觸摸顯示系統(tǒng)

 系統(tǒng)核心板采用DEVICEARM2200 工控板, 其內(nèi)嵌飛利浦公司的LPC2294ARM7TDMI-S 嵌入式處理器,最高頻率60MHz,并帶有8M PSRAM 存儲器和16M NANDFlash,性能完全滿足高速車速測量系統(tǒng)的要求。由于其較小的封裝、極低的功耗,可使用電池供電,因此十分適合于野外無外接電源的情況下工作。

  電路連接如圖 5 所示:顯示屏選用320×240 彩色液晶屏,將液晶控制器S1D13503 的AB0 至AB16 與LPC2294 的地址總線A1 至A17 相連,以16 位總線方式操作;S1D13503的數(shù)據(jù)總線DB0 至DB7 接LPC2294 的外部存儲器數(shù)據(jù)線D0 至D7, DB8 至DB15 接VDD,實現(xiàn)與LPC2294 的8 位數(shù)據(jù)總線連接;其硬件配置由兩片高速CMOS 靜態(tài)存儲器IS61C1024對S1D13503 的VD0 至VD15 來完成。四線電阻式觸摸屏可檢測到觸摸信號并通過觸摸屏控制器FM7843 將模擬信號轉(zhuǎn)換為位置坐標數(shù)據(jù),傳遞給LPC2294 進行處理[3]。

3 系統(tǒng)軟件設(shè)計

  3.1 uclinux 系統(tǒng)移植

  雖然當(dāng)前 uclinux 已經(jīng)支持無MMU 的ARM 體系結(jié)構(gòu),但由于具體使用的ARM 處理器芯片存儲系統(tǒng)不同、片內(nèi)的外設(shè)不同、中斷系統(tǒng)也不同,因此需添加或修改LPC2294 芯片相關(guān)的具體代碼[6]。包括:添加芯片型號、啟動代碼和描述機型的數(shù)據(jù)結(jié)構(gòu);修改中斷系統(tǒng)相關(guān)代碼并在include/asm-armnommu/arch-lpc/目錄下添加irq.h、irq.c 和irqs.h 文件,實現(xiàn)系統(tǒng)中斷;在include/asm-armnommu/arch-lpc/目錄下添加dma.h、memory.h、processor.h 等頭文件,并在hardware.h 文件中定義包括時鐘、串口、中斷控制器等寄存器地址;在include/asm-armnommu/arch-lpc/目錄下創(chuàng)建文件time.h、timex.h 及serial.h 實現(xiàn)時鐘串口驅(qū)動的移植;修改arch/armnommu/config 目錄下的config.in 文件設(shè)定菜單配置以及修改mach-lpc/makefile、linux-2.4.x/makefile 和arch/armnommu/makefile 等文件。 [!--empirenews.page--]

  3.2 設(shè)備驅(qū)動程序設(shè)計

 由于uclinux 2.4.x內(nèi)核為非搶占式,進程時間片為10ms,本身實時性并不高。但由于本系統(tǒng)中只有一個高實時性任務(wù)----車輛通過信號的捕獲,因此,可通過TIMER1設(shè)備驅(qū)動程序操作LPC2294上的定時器實現(xiàn)CAP1.0腳信號的雙邊沿捕獲。TIMER1設(shè)備驅(qū)動由驅(qū)動程序初始化函數(shù)、清除函數(shù)、設(shè)備信息結(jié)構(gòu)體,open、release、read、ioctl等方法以及中斷服務(wù)程序等構(gòu)成。uclinux系統(tǒng)在加載內(nèi)核模塊時首先會執(zhí)行初始化函數(shù)timer1_init( ),通過調(diào)用result = register_chrdev (MAJOR_NR, DEVICE_NAME , &timer1_fops)注冊字符設(shè)備;并依據(jù)返回值result判斷設(shè)備注冊是否成功;在內(nèi)核卸載模塊時,執(zhí)行清除函數(shù)timer1_cleanup( ),通過調(diào)用unregister_chrdev(MAJOR_NR, DEVICE_NAME)注消字符設(shè)備。設(shè)備信息結(jié)構(gòu)體用來描述該設(shè)備的open、release、read等操作方法:其中,在系統(tǒng)和應(yīng)用程序首次使用此定時器時,首先執(zhí)行timer1_open(struct inode *inode, struct file *filp) 方法調(diào)用request_irq(IRQ_timer1, timer1_irq_handle, SA_INTERRUPT, "my" DEVICE_NAME, NULL)函數(shù)進行中斷響應(yīng)函數(shù)注冊,配置定時器T1IR、T1PR、T1TC、T1TCR等寄存器完成定時器初始化,使用中斷開關(guān)函數(shù)local_irq_save()和local_irq_restore()來控制臨界區(qū);最終由uclinux系統(tǒng)接收硬件中斷并調(diào)用中斷服務(wù)程序;當(dāng)系統(tǒng)和應(yīng)用程序不再使用該定時器時調(diào)用timer1_release(struct inode *inode, struct file *filp)進行關(guān)閉和釋放。中斷服務(wù)程序timer1_irq_handle(int irq,void *dev_id,struct pt_regs *regs)完成清除中斷源、定時器計數(shù)器復(fù)位以及通過uclinux提供的宏inl(T1CR)讀取捕獲寄存器中計數(shù)器的值并調(diào)用系統(tǒng)函數(shù)copy_to_usr()將數(shù)據(jù)從內(nèi)核空間拷貝至用戶空間。最后,將設(shè)備驅(qū)動程序timer1. c復(fù)制到linux-2.4.x/driver/char目錄下,在timer1.c中加入函數(shù)timer1_init()完成設(shè)備的注冊。在mem.c文件中添加timer1_init()外部函數(shù)說明,在chr_dev_init()函數(shù)添加timer1_init()調(diào)用,編譯得到新內(nèi)核[4]。

  3.3 MiniGUI 移植

  目前,嵌入式Linux 平臺下常見的 GUI 系統(tǒng)有: MicroWindows、QT/Embedded、XWindows、OpenGUI、MiniGUI 等多種選擇。從易用性、跨平臺性以及開發(fā)成本等多方面因素考慮,本文采用飛漫公司的MiniGUI 實現(xiàn)GUI 人機交互圖形界面的開發(fā)[5]。為方便調(diào)試,采用VMware 軟件在windows 系統(tǒng)下建立linux 平臺的宿主機,進入linux 環(huán)境,從www.minigui.com 上下載函數(shù)庫源代碼包libminigui-str-1.6.2.tar.gz 和資源文件包minigui-res-str-1.6.tar.gz 并展開。

  MiniGUI 為實現(xiàn)其跨平臺特性,采用GAL(圖形抽象層)和IAL(輸入抽象層)將MiniGUI上層和操作系統(tǒng)隔離開。因此,首先創(chuàng)建lcdgal.c 文件,參考native 圖形引擎數(shù)據(jù)結(jié)構(gòu)和Framebuffer 驅(qū)動程序按照GAL 接口編寫接口函數(shù);然后將液晶驅(qū)動程序lcddriver.clcddriver.h 及LPC2294 的頭文件lpc2294.h 放在libminigui 下的/src/gal/native 目錄下并修改Makefile.am 文件。在libminigui 的/src/ial 目錄下添加ialinput.h 和 ialinput.c 編寫IAL 接口函數(shù),并添加觸摸屏控制器驅(qū)動程序fm7843.c、fm7843.h 到/src/ial 目錄,同時修改Makefile.am文件。加入MINIGUI 擴展庫libmgext 支持,以Threads 模式交叉編譯并將得到的MiniGUI靜態(tài)鏈接庫與交叉編譯后的用戶應(yīng)用程序進行鏈接,生成可在目標板上運行的目標文件,最后在移植好的uclinux 系統(tǒng)上安裝運行MiniGUI 所需的資源文件。

  3.4 用戶界面設(shè)計

  用戶界面主要包括一個主窗體用來顯示速度信息以及一個為車輛速度報警而設(shè)定的對話框。以MniniGUIMain( int argc, const char* argv[ ] ) 為入口,定義顯示區(qū)域,使用CreateThreadForMainWindow( )函數(shù)創(chuàng)建了兩個并發(fā)的線程,定義線程的入口函數(shù)地址并返回線程標識符;在主線程中配置完成對timer1 的初始化操作,通過hMainWnd =CreateMainWindow( &Createinfo ) 創(chuàng)建主窗體并配置Createinfo 的各項屬性, 調(diào)用ShowWindows( hMainWnd, SW_SHOWNORMAL )函數(shù)顯示窗體作為用戶主界面,最終進入消息循環(huán)。監(jiān)視線程和主線程同時啟動,此后,監(jiān)視線程在后臺對車速信息數(shù)據(jù)進行實時監(jiān)控,并通過SendMessage( )向主線程發(fā)送相應(yīng)的消息。消息的處理與超速報警判定可在主窗體窗口過程函數(shù)SpeedWinProc( )中實現(xiàn)。主窗體中的SET和About 下拉菜單通過CreatMenu( )和CreatePopupMenu( )函數(shù)實現(xiàn),分別用于彈出速度設(shè)定對話框和系統(tǒng)說明對話框。將菜單句柄賦給主窗體的hMenu 屬性并在窗體過程函數(shù)中加入對應(yīng)菜單的處理代碼,當(dāng)菜單被管理者點擊時,該窗體會收到相應(yīng)的MSG_COMMAND 消息,系統(tǒng)根據(jù)消息執(zhí)行相應(yīng)菜單下的速度設(shè)定處理程序或系統(tǒng)說明顯示程序。在速度設(shè)定對話框中,按鈕使用普通“確定/OK”按鈕CTRL_BUTTON,兩個靜態(tài)框CTRL_STATIC 分別標識兩個單行編輯框CTRL_SLEDIT的功能:“上限速度設(shè)定”和“下限速度設(shè)定”。兩個編輯框用來接收管理者輸入的上限速度和下限速度。編輯框內(nèi)的速度設(shè)定值通過MSG_GETTEXT 消息由CTRL_COOLBAR 控件實現(xiàn)的數(shù)字按鈕輸入。各控件的創(chuàng)建通過以控件類名調(diào)用Createwindow 函數(shù)實現(xiàn)。

4 結(jié)論

  調(diào)制式紅外光汽車速度識別系統(tǒng),不僅能準確測出汽車車速狀況,其測速信息還能避開“電子狗”式的反測速裝置捕捉,使違章車輛難以逃避處罰,對提高交通管制的質(zhì)量、消除事故隱患、保證人民群眾的生命財產(chǎn)安全具有重要作用,并可用于其他測速場合,應(yīng)用前景非常廣闊。由于感應(yīng)頭僅對38 kHz 的調(diào)制紅外光敏感, 其他紅外光對其幾乎無作用, 因此,系統(tǒng)具有較強的抗干擾能力。系統(tǒng)采用了ARM 嵌入式處理器、uclinux 操作系統(tǒng)以及觸摸屏,不但人機交互性好,而且升級和擴展能力強,工作穩(wěn)定,具有較大的應(yīng)用前景。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉