基于A(yíng)RM的紅外光汽車(chē)速度管理系統研究

發(fā)布時(shí)間:2010-12-2 20:36    發(fā)布者:conniede
關(guān)鍵詞: arm , MiniGUI , uclinux , 傳感器
1 引 言  

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

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

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

2 系統工作原理

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

3 系統硬件設計

3.1 光電發(fā)射接收系統

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

 
3.2 信號接收與定時(shí)器工作

如圖3 所示,在沒(méi)有車(chē)輛經(jīng)過(guò)光控測速區時(shí),M’、N’兩點(diǎn)一直能接收到38KHz 的調制紅外光,均輸出高電平,暫穩態(tài)電路均處在穩態(tài)。門(mén)G 的輸出為邏輯1,UL 始終為高電平。當有車(chē)輛通過(guò)光控測速區時(shí),M 點(diǎn)發(fā)出的光線(xiàn)首先被阻斷,UM 由高電平先變?yōu)榈碗娖,暫穩態(tài)電路1 被觸發(fā)而進(jìn)入暫穩態(tài),如圖4 中的t1 時(shí)刻之后所示。此時(shí),UM’為低電平,G 門(mén)觸發(fā),輸出UL 為低電平。ARM 系統的CAP1.0 捕獲到UL 由高電平變低電平,發(fā)生下降沿捕獲,自動(dòng)裝載T1TC 的值傳輸到捕獲寄存器T1CR,并產(chǎn)生中斷,進(jìn)入中斷服務(wù)子程序,讀取T1CR 的值而保存。


隨后,當汽車(chē)達到N 點(diǎn)時(shí)——即在t2 時(shí)刻,暫穩態(tài)電路2 被觸發(fā),UN’變?yōu)楦唠娖,?jīng)過(guò)非門(mén)變?yōu)榈碗娖経N’’。此時(shí)G 門(mén)輸出由低電平變?yōu)楦唠娖,ARM 的CAP1.0 捕獲到UL由低電平變高電平,發(fā)生上升沿捕獲,自動(dòng)裝載T1TC 的值到捕獲寄存器T1CR,并產(chǎn)生中斷,進(jìn)入中斷服務(wù)子程序。計算兩次捕獲寄存器T1CR 的差值N 及計數器的工作頻率f,得到車(chē)輛通過(guò)兩測試點(diǎn)M 點(diǎn)和N 點(diǎn)的時(shí)間差t2-t1。

3.3 ARM 核心板及觸摸顯示系統

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

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


4 系統軟件設計

4.1 uclinux 系統移植

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

4.2 設備驅動(dòng)程序設計

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

4.3 MiniGUI 移植

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

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

4.4 用戶(hù)界面設計

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

5 結論

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

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页