摘要:利用GPRS網(wǎng)絡(luò)作為無線智能監(jiān)控的信息傳輸平臺是一種非常有效的方法,其原理簡單,安全保密性高,不需要組建專用網(wǎng)絡(luò)。GPRS網(wǎng)絡(luò)覆蓋面廣,可實現(xiàn)全球無縫覆蓋,與傳統(tǒng)的監(jiān)控系統(tǒng)相比有著獨特的優(yōu)勢。文章給出了基于GPRS網(wǎng)絡(luò)的機房智能監(jiān)控系統(tǒng)的硬件結(jié)構(gòu)組成和軟件工作流程。整個系統(tǒng)主要由終端采集系統(tǒng)和GPRS模塊構(gòu)成。用于無人監(jiān)守的通信機房遠程監(jiān)控。
關(guān)鍵詞:通信機房智能監(jiān)控;MC35;GPRS;MSP430F448
0引言
隨著計算機與通信技術(shù)的高速發(fā)展,新技術(shù)和智能設(shè)備層出不窮,使無線方式智能監(jiān)控的實現(xiàn)成為可能。本文設(shè)計了一種運用GPRS網(wǎng)絡(luò)進行通信的機房監(jiān)控系統(tǒng),可廣泛地用在智能家居防盜、遠程監(jiān)控、無人監(jiān)守設(shè)備的維護及自動化生產(chǎn)線的監(jiān)控等領(lǐng)域。傳統(tǒng)的監(jiān)控系統(tǒng)通常都是一個以計算機為中心的監(jiān)測控制與調(diào)度系統(tǒng)。而本文所闡述的智能監(jiān)控系統(tǒng)是以一種通用模塊的形式來設(shè)計的,不僅可以用一般的PC機作為監(jiān)控調(diào)度中心,而且可以直接使用手機作為監(jiān)控中心。這樣就無需編寫監(jiān)控中心的軟件,而是通過GPRS網(wǎng)絡(luò)便可完成對終端采集系統(tǒng)的通信和控制,從而達到監(jiān)控的目的。如果配備GPRS無線Modem,無論何時何地,只要有一部可以接入Internet的電腦作為服務(wù)器就能實現(xiàn)對分布在各地的通信機房的監(jiān)控;也能實現(xiàn)移動監(jiān)控。
1系統(tǒng)總體結(jié)構(gòu)
本文提出的機房監(jiān)控系統(tǒng)由一個監(jiān)控中心和若干個遠端采集系統(tǒng)組成,如圖1中虛線框中所示,并且通過中國移動的SIM卡接入GPRS網(wǎng)絡(luò)。
具體的數(shù)據(jù)傳輸流程為:
(1)GPRS終端通過串行接口從客戶系統(tǒng)中提取出用戶信息;
(2)終端將用戶信息以GPRS分組數(shù)據(jù)的形式發(fā)送到GSM基站;
(3)分組數(shù)據(jù)經(jīng)SGSN封裝后,發(fā)送到GPRS-~骨干網(wǎng)。
若PC機服務(wù)器以撥號方式接入Intemet,即PC機為移動GPRS內(nèi)部網(wǎng)分配動態(tài)IP地址,則分組數(shù)據(jù)先發(fā)送到目的SGSN,再經(jīng)GSM基站發(fā)送到與PC機相連的GPRS終端;若PC機以專線接入因特網(wǎng)具有固定IP地址,則將分組數(shù)據(jù)包經(jīng)GGSN進行協(xié)議轉(zhuǎn)換后,發(fā)送到Internet公共網(wǎng)絡(luò)。
2終端采集系統(tǒng)組成
本系統(tǒng)的終端設(shè)備如圖2所示。
一般情況下通信機房工作狀態(tài)參數(shù)主要有溫濕度、火警、煙霧、防盜及環(huán)境監(jiān)測等。這些參數(shù)由各類傳感器將采集到的模擬參數(shù)送入各自的信號調(diào)理單元進行放大、濾波處理。調(diào)理后的信號經(jīng)MUX多路開關(guān)進入12位A/D轉(zhuǎn)換器,最后送入MSP430F448單片機。由于參數(shù)較多,所以單片機通過控制MUX多路轉(zhuǎn)換開關(guān)并采用定時循環(huán)方式采集各個傳感器的參數(shù);在異常時主動發(fā)出報警信息,同時存儲數(shù)據(jù)信息?;贛SP430單片機的GPRS通信管理模塊是服務(wù)器與現(xiàn)場控制器之間的數(shù)據(jù)傳輸橋梁,終端采集的參數(shù)通過GPRS網(wǎng)絡(luò)能夠及時傳送到服務(wù)器計算機上,并同時啟動視頻取證攝像頭,攝錄異常時的環(huán)境動態(tài)。通訊管理模塊主要由TI公司的16位低功耗單片機MSP430F448及外圍電路構(gòu)成。GPRS模塊使用西門子公司的MC35。終端的GPRS無線上網(wǎng)主要通過單片機控制MC35來實現(xiàn)。單片機具有兩個可編程串行通訊口,其中UARTO工作在同步通信方式下,和DSP的SPI接口相連,DSP工作在主機模式。F448工作在從機模式。UARTl通過MAX232電平轉(zhuǎn)換芯片和MC35的串行數(shù)據(jù)口相連作為AT指令和數(shù)據(jù)的傳輸通道,單片機通過串行中斷程序及時處理GPRS終端收到上位機指令,并及時傳送給DSP。
F448帶有液晶驅(qū)動模塊,通過外接一個液晶顯示器和鍵盤,用戶就可以在現(xiàn)場手動進行各項參數(shù)的設(shè)置(包括視頻取證攝像頭的啟動、存錄);外接flash數(shù)據(jù)存儲器AT45DB041,存儲容量為528KB,主要作為收發(fā)數(shù)據(jù)的暫存器。
3 TCP/IP協(xié)議的實現(xiàn)
在本系統(tǒng)中,需要利用TCP/IP協(xié)議來完成GPRS業(yè)務(wù)數(shù)據(jù)的裝幀和拆幀。我們采用在MSP430F448中嵌入TCP/IP協(xié)議棧UIP的方法來實現(xiàn)TCP/IP協(xié)議。協(xié)議數(shù)據(jù)通信分為三個階段:
(1)建立連接階段:使用OPEN命令幀控制MC35主動向服務(wù)器發(fā)起連接請求。服務(wù)器在本地偵聽端口,收到終端的請求后進行回應(yīng)并建立連接,進入數(shù)據(jù)收發(fā)狀態(tài)。
(2)當連接建立后,就可以在這一條連接上進行數(shù)據(jù)收發(fā)??梢允褂肧END命令幀控制MC35發(fā)送數(shù)據(jù)。發(fā)送時要指定連接號(由本地端口、目的IP地址和端口惟一確定)。
(3)數(shù)據(jù)發(fā)送完成后,不再需要這條連接時,系統(tǒng)就把連接斷開。
TCP/IP協(xié)議棧UIP是一種免費公開源代碼的小型TCP/IP協(xié)議棧,專門為8位和16位MCU編寫。UIP完全用c語言編寫,它采用一個事件驅(qū)動接口,通過調(diào)用應(yīng)用程序響應(yīng)事件。UIP的源代碼只有幾KB,RAM占用僅幾百字節(jié),但實現(xiàn)了TCP/IP協(xié)議集的四個基本協(xié)議:ARP地址解析協(xié)議,IP網(wǎng)絡(luò)互聯(lián)協(xié)議,ICMP網(wǎng)絡(luò)控制報文協(xié)議和TCP傳輸控制協(xié)議。用戶可以方便地調(diào)用接口函數(shù)來實現(xiàn)TCP/IP協(xié)議。
UIP與系統(tǒng)底層的協(xié)議包括與設(shè)備驅(qū)動的接口和系統(tǒng)定時器的接口兩類。程序主循環(huán)中的底層接口程序循環(huán),檢查是否收到數(shù)據(jù)包和周期定時器是否超時溢出。TCP/IP協(xié)議程序中主控程序流程如圖3所示。
UIP通過函數(shù)uip_input0和全局變量uip_buf,uip_len來實現(xiàn)與設(shè)備驅(qū)動的連接,在收發(fā)IP數(shù)據(jù)包時觸發(fā)應(yīng)用程序接口事件。應(yīng)用程序事件l主要是對數(shù)據(jù)包的處理:當數(shù)據(jù)來自MCU時則進行TCP/IP打包然后將CPRS模塊發(fā)送到Internet網(wǎng)絡(luò);當收到來自GPRS模塊的數(shù)據(jù)時,則進行相應(yīng)的解包處理——抽出數(shù)據(jù),按發(fā)送前的順序還原,并加校驗,若發(fā)現(xiàn)錯誤,TCP/IP棧會要求重發(fā),然后將數(shù)據(jù)送GPRS模塊。UIP協(xié)議棧提供了一系列接口函數(shù)供用戶程序調(diào)用,這使得我們不需要了解數(shù)據(jù)的具體處理過程,只需要調(diào)用相應(yīng)的接口函數(shù)把數(shù)據(jù)送到上層應(yīng)用程序即可。
系統(tǒng)定時器使用MSP430F448的16位定時器Timer_B作為時鐘基準,定時周期設(shè)為1s。定時器主要用于處理數(shù)據(jù)傳輸錯誤重發(fā),應(yīng)答延時,往返時間(RTT)估計等。應(yīng)用程序事件2主要用于定時器超時后的處理。當TCP連接建立時,UIP周期性調(diào)用函數(shù)uip_periodicO來驅(qū)動TCP/IP協(xié)議定時器和重發(fā)事件。當數(shù)據(jù)發(fā)送后,轉(zhuǎn)發(fā)定時器進行減計數(shù),如果在—個定時器周期內(nèi)沒收到接受端的確認(ACK)消息,發(fā)送端就認為這個數(shù)據(jù)丟失,置標志位。應(yīng)用程序檢查標志,產(chǎn)生上次發(fā)送的數(shù)據(jù)并重發(fā)。
為保證監(jiān)控的實時性要求,對于對方主動發(fā)起TCP連接、對方發(fā)來數(shù)據(jù)、對方主動釋放TCP連接、GPRS斷線和重連成功等事件都可以通過中斷通知給F448單片機,以便單片機進行相應(yīng)的處理和操作。這些事件必須及時進行處理,以便及時反映通信狀況,避免相關(guān)事件的緩沖區(qū)和數(shù)據(jù)緩沖區(qū)溢出。
由于無人監(jiān)守機房地點偏遠、環(huán)境特殊,為保證設(shè)備的長期穩(wěn)定工作,在軟件上設(shè)置了系統(tǒng)自動撥號、斷線重撥功能。在GPRS網(wǎng)絡(luò)狀態(tài)不穩(wěn)定時,系統(tǒng)具有自動恢復(fù)通訊能力、無須人為干預(yù)。
4服務(wù)器的軟件設(shè)計
服務(wù)器的人機接口為用戶提供了一個可視化的監(jiān)測界面。用戶可以直觀、方便、快捷地了解無人職守機房的狀態(tài),并能及時發(fā)現(xiàn)處理異常、故障情況。軟件在C++Builder環(huán)境下開發(fā)。軟件由用戶界面子系統(tǒng),數(shù)據(jù)管理子系統(tǒng)和網(wǎng)絡(luò)通信服務(wù)子系統(tǒng)組成,主要完成無線通訊處理、數(shù)據(jù)處理、各點監(jiān)測數(shù)據(jù)統(tǒng)計等功能。
用戶界面子系統(tǒng)作為主要的人機交互界面,可以用于實時查詢各點機房的動態(tài),對各點機房發(fā)出控制指令。
數(shù)據(jù)管理子系統(tǒng)主要處理各點機房采集的數(shù)據(jù)。可通過該系統(tǒng)查詢歷史記錄,實施權(quán)限修改、插入、報表打印等功能。
網(wǎng)絡(luò)通訊服務(wù)子程序采用C++Build~的Socket控件和多線程技術(shù)實現(xiàn)。
由于服務(wù)器采用一對多的通訊方式,為了防止多個終端同時和服務(wù)器通訊而發(fā)生信息阻塞,也為了保證通訊的實時性和可靠性,程序中使用了線程技術(shù)來處理服務(wù)器與每個終端的連接;當啟動GPRS并在初始化完成后,使用輔助線程來監(jiān)聽Socket端口。當有數(shù)據(jù)到達時,輔助線程通過事件通知主線程處理收到的網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包。主線程創(chuàng)建副線程來處理該次連接,在副線程中讀取數(shù)據(jù)并判斷是否正確。正確則保存數(shù)據(jù),錯誤就將該數(shù)據(jù)包丟棄。數(shù)據(jù)處理完成后終止副線程,繼續(xù)監(jiān)聽斷開。
5結(jié)束語
采用GPRS網(wǎng)絡(luò)遠程數(shù)據(jù)通訊比其它專線或射頻通訊方式有不可比擬的優(yōu)越性。該系統(tǒng)具有連接方便、擴充性好、成本低、維護量小等優(yōu)點。在其它領(lǐng)域的應(yīng)用也將具有很好的發(fā)展前景。
(注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。)