《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于3G網(wǎng)絡(luò)的遠(yuǎn)程無(wú)線綜合監(jiān)控系統(tǒng)
基于3G網(wǎng)絡(luò)的遠(yuǎn)程無(wú)線綜合監(jiān)控系統(tǒng)
來(lái)源:電子技術(shù)應(yīng)用2011年第1期
王 銘, 倪 平, 王 冬, 李道德
(四川大學(xué) 電氣信息學(xué)院, 四川 成都 610064)
摘要: 利用3G網(wǎng)絡(luò)實(shí)現(xiàn)了同時(shí)對(duì)多個(gè)分散的遠(yuǎn)程地點(diǎn)的綜合監(jiān)控。系統(tǒng)通過(guò)3G網(wǎng)絡(luò)建立客戶(hù)端與服務(wù)端之間的通信連接,利用Microsoft的關(guān)于數(shù)字視頻的軟件開(kāi)發(fā)包VFW提供的視頻采集、回放等API接口實(shí)現(xiàn)視頻的采集,經(jīng)H.264編碼壓縮后進(jìn)行傳輸。服務(wù)端PC通過(guò)COMM控件收集監(jiān)控終端數(shù)據(jù),控制數(shù)據(jù)由TCP協(xié)議傳輸,視頻數(shù)據(jù)由RTP協(xié)議傳輸。客戶(hù)機(jī)端接收到圖像后通過(guò)雙線性?xún)?nèi)插算法對(duì)圖像進(jìn)行呈現(xiàn),并實(shí)時(shí)顯示被監(jiān)測(cè)環(huán)境數(shù)據(jù),達(dá)到遠(yuǎn)程無(wú)線監(jiān)控的目的。
中圖分類(lèi)號(hào): TP393.02
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2011)01-0114-03
Remote wireless integrated monitoring system based on 3G
Wang Ming, Ni Ping, Wang Dong, Li Daode
School of Electrical Engineering and Information, Sichuan University, Chengdu 610064, China
Abstract: Using 3G to realize the connection of client PC and server PC, the system can monitor multiple scattered remote locations simultaneously. It uses Microsoft launched on digital video software development kit VFW, available through the VFW video capture, playback and other API interface to collect image information that then compressed by H.264. The server PC collects monitoring terminal’s data by COMM control. Controlled data transmit by the TCP protocol, video data transmitted by the RTP protocol. After receiving the image, the client PC presents the image by bilinear interpolation algorithm, and real-time display the environmental data to be detected, to the remote wireless smart monitor purposes.
Key words : 3G; VFW; H.264; remote monitoring; wireless video transmission


    現(xiàn)有的遠(yuǎn)程監(jiān)控系統(tǒng)在實(shí)現(xiàn)原理上大致分為兩類(lèi),一類(lèi)為基于傳統(tǒng)Internet的有線式遠(yuǎn)程監(jiān)控系統(tǒng),另一類(lèi)為基于GSM等無(wú)線移動(dòng)網(wǎng)絡(luò)的監(jiān)控系統(tǒng)[1],后者在工程造價(jià)、產(chǎn)品維護(hù)和市場(chǎng)前景上有絕對(duì)的優(yōu)勢(shì)。但現(xiàn)有的無(wú)線監(jiān)控設(shè)備功能相對(duì)單一。隨著3G" title="3G" target="_blank">3G等高速無(wú)線網(wǎng)絡(luò)的普及,基于無(wú)線網(wǎng)絡(luò)的綜合監(jiān)控系統(tǒng)將成為新的研究熱點(diǎn)。“遠(yuǎn)程無(wú)線綜合監(jiān)控系統(tǒng)”正是利用了無(wú)線網(wǎng)絡(luò),實(shí)現(xiàn)對(duì)多個(gè)分散的遠(yuǎn)程地點(diǎn)的綜合監(jiān)控,如視頻、溫度、電氣設(shè)備使用情況等。還可以根據(jù)需要增加如濕度監(jiān)測(cè)等其他監(jiān)測(cè)。由于其具有良好的適應(yīng)性以及相對(duì)低廉的價(jià)格,易于進(jìn)行推廣,有廣闊的市場(chǎng)前景。
