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