金巧芳1,丁越峰2,韋玉生2
(1.紹興職業(yè)技術(shù)學(xué)院,浙江 紹興 312000;2.中廣有線紹興分公司,浙江 紹興 312000)
摘要:介紹了一種基于GPRS的小區(qū)機(jī)房監(jiān)控系統(tǒng)。本系統(tǒng)由數(shù)據(jù)采集模塊、GPRS網(wǎng)絡(luò)傳輸模塊、監(jiān)控服務(wù)器組成,采用自行設(shè)計(jì)的數(shù)據(jù)采集模塊和監(jiān)控通信協(xié)議,以較低的成本和較高的精度實(shí)現(xiàn)了小區(qū)機(jī)房的監(jiān)控。本系統(tǒng)極大地提高了機(jī)房監(jiān)控的實(shí)時(shí)性和連續(xù)性,能夠真實(shí)地反映機(jī)房的情況,為廣電機(jī)房的監(jiān)控提供了實(shí)時(shí)可靠的數(shù)據(jù)依據(jù)。本系統(tǒng)運(yùn)行和維護(hù)費(fèi)用較低,能節(jié)省大量的財(cái)力、物力和人力,具有良好的應(yīng)用價(jià)值。
關(guān)鍵詞:GPRS;監(jiān)控;通信協(xié)議;數(shù)據(jù)傳輸
0引言
感知技術(shù)、網(wǎng)絡(luò)技術(shù)、通信技術(shù)和計(jì)算機(jī)技術(shù)的迅猛發(fā)展,將物聯(lián)網(wǎng)應(yīng)用推廣到遠(yuǎn)程監(jiān)控領(lǐng)域,使多種網(wǎng)絡(luò)技術(shù)和遠(yuǎn)程監(jiān)控系統(tǒng)相結(jié)合是當(dāng)今物聯(lián)網(wǎng)應(yīng)用領(lǐng)域的一個(gè)發(fā)展趨勢。遠(yuǎn)程監(jiān)控系統(tǒng)是指在遠(yuǎn)離被控對(duì)象的情況下,能夠及時(shí)獲知被控對(duì)象的工作狀況,必要時(shí)發(fā)出指令對(duì)其進(jìn)行遙控的系統(tǒng)。遠(yuǎn)程監(jiān)控系統(tǒng)的出現(xiàn),使工作人員不需要到達(dá)現(xiàn)場,只要在監(jiān)控中心就能夠掌握全局,實(shí)時(shí)獲取被控對(duì)象的詳細(xì)情況,迅速作出決策并有效地執(zhí)行,大大提高了工作效率,節(jié)省了人力物力,也提高了系統(tǒng)對(duì)突發(fā)事件的應(yīng)變能力。
機(jī)房監(jiān)控成熟的方案很多,一般均使用寬帶專網(wǎng)的方式進(jìn)行組網(wǎng),在這里為什么要選擇窄帶的GPRS技術(shù)呢?這與監(jiān)控對(duì)象的需求和整體投入費(fèi)用等因素有關(guān)。
小區(qū)接入機(jī)房的特點(diǎn)是數(shù)量龐大,機(jī)房內(nèi)設(shè)備少,或者僅僅是無源光分配機(jī)房,需監(jiān)控項(xiàng)目很少,也不配備視頻監(jiān)控。在這種情況下若采用廣電自有技術(shù)如Cable Modem、PON等來建成寬帶專網(wǎng),必然存在大材小用、浪費(fèi)資源的問題,而且RJ45接口的監(jiān)控主機(jī)價(jià)格較高,而若采用GPRS技術(shù)組網(wǎng)和單片機(jī)的控制,利用電信運(yùn)營商的數(shù)據(jù)套餐,可實(shí)現(xiàn)低成本的組網(wǎng)[1]。一般地,用GPRS組網(wǎng)方式的設(shè)備投入建設(shè)費(fèi)用可降到寬帶網(wǎng)絡(luò)的1/10,年網(wǎng)絡(luò)租用費(fèi)用約為寬帶專網(wǎng)資源占用費(fèi)的1/5。
另外用GPRS組網(wǎng)方式可以擴(kuò)展到雙向網(wǎng)絡(luò)條件不具備的接入機(jī)房,地域適應(yīng)性更強(qiáng)。
1監(jiān)控網(wǎng)絡(luò)組網(wǎng)及通信協(xié)議
圖1所示為基于GPRS網(wǎng)絡(luò)組網(wǎng)的小區(qū)接入機(jī)房監(jiān)控組網(wǎng)圖。左側(cè)為接入機(jī)房的部分監(jiān)控參量描述,這些參量通過單片機(jī)處理后通過RS232串口上傳給GPRS模塊,再通過GPRS網(wǎng)絡(luò)、Internet后到達(dá)監(jiān)控服務(wù)器[2]。數(shù)百上千個(gè)接入機(jī)房的參數(shù)就通過這種方式上傳并匯聚到監(jiān)控服務(wù)器。
同樣,監(jiān)控服務(wù)器的指令通過Internet、GPRS網(wǎng)絡(luò),再由GPRS模塊的串口下達(dá)至指定單片機(jī),由對(duì)應(yīng)單片機(jī)進(jìn)行相應(yīng)的操作,如遠(yuǎn)程開啟機(jī)房門、遠(yuǎn)程開燈關(guān)燈等。
通用分組無線業(yè)務(wù)(General Packet Service,GPRS)[34]是在GSM的基礎(chǔ)上發(fā)展起來的一種分組交換的數(shù)據(jù)承載和傳輸方式。GPRS支持Internet上應(yīng)用最廣泛的IP協(xié)議和X.25協(xié)議。
由于本項(xiàng)目包含監(jiān)控服務(wù)器與GPRS模塊間的TCP/IP通信,監(jiān)控服務(wù)器與單片機(jī)系統(tǒng)的數(shù)據(jù)通信、GPRS模塊與單片機(jī)之間的串口通信;涉及Windows系統(tǒng)編程、單片機(jī)編程[5]以及單片機(jī)電路的設(shè)計(jì)制作調(diào)試等,專業(yè)領(lǐng)域跨度特別大,因此整個(gè)過程的設(shè)計(jì)和實(shí)施必須以通信協(xié)議為基礎(chǔ)實(shí)現(xiàn)團(tuán)隊(duì)的分工合作。
考慮到實(shí)際通信協(xié)議內(nèi)容較多,表1列舉了部分內(nèi)容作說明。 表1監(jiān)控系統(tǒng)通信協(xié)議序號(hào)指令代碼備注1開門onled12開燈onled23關(guān)燈offled24心跳ok!5讀狀態(tài)信息state服務(wù)器發(fā)、單片機(jī)接收指令,下發(fā)指令全部用小寫字母序號(hào)信息代碼備注1門已開啟ONLED12已開燈ONLED23第一路正常KEY1=04第一路異常KEY1=15地址標(biāo)識(shí)ADDR:XXXX單片機(jī)發(fā)、服務(wù)器接收信息,應(yīng)答信息全部用大寫字母
如單片機(jī)收到“onled2”,就要控制繼電器接通照明燈,同時(shí)返回信息“ONLED2”;監(jiān)控主機(jī)上電后,在TCP/IP鏈路創(chuàng)建成功后,單片機(jī)要向主機(jī)發(fā)送“ADDR:XXXX”,以告知監(jiān)控服務(wù)器自己是XXXX(4位編號(hào))機(jī)房,現(xiàn)已上線。
2監(jiān)控服務(wù)器的配置及軟件設(shè)計(jì)
由于監(jiān)控服務(wù)器要接收通過Internet發(fā)來的IP數(shù)據(jù)包,小區(qū)接入機(jī)房的監(jiān)控主機(jī)要以TCP/IP方式與之創(chuàng)建連接,因此監(jiān)控主機(jī)需要規(guī)劃一個(gè)固定的公網(wǎng)IP地址。作為建設(shè)期間臨時(shí)調(diào)試階段,也可采用臨時(shí)公網(wǎng)IP或花生殼動(dòng)態(tài)域名方式。
監(jiān)控服務(wù)器需要實(shí)時(shí)記錄每天每個(gè)機(jī)房實(shí)時(shí)上報(bào)的機(jī)房狀態(tài)信息,記錄小區(qū)機(jī)房人員進(jìn)出開門記錄等,供管理查詢分析使用,所以服務(wù)器需安裝數(shù)據(jù)庫,根據(jù)需要可選用SQL Server 或MySQL。
本項(xiàng)目的軟件設(shè)計(jì)采用我國自主知識(shí)產(chǎn)權(quán)的易語言平臺(tái)開發(fā),圖2所示為監(jiān)控服務(wù)器與小區(qū)機(jī)房監(jiān)控主機(jī)聯(lián)調(diào)時(shí)的測試界面截圖。
圖2中左側(cè)為TCP/IP通信過程中實(shí)時(shí)傳送的數(shù)據(jù),可以驗(yàn)證程序是否按通信協(xié)議嚴(yán)格執(zhí)行。圖2右側(cè)為機(jī)房監(jiān)控參數(shù)狀態(tài)的模擬顯示。
3GPRS模塊選型及TCP連接的創(chuàng)建
小區(qū)機(jī)房的監(jiān)控主機(jī)采用嵌入式系統(tǒng),由華為公司的EM310模塊和單片機(jī)電路組成。EM310模塊是一款內(nèi)嵌TCP/IP通信協(xié)議的雙頻段GSM/GPRS模塊,支持?jǐn)?shù)據(jù)的透明傳輸。本項(xiàng)目中GPRS模塊的任務(wù)就是與監(jiān)控服務(wù)器創(chuàng)建可靠的TCP/IP透明傳輸通道。
創(chuàng)建TCP/IP通道使用AT指令,調(diào)試時(shí)可使用串口調(diào)試助手進(jìn)行。建立TCP連接的基本步驟如下:
AT+CGDCONT=1,"IP","CMNET"
//設(shè)置APN無線接入點(diǎn),成功返回OK
AT%ETCPIP="",""
//進(jìn)行PPP撥號(hào),成功返回OK
AT%IOMODE=1//對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換,成功返回OK
AT%IPOPEN="TCP","120.199.217.155",9876
//以TCP方式連接監(jiān)控服務(wù)器的IP和端口,成功返回CONNECT
AT%TPS=1 //進(jìn)入透傳模式,成功返回“>”號(hào)
GPRS模塊是本項(xiàng)目組網(wǎng)的核心部件,網(wǎng)絡(luò)的穩(wěn)定性也取決于該模塊創(chuàng)建的TCP/IP連接的可靠性及異常中斷下的快速恢復(fù)能力。所以對(duì)GPRS模塊連接的可靠性測試十分重要,特別是模塊選型時(shí),主要包括以下幾項(xiàng)內(nèi)容:
?。?)在線空閑測試。即不發(fā)心跳包或數(shù)據(jù),檢測能否維持平均1 h以上的鏈路而不中斷。維持時(shí)間越長越好。
(2)頻繁雙向小數(shù)據(jù)量測試。相當(dāng)于模擬日常運(yùn)行中的小數(shù)據(jù)包,加快速度測試,檢查中斷情況。
?。?)雙向大數(shù)據(jù)壓力測試。本項(xiàng)目雖然不涉及大數(shù)據(jù)傳輸,但此方法可反映出模塊的穩(wěn)定性。
?。?)去天線測試。檢測當(dāng)GPRS/GSM信號(hào)臨時(shí)中斷或變?nèi)鯐r(shí)是否會(huì)產(chǎn)生中斷。
上述測試可在串口調(diào)試助手下進(jìn)行,但真正完整的測試還需要由單片機(jī)編程來測試,其中一項(xiàng)很重要的內(nèi)容是上述產(chǎn)生TCP連接中斷后多長時(shí)間恢復(fù)連接。
4單片機(jī)外圍電路設(shè)計(jì)及軟件設(shè)計(jì)
單片機(jī)系統(tǒng)是小區(qū)機(jī)房監(jiān)控主機(jī)檢測參數(shù)、執(zhí)行指令及與監(jiān)控服務(wù)器聯(lián)絡(luò)的綜合單元,作為本項(xiàng)目的研發(fā),采用了8051系列單片機(jī)制作了一個(gè)最小系統(tǒng),包含4個(gè)按鈕輸入、4個(gè)指示燈、1個(gè)溫度芯片和1個(gè)RS232串口。用按鈕輸入代替報(bào)警信號(hào)輸入(如市電斷電、機(jī)房進(jìn)水等),指示燈代表控制輸出(如遠(yuǎn)程開門、遠(yuǎn)程開風(fēng)扇通風(fēng)等)。單片機(jī)芯片使用STC公司的STC89C52RC芯片,可利用RS232串口在線直接下載程序。
單片機(jī)編程采用C語言,通過Keil軟件編譯成8051單片機(jī)目標(biāo)碼和十六進(jìn)制HEX文件,將HEX文件通過串口下載到芯片中。
單片機(jī)軟件程序框圖如圖3所示。
由圖3可看出,監(jiān)控主機(jī)上電啟動(dòng)后,由單片機(jī)發(fā)出AT指令建立TCP/IP連接,而后監(jiān)控主機(jī)并進(jìn)入等待狀態(tài)。在等待狀態(tài)若發(fā)現(xiàn)有串口指令,則執(zhí)行指令,并通過串口上報(bào)執(zhí)行結(jié)果(如已開門、已開燈等);若發(fā)現(xiàn)有機(jī)房告警,則將告警信息通過串口上報(bào);機(jī)房溫度是定時(shí)上傳的,所以到上傳時(shí)間時(shí),則通過串口上報(bào)當(dāng)前溫度。
GPRS雖然號(hào)稱永久在線,但實(shí)際情況并非如此,由于網(wǎng)絡(luò)干擾、電路設(shè)計(jì)及其他一些原因,都會(huì)導(dǎo)致網(wǎng)絡(luò)中斷,而這些中斷監(jiān)控服務(wù)器往往無法及時(shí)發(fā)現(xiàn),因此,快速發(fā)現(xiàn)網(wǎng)絡(luò)異常并重新連接非常重要。
為保證TCP連接的可靠性,軟件框圖中增加了異常判斷和處理的內(nèi)容,即當(dāng)出現(xiàn)心跳碼超時(shí)沒收到時(shí),定時(shí)器溢出驅(qū)動(dòng)電路重啟監(jiān)控主機(jī);當(dāng)由于干擾等因素導(dǎo)致單片機(jī)程序跑飛時(shí),看門狗計(jì)數(shù)器溢出同樣驅(qū)動(dòng)電路重啟監(jiān)控主機(jī),以使系統(tǒng)重新連接[6]。
5系統(tǒng)調(diào)試
系統(tǒng)調(diào)試分為模塊單獨(dú)調(diào)試和系統(tǒng)聯(lián)調(diào),要進(jìn)行系統(tǒng)聯(lián)調(diào),要求各模塊的功能基本正常。
監(jiān)控服務(wù)器通信功能驗(yàn)證可在一臺(tái)或多臺(tái)PC上開啟多個(gè)TCP/IP的客戶端軟件,按通信協(xié)議的格式向服務(wù)器端上報(bào)告警信息、當(dāng)前溫度或執(zhí)行指令后的回復(fù)信息,查看服務(wù)器端是否能正常接收并以圖形方式模擬顯示;同樣服務(wù)器端通過操作圖形界面分別對(duì)不同的客戶端發(fā)送指令,檢查客戶端收到的指令是否符合通信協(xié)議規(guī)范,以此方式驗(yàn)證監(jiān)控服務(wù)器的通信功能。
GPRS模塊的調(diào)試使用串口調(diào)試助手和通用的TCP/IP服務(wù)端軟件,服務(wù)器端使用臨時(shí)公網(wǎng)IP地址,端口為9876,驗(yàn)證TCP/IP連接是否成功,透明傳輸數(shù)據(jù)是否正常。
單片機(jī)的通信調(diào)試也使用串口調(diào)試助手進(jìn)行。按照通信協(xié)議的規(guī)范,由串口調(diào)試助手向單片機(jī)系統(tǒng)發(fā)送指令,檢測單片機(jī)收到的格式、執(zhí)行情況和上報(bào)信息的格式是否正常;同時(shí)利用單片機(jī)的按鍵制造報(bào)警事件,看是否收到符合協(xié)議格式要求的報(bào)警。
在各模塊單獨(dú)調(diào)試正常(或部分功能正常)后,可進(jìn)行相連模塊或系統(tǒng)的聯(lián)調(diào)。調(diào)試仍以通信協(xié)議為依據(jù),檢查收發(fā)數(shù)據(jù)是否有效傳遞和執(zhí)行。
系統(tǒng)調(diào)試除保證通信功能正常外,最重要的內(nèi)容是通過優(yōu)化單片機(jī)軟件來提升網(wǎng)絡(luò)可靠性,以及異常(TCP中斷)情況下的快速重新連接。
6結(jié)論
本監(jiān)控項(xiàng)目為中廣有線紹興分公司與紹興職業(yè)技術(shù)學(xué)院校企合作項(xiàng)目,是針對(duì)公司分布各處的600多個(gè)小區(qū)接入機(jī)房而設(shè)計(jì)、研發(fā)的項(xiàng)目。研發(fā)成果除可應(yīng)用于公司小區(qū)機(jī)房監(jiān)控外,也可應(yīng)用于學(xué)院的教學(xué)。
由于本項(xiàng)目的監(jiān)控是針對(duì)本地小區(qū)接入網(wǎng)機(jī)房,監(jiān)控內(nèi)容為動(dòng)力環(huán)境參數(shù),因此GPRS組網(wǎng)的整體流量有限,采用適當(dāng)套餐后的網(wǎng)絡(luò)費(fèi)用也會(huì)在較低水平。但如果要在小區(qū)機(jī)房增加視頻監(jiān)控,一方面帶寬的限制會(huì)導(dǎo)致圖像不流暢,另外網(wǎng)絡(luò)流量費(fèi)用也會(huì)大增,因此本方案不適合視頻監(jiān)控場合。
參考文獻(xiàn)
?。?] 郭銳,徐玉斌.一種基于GPRS 的遠(yuǎn)程監(jiān)控系統(tǒng)[J].太原科技大學(xué)學(xué)報(bào),2006,27(5):352 357.
[2] 張鋒,劉美.基于嵌入式與物聯(lián)網(wǎng)技術(shù)的城市綠化在線監(jiān)控系統(tǒng)[J].電子技術(shù)應(yīng)用,2014,40(7):1316,20.