夏振華
(長江大學電子信息學院,湖北荊州434023)
王曉爽
(長江大學工程技術學院,湖北荊州434023)
20世紀90年代末,隨著網絡技術、多媒體技術以及嵌入式系統的飛速發展,產生了嵌入式網絡數字圖像監控技術。這種監控系統的監控終端部分內置了提供Web服務的圖像服務器程序,以此來完成監控圖像的采集、壓縮編碼和動作控制等任務,將壓縮編碼后的視頻數據通過B/S(Browser/Server)模式進行網絡傳輸,局域網或者Internet上的其他的用戶可以通過網絡瀏覽器查看Web服務器上的監控圖像。這種監控系統如果再配合目前覆蓋面非常廣泛的移動或者聯通的GPRS網絡[1],可以實現遠程無線圖像甚至視頻傳輸,可以大大的拓寬圖像監控的地理范圍和應用領域。筆者提出了一種基于GPRS無線傳輸的嵌入式監控系統的設計方案,該系統以ARM9芯片為核心,充分利用GPRS網絡的優勢,實現了監控圖像的遠距離無線傳輸。
系統由圖像監控終端和監控中心2部分組成,圖像監控終端使用嵌入式系統加上USB攝像頭,從USB攝像頭采集得到監控畫面,進行壓縮編碼處理后,通過GPRS撥號的方式連入互聯網,將壓縮的碼流經過互聯網傳輸到監控中心,監控中心利用操作系統自帶的網絡瀏覽器查看監控畫面,系統組成框圖如圖1所示。

圖1 嵌入式視頻監控系統組成框圖
在圖1中,監控終端由帶USB攝像頭的ARM板和GPRS MODEM組成[2],ARM板端的軟件負責采集圖像,并控制GPRSMODEM實現互聯網的接入[3];監控中心是一臺聯入互聯網的PC機,它負責數據的接收和圖像的顯示。整個系統工作在B/S模式,監控中心工作在Browser模式,監控終端工作在Server模式。監控中心直接采用IE瀏覽器來查看監控畫面,不需要在PC機上運行其他的軟件,整個系統的主要設計工作是嵌入式監控終端的硬件和軟件設計。監控終端的設計核心任務就是進行基于Linux操作系統的視頻采集、傳輸的軟件設計。
監控終端采用三星公司的S3C2410嵌入式芯片為核心,其主要硬件電路由系統存儲電路、外圍接口電路、電源、復位電路和GPRSMODEM[4]等幾個部分組成,系統硬件總體結構如圖2所示。
圖2中各硬件模塊的功能可以從圖中很方便的了解,這里不再詳述。需要注意的是USB攝像頭控制器的選擇直接關系到攝像頭驅動程序的設計[5]。目前用于攝像頭的控制器主要有中國中芯微公司的ZC030x系列芯片和美國OV公司的OV 511+芯片。中芯微公司的主流控制芯片都帶有硬件JPEG編碼模塊,利用這個特性可以直接從攝像頭得到經過壓縮的圖片格式,大大簡化監控終端應用軟件的設計,筆者選用了ZC301P芯片的130萬像素的USB攝像頭。

圖2 監控終端硬件總體結構

