基于S3C2410嵌入式視頻監控系統的研究
1 系統硬件結構
本系統采用模塊化的結構設計思想,將設備分為主控模塊和各個功能模塊。主控模塊和各功能模塊之間有統一的或者特定的接口形式,用戶可根據不同的需要選用不同的功能模塊,各種類型的數據可以同時傳輸而不相互干擾,同時也可根據市場的需求繼續擴展其它功能模塊。遠程無線視頻監控系統是由以下幾個模塊組成:嵌入式 ARM2410 核心控制模塊、自動報警模塊一面使嵌入式模塊上的蜂鳴器發出警報聲,同時發送報警信號通過GPRS 網絡及時的傳回遠端的監控管理中心,以便管理人員及時發現并處理火情、傳感器數據處理模塊、USB 攝像頭視頻圖像采集處理模塊、GPRS 無線數據傳輸模塊、遠程監控軟件模塊。

圖1 系統結構圖
1.1 USB攝像頭驅動
USB核心在系統中起著重要的作用,它提供了一些專用的API供設備驅動層操作,而對主控制器的操作則由系統完成了,USB核心層對主控制器層的數據結構和操作進行了封裝。在編寫USB驅動時,只需要和USB核心層進行交互。對于具體設備的驅動編寫主要也是設備層驅動的編寫。Linux系統中USB結構如圖2所示:

在Linux內核中,設備驅動程序是一個個獨立的“黑盒子”,使某個特定硬件響應一個定義良好的內部編程接口,這些接口完全隱藏了設備的工作細節。用戶的操作通過一組標準化的調用執行,設備驅動負責將這些調用映射到作用于實際硬件設備特有的操作上。
在Linux系統中,設備驅動程序編譯好后,有兩種實現方法:一種是修改系統內核源碼,把驅動靜態編譯進內核,使其成為內核的一部分;另一種則是編譯成可以動態加載的模塊,由管理員動態的加載。如果把驅動程序譯進內核,那么內核的大小會增加,內核的源文件也需要改變,并不能動態地釋放,不利于系統的調試,所以在本系統中,為方便調試,把攝像頭驅動程序編譯成動態加載的模塊。
1.2 視頻采集
視頻采集程序的流程如圖3所示:

圖3 視頻采集流程圖


評論