夏振華
(長江大學電子信息學院,湖北荊州434023)
王曉爽
(長江大學工程技術學院,湖北荊州434023)
20世紀90年代末,隨著網(wǎng)絡技術、多媒體技術以及嵌入式系統(tǒng)的飛速發(fā)展,產生了嵌入式網(wǎng)絡數(shù)字圖像監(jiān)控技術。這種監(jiān)控系統(tǒng)的監(jiān)控終端部分內置了提供Web服務的圖像服務器程序,以此來完成監(jiān)控圖像的采集、壓縮編碼和動作控制等任務,將壓縮編碼后的視頻數(shù)據(jù)通過B/S(Browser/Server)模式進行網(wǎng)絡傳輸,局域網(wǎng)或者Internet上的其他的用戶可以通過網(wǎng)絡瀏覽器查看Web服務器上的監(jiān)控圖像。這種監(jiān)控系統(tǒng)如果再配合目前覆蓋面非常廣泛的移動或者聯(lián)通的GPRS網(wǎng)絡[1],可以實現(xiàn)遠程無線圖像甚至視頻傳輸,可以大大的拓寬圖像監(jiān)控的地理范圍和應用領域。筆者提出了一種基于GPRS無線傳輸?shù)那度胧奖O(jiān)控系統(tǒng)的設計方案,該系統(tǒng)以ARM9芯片為核心,充分利用GPRS網(wǎng)絡的優(yōu)勢,實現(xiàn)了監(jiān)控圖像的遠距離無線傳輸。
系統(tǒng)由圖像監(jiān)控終端和監(jiān)控中心2部分組成,圖像監(jiān)控終端使用嵌入式系統(tǒng)加上USB攝像頭,從USB攝像頭采集得到監(jiān)控畫面,進行壓縮編碼處理后,通過GPRS撥號的方式連入互聯(lián)網(wǎng),將壓縮的碼流經(jīng)過互聯(lián)網(wǎng)傳輸?shù)奖O(jiān)控中心,監(jiān)控中心利用操作系統(tǒng)自帶的網(wǎng)絡瀏覽器查看監(jiān)控畫面,系統(tǒng)組成框圖如圖1所示。
圖1 嵌入式視頻監(jiān)控系統(tǒng)組成框圖
在圖1中,監(jiān)控終端由帶USB攝像頭的ARM板和GPRS MODEM組成[2],ARM板端的軟件負責采集圖像,并控制GPRSMODEM實現(xiàn)互聯(lián)網(wǎng)的接入[3];監(jiān)控中心是一臺聯(lián)入互聯(lián)網(wǎng)的PC機,它負責數(shù)據(jù)的接收和圖像的顯示。整個系統(tǒng)工作在B/S模式,監(jiān)控中心工作在Browser模式,監(jiān)控終端工作在Server模式。監(jiān)控中心直接采用IE瀏覽器來查看監(jiān)控畫面,不需要在PC機上運行其他的軟件,整個系統(tǒng)的主要設計工作是嵌入式監(jiān)控終端的硬件和軟件設計。監(jiān)控終端的設計核心任務就是進行基于Linux操作系統(tǒng)的視頻采集、傳輸?shù)能浖O計。
監(jiān)控終端采用三星公司的S3C2410嵌入式芯片為核心,其主要硬件電路由系統(tǒng)存儲電路、外圍接口電路、電源、復位電路和GPRSMODEM[4]等幾個部分組成,系統(tǒng)硬件總體結構如圖2所示。
圖2中各硬件模塊的功能可以從圖中很方便的了解,這里不再詳述。需要注意的是USB攝像頭控制器的選擇直接關系到攝像頭驅動程序的設計[5]。目前用于攝像頭的控制器主要有中國中芯微公司的ZC030x系列芯片和美國OV公司的OV 511+芯片。中芯微公司的主流控制芯片都帶有硬件JPEG編碼模塊,利用這個特性可以直接從攝像頭得到經(jīng)過壓縮的圖片格式,大大簡化監(jiān)控終端應用軟件的設計,筆者選用了ZC301P芯片的130萬像素的USB攝像頭。
圖2 監(jiān)控終端硬件總體結構
圖3 視頻采集流程圖
嵌入式操作系統(tǒng)的種類很多,目前比較流行的Windows Mobile、Linux、ucOS,考慮到成本控制的問題,筆者選擇Linux為嵌入式操作系統(tǒng)。Linux操作系統(tǒng)可以運行在包括ARM等多種嵌入式芯片上。與Windows下的程序一樣,要想利用USB攝像頭進行圖像采集,軟件系統(tǒng)需要包含驅動程序和應用程序兩部分。驅動程序運行在系統(tǒng)的底層,它提供USB攝像頭的初始化、參數(shù)調節(jié)、圖像數(shù)據(jù)讀取等API函數(shù),Linux系統(tǒng)自帶了包括ZC301在內的多種攝像頭的驅動,在移植Linux內核時,只需將ZC301相關的驅動程序選項予以選中,進行內核編譯后,就可以直接使用。圖像的采集應用程序可以利用Linux自帶的視頻函數(shù)庫 (Video For Linux,V4L)所提供的API函數(shù)來實現(xiàn)。在Linux中,視頻設備是設備文件,可以像訪問普通文件一樣對其進行讀寫,以便對攝像頭的參數(shù)進行設置和讀取攝像頭的狀態(tài)及圖像數(shù)據(jù),攝像頭一般掛載在/dev/video0下[6]。下面介紹利用V4L和Socket API編寫圖像監(jiān)控系統(tǒng)的應用程序的方法。
V4L為應用程序提供了一系列的接口函數(shù),通過這些函數(shù),可以執(zhí)行打開、讀寫、關閉等基本操作。設備驅動提供了read、write、open、close等函數(shù)的具體實現(xiàn),在編寫應用程序時直接調用驅動提供的接口函數(shù)就能實現(xiàn) JPEG格式的圖像數(shù)據(jù)的采集。JPEG圖像數(shù)據(jù)已經(jīng)經(jīng)過了壓縮編碼,利用Linux Socket提供的TCP/IP協(xié)議棧的API函數(shù)進行網(wǎng)絡傳輸。視頻采集和網(wǎng)絡傳輸程序的流程如圖3所示。從圖3可以看出,應用程序先要打開已經(jīng)正確驅動的視頻設備,接著讀取設備的一些信息,如視頻設備的緩沖大小、當前采集圖像的分辨率、圖像的色階等,然后選擇圖像格式為BMP或者JPEG,此時準備工作完成,進入圖像采集。在采集圖像時,需要判斷緩沖區(qū)是否滿,緩沖區(qū)滿就可以讀取緩沖區(qū)內的圖像數(shù)據(jù),讀到圖像數(shù)據(jù)后,通過PPP方式撥號聯(lián)入互聯(lián)網(wǎng),再利用UDP協(xié)議將圖像數(shù)據(jù)傳送到網(wǎng)絡中,當一幀圖像傳輸結束,并且沒有收到停止監(jiān)控指令,就繼續(xù)循環(huán)上述讀取和傳送操作,否則,停止監(jiān)控并關閉視頻設備。
圖4 監(jiān)控畫面
該系統(tǒng)最后運行的效果如圖4所示。該圖是監(jiān)控中心通過IE瀏覽器查看到的監(jiān)控終端提供的監(jiān)控畫面的截圖。
從圖4中可以看出該系統(tǒng)所提供的監(jiān)控畫面圖像質量較好,完全可以滿足實際應用中對監(jiān)控畫面質量的要求。另外,通過抓包軟件 (sniffer)分析,監(jiān)控終端傳輸一幅352×288大小的全彩畫面需要的網(wǎng)絡流量約為17Kb,按照1min傳輸5幅畫面計算,1min所需要的流量為85Kb,單個監(jiān)控終端1d的流量約為12.3Mb,1mon約為360Mb,從上面的流量分析可以看出,該系統(tǒng)對網(wǎng)絡流量要求較低,能在較低的流量費用下提供較好質量的監(jiān)控畫面,有較大的實用價值。
筆者提出的基于GPRS技術的嵌入式圖像監(jiān)控系統(tǒng)設計方案具有穩(wěn)定性高、圖像質量較好、網(wǎng)絡傳輸性能好等特點。該系統(tǒng)操作簡單,只需用戶配置IP地址就可以運行,系統(tǒng)的監(jiān)控圖像質量能滿足大多數(shù)用戶對畫面質量的要求[7],另外,該圖像監(jiān)控終端對網(wǎng)絡流量的需求較低,非常適合利用按流量收費的GPRS傳輸。
[1]趙霞,張凱.基于ARM的GPRS的污水遠程監(jiān)控系統(tǒng)[J].微計算機信息,2008,(2):169~173.
[2]周云輝,范立志.基于GPRS的無線監(jiān)控管理系統(tǒng)中遠程終端撥號接入技術的實現(xiàn)[J].湖南理工學院學報(自然科學版),2004,(3):37~39.
[3]黃俊飛,廖建新.一種基于GGSN觸發(fā)的GPRS智能網(wǎng)[J].北京郵電大學學報,2005,(1):25~28.
[4]藺偉,沈京川,蔣韻.移動智能網(wǎng)在中國鐵路的應用與發(fā)展[J].鐵道通信信號,2006,(5):56~58.
[5]梅曉蘭,張連發(fā),梅啟斌.基于OMAPl510雙核架構的移動多媒體通信終端的設計與實現(xiàn)[J].電子技術應用,2004,(7):30~33.
[6]馬計,張睿.便攜式終端上AVS-TS播放的軟件實現(xiàn)[J].計算機應用與軟件,2009,(11):41~44.
[7]王鵬,呂志剛,黃建.基于Linux的嵌入式無線圖像監(jiān)控系統(tǒng)[J].安防科技,2009,(1):51~54.