文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2011)01-0114-03
現(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.