基于ARM9的遠程圖像無線監控系統的設計
對圖像監控系統,用戶常常提出這樣的功能需求:希望能夠監控距離較遠的對象。這些對象有可能分布在郊區、深山,荒原或者其他無人值守的場合;另外,希望能夠獲取比較清晰的監控圖像,但對圖像傳輸的實時性要求并不高,很明顯,用傳統的PC機加圖像采集卡的方式很難滿足這樣的需求。
本文引用地址:http://www.104case.com/article/151048.htm在嵌入式領域,ARM9系列微處理器在高性能和低功耗方面提供了最佳的性能,因此選用ARM9嵌入式處理器S3C2440設計實現了一個遠程圖像光線監控系統通過這個系統,可以遠在千里之外控制一個攝像機進行圖像采集并回傳。如果這個攝像機有一個485接口的云臺,還可以通過互聯網遠程控制攝像機的取景角度、鏡頭拉伸、聚焦等功能.
除了獲取圖像數據.系統還提供了多路開關控制和數據采集功能,可以連接溫度、濕度等各類傳感器和控制紅外夜視燈等其他外部設備的開關狀態。最后,通過GPRS或CDMA無線通信模塊及Internel互聯網將數據傳至任何地方
1 系統設計
本系統采用三星公司的S3C2440嵌入式處理器和arm-linux2.4.26操作系統;S3C2440使用ARM920T內核,主頻是400MHz;除了集成通用的串口控制器、USB控制器、A/D轉換器和GPIO等功能之外,還集成了一個攝像頭接門(CAMIF)(這個接口是遠程圖像采集的核心部分)。系統在S3C2440處理器的控制下,從CCD攝像機采集模擬視頻信號,然后經過編碼、DMA傳輸到內存緩沖,接著由軟件對內存中的數字視頻數據進行壓縮和打包.最后通過通信單元將圖像以IP包的方式發送到監控中心的服務器。整個系統的硬件結構原理如圖1所示
1.1 圖像采樣接口
S3C2440的攝像頭接口(CAMIF)支持ITU-R BT.601/656 YCbCr8比特標準的圖像數據輸入,最大可采樣4096×4096像素的圖像。攝像頭接口可以有兩種模式與DMA控制器進行數據傳輸:一種是P端口模式,把從攝像頭接口采樣到的圖像數據轉為RGB數據,并在DMA控制下傳輸到SDRAM(一般這種模式用來提供圖像預覽功能);另一種是C端口模式,把圖像數據按照YCbCr4:2:0或4:2:2的格式傳輸到SDRAM(這種模式主要為MPEG-4、H.263等編碼器提供圖像數據的輸入)。上述兩種工作模式都允許設置一個剪輯窗口,只有進入這個窗口的圖像數據才能夠傳輸到SDRAM。上述過程可用圖2說明。
S3C2440的攝像機接口接收ITU標準的圖像數據,不能直接接收CCD攝像機輸出的模擬視頻信號,因此還需要1片SAA7113視頻解碼芯片。SAA7113可以輸入4路模擬視頻信號,通過內部寄存器的不同配置可以對4路輸入進行轉換,輸入可以為4路CVBS或2路S視頻(Y/C)信號,輸出8位“VPO”總線,為標準的ITU656、YUV 4:2:2格式。對SAA7113初始化需要通過I2C 總線進行,而S3C2440內部集成的I2C控制器正好可以實現這個過程。S3C2440的攝像機接口與SAA7113的連接原理如圖3所示。
SAA7113 的CE 引腳與S3C2440 的一個GPIO 引腳相連,這樣可以控制SAA7113的工作狀態。當無須采集圖像時,將該GPIO口輸出低電平,使SAA7113芯片處于低功耗狀態,節省電能的消耗。對照圖2和圖3可以看出,SAA7113芯片就是圖2的“外部圖像傳感器”。它向嵌入式系統的攝像機接口提供了采樣到的標準ITU視頻數據。這些數據經過DMA的P端口或C端口控制傳輸到了內存,這樣就可以在內存中對圖像數據作進一步的加工處理。
1.2 采樣接口驅動
圖像采樣接口的驅動按照Linux視頻設備驅動的模型V4L(video for Linux)編寫了SAA7113與S3C2440攝像機接口的驅動。驅動使用C端口模式與DMA進行通信。采樣1幀圖像之前,首先設置采樣圖像的分辨率和剪輯窗口大小等參數,然后設置DMA控制器訪問的視頻采樣輸出緩沖的內存地址,接著就可以通過設置S3C2440的CAMIF接口控制寄存器啟動1幀圖像的采集。當采集完1幀圖像時,CAMIF接口會自動啟動1次C端口的DMA通信,把采集的圖像數據傳到內存。傳輸結束后,會產生一個C端口的中斷,通知驅動1幀數據采樣和傳輸結束。具體來說,這個驅動需要實現以下功能:
評論