嵌入式視頻監控系統設計方案
引言
相比傳統視頻監控系統,嵌入式視頻監控系統具有體積小、實時性強、性價比高、可靠性高、組網方便、可遠程監控等優點,因而更適用于工業控制、銀行、政府部門的安防系統中。本文提供的這套系統,采用的s3C2440具有更高的性價比,并且基于B/S架構來構建網絡進行數據傳輸,用戶可直接通過瀏覽器訪問,相比C/S架構,本系統更符合客戶對網絡化的要求。
1 嵌入式視頻監控系統方案
采用模塊化設計方法,將系統分為3個功能模塊,分別是:前端視頻采集及警報模塊、嵌入式Web服務器模塊、后端用戶監視模塊。前端視頻采集及警報模塊負責視頻的采集、存儲、處理及傳輸,并實時監控現場環境溫度,提供火險預警。嵌入式Web服務器模塊則負責處理監控端發來的請求并為用戶提供實時監控數據;后端用戶監視模塊實現對遠程的實時監控,并與web服務器交互。整個系統結構框圖如圖1所示。
2 系統前端部分的實現
2.1 前端軟件平臺的搭建
首先,在PC上建立交叉開發環境。然后進行Boot—loader的移植,本系統使用U-Boot一1.16,它支持10種處理器,214種開發板Ⅲ。然而對于本系統所選用的S3C2440開發板,它并沒有直接支持,但由于其支持s3c24lo開發板,因而只需對代碼修進行少量的修改,即可實現對本系統的支持。主要工作包括修改SDRAM的配置;分頻比(FCLK、HCLK、PcLK);系統時鐘獲取函數(get’PCLK()、get_HCLK()、get一PLLCLK()等);實現對NAND Flash、yaffs文件系統燒寫的支持等。完成Boot—loader的移植后,即可進行Linux內核的移植,其主要任務是添加本系統相關硬件的驅動程序,如USB、網卡等,并對其進行相應的修改,使其支持S3C2440平臺,然后靜態編譯入內核。針對本系統攝像頭驅動采用動態加載的方式,在進行內核配置的時候需要選中“L0adable modulesupport”選項。最后利用Busybox來構建根文件系統。
現場報警功能部分的實現,采用溫度傳感器Dsl8820實時采集現場溫度,溫度預警值設為50℃,當溫度超過該預警值,立即驅動前端機上的蜂鳴器,提醒現場人員環境出現異常,可能有火情。
2.2 前端視頻采集的實現
Vide04“nux(簡稱V4L)是Ljnux中關于視頻設備的內核驅動,它為針對視頻設備的應用程序編程提供了一系列接口函數印]。本系統使用UsB口攝像頭采集視頻數據,首先要開發相應的驅動程序,即針對usB攝像頭設備/dev/videoo,進行視頻圖像采集方面的程序設計。要完成針對基于V4L的USB視頻數據采集,首先要獲取視頻設備的設備信息,初始化采集窗口、色度模式、幀狀態,然后才能進行視頻圖像的采集。視頻采集流程如圖2所示。
在獲取到設備信息并設置完攝像頭參數后,即可進行數據采集,本系統使用mmap()把設備文件映射到內存中,從而繞過內核緩沖區,加速I/O訪問速度。具體操作如下:
首先,使用ioctl(vide伊>fd,VIDIocGMBuF,(vide擴>videombuf)函數獲得攝像頭存儲緩沖區的幀信息(其中、,id∞為struct vdIn*),之后修改、,ideo—map中的設置。然后將攝像頭對應的設備文件映射到內存區,使用video->pFramebuffer一((unsigned char*)mmap(0,、,ide0->、,ideombu£si距,PROT—READ I PROT—WRITE,MAP-SHARED,、rideo->fd,o)。該映射內容區可讀可寫,并且不同進程間可共享。接著就可進行視頻的截取了,使用函數ioctl(video->fd,VIDIOCMCAPTURE,(video->mmap)),若成功,便開始截取一幀視頻數據,最后調用VDlOcsYNC等待一幀截取結束。
蜂鳴器相關文章:蜂鳴器原理
評論