文獻標識碼: A
文章編號: 0258-7998(2011)01-0114-03
現(xiàn)有的遠程監(jiān)控系統(tǒng)在實現(xiàn)原理上大致分為兩類,一類為基于傳統(tǒng)Internet的有線式遠程監(jiān)控系統(tǒng),另一類為基于GSM等無線移動網絡的監(jiān)控系統(tǒng)[1],后者在工程造價、產品維護和市場前景上有絕對的優(yōu)勢。但現(xiàn)有的無線監(jiān)控設備功能相對單一。隨著3G" title="3G" target="_blank">3G等高速無線網絡的普及,基于無線網絡的綜合監(jiān)控系統(tǒng)將成為新的研究熱點。“遠程無線綜合監(jiān)控系統(tǒng)”正是利用了無線網絡,實現(xiàn)對多個分散的遠程地點的綜合監(jiān)控,如視頻、溫度、電氣設備使用情況等。還可以根據需要增加如濕度監(jiān)測等其他監(jiān)測。由于其具有良好的適應性以及相對低廉的價格,易于進行推廣,有廣闊的市場前景。
1 系統(tǒng)整體設計
本系統(tǒng)采用兩臺計算機分別作為客戶機和服務機,服務端由服務機及以單片機為中心的各個控制模塊組成,包括攝像頭采集圖像模塊、云臺控制模塊、無線發(fā)送和接收模塊及現(xiàn)場監(jiān)控模塊?,F(xiàn)場監(jiān)控模塊具有溫度采集、人體紅外檢測、電氣設備通斷控制和聲光報警功能。現(xiàn)場監(jiān)控模塊與服務機之間通過無線傳輸模塊進行數(shù)據傳輸,使現(xiàn)場監(jiān)控模塊不受服務機位置的限制,而且可為多個,分別監(jiān)控不同地點的數(shù)據。服務機接收到圖像信息、溫度和紅外等數(shù)據后,將其壓縮打包,通過3G網絡發(fā)送給客戶機??蛻魴C接收到圖像后通過雙線性內插算法對圖像進行呈現(xiàn),并實時顯示被檢測環(huán)境數(shù)據,如繪制現(xiàn)場溫度曲線、電氣通斷狀態(tài)、有人進入時報警等,而且能遠程控制現(xiàn)場電氣的狀態(tài)。系統(tǒng)整體框圖如圖1所示。
2 服務機編程實現(xiàn)
2.1 MFC程序構架
遠程控制端MFC程序框架如圖2所示。
2.2現(xiàn)場采集端程序構架的實現(xiàn)
圖像采集使用數(shù)字視頻軟件開發(fā)包VFW(Video for Windows)提供的圖像采集接口函數(shù):
m_capwnd=capCreateCaptureWindow("Capture",WS_CHILD|
S_VISIBLE,x,y,WIDTH,HEIGHT,pDlg->GetSafeHwnd( ), 0);
為了實現(xiàn)圖像的實時傳輸,必須減少發(fā)送圖像的冗余信息,本系統(tǒng)的圖像編碼和壓縮使用H.264編碼圖像[2],遠程監(jiān)控端通過注冊回調函數(shù),在采集到一幀圖像后調用回調函數(shù),在回調函數(shù)中調用圖像壓縮函數(shù)進行圖像的編碼壓縮。
3 客戶機編程實現(xiàn)
3.1 MFC程序構架
客戶機端MFC程序構架如圖3所示。
3.2 客戶機程序構架的實現(xiàn)
客戶機端接收到的圖像數(shù)據必須經過解碼才能進行預覽,系統(tǒng)的解碼器實現(xiàn)函數(shù)如下:
bool VideoCodec::EncodeVideoData(char* pin, int inlen, char*pout,long*outlen,BOOL*pKey) //配置解碼器參數(shù)
系統(tǒng)采集的圖像分辨率為176×144,圖像的尺寸很小。為了能更好地預覽圖像,系統(tǒng)采用了雙線性內插值算法[3]來放大圖像。算法描述如下:
對于一個目的像素,設置通過反向變換得到的浮點坐標為(i+u,j+v)。其中,i、j均為浮點坐標的整數(shù)部分,u、v為浮點坐標的小數(shù)部分,為取值[0,1)區(qū)間的浮點數(shù)。則這個像素值f(i+u,j+v)可由原圖像中坐標為(i,j)、(i+1,j)、(i,j+1)、(i+1,j+1)所對應的周圍4個像素的值決定,即:
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)處的像素值,以此類推。雙線性內插值算法的計算量大,但是比最鄰近插值法[4]放大的圖像好,不會出現(xiàn)像素不連續(xù)的情況。
4 傳輸協(xié)議的選擇
4.1視頻數(shù)據傳輸協(xié)議
視頻監(jiān)控系統(tǒng)處理后的圖像需要通過網絡進行傳輸。由于數(shù)字視頻傳輸?shù)男畔⒘看蠖鴤鬏攷捰邢?,使得網絡協(xié)議的選擇成為視頻在網絡傳輸中的關鍵技術,它將直接影響到數(shù)字視頻傳輸?shù)膶崟r性能和通過網絡傳輸以后客戶端接收的視頻圖像質量。由于TCP協(xié)議具有錯誤重傳機制、擁塞控制機制、報文頭比較大以及啟動需要建立連接等特性,因此無法保證實時性,很難適應視頻通信[5]。而實時傳輸協(xié)議RTP由底層協(xié)議UDP承載[6],由二者共同完成傳輸層協(xié)議功能。而UDP協(xié)議只是傳輸數(shù)據包,不管數(shù)據包傳輸?shù)臅r間順序,RTP協(xié)議則提供時間標簽、序列號以及用于控制適時數(shù)據的流放的其他結構。UDP的多路復用可使RTP協(xié)議利用支持顯式的多點投遞,可以滿足多媒體會話的需求。
RTP相關設置函數(shù):
m_sessparams.SetOwnTimestampUnit(1.0/10.0);
//設置時間同步
m_sessparams.SetUsePollThread(1);
//開啟Poll線程
m_sessparams.SetMaximumPacketSize(64*1024-1);
//設置最大包大小
m_transparams.SetPortbase(REMOT_PORT_VIDEO);
//本地端口
var=m_sess.Create(m_sessparams,&m_transparams);
//創(chuàng)建會話
4.2環(huán)境監(jiān)測數(shù)據及客戶控制數(shù)據傳輸協(xié)議
TCP協(xié)議提供了可靠的傳輸服務,包括報文序列、流控制、差錯檢驗、優(yōu)先級等。因無線采集端送到服務器端的數(shù)據量很小(大約12 B/s),在傳輸過程中監(jiān)控數(shù)據不容許有丟包、誤碼等錯誤的發(fā)生,因此采用TCP作為監(jiān)測數(shù)據及控制命令數(shù)據的傳輸協(xié)議,以保證傳輸過程中數(shù)據的可靠性。
TCP相關設置函數(shù):
m_CtrlSocket.TcpSocketInit(LOCAL_PORT_CONTROL,0,0,
s_add); //TCP初始化
m_CtrlSocket.SetTimeOut(5); //設置連接超時時間
LRESULT CClientDlg::OnComSocket(WPARAM wParam,
LPARAM lParam); //事件通知函數(shù)
5 實驗結果及分析
當監(jiān)控系統(tǒng)獨占網絡運行時,通過網絡數(shù)據抓包,根據數(shù)據包端口分析的視頻數(shù)據每秒可達到30幀(每6幀一個關鍵幀),接收端圖像大小為640×480,網絡流量約為30 KB/s,如圖4所示,而如圖5所示的有線傳輸時流量約為35 KB/s。其原因是服務端上行速率遠遠小于下行速率,表現(xiàn)在宏觀上,當用3G傳輸時較有線傳輸有約3 s的延遲。通過分析VC++輸出,可知現(xiàn)場環(huán)境數(shù)據大約為每秒接收6個數(shù)據包(采集端1和采集端2各3個數(shù)據包),流量約為12 B/s。
通過分析以上實驗數(shù)據可知,系統(tǒng)數(shù)據流量基本能適應3G網絡的帶寬,系統(tǒng)也基本實現(xiàn)了視頻傳輸?shù)目焖傩?、實時性,而控制數(shù)據和監(jiān)控端采集的數(shù)據包均無丟失,從而實現(xiàn)了監(jiān)測與控制的可靠性,系統(tǒng)運行效果良好。
遠程無線綜合監(jiān)控系統(tǒng)將會在眾多領域中得到應用,例如無人車間、電站以及需要測量實時數(shù)據但不便于鋪設線纜的場所。本系統(tǒng)采用的是采集端與服務器分離的結構,通過無線模塊實現(xiàn)數(shù)據的傳輸,在空間上打破了利用電纜傳輸數(shù)據的局限性,所有的數(shù)據均經過特定的編碼,編碼范圍為0~255。用戶可以根據自己的需要配上合適的編碼即可實現(xiàn)多點監(jiān)控,具有良好的可擴展性。如果應用于工業(yè)生產,系統(tǒng)中的客戶機和服務機均可由工控機代替,數(shù)據采集端為簡單的單片機系統(tǒng),用戶在具備客戶機與服務器的情況下若要增加監(jiān)控端,僅需要增加數(shù)據采集端即可,價格非常低。另外,伴隨著無線網絡技術的發(fā)展,網絡帶寬會有更大的提高,而基于3G網絡的無線智能綜合監(jiān)控系統(tǒng)可以利用網絡的快速性,更好地滿足人們的需求,實現(xiàn)實時、快速、準確。因此,在未來幾年里,無線綜合監(jiān)控系統(tǒng)將會有極大的推廣價值。
參考文獻
[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編程實例[M].北京:機械工業(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] 馮永明, 楊東勇, 盧瑾.全方位圖像展開的雙線性內插值法[J].計算機工程與應用,2008,44
(15):54-55,78
[5] 劉麗君,駱婷.插值法在圖像處理中的應用[J]. 電子科學,2009,15:9-10.
[6] 孫桂斌.基于TCP/IP協(xié)議多客戶連接的服務端程序實 現(xiàn)[J].網絡與通信,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.