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