1 系統(tǒng)整體設(shè)計(jì)
    本系統(tǒng)采用兩臺(tái)計(jì)算機(jī)分別作為客戶(hù)機(jī)和服務(wù)機(jī),服務(wù)端由服務(wù)機(jī)及以單片機(jī)為中心的各個(gè)控制模塊組成,包括攝像頭采集圖像模塊、云臺(tái)控制模塊、無(wú)線發(fā)送和接收模塊及現(xiàn)場(chǎng)監(jiān)控模塊?,F(xiàn)場(chǎng)監(jiān)控模塊具有溫度采集、人體紅外檢測(cè)、電氣設(shè)備通斷控制和聲光報(bào)警功能?,F(xiàn)場(chǎng)監(jiān)控模塊與服務(wù)機(jī)之間通過(guò)無(wú)線傳輸模塊進(jìn)行數(shù)據(jù)傳輸,使現(xiàn)場(chǎng)監(jiān)控模塊不受服務(wù)機(jī)位置的限制,而且可為多個(gè),分別監(jiān)控不同地點(diǎn)的數(shù)據(jù)。服務(wù)機(jī)接收到圖像信息、溫度和紅外等數(shù)據(jù)后,將其壓縮打包,通過(guò)3G網(wǎng)絡(luò)發(fā)送給客戶(hù)機(jī)??蛻?hù)機(jī)接收到圖像后通過(guò)雙線性?xún)?nèi)插算法對(duì)圖像進(jìn)行呈現(xiàn),并實(shí)時(shí)顯示被檢測(cè)環(huán)境數(shù)據(jù),如繪制現(xiàn)場(chǎng)溫度曲線、電氣通斷狀態(tài)、有人進(jìn)入時(shí)報(bào)警等,而且能遠(yuǎn)程控制現(xiàn)場(chǎng)電氣的狀態(tài)。系統(tǒng)整體框圖如圖1所示。

2 服務(wù)機(jī)編程實(shí)現(xiàn)
2.1 MFC程序構(gòu)架

    遠(yuǎn)程控制端MFC程序框架如圖2所示。

2.2現(xiàn)場(chǎng)采集端程序構(gòu)架的實(shí)現(xiàn)
    圖像采集使用數(shù)字視頻軟件開(kāi)發(fā)包VFW(Video for Windows)提供的圖像采集接口函數(shù):
    m_capwnd=capCreateCaptureWindow("Capture",WS_CHILD|
S_VISIBLE,x,y,WIDTH,HEIGHT,pDlg->GetSafeHwnd(  ), 0);
    為了實(shí)現(xiàn)圖像的實(shí)時(shí)傳輸,必須減少發(fā)送圖像的冗余信息,本系統(tǒng)的圖像編碼和壓縮使用H.264編碼圖像[2],遠(yuǎn)程監(jiān)控端通過(guò)注冊(cè)回調(diào)函數(shù),在采集到一幀圖像后調(diào)用回調(diào)函數(shù),在回調(diào)函數(shù)中調(diào)用圖像壓縮函數(shù)進(jìn)行圖像的編碼壓縮。
3 客戶(hù)機(jī)編程實(shí)現(xiàn)
3.1 MFC程序構(gòu)架

    客戶(hù)機(jī)端MFC程序構(gòu)架如圖3所示。

3.2 客戶(hù)機(jī)程序構(gòu)架的實(shí)現(xiàn)
 客戶(hù)機(jī)端接收到的圖像數(shù)據(jù)必須經(jīng)過(guò)解碼才能進(jìn)行預(yù)覽,系統(tǒng)的解碼器實(shí)現(xiàn)函數(shù)如下:
    bool VideoCodec::EncodeVideoData(char* pin, int inlen, char*pout,long*outlen,BOOL*pKey)   //配置解碼器參數(shù)
    系統(tǒng)采集的圖像分辨率為176×144,圖像的尺寸很小。為了能更好地預(yù)覽圖像,系統(tǒng)采用了雙線性?xún)?nèi)插值算法[3]來(lái)放大圖像。算法描述如下:
    對(duì)于一個(gè)目的像素,設(shè)置通過(guò)反向變換得到的浮點(diǎn)坐標(biāo)為(i+u,j+v)。其中,i、j均為浮點(diǎn)坐標(biāo)的整數(shù)部分,u、v為浮點(diǎn)坐標(biāo)的小數(shù)部分,為取值[0,1)區(qū)間的浮點(diǎn)數(shù)。則這個(gè)像素值f(i+u,j+v)可由原圖像中坐標(biāo)為(i,j)、(i+1,j)、(i,j+1)、(i+1,j+1)所對(duì)應(yīng)的周?chē)?個(gè)像素的值決定,即:
    f(i+u,j+v)=(1-u)(1-v)f(i,j)+(1-u)vf(i,j+1)+u(1-v)f(i+1,j)+uvf(i+1,j+1)