圖3 視頻采集流程圖
嵌入式操作系統的種類很多,目前比較流行的Windows Mobile、Linux、ucOS,考慮到成本控制的問題,筆者選擇Linux為嵌入式操作系統。Linux操作系統可以運行在包括ARM等多種嵌入式芯片上。與Windows下的程序一樣,要想利用USB攝像頭進行圖像采集,軟件系統需要包含驅動程序和應用程序兩部分。驅動程序運行在系統的底層,它提供USB攝像頭的初始化、參數調節、圖像數據讀取等API函數,Linux系統自帶了包括ZC301在內的多種攝像頭的驅動,在移植Linux內核時,只需將ZC301相關的驅動程序選項予以選中,進行內核編譯后,就可以直接使用。圖像的采集應用程序可以利用Linux自帶的視頻函數庫 (Video For Linux,V4L)所提供的API函數來實現。在Linux中,視頻設備是設備文件,可以像訪問普通文件一樣對其進行讀寫,以便對攝像頭的參數進行設置和讀取攝像頭的狀態及圖像數據,攝像頭一般掛載在/dev/video0下[6]。下面介紹利用V4L和Socket API編寫圖像監控系統的應用程序的方法。
V4L為應用程序提供了一系列的接口函數,通過這些函數,可以執行打開、讀寫、關閉等基本操作。設備驅動提供了read、write、open、close等函數的具體實現,在編寫應用程序時直接調用驅動提供的接口函數就能實現 JPEG格式的圖像數據的采集。JPEG圖像數據已經經過了壓縮編碼,利用Linux Socket提供的TCP/IP協議棧的API函數進行網絡傳輸。視頻采集和網絡傳輸程序的流程如圖3所示。從圖3可以看出,應用程序先要打開已經正確驅動的視頻設備,接著讀取設備的一些信息,如視頻設備的緩沖大小、當前采集圖像的分辨率、圖像的色階等,然后選擇圖像格式為BMP或者JPEG,此時準備工作完成,進入圖像采集。在采集圖像時,需要判斷緩沖區是否滿,緩沖區滿就可以讀取緩沖區內的圖像數據,讀到圖像數據后,通過PPP方式撥號聯入互聯網,再利用UDP協議將圖像數據傳送到網絡中,當一幀圖像傳輸結束,并且沒有收到停止監控指令,就繼續循環上述讀取和傳送操作,否則,停止監控并關閉視頻設備。

圖4 監控畫面
該系統最后運行的效果如圖4所示。該圖是監控中心通過IE瀏覽器查看到的監控終端提供的監控畫面的截圖。
從圖4中可以看出該系統所提供的監控畫面圖像質量較好,完全可以滿足實際應用中對監控畫面質量的要求。另外,通過抓包軟件 (sniffer)分析,監控終端傳輸一幅352×288大小的全彩畫面需要的網絡流量約為17Kb,按照1min傳輸5幅畫面計算,1min所需要的流量為85Kb,單個監控終端1d的流量約為12.3Mb,1mon約為360Mb,從上面的流量分析可以看出,該系統對網絡流量要求較低,能在較低的流量費用下提供較好質量的監控畫面,有較大的實用價值。
筆者提出的基于GPRS技術的嵌入式圖像監控系統設計方案具有穩定性高、圖像質量較好、網絡傳輸性能好等特點。該系統操作簡單,只需用戶配置IP地址就可以運行,系統的監控圖像質量能滿足大多數用戶對畫面質量的要求[7],另外,該圖像監控終端對網絡流量的需求較低,非常適合利用按流量收費的GPRS傳輸。
[1]趙霞,張凱.基于ARM的GPRS的污水遠程監控系統[J].微計算機信息,2008,(2):169~173.
[2]周云輝,范立志.基于GPRS的無線監控管理系統中遠程終端撥號接入技術的實現[J].湖南理工學院學報(自然科學版),2004,(3):37~39.
[3]黃俊飛,廖建新.一種基于GGSN觸發的GPRS智能網[J].北京郵電大學學報,2005,(1):25~28.
[4]藺偉,沈京川,蔣韻.移動智能網在中國鐵路的應用與發展[J].鐵道通信信號,2006,(5):56~58.
[5]梅曉蘭,張連發,梅啟斌.基于OMAPl510雙核架構的移動多媒體通信終端的設計與實現[J].電子技術應用,2004,(7):30~33.
[6]馬計,張睿.便攜式終端上AVS-TS播放的軟件實現[J].計算機應用與軟件,2009,(11):41~44.
[7]王鵬,呂志剛,黃建.基于Linux的嵌入式無線圖像監控系統[J].安防科技,2009,(1):51~54.