摘 要:采用各種生化傳感器進(jìn)行現(xiàn)場(chǎng)環(huán)境質(zhì)量多點(diǎn)或多參數(shù)監(jiān)測(cè)時(shí),需要實(shí)時(shí)將采集的數(shù)據(jù)傳輸?shù)奖O(jiān)控中心或決策人員。結(jié)合GSM(全球移動(dòng)通信系統(tǒng))技術(shù)和短距離無(wú)線通信技術(shù),給出一種傳感器數(shù)據(jù)無(wú)線遠(yuǎn)距離傳輸系統(tǒng)。該系統(tǒng)利用GSM網(wǎng)絡(luò)短信平臺(tái),并結(jié)合使用短距離無(wú)線通信芯片nRF401,能穩(wěn)定地進(jìn)行多點(diǎn)遠(yuǎn)程監(jiān)控和數(shù)據(jù)傳輸,系統(tǒng)運(yùn)行費(fèi)用低廉。該系統(tǒng)能廣泛應(yīng)用于環(huán)境監(jiān)測(cè)、遠(yuǎn)程監(jiān)控和移動(dòng)醫(yī)療等領(lǐng)域。
關(guān)鍵詞:無(wú)線通信;短信技術(shù);數(shù)據(jù)傳輸;傳感器
Abstract:Field environment monitoring for multi-position and multi-parameter based on biochemical sensors, it is required to transmit timely and reliably the acquired data to control center or decision-maker. Combined GSM with short-distance wireless communication technology, a novel wireless small amount data transfer system based on SMS and short-distance transceiver chip nRF401 is presented. The system can work reliably for remote control and data transmission with low operational cost. It can be extensively used in many fields, such as environmental monitoring, remote control, and ambulant healthcare etc.
Keywords:Wireless communication; SMS; Data transmission; Sensors
1. 引言
在采用各種生化傳感器進(jìn)行現(xiàn)場(chǎng)環(huán)境環(huán)境污染監(jiān)測(cè)過(guò)程中,往往需要進(jìn)行多點(diǎn)和多參數(shù)監(jiān)測(cè)。由于監(jiān)測(cè)點(diǎn)的分散性和可變性,且使用條件復(fù)雜,采用常規(guī)的有線網(wǎng)絡(luò)方式不能滿足當(dāng)今環(huán)境污染監(jiān)測(cè)的需要。無(wú)線技術(shù)由于其具有電路簡(jiǎn)單、功耗小、體積小、成本低和調(diào)試方便且適合于那些不宜架設(shè)電纜線的現(xiàn)場(chǎng)等優(yōu)點(diǎn),因此,無(wú)線網(wǎng)絡(luò)技術(shù)為現(xiàn)場(chǎng)環(huán)境污染監(jiān)測(cè)提供了一種很好的解決方案。
目前,GSM(全球移動(dòng)通信系統(tǒng)) 網(wǎng)絡(luò)已經(jīng)非常完善,而利用其提供的一項(xiàng)增值業(yè)務(wù)—SMS (短信服務(wù)),無(wú)須附加其他終端設(shè)備,只需GSM 模塊便可進(jìn)行中、英文信息的傳輸。根據(jù)GSM 規(guī)范,SMS一次可傳送140 字節(jié)信息量的短信,因此可以利用SMS進(jìn)行小流量數(shù)據(jù)傳送,實(shí)現(xiàn)傳感器遠(yuǎn)程監(jiān)控或小流量數(shù)據(jù)采集。nRF401 短距離無(wú)線收發(fā)芯片具有串口通訊、功耗低、成本低等優(yōu)點(diǎn),在空曠環(huán)境條件下可實(shí)現(xiàn)100~200米范圍內(nèi)的信號(hào)無(wú)線傳輸,非常適用于短距離的信號(hào)無(wú)線收發(fā)[1]。在本系統(tǒng)設(shè)計(jì)中,為了節(jié)省系統(tǒng)成本,在下位GSM 模塊端僅使用1個(gè)GSM模塊,采用多個(gè)nRF401 短距離無(wú)線收發(fā)芯片模塊與此下位GSM模塊一起構(gòu)成現(xiàn)場(chǎng)多個(gè)數(shù)據(jù)采集點(diǎn)的無(wú)線通信。
2. 系統(tǒng)結(jié)構(gòu)和工作原理
系統(tǒng)結(jié)構(gòu)如圖1 所示,利用計(jì)算機(jī)作為整個(gè)系統(tǒng)的管理平臺(tái),系統(tǒng)GSM模塊采用的是中興通訊公司MZ28GSM模塊;USB口通訊采用迅通公司的USB130模塊[2],其將USB口映射為計(jì)算機(jī)串口(如COM3口,注意不同計(jì)算機(jī)映射的串口可能不同),其使用與計(jì)算機(jī)通常串口一樣,無(wú)需了解USB相關(guān)協(xié)議。首先,計(jì)算機(jī)通過(guò)USB口與GSM模塊1(上位GSM)通信,上位GSM以短信方式向GSM模塊2(下位GSM)發(fā)送指令。下位GSM接收到指令后,將指令通過(guò)單片機(jī)串口傳送給主MCU, 主MCU根據(jù)指令內(nèi)容跳轉(zhuǎn)到相應(yīng)分支程序,再通過(guò)主無(wú)線收發(fā)模塊,向從無(wú)線收發(fā)模塊發(fā)送相應(yīng)的指令。從MCU執(zhí)行由從無(wú)線收發(fā)模塊接收到相應(yīng)指令,指導(dǎo)傳感器和采樣電路進(jìn)行數(shù)據(jù)采集;數(shù)據(jù)采集完畢后,從MCU把采集到的數(shù)據(jù)發(fā)送回主MCU,主MCU再通過(guò)下位GSM模塊以短信方式,把采集的數(shù)據(jù)或者監(jiān)測(cè)端狀態(tài)等信息發(fā)回上位GSM,上位GSM再把接收到的短信通過(guò)USB口傳輸給計(jì)算機(jī)。監(jiān)測(cè)計(jì)算機(jī)接收到短信后通過(guò)監(jiān)測(cè)軟件和數(shù)據(jù)管理程序,執(zhí)行相應(yīng)的操作,最終實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)采集和監(jiān)控。
[align=center]
圖1: 系統(tǒng)結(jié)構(gòu)框圖[/align]
3. 系統(tǒng)實(shí)現(xiàn)
MZ28 是中興通訊推出的GSM 無(wú)線雙頻調(diào)制解調(diào)器,主要為語(yǔ)音傳輸、短信發(fā)送和數(shù)據(jù)業(yè)務(wù)提供無(wú)線接口。其集成了完整的射頻電路和GSM 的基帶處理器,特別適合于快速開(kāi)發(fā)基于GSM 無(wú)線網(wǎng)絡(luò)的無(wú)線應(yīng)用產(chǎn)品。帶有人機(jī)接口(HMI) 界面的應(yīng)用產(chǎn)品內(nèi)部與MZ28 的通信可通過(guò)USB口實(shí)現(xiàn)。挪威Nordic 公司的短距離無(wú)線收發(fā)芯片nRF401,其433 MHz的工作頻率為國(guó)際通用的工業(yè)、科學(xué)和醫(yī)用(ISM)頻段,無(wú)須申請(qǐng)?jiān)S可證。它采用FSK調(diào)制,抗干擾能力強(qiáng),特別適合工業(yè)控制場(chǎng)合[1,3]。
系統(tǒng)硬件設(shè)計(jì)
計(jì)算機(jī)通過(guò)USB口與上位GSM連接,并向其提供電源。下位GSM模塊、主無(wú)線收發(fā)模塊與主MCU的硬件連接電路如圖2 所示。圖2中,主MCU串口通過(guò)一個(gè)多路復(fù)用開(kāi)關(guān)MSW,分別與主無(wú)線收發(fā)模塊RF和下位GSM(MZ28)連接。由于MZ28內(nèi)部工作電壓為2.8 V,而系統(tǒng)供電電壓為4V,故MZ28模塊的RXD 端接上一個(gè)鍺二極管,CTS端(低電平有效) 接上兩個(gè)硅二級(jí)管,起降壓保護(hù)作用。主無(wú)線收發(fā)模塊與主MCU的通信連接比較簡(jiǎn)單,直接把模塊的數(shù)據(jù)輸入和數(shù)據(jù)輸出端分別連接到主MCU的串口TXD、RXD 端即可。
[align=center]
圖2:下位GSM模塊、主無(wú)線收發(fā)模塊與MCU的連接[/align]
系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)的軟件設(shè)計(jì)包括監(jiān)控計(jì)算機(jī)的監(jiān)測(cè)程序與數(shù)據(jù)管理程序、主MCU和從MCU 程序。系統(tǒng)采用AT命令進(jìn)行GSM模塊的控制,其操縱GSM模塊的一些有關(guān)短信的常用AT命令可查閱GSM 規(guī)范GSM07.05 及GSM07.07[4]
計(jì)算機(jī)信號(hào)采集及數(shù)據(jù)管理模塊
這部分程序采用Visual Basic(VB6.0)語(yǔ)言開(kāi)發(fā),使用MsComm控件通過(guò)USB口與主GSM模塊通訊,利用VB啟動(dòng)Excel,所采集的數(shù)據(jù)直接送Excel,充分利用Excel的強(qiáng)大數(shù)據(jù)處理功能實(shí)現(xiàn)對(duì)采集數(shù)據(jù)的顯示(包括數(shù)據(jù)值及數(shù)據(jù)點(diǎn)曲線和趨勢(shì)圖等)、分析和存儲(chǔ)[5,6]。VB中啟動(dòng)和操作Excel的相關(guān)語(yǔ)句如下:
‘*** 首先要聲明一個(gè)目標(biāo)全局變量 ***
Global chrtobj As ChartObject
‘*** 打開(kāi)Excel ***
Dim ExcelApp As Excel.Application
Set ExcelApp = Excel.Application
ExcelApp.Visible = True
ExcelApp.Workbooks.Add
‘*** 往Excel單元格中寫(xiě)數(shù)據(jù) ***
Range(Excel_Column).Value="ChNo"&OutCh(I)
‘*** Excel數(shù)據(jù)繪圖 ***
chrtobj.Chart.SeriesCollection.AddRange(Select_to_Draw)
‘*** 增加趨勢(shì)線 ***
chrtobj.Chart.SeriesCollection(1).Select
chrtobj.Chart.SeriesCollection(1).Trendlines.Add_(Type:=xlPolynomial,Order:=4,_ Forward:=0,Backward:=0, DisplayEquation:=False,DisplayRSquared:=False).Select
上位GSM模塊的短信發(fā)送采用PDU 模式。對(duì)于PDU 格式的具體定義和其它參數(shù),可查閱GSM規(guī)范GSM03.40 及GSM03.38[7]。相應(yīng)的VB 程序如下:
MSComm1.Output ="AT + CMGF = 0"& Chr (13) ‘設(shè)置模塊短信格式為PDU 模式
Call Delay ‘ 延時(shí)
MSComm1.Output = "AT + CNMI = 2,2,0,0,0 "& Chr(13) ‘有短消息到達(dá)立即送顯
Call Delay ‘延時(shí)
MSComm1.Output = "AT+ CMGS = "&Length &Chr (13) ‘發(fā)送短信,Length 為發(fā)送的字節(jié)數(shù)
Call Delay ‘延時(shí),使GSM模塊有時(shí)間響應(yīng)上一條指令
MSComm1.Output = Sendstr & Chr (26) ‘ 發(fā)送PDU 字符串,Sendstr 為PDU 字符串變量
接收短信采用TEXT 模式對(duì)收到的短信解碼,TEXT模式比較簡(jiǎn)單,現(xiàn)舉例如下:
RX : + CMT:“13601702443”,“00/ 05/ 18 ,09 :20 :16 + 02”,“4E00004100420043”其中,“+ CMT”為新短信指示, + CMT表示直接將新短信發(fā)送到終端設(shè)備; “13601702443” 為短信來(lái)源號(hào)碼; 00/ 05/ 18 ,09 :20 :16 + 02 為短信到達(dá)時(shí)間; 4E00004100420043 為短信內(nèi)容(這里為“一ABC”) 。
主MCU模塊
系統(tǒng)采用Atmel公司的AT89C51單片機(jī)作為CPU,程序采用匯編語(yǔ)言編寫(xiě)[8]。主要功能包括:系統(tǒng)模塊初始化(本機(jī)初始化、下位GSM模塊初始化、主無(wú)線收發(fā)模塊初始化);針對(duì)不同的上位GSM模塊短信指令內(nèi)容的跳轉(zhuǎn)控制;采集數(shù)據(jù)的接收、存儲(chǔ)控制;短信收發(fā)控制等。主MCU軟件流程如圖3。單片機(jī)匯編語(yǔ)言進(jìn)行短信收發(fā)原理同前所述,AT 指令相同。
系統(tǒng)的主無(wú)線收發(fā)模塊與從無(wú)線收發(fā)模塊之間構(gòu)成一點(diǎn)對(duì)多點(diǎn)通信。為保證通信可靠,短距離無(wú)線模塊之間的通信需要自己定義一個(gè)通信協(xié)議。本文設(shè)計(jì)的通信協(xié)議如下:每個(gè)從無(wú)線收發(fā)模塊都分配一個(gè)地址碼;數(shù)據(jù)傳輸采用短包方式打包,根據(jù)數(shù)據(jù)手冊(cè),噪聲中不易產(chǎn)生00xFF跟 00x00。于是,數(shù)據(jù)包采用如下方式進(jìn)行打包:在數(shù)據(jù)字節(jié)前加3個(gè)包頭字節(jié),即00xFF、00x00、00x00,然后加入待發(fā)送的2個(gè)字節(jié)的數(shù)據(jù)。根據(jù)經(jīng)驗(yàn),一般第1 個(gè)字節(jié)的數(shù)據(jù)在發(fā)送時(shí)容易丟失,因此發(fā)送數(shù)據(jù)的開(kāi)始前,先發(fā)送一個(gè)任意內(nèi)容的字節(jié),然后才開(kāi)始發(fā)送數(shù)據(jù)包。接收時(shí)規(guī)定只接收跟在00xFF、00x00、00x00 這3個(gè)字節(jié)后面的2個(gè)字節(jié)數(shù)據(jù);同時(shí),采用奇偶校驗(yàn)的偶校驗(yàn)方式,如出錯(cuò),則丟棄該數(shù)據(jù)包,接收下一個(gè)數(shù)據(jù)包。
從MCU模塊
這部分程序主要是接收計(jì)算機(jī)傳來(lái)的控制命令和實(shí)現(xiàn)數(shù)據(jù)的采集,主要包括A/D轉(zhuǎn)換、數(shù)據(jù)預(yù)處理和采集數(shù)據(jù)的無(wú)線短距離傳輸。
4. 結(jié)束語(yǔ)
[align=center]
圖3. 主MCU軟件流程框圖[/align]
將GSM 模塊和短距離無(wú)線模塊結(jié)合,實(shí)現(xiàn)了一種傳感器數(shù)據(jù)采集和小流量無(wú)線傳輸功能,充分利用了現(xiàn)有GSM網(wǎng)絡(luò)的優(yōu)勢(shì)和USB總線數(shù)據(jù)傳輸速率高、USB設(shè)備可熱插拔等功能,為遠(yuǎn)程監(jiān)測(cè)、小流量數(shù)據(jù)采集提供了一種合理、高效的解決方案。該系統(tǒng)工作穩(wěn)定,成本低,無(wú)短信丟失、無(wú)出錯(cuò)現(xiàn)象。目前,系統(tǒng)可以在小范圍穩(wěn)定運(yùn)行,試驗(yàn)證明系統(tǒng)運(yùn)行可靠。但該系統(tǒng)實(shí)時(shí)性不強(qiáng),滯后一個(gè)短信發(fā)送接收周期時(shí)間。隨著無(wú)線通訊技術(shù)的發(fā)展,該系統(tǒng)功能會(huì)隨之完善,并能在醫(yī)學(xué)臨床檢測(cè)和監(jiān)測(cè)等更多的領(lǐng)域得到廣泛應(yīng)用。
本文作者創(chuàng)新點(diǎn):將GSM 模塊和短距離無(wú)線模塊結(jié)合,充分利用了現(xiàn)有GSM網(wǎng)絡(luò)的優(yōu)勢(shì)和USB總線數(shù)據(jù)傳輸速率高、USB設(shè)備可熱插拔等功能,利用Excel強(qiáng)大的數(shù)據(jù)處理能力,為遠(yuǎn)程監(jiān)測(cè)、小流量傳感器數(shù)據(jù)采集提供了一種合理、高效的解決方案。
參考文獻(xiàn)
[1] nRF401 Datasheet, Nordic Corp. Ltd.
[2] USB130 Datasheet, 迅通電子有限公司
[3] 李金鳳,曹順,魏立峰. 無(wú)線收發(fā)模塊nRF401在礦山中的應(yīng)用[J].微計(jì)算機(jī)信息(嵌入式與SOC),2006, Vol.22,1-2: 241-243,16
[4] Digital Cellular Telecommunications System (Phase 2 + ) ; Use of Data Terminal Equipment2Data Circuit Terminating ; Equipment (DTE2DCE) Interface for Short Message Service (SMS) and Cell Broadcast Service (CBS) . GSM 07. 05 version 5.5.0 1998201
[5] 王鴻儒. Excel VBA程序設(shè)計(jì)[M]. 北京: 中國(guó)鐵道出版社, 2004
[6] 陳學(xué)東,常丹等. Visual Basic 6.0程序設(shè)計(jì)教程[M]. 北京: 清華大學(xué)出版社, 2005
[7] Digital Cellular Telecommunications System (Phase2+ ) ; Techni2cal Realization of the Short Message Service (SMS) ; Point - to -Point (PP). GSM 03. 40 version 6.0.0 1998203
[8] 孫涵芳,徐愛(ài)卿. MCS - 51、96 系列單片機(jī)原理及應(yīng)用[M]. 北京:北京航空航天大學(xué)出版社,1988