其中,f(i,j)表示源圖像(i,j)處的像素值,以此類(lèi)推。雙線性?xún)?nèi)插值算法的計(jì)算量大,但是比最鄰近插值法[4]放大的圖像好,不會(huì)出現(xiàn)像素不連續(xù)的情況。
4 傳輸協(xié)議的選擇
4.1視頻數(shù)據(jù)傳輸協(xié)議

    視頻監(jiān)控系統(tǒng)處理后的圖像需要通過(guò)網(wǎng)絡(luò)進(jìn)行傳輸。由于數(shù)字視頻傳輸?shù)男畔⒘看蠖鴤鬏攷捰邢?,使得網(wǎng)絡(luò)協(xié)議的選擇成為視頻在網(wǎng)絡(luò)傳輸中的關(guān)鍵技術(shù),它將直接影響到數(shù)字視頻傳輸?shù)膶?shí)時(shí)性能和通過(guò)網(wǎng)絡(luò)傳輸以后客戶(hù)端接收的視頻圖像質(zhì)量。由于TCP協(xié)議具有錯(cuò)誤重傳機(jī)制、擁塞控制機(jī)制、報(bào)文頭比較大以及啟動(dòng)需要建立連接等特性,因此無(wú)法保證實(shí)時(shí)性,很難適應(yīng)視頻通信[5]。而實(shí)時(shí)傳輸協(xié)議RTP由底層協(xié)議UDP承載[6],由二者共同完成傳輸層協(xié)議功能。而UDP協(xié)議只是傳輸數(shù)據(jù)包,不管數(shù)據(jù)包傳輸?shù)臅r(shí)間順序,RTP協(xié)議則提供時(shí)間標(biāo)簽、序列號(hào)以及用于控制適時(shí)數(shù)據(jù)的流放的其他結(jié)構(gòu)。UDP的多路復(fù)用可使RTP協(xié)議利用支持顯式的多點(diǎn)投遞,可以滿(mǎn)足多媒體會(huì)話的需求。
    RTP相關(guān)設(shè)置函數(shù):
     m_sessparams.SetOwnTimestampUnit(1.0/10.0);
//設(shè)置時(shí)間同步
    m_sessparams.SetUsePollThread(1);         
                                     //開(kāi)啟Poll線程
    m_sessparams.SetMaximumPacketSize(64*1024-1);
                                    //設(shè)置最大包大小
     m_transparams.SetPortbase(REMOT_PORT_VIDEO);
   //本地端口
     var=m_sess.Create(m_sessparams,&m_transparams);
//創(chuàng)建會(huì)話
4.2環(huán)境監(jiān)測(cè)數(shù)據(jù)及客戶(hù)控制數(shù)據(jù)傳輸協(xié)議
    TCP協(xié)議提供了可靠的傳輸服務(wù),包括報(bào)文序列、流控制、差錯(cuò)檢驗(yàn)、優(yōu)先級(jí)等。因無(wú)線采集端送到服務(wù)器端的數(shù)據(jù)量很小(大約12 B/s),在傳輸過(guò)程中監(jiān)控?cái)?shù)據(jù)不容許有丟包、誤碼等錯(cuò)誤的發(fā)生,因此采用TCP作為監(jiān)測(cè)數(shù)據(jù)及控制命令數(shù)據(jù)的傳輸協(xié)議,以保證傳輸過(guò)程中數(shù)據(jù)的可靠性。
    TCP相關(guān)設(shè)置函數(shù):
    m_CtrlSocket.TcpSocketInit(LOCAL_PORT_CONTROL,0,0,
    s_add);    //TCP初始化
    m_CtrlSocket.SetTimeOut(5); //設(shè)置連接超時(shí)時(shí)間
    LRESULT CClientDlg::OnComSocket(WPARAM wParam,
    LPARAM lParam);   //事件通知函數(shù)
