摘 要: 提出一種由GPRS模塊SIM300C和單片機(jī)AT89S52組成的遠(yuǎn)程數(shù)據(jù)采集和傳輸終端,介紹了系統(tǒng)的硬軟件設(shè)計。該系統(tǒng)以單片機(jī)為主控制器,配合A/D轉(zhuǎn)換電路、SIM300C模塊及其外圍電路,將傳感器端采集的模擬電壓或電流信號進(jìn)行A/D轉(zhuǎn)換,由單片機(jī)將相應(yīng)的數(shù)字量打包,通過串口發(fā)送給SIM300C模塊,SIM300C模塊自動將要發(fā)送的數(shù)據(jù)打包成TCP/IP數(shù)據(jù)包,經(jīng)GPRS無線通信網(wǎng)絡(luò)發(fā)送給遠(yuǎn)端的服務(wù)器。實(shí)驗結(jié)果表明,該系統(tǒng)運(yùn)行穩(wěn)定可靠、數(shù)據(jù)傳輸及時高效。
關(guān)鍵詞: GPRS;SIM300C;遠(yuǎn)程數(shù)據(jù)采集傳輸;A/D轉(zhuǎn)換
農(nóng)業(yè)具有對象多樣、地域廣闊、偏僻分散、通信條件落后等特點(diǎn),在絕大多數(shù)情況下,農(nóng)業(yè)觀測現(xiàn)場經(jīng)常無人值守,導(dǎo)致信息獲取非常困難。要解決這個問題,需實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)程傳輸與交換[1]。通用分組無線技術(shù)GPRS(General Packet Radio Service)是在現(xiàn)有的GSM系統(tǒng)上發(fā)展起來的,充分利用了GSM系統(tǒng)的無線結(jié)構(gòu),在移動用戶和數(shù)據(jù)網(wǎng)絡(luò)之間提供一種連接,向移動用戶提供無線IP服務(wù)[2]。采用GPRS方案對數(shù)據(jù)量少、突發(fā)式、頻繁傳送的農(nóng)業(yè)監(jiān)測數(shù)據(jù)傳輸是一種較好的選擇。
為了滿足數(shù)據(jù)傳輸終端低成本、小型化和移動靈活等要求,廣泛采用微處理器對GPRS模塊進(jìn)行控制。早期廠家推出的GPRS模塊都不支持TCP/IP協(xié)議,因此,需要在微處理器中嵌入TCP/IP協(xié)議,這樣既增加了硬件的負(fù)擔(dān),又增加了硬件的成本[3-4]。近幾年,SIMCOM、SIEMENS等公司推出內(nèi)嵌TCP/IP協(xié)議的GPRS模塊,不僅降低了GPRS模塊對微處理器的要求,還縮短了用戶的開發(fā)周期。針對水產(chǎn)養(yǎng)殖環(huán)境監(jiān)測系統(tǒng)數(shù)據(jù)傳輸頻繁、數(shù)據(jù)量較小、現(xiàn)場改造困難、布線成本高等特點(diǎn),本文介紹的系統(tǒng)采用GPRS技術(shù),用低成本的單片機(jī),A/D轉(zhuǎn)換芯片,以及內(nèi)嵌TCP/IP協(xié)議的GPRS無線通信模塊SIM300C,實(shí)現(xiàn)水產(chǎn)養(yǎng)殖環(huán)境數(shù)據(jù)采集和數(shù)據(jù)的遠(yuǎn)程傳輸。
1 系統(tǒng)構(gòu)成
遠(yuǎn)程數(shù)據(jù)采集傳輸終端以單片機(jī)AT89S52為主控制器,實(shí)現(xiàn)現(xiàn)場數(shù)據(jù)采集和遠(yuǎn)程數(shù)據(jù)傳輸兩大功能。傳感器采集的8路模擬信號以差分方式送入2片A/D轉(zhuǎn)換芯片并轉(zhuǎn)換成相應(yīng)的數(shù)字量,每一輪轉(zhuǎn)換結(jié)束后,單片機(jī)將16組數(shù)據(jù)放入1個數(shù)組中并添加幀頭和幀尾,通過串口發(fā)送給SIM300C模塊, SIM300C自動將要發(fā)送的數(shù)據(jù)打包成TCP/IP數(shù)據(jù)包,并通過GPRS網(wǎng)絡(luò)與Internet上的服務(wù)器建立連接,將采集到的數(shù)據(jù)發(fā)送給服務(wù)器。
2 系統(tǒng)硬件設(shè)計
系統(tǒng)硬件設(shè)計分為A/D轉(zhuǎn)換硬件設(shè)計和SIM300C模塊外圍電路設(shè)計。
2.1 數(shù)據(jù)采集與A/D轉(zhuǎn)換硬件設(shè)計
A/D轉(zhuǎn)換單元采用2片A/D轉(zhuǎn)換芯片MAX186[5]。MAX186是MAXIM公司的8輸入通道12位串行輸出的A/D轉(zhuǎn)換芯片,其輸入端既可以單端輸入8路模擬信號,也可差分輸入4路模擬信號。MAX186主要信號線有:串行數(shù)據(jù)輸出(DOUT)、串行選通脈沖輸出(SSTRB)、串行數(shù)據(jù)輸入(DIN)、低電平有效芯片選擇(CS)、串行時鐘輸入SCLK。這些信號分別與單片機(jī)的P0.0~P0.4相連,另1片MAX186與單片機(jī)的P2.0~P2.4相連,如圖1所示。AT89S52通過P0.3實(shí)現(xiàn)對MAX186的片選;通過P0.4向MAX186的SCLK送入串行時鐘信號;通過P0.2向MAX186的DIN輸入8位控制字;通過P0.1接收MAX186的SSTRB腳的電平輸出,電平由低變高說明模擬信號經(jīng)采樣保持、A/D轉(zhuǎn)換完畢,AT89S52可以接收數(shù)據(jù);通過P0.0讀入MAX186 DOUT引腳串行輸出的12位數(shù)字量[6]。
2.2 SIM300C外圍電路設(shè)計
SIM300C是SIMCOM公司的無線通信模塊。該模塊尺寸小、功耗低,內(nèi)嵌強(qiáng)大的TCP/IP協(xié)議,提供通用的AT控制命令[7]。SIM300C內(nèi)部集成了完整的射頻電路和GSM基帶處理器,提供2個串口、1個SIM卡接口、通用I/O接口等[8]。這些接口信號都通過60針的板對板連接器進(jìn)行連接。
2.2.1 電源
SIM300C模塊的1、3、5、7、9腳為電源輸入引腳VBAT,2、4、6、8、10腳是地。由于模塊的供電電壓為3.4~4.5 V(典型值為4.2 V),采用 5 V供電時,需要進(jìn)行5 V到4.2 V的電壓轉(zhuǎn)換。設(shè)計中使用MICREL公司的MIC29300系列芯片為SIM300C提供4.2 V的電壓,其輸出電流可達(dá)到3 A,能夠滿足SIM300C的要求。電源電路如圖2所示。
2.2.2 串口和SIM卡接口
SIM300C模塊為用戶提供了:通用串口和調(diào)試串口。因為模塊提供的2個串口都是TTL電平,需通過電平轉(zhuǎn)換芯片,將TTL電平轉(zhuǎn)換成RS232電平。設(shè)計中采用MAXIM公司的MAX232芯片進(jìn)行電平轉(zhuǎn)換,使用TXD、RXD、GND 3根線構(gòu)成3線串口。
SIM300C模塊提供的SIM卡接口信號有:VSIM-SIM卡電源、SIMRST-復(fù)位、SIMCLK-時鐘、SIMDATA-數(shù)據(jù)。SIM卡與模塊之間通過SIM卡座進(jìn)行連接,設(shè)計中采用6針SIM卡座,其信號線主要有:電源(VCC)、地(GND)、復(fù)位(RST)、狀態(tài)(VPP)、時鐘(CLK)、數(shù)據(jù)(I/O),其中狀態(tài)線VPP不接。SIM卡電源可以是1.8 V或3 V,RST、CLK、I/O 3個引腳分別連接22 ?贅電阻后,再與SIM300C的SIMRST、SIMCLK、SIMDATA相連,SIMDATA與VSIM間還需接1個10 k?贅的上拉電阻。另外,在SIM卡接口電路中,為了減小靜電干擾,應(yīng)使用靜電防護(hù)器件,設(shè)計中采用了SEMI公司的SMF05C[8]。其硬件連接如圖3所示。
3 系統(tǒng)軟件設(shè)計
系統(tǒng)以30 s為1個采集周期,初始化完畢后,單片機(jī)通知GPRS模塊連接服務(wù)器準(zhǔn)備發(fā)送數(shù)據(jù),連接服務(wù)器成功后,啟動2片A/D轉(zhuǎn)換芯片MAX186對8路傳感器信號進(jìn)行A/D轉(zhuǎn)換, A/D轉(zhuǎn)換結(jié)束后,向GPRS模塊發(fā)送幀頭FF AA,緊接著發(fā)送16組數(shù)據(jù),最后發(fā)送幀尾0D 0A,等待下一個采集周期。系統(tǒng)工作流程如圖4所示。
3.1 A/D轉(zhuǎn)換
MAX186為串行工作方式,在進(jìn)行A/D轉(zhuǎn)換之前要對MAX186進(jìn)行配置。首先將CS管腳置低電平選通芯片,在SCLK管腳輸入外部時鐘,在時鐘SCLK的每1個上升沿把1個最高位為“1”的控制字節(jié)的各位送入輸入移位寄存器,控制器收到控制字節(jié)后,選擇控制字中給定的模擬通道,并在SCLK下降沿啟動A/D轉(zhuǎn)換??刂谱止?jié)的格式如表1所示。在控制字節(jié)的最后1位之后,SSTRB管腳有1個時鐘周期的高電平,在其后的12個時鐘周期SCLK的每1個下降沿,轉(zhuǎn)換后數(shù)據(jù)的各位出現(xiàn)在DOUT端,單片機(jī)從DOUT管腳讀入12位數(shù)字量。
3.2 GPRS通信
在GPRS通信中,有2種傳輸協(xié)議(TCP/UDP)可供選擇。在本系統(tǒng)中,由于數(shù)據(jù)量相對較少,傳輸時間間隔較長,使用了更為可靠的TCP作為接入方式。
單片機(jī)通過串口使用AT指令[9]控制GPRS模塊。系統(tǒng)啟動后,為防止因上次使用時未關(guān)閉連接,造成連接服務(wù)器失敗,所以單片機(jī)先向SIM300C發(fā)送關(guān)閉連接的指令:AT+CIPCLOSE,斷開連接成功返回“CLOSE OK”。隨后,單片機(jī)向SIM300C發(fā)送連接服務(wù)器命令:AT+CIPSTART=“TCP”、“202.205.84.222”、2020,用來將模塊接入GPRS網(wǎng)絡(luò),使用“TCP”方式接入,服務(wù)器IP地址為202.205.84.222,偵聽端口號為2020。連接指令送入GPRS模塊后,單片機(jī)通過串口接收GPRS 模塊返回的信息。返回“OK”說明指令正確,返回“ERROR”說明指令輸入不正確,需要重新連接。等待一段時間后,GPRS 模塊會返回1個字符串說明目前的連接狀態(tài):若返回“CONNECT OK”說明已經(jīng)連上服務(wù)器;若連接失敗,返回STATE狀態(tài):“CONNECT FAIL”,需要重新進(jìn)行連接或者檢查服務(wù)器的網(wǎng)絡(luò)連接狀態(tài)。
服務(wù)器連接成功后,單片機(jī)向SIM300C輸入發(fā)送數(shù)據(jù)指令“AT+CIPSEND=20”,然后送入要發(fā)送的數(shù)據(jù),包括幀頭、16組數(shù)據(jù)及幀尾。
4 系統(tǒng)驗證
對該系統(tǒng)的驗證需要1臺具有公網(wǎng)IP地址的計算機(jī)作為Internet上的服務(wù)器,1張開通GPRS功能的SIM卡且接入方式為CMNET,服務(wù)器數(shù)據(jù)收發(fā)DEMO軟件。
實(shí)驗中,將GPRS模塊的串口與單片機(jī)串口相連,A/D轉(zhuǎn)換芯片輸入端以差分方式接入2路溫度傳感器PT100和1路濕度傳感器。終端以30 s為1個周期,每1周期采集2片MAX186的8路差分輸入模擬信號,采集結(jié)束,通過GPRS網(wǎng)絡(luò)將數(shù)據(jù)發(fā)送到服務(wù)器。服務(wù)器端用Microsoft Winsock Control 6.0(SP6)控件開發(fā)了服務(wù)器端接收軟件,完成對網(wǎng)絡(luò)數(shù)據(jù)接收、數(shù)據(jù)存儲及數(shù)據(jù)顯示。服務(wù)器軟件每次接收到終端的數(shù)據(jù)時,都將數(shù)據(jù)保存在一個文本文檔內(nèi),并且記錄接收數(shù)據(jù)的系統(tǒng)時間。圖5為根據(jù)服務(wù)器文檔記錄的數(shù)據(jù)繪制的實(shí)驗室24小時溫度變化曲線。
測試結(jié)果表明:終端采集到的溫度變化曲線符合實(shí)際溫度變化,說明A/D轉(zhuǎn)換部分能夠準(zhǔn)確地采集傳感器輸出的模擬信號;測試過程中,未發(fā)現(xiàn)GPRS模塊與服務(wù)器端連接斷開,觀察服務(wù)器文本記錄的數(shù)據(jù),未發(fā)現(xiàn)數(shù)據(jù)丟失,數(shù)據(jù)均以30 s為1個周期被服務(wù)器接收,少數(shù)數(shù)據(jù)延遲幾秒接收,說明以TCP協(xié)議進(jìn)行數(shù)據(jù)傳輸是可靠的,即使無線網(wǎng)絡(luò)發(fā)生擁塞時,也不會造成數(shù)據(jù)的丟失,而只是發(fā)生數(shù)據(jù)延遲。
本文設(shè)計的基于SIM300C模塊的遠(yuǎn)程數(shù)據(jù)采集傳輸終端,具有成本低、體積小、布設(shè)方便、運(yùn)行穩(wěn)定等特點(diǎn),克服了現(xiàn)場環(huán)境改造困難、布線成本高等問題,能夠適應(yīng)水產(chǎn)養(yǎng)殖環(huán)境中監(jiān)測點(diǎn)分散和潮濕的環(huán)境,為現(xiàn)場環(huán)境數(shù)據(jù)的采集和數(shù)據(jù)的遠(yuǎn)程傳輸提出了一種解決方案?;赟IM300C的遠(yuǎn)程數(shù)據(jù)采集傳輸終端與遠(yuǎn)程服務(wù)器間可以通過GPRS無線網(wǎng)絡(luò)進(jìn)行可靠的數(shù)據(jù)傳輸,能夠按設(shè)定的采集周期正確采集和傳輸現(xiàn)場環(huán)境數(shù)據(jù),滿足實(shí)際應(yīng)用中對實(shí)時性的要求。在今后的研究中,需要為該系統(tǒng)增加LCD顯示和鍵盤模塊,以實(shí)現(xiàn)數(shù)據(jù)的實(shí)時顯示,現(xiàn)場工作人員可以通過鍵盤對系統(tǒng)進(jìn)行簡單的控制;完善服務(wù)器端上位機(jī)軟件,提供更為友好的數(shù)據(jù)顯示界面。
參考文獻(xiàn)
[1] 趙英紅.基于GPRS的大棚智能監(jiān)控系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].安徽農(nóng)業(yè)科學(xué),2008,36(18):7931-7932.
[2] 文志成,張偉.GPRS網(wǎng)絡(luò)技術(shù)[M].北京:電子工業(yè)出版社,2005.
[3] 秦大興,劉建,鄭喜鳳.基于GPRS模塊MC35I的檢測系統(tǒng)設(shè)計[J].儀表技術(shù)與傳感器,2007(2):20-22.
[4] 黃振.遠(yuǎn)程心電檢測技術(shù)研究[D].哈爾濱:哈爾濱工程大學(xué),2006.
[5] MAXIM公司.MAX186 datasheet.1996.
[6] 戴新迪,劉玉強(qiáng).串行12位AD轉(zhuǎn)換器MAX186在便攜式系統(tǒng)中的應(yīng)用[J].黑龍江科技信息,2004(1).
[7] SIMCOM公司.SIM300 SPEC NEW.2005.
[8] SIMCOM公司.SIM300_HD_V3.03.2006.
[9] SIMCOM公司.SIM300_ATC_V1.06.2005.