基于S3C2410嵌入式視頻監(jiān)控系統(tǒng)的研究
1 系統(tǒng)硬件結構
本系統(tǒng)采用模塊化的結構設計思想,將設備分為主控模塊和各個功能模塊。主控模塊和各功能模塊之間有統(tǒng)一的或者特定的接口形式,用戶可根據不同的需要選用不同的功能模塊,各種類型的數據可以同時傳輸而不相互干擾,同時也可根據市場的需求繼續(xù)擴展其它功能模塊。遠程無線視頻監(jiān)控系統(tǒng)是由以下幾個模塊組成:嵌入式 ARM2410 核心控制模塊、自動報警模塊一面使嵌入式模塊上的蜂鳴器發(fā)出警報聲,同時發(fā)送報警信號通過GPRS 網絡及時的傳回遠端的監(jiān)控管理中心,以便管理人員及時發(fā)現并處理火情、傳感器數據處理模塊、USB 攝像頭視頻圖像采集處理模塊、GPRS 無線數據傳輸模塊、遠程監(jiān)控軟件模塊。
圖1 系統(tǒng)結構圖
1.1 USB攝像頭驅動
USB核心在系統(tǒng)中起著重要的作用,它提供了一些專用的API供設備驅動層操作,而對主控制器的操作則由系統(tǒng)完成了,USB核心層對主控制器層的數據結構和操作進行了封裝。在編寫USB驅動時,只需要和USB核心層進行交互。對于具體設備的驅動編寫主要也是設備層驅動的編寫。Linux系統(tǒng)中USB結構如圖2所示:
在Linux內核中,設備驅動程序是一個個獨立的“黑盒子”,使某個特定硬件響應一個定義良好的內部編程接口,這些接口完全隱藏了設備的工作細節(jié)。用戶的操作通過一組標準化的調用執(zhí)行,設備驅動負責將這些調用映射到作用于實際硬件設備特有的操作上。
在Linux系統(tǒng)中,設備驅動程序編譯好后,有兩種實現方法:一種是修改系統(tǒng)內核源碼,把驅動靜態(tài)編譯進內核,使其成為內核的一部分;另一種則是編譯成可以動態(tài)加載的模塊,由管理員動態(tài)的加載。如果把驅動程序譯進內核,那么內核的大小會增加,內核的源文件也需要改變,并不能動態(tài)地釋放,不利于系統(tǒng)的調試,所以在本系統(tǒng)中,為方便調試,把攝像頭驅動程序編譯成動態(tài)加載的模塊。
1.2 視頻采集
視頻采集程序的流程如圖3所示:
圖3 視頻采集流程圖
評論