5 實(shí)驗(yàn)結(jié)果及分析
    當(dāng)監(jiān)控系統(tǒng)獨(dú)占網(wǎng)絡(luò)運(yùn)行時(shí),通過(guò)網(wǎng)絡(luò)數(shù)據(jù)抓包,根據(jù)數(shù)據(jù)包端口分析的視頻數(shù)據(jù)每秒可達(dá)到30幀(每6幀一個(gè)關(guān)鍵幀),接收端圖像大小為640×480,網(wǎng)絡(luò)流量約為30 KB/s,如圖4所示,而如圖5所示的有線傳輸時(shí)流量約為35 KB/s。其原因是服務(wù)端上行速率遠(yuǎn)遠(yuǎn)小于下行速率,表現(xiàn)在宏觀上,當(dāng)用3G傳輸時(shí)較有線傳輸有約3 s的延遲。通過(guò)分析VC++輸出,可知現(xiàn)場(chǎng)環(huán)境數(shù)據(jù)大約為每秒接收6個(gè)數(shù)據(jù)包(采集端1和采集端2各3個(gè)數(shù)據(jù)包),流量約為12 B/s。

    通過(guò)分析以上實(shí)驗(yàn)數(shù)據(jù)可知,系統(tǒng)數(shù)據(jù)流量基本能適應(yīng)3G網(wǎng)絡(luò)的帶寬,系統(tǒng)也基本實(shí)現(xiàn)了視頻傳輸?shù)目焖傩?、?shí)時(shí)性,而控制數(shù)據(jù)和監(jiān)控端采集的數(shù)據(jù)包均無(wú)丟失,從而實(shí)現(xiàn)了監(jiān)測(cè)與控制的可靠性,系統(tǒng)運(yùn)行效果良好。
    遠(yuǎn)程無(wú)線綜合監(jiān)控系統(tǒng)將會(huì)在眾多領(lǐng)域中得到應(yīng)用,例如無(wú)人車(chē)間、電站以及需要測(cè)量實(shí)時(shí)數(shù)據(jù)但不便于鋪設(shè)線纜的場(chǎng)所。本系統(tǒng)采用的是采集端與服務(wù)器分離的結(jié)構(gòu),通過(guò)無(wú)線模塊實(shí)現(xiàn)數(shù)據(jù)的傳輸,在空間上打破了利用電纜傳輸數(shù)據(jù)的局限性,所有的數(shù)據(jù)均經(jīng)過(guò)特定的編碼,編碼范圍為0~255。用戶(hù)可以根據(jù)自己的需要配上合適的編碼即可實(shí)現(xiàn)多點(diǎn)監(jiān)控,具有良好的可擴(kuò)展性。如果應(yīng)用于工業(yè)生產(chǎn),系統(tǒng)中的客戶(hù)機(jī)和服務(wù)機(jī)均可由工控機(jī)代替,數(shù)據(jù)采集端為簡(jiǎn)單的單片機(jī)系統(tǒng),用戶(hù)在具備客戶(hù)機(jī)與服務(wù)器的情況下若要增加監(jiān)控端,僅需要增加數(shù)據(jù)采集端即可,價(jià)格非常低。另外,伴隨著無(wú)線網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)帶寬會(huì)有更大的提高,而基于3G網(wǎng)絡(luò)的無(wú)線智能綜合監(jiān)控系統(tǒng)可以利用網(wǎng)絡(luò)的快速性,更好地滿(mǎn)足人們的需求,實(shí)現(xiàn)實(shí)時(shí)、快速、準(zhǔn)確。因此,在未來(lái)幾年里,無(wú)線綜合監(jiān)控系統(tǒng)將會(huì)有極大的推廣價(jià)值。

參考文獻(xiàn)
[1] CHAVEZ J L. A remote irrigation monitoring and  control system for continuous move systems. Part
 A: description and development[J]. Precision Agriculture,2010,11(1):1-10.
[2] 斯文克.Visual C++ MFC編程實(shí)例[M].北京:機(jī)械工業(yè)出版社,2000.
[3] WANG J X. On parallelizing H.264/AVC rate-distortion optimization baseline profile encoder[J].
 Jorunal of Information Science and Engineering, 2000,26(2):409-426.
[4] 馮永明, 楊東勇, 盧瑾.全方位圖像展開(kāi)的雙線性?xún)?nèi)插值法[J].計(jì)算機(jī)工程與應(yīng)用,2008,44
(15):54-55,78
[5]  劉麗君,駱婷.插值法在圖像處理中的應(yīng)用[J]. 電子科學(xué),2009,15:9-10.
[6]  孫桂斌.基于TCP/IP協(xié)議多客戶(hù)連接的服務(wù)端程序?qū)?現(xiàn)[J].網(wǎng)絡(luò)與通信,2009,29(7):83-85.
[7]    SEO K D. A practical RTP packetization scheme for SVC     video transport over IP networks[J].Etri Journal, 2010,32(2):281-291.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。