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