1 引言
隨著全球移動(dòng)通信系統(tǒng)(GSM)移動(dòng)通信網(wǎng)絡(luò)的迅速普及,具有通信成本低、頻譜利用率高、系統(tǒng)容量大、業(yè)務(wù)種類多、保密性能好、抗干擾能力強(qiáng)、國際自動(dòng)漫游等優(yōu)點(diǎn)的短信息業(yè)務(wù)已得到越來越多的系統(tǒng)運(yùn)營商和系統(tǒng)開發(fā)商的重視。以GSM網(wǎng)絡(luò)作為數(shù)據(jù)無線傳輸網(wǎng)絡(luò),可以開發(fā)出多種極具前景的遠(yuǎn)程控制系統(tǒng)。由于西門子公司的TC35系列模塊具有很高的性價(jià)比,下面以TC35模塊為例簡要介紹一下基于GSM網(wǎng)絡(luò)遠(yuǎn)程水質(zhì)監(jiān)測系統(tǒng)的設(shè)計(jì)。
TC35是西門子公司推出的新一代無線通信GSM模塊,可以快速安全可靠地實(shí)現(xiàn)系統(tǒng)方案中的數(shù)據(jù)傳輸、語音傳輸、短消息服務(wù)(SMS,Short Message Service)和傳真。模塊的工作電壓為3.3~5.5V,可以工作在900MHz和1800MHz兩個(gè)頻段,所在頻段功耗分別為2W(900M)和1W(1800M)。模塊有AT命令集接口,支持文本和PDU模式的短消息,第三組的二類傳真,以及2.4k、4.8k、9.6k的非透明模式。此外,該模塊還具有電話簿、多方通話、漫游檢測功能,常用工作模式有省電、IDLE、TALK等模式。通過獨(dú)特的40引腳的ZIF連接器,實(shí)現(xiàn)電源連接、指令、數(shù)據(jù)、語音信號(hào),及控制信號(hào)的雙向傳輸。通過ZIF連接器及50Ω天線連接器,可分別連接SIM卡支架和天線。TC35模塊主要由GSM基帶處理器、GSM射頻模塊、供電模塊(ASIC)、閃存、ZIF連接器、天線接口六部分組成。作為TC35的核心,基帶處理器主要處理GSM終端內(nèi)的語音、數(shù)據(jù)信號(hào),并涵蓋了蜂窩射頻設(shè)備中所有的模擬和數(shù)字功能。在不需要額外硬件電路的前提下,可支持FR、HR和FR語音信道編碼。
TC35模塊數(shù)據(jù)接口采用串行異步收發(fā),符合ITU-TRS-232接口電路標(biāo)準(zhǔn),工作在CMOS電平(2.65V)。數(shù)據(jù)接口配置為8位數(shù)據(jù)位、1位停止位、無校驗(yàn)位,可以在300bps~115Kbps的波特率下運(yùn)行,支持的自動(dòng)波特率為4.8Kbps~115Kbps(14.4Kbps和28.8Kbps除外)。TC35模塊還支持RTS0/CTS0的硬件握手和XON/XOFF的軟件流控制。
2 遠(yuǎn)程水質(zhì)監(jiān)測系統(tǒng)
(1) 需求分析
隨著我國經(jīng)濟(jì)和社會(huì)的飛速發(fā)展,環(huán)境保護(hù)也越來越緊迫,尤其是水資源,因?yàn)樗P(guān)系到人們的日常生活。為此人們必須首先需要了解水質(zhì)情況。但是要監(jiān)測的河段短則幾十公里,長則上百上千公里,水質(zhì)監(jiān)測點(diǎn)分布得相當(dāng)分散。這些散布的監(jiān)測點(diǎn)如何作到與中央控制中心的隨時(shí)聯(lián)系呢?如果依靠手工進(jìn)行監(jiān)測,這樣既增加了測報(bào)人員的勞動(dòng)強(qiáng)度,同時(shí)由于水動(dòng)態(tài)需長期監(jiān)測和記錄,需處理的數(shù)據(jù)量大,給測報(bào)者分析數(shù)據(jù)帶來了很大的麻煩和困難,也越來越不適應(yīng)智能化儀表應(yīng)用的速度。采用何種手段將監(jiān)測到的信息及時(shí)匯總到控制中心是當(dāng)今遠(yuǎn)程監(jiān)測系統(tǒng)的重要議題。鋪設(shè)有線網(wǎng)絡(luò)價(jià)格不菲,而且實(shí)施存在困難,并且對于長距離的線路維護(hù)也很麻煩,存在安全隱患。利用無線模塊通過GSM網(wǎng)絡(luò)進(jìn)行遠(yuǎn)程傳送無疑是最佳的解決方案。
(2) 解決方案
遠(yuǎn)程水質(zhì)監(jiān)測系統(tǒng)由水質(zhì)采集點(diǎn)子系統(tǒng)、無線模塊、控制中心組成,具體方案如圖1所示。采集點(diǎn)子系統(tǒng)可以分布于一條河流的各段以監(jiān)測當(dāng)?shù)氐乃|(zhì)情況。
圖1 監(jiān)測系統(tǒng)結(jié)構(gòu)圖
在各個(gè)水質(zhì)采集點(diǎn)子系統(tǒng)中,由各種傳感器或分析儀采集的監(jiān)測數(shù)據(jù)經(jīng)信號(hào)調(diào)理及模數(shù)轉(zhuǎn)換后送到單片機(jī)或DSP編輯為短消息格式,然后利用串口程序通過GSM無線模塊傳回控制中心;控制中心利用GSM無線模塊作為接收設(shè)備,接收到的消息通過控制中心從模塊的串口讀出并交后臺(tái)完成數(shù)據(jù)分析等處理,為各種決策作參考,同時(shí)發(fā)送控制指令并通過GSM模塊轉(zhuǎn)換為短消息發(fā)送至遠(yuǎn)端控制設(shè)備。
為了徹底了解河流的水質(zhì)情況,往往需要監(jiān)測水質(zhì)的多種參數(shù),例如PH值、硝酸鹽氮、高錳酸鹽、氨氮、溶解氧、溫度、電導(dǎo)率、揮發(fā)酚等。為此可以在采集點(diǎn)按要求配置相應(yīng)的傳感器或分析儀,單片機(jī)通過多路選擇器確定哪個(gè)傳感器或分析儀起作用。一般的傳感器輸出標(biāo)準(zhǔn)的4~20mA電流或0~5V電壓,分析儀可以通過RS232串口與單片機(jī)或DSP相連。采集點(diǎn)結(jié)構(gòu)如圖2所示。
圖2 采集點(diǎn)結(jié)構(gòu)圖
根據(jù)傳感器的數(shù)量以及待處理數(shù)據(jù)量的大小選取合適的單片機(jī)或DSP。例如ATMEL公司的AT89系列就可以勝任一般的水質(zhì)數(shù)據(jù)采集。由于該系統(tǒng)采用電池供電,功耗就越低越好。同時(shí)單片機(jī)平時(shí)可以工作在睡眠模式下。
信號(hào)調(diào)理電路包括放大電路,低通濾波電路等,使采集到的電量轉(zhuǎn)換為標(biāo)準(zhǔn)的信號(hào),同時(shí)濾除干擾。
為了避免短消息傳輸過程中發(fā)生錯(cuò)誤,可以采用海量存儲(chǔ)器將采集的數(shù)據(jù)保存起來。例如可采用ATMEL公司的AT45DB081串型Flash存儲(chǔ)器,通過SPI串口與單片機(jī)或DSP相連,其容量可以達(dá)到1MByte。
電源采用免維護(hù)電池組,由交流充電器或太陽能充電器為其充電,在外部電源切斷的情況下可單獨(dú)為系統(tǒng)供電15~20天。RS232串口采用Maxim232芯片,只要一個(gè)5V電源和5只0.1μF的電容即可很好工作。通過RS232,GSM模塊與單片機(jī)之間、各種分析儀和單片機(jī)之間就能進(jìn)行可靠通信了。
(3) 系統(tǒng)工作過程分析
由于各個(gè)采集點(diǎn)的GSM模塊有不同的號(hào)碼,所以控制中心將命令短消息發(fā)送給不同的采集點(diǎn)就實(shí)現(xiàn)了一對多的控制。該系統(tǒng)根據(jù)單片機(jī)中程序的設(shè)定可以有不同的工作模式,并且可以由控制中心來轉(zhuǎn)換。本系統(tǒng)采用了三種工作模式,即自動(dòng)發(fā)送、單次發(fā)送和連續(xù)發(fā)送。
自動(dòng)發(fā)送是最常用的發(fā)送模式,因?yàn)槿藗兯枰O(jiān)測的水質(zhì)往往是某一時(shí)刻的。為此,采集點(diǎn)上的單片機(jī)就必須處于自動(dòng)發(fā)送模式下,即隔一定時(shí)間將各個(gè)傳感器和分析儀采集的數(shù)據(jù)按照約定的數(shù)據(jù)協(xié)議編輯成短消息內(nèi)容,然后控制GSM模塊將短消息發(fā)送出去。短消息通過GSM網(wǎng)絡(luò)被控制中心的GSM模塊收到,從短消息內(nèi)容中分離出該采集點(diǎn)各種水質(zhì)狀況。單片機(jī)進(jìn)入睡眠狀態(tài)。
當(dāng)控制中心發(fā)送一條命令短消息決定采用單次發(fā)送模式時(shí),單片機(jī)從自動(dòng)發(fā)送模式進(jìn)入單次發(fā)送模式,將每個(gè)傳感器和分析儀采集的數(shù)據(jù)發(fā)送給控制中心。
當(dāng)控制中心發(fā)送一條命令短消息決定采用連續(xù)發(fā)送模式時(shí),單片機(jī)從自動(dòng)發(fā)送模式進(jìn)入連續(xù)發(fā)送模式,完成單次發(fā)送模式下的發(fā)送任務(wù)。但是與單次發(fā)送不同的是,命令短消息中含有發(fā)送間隔時(shí)間,采集點(diǎn)上的單片機(jī)根據(jù)該間隔時(shí)間連續(xù)發(fā)送采集到的水質(zhì)數(shù)據(jù)。
3 短消息格式
由于遠(yuǎn)程監(jiān)測系統(tǒng)所進(jìn)行的數(shù)據(jù)通信采取的主要方式為短消息,同時(shí)由于受到單片機(jī)中存儲(chǔ)芯片的容量限制,短消息中每個(gè)數(shù)據(jù)信息代表的具體含義以及短消息中數(shù)據(jù)的排列規(guī)則都需要通信的雙方達(dá)成一致。
GSM手機(jī)通過異步通信接口實(shí)現(xiàn)對SMS的控制共有三種接入?yún)f(xié)議:Block Mode;基于AT 命令的Text Mode;基于AT命令的 PDU Mode。PDU模式是發(fā)送或接受手機(jī)SMS信息的一種方法,在目前應(yīng)用最為廣泛,基本上全國所有的電信局都支持PDU Mode的短消息業(yè)務(wù)。有些地方不支持Text Mode 和Block Mode,這就限制了這兩種接入?yún)f(xié)議的應(yīng)用。為了保證系統(tǒng)最廣泛的適用性,本系統(tǒng)采用 PDU 模式來收發(fā)短消息。PDU 相當(dāng)于一個(gè)數(shù)據(jù)包,它由構(gòu)成短消息的信息組成。作為一種數(shù)據(jù)單元,它必須包含源/目的地址、有效時(shí)間、數(shù)據(jù)格式、協(xié)議類型和正文,正文長度在7-bit編碼時(shí)可有160 字節(jié),在8-bit編碼時(shí)為140個(gè)字節(jié),在Unicode 編碼時(shí)可一次能發(fā)送70個(gè)漢字。
表1 接收數(shù)據(jù)各字段含義
(1) 接收數(shù)據(jù)格式
例如:當(dāng)接收到的數(shù)據(jù)為:
+CMGR: 0,,24
0891683110300605F0040D91683111767476F000084050419145248006……
OK
各字段具體含義見表1。
(2) 發(fā)送數(shù)據(jù)格式
例如要發(fā)送如下一條短消息:0891683110300605F011000D91683111767476F000000006C8329BFD0E01,各字段含義如表2所示。
發(fā)送時(shí),先輸入AT+CMGS=21<CR>,其中21表示發(fā)送有效數(shù)據(jù)長度,即11000D91683111767476F000000006C8329
BFD0E01的長度除以2即得。發(fā)送之后,等待模塊響應(yīng)。如果返回“〈”,則可進(jìn)行下一步。
輸入數(shù)據(jù)串:
0891683110300605F011000D91683111767476F000000006C8329BFD0E01。
由于需要輸入Ctrl+Z以確認(rèn),而Ctrl+Z的PDU碼為1A,所以緊接著輸入1A。
等待模塊響應(yīng)。如“+CMGS:2,21 OK”則表示發(fā)送成功,否則將返回“+CMS ERROR:”。
表2 發(fā)送數(shù)據(jù)各字段含義
(3) 數(shù)據(jù)協(xié)議
由于遠(yuǎn)程水質(zhì)監(jiān)測系統(tǒng)要傳送的是數(shù)字量,所以可以采用8-bit編碼。由于要監(jiān)測的參數(shù)比較多,并且各個(gè)站點(diǎn)可能對監(jiān)測的參數(shù)有所不同。所以數(shù)據(jù)協(xié)議就顯得十分重要。
由控制中心向采集點(diǎn)發(fā)送命令短消息時(shí),格式為@XXXXXXX%。
短消息中數(shù)據(jù)以單個(gè)“@”開頭,以單個(gè)“%”結(jié)尾,X表示一個(gè)字節(jié)。該命令總共有9個(gè)字節(jié)。“@”后第一個(gè)數(shù)據(jù)字節(jié)表示采集點(diǎn)的工作模式,接著6個(gè)字節(jié)數(shù)據(jù)表示工作在自動(dòng)發(fā)送和連續(xù)發(fā)送模式下的時(shí)間間隔,分別為小時(shí)、分、秒。如果是工作在單次發(fā)送模式下,則一致為零。
由采集點(diǎn)向控制中心發(fā)送水質(zhì)狀態(tài)信息時(shí),格式根據(jù)發(fā)送內(nèi)容有所不同。有的采集點(diǎn)要求采集的數(shù)據(jù)比較多,則要發(fā)送的狀態(tài)信息就比較長,反之則比較短。同時(shí)由各個(gè)傳感器和分析儀獲得的數(shù)據(jù)長度不一,這使得該數(shù)據(jù)協(xié)議必須按照實(shí)際使用情況確定。但是務(wù)必使發(fā)送的總數(shù)據(jù)量少于140個(gè)字節(jié)。
4 控制中心的VB編程
為了增強(qiáng)人機(jī)操作性,在此采用VB制作了該系統(tǒng)控制中心的操作界面。Visual Basic的串口通信對象MSComm是將RS-232的初級(jí)操作予以封裝,高級(jí)的Basic語法即可利用RS-232與外界通信,并不需要了解其他有關(guān)的初級(jí)操作,因此使用起來非常方便。
(1) 接收子程序
接收過程中,由于采用了Timer控件來觸發(fā),即Timer控件每隔一秒鐘檢測Mscomm控件的Inputcount,一旦有數(shù)據(jù)輸入就觸發(fā)執(zhí)行程序。主要程序代碼如下:
……
If InStr(1, receivestr, "+CMTI:") And InStr(1, receivestr, "SM") Then
RSTimer1.Enabled = False
If k = 18 Then
s1 = Mid(receivestr, 15, 2)
Else
s1 = Mid(receivestr, 15, 1)
End If
MSComm1.Output = "AT+CMGR=" + Trim(s1) + Chr(13)
timedelay (3000)
RSTimer1.Enabled = True
(2) 發(fā)送子程序
短信息的發(fā)送是通過Command控件來實(shí)現(xiàn)的。
VB程序代碼如下:
……
ready = "11000D9168" + numstr + "000000" + conlength + RSText5.Text '發(fā)送
MSComm1.Output = "AT+CMGS=" + Str(15 + i2) + Chr(13) + Chr(10)
' RSText5.Text 為采集到的水質(zhì)情況數(shù)據(jù),i2表示待發(fā)送短消息長度
receivestr = receivestr + MSComm1.Input
If InStr(1, receivestr, ">") Then
MSComm1.Output = ready
MSComm1.InputMode = comInputModeBinary
MSComm1.Output = 26 '1A的十進(jìn)制數(shù)
MSComm1.InputMode = comInputModeText
End If
5 結(jié)語
基于GSM網(wǎng)絡(luò)遠(yuǎn)程水質(zhì)監(jiān)測系統(tǒng)只要配置合理,能夠很好地完成河流水質(zhì)監(jiān)測任務(wù)。在實(shí)際應(yīng)用中,運(yùn)營費(fèi)用一般是按照短消息的標(biāo)準(zhǔn)來收取,而對于集團(tuán)用戶或者大用戶,則可以與GSM網(wǎng)絡(luò)運(yùn)營商協(xié)商采用按照信息流量計(jì)費(fèi)或包月、包年計(jì)費(fèi)的方式來降低運(yùn)營成本。同時(shí)由于天氣狀況、通信線路等問題可能會(huì)造成短消息收發(fā)不暢,但筆者相信,隨著技術(shù)的進(jìn)步,基于GSM的遠(yuǎn)程控制方式一定會(huì)越來越經(jīng)濟(jì)、可靠。