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