摘 要: 針對傳統(tǒng)有線數(shù)據(jù)采集技術(shù)存在的可移動性差,電線鋪設(shè)受環(huán)境影響大等問題,運用短距離無線通信技術(shù),采用挪威 Nordic 公司的單片射頻發(fā)射器nRF905設(shè)計出了一個自動氣象站系統(tǒng),采集濕度、壓強、溫度、光照等氣象站數(shù)據(jù)。通過nRF905芯片,將采集而來的數(shù)據(jù)經(jīng)無線通信信道傳輸至接收端并用LCD12864液晶顯示器顯示出來。nRF905芯片工作電壓為1.9~3.6 V,工作于433 MHz/868 MHz/915 MHz 三個ISM頻道(全球免費波段),芯片功耗非常低。此系統(tǒng)可廣泛應(yīng)用于無線數(shù)據(jù)采集、環(huán)境監(jiān)測等場合,有很好的靈活性和良好的實時性。
關(guān)鍵詞: nRF905; 短距離; 無線傳輸; 12864液晶屏
中圖分類號: TN925?34 文獻標識碼: A 文章編號: 1004?373X(2014)01?0050?04
0 引 言
20世紀90年代以來,無人值守氣象站數(shù)據(jù)監(jiān)測系統(tǒng)在歐美及亞洲各發(fā)達國家得到了迅猛發(fā)展,紛紛建立起業(yè)務(wù)性自動觀測網(wǎng),且基于衛(wèi)星和GSM的通信模式實現(xiàn)了遙測自動化。并且能源多由綠色能源如太陽能、風(fēng)力、水力等等提供。
我國無線多節(jié)點環(huán)境監(jiān)測站研制工作開始于20世紀60年代,自1995年以來我國地面環(huán)境數(shù)據(jù)觀測網(wǎng)的觀測站已先后建成多套各種類型和型號的自動氣象站。
目前,國內(nèi)也有無線的無人值守氣象站數(shù)據(jù)監(jiān)測系統(tǒng)站,但存在許多不足之處,主要存在四大主要缺陷:
(1) 無線傳輸采用短信的方式,這樣對于多站點,多時次的信息需求來說,經(jīng)濟代價太大;
(2) 采集的數(shù)據(jù)存于介質(zhì)(活動存盤),需人員定時去取,影響信息的實時性,也帶來許多人力財力的投入;
(3) 國內(nèi)多節(jié)點環(huán)境監(jiān)測站的供電多由化石能源提供,污染環(huán)境并且容易導(dǎo)致化石能源的匱乏。
(4) 國內(nèi)環(huán)境監(jiān)測站的數(shù)據(jù)傳輸抗干擾能力差,數(shù)據(jù)傳輸距離短,數(shù)據(jù)庫的構(gòu)建不合理,并且容易導(dǎo)致數(shù)據(jù)的丟失,查找困難等問題。
總之,國內(nèi)的無人值守氣象站數(shù)據(jù)監(jiān)測系統(tǒng)存在很多的不足,因此,還有很多的需要改進的部分。
本課題利用無線傳輸模塊,將環(huán)境數(shù)據(jù)采集到接收終端。再利用編寫的軟件應(yīng)用程序采集、傳輸和顯示環(huán)境信息,達到了多節(jié)點環(huán)境監(jiān)測站環(huán)境信息采集、傳輸和顯示的作用。
1 硬件設(shè)計
硬件發(fā)射和接收部分都以單片機、最小系統(tǒng)為數(shù)據(jù)處理的核心單元。發(fā)射部分的溫度傳感器直接輸出數(shù)字信號,濕度、光照、壓力傳感器采集輸出的模擬信號通過PCF8591轉(zhuǎn)換為數(shù)字信號,這些數(shù)字信號經(jīng)單片機處理后通過nRF905發(fā)射模塊發(fā)出信號。接收部分對應(yīng)的nRF905又將接收的信號送入單片機處理后顯示在顯示器上。其系統(tǒng)硬件框圖如圖1所示。
圖1 無人值守氣象站數(shù)據(jù)采集系統(tǒng)硬件框圖
2 軟件設(shè)計
軟件設(shè)計對應(yīng)于硬件部分有發(fā)送和接收兩部分。發(fā)送部分首先將無線發(fā)送模塊初始化,然后從單片機獲取相關(guān)數(shù)據(jù)并在監(jiān)聽信道空閑時將數(shù)據(jù)發(fā)出,然后返回重復(fù)此過程。接收模塊主要負責處理并顯示數(shù)據(jù)參數(shù),初始化相關(guān)模塊單元后獲取單片機接收的數(shù)據(jù),處理并實時顯示在LCD屏上,然后監(jiān)聽信道準備獲取顯示下一組數(shù)據(jù)并返回。其流程圖如圖2所示。
圖2 無人值守氣象站數(shù)據(jù)采集系統(tǒng)軟件流程圖
3 系統(tǒng)簡介
3.1 系統(tǒng)方案與功能指標
該系統(tǒng)主要采用達盛科技EXP?89S51/52/53單片機CPU板(EXP?KEIL C51 V1.0)與EXP?III通用板配合以及nRF905無線模塊完成各種應(yīng)用電路擴展。系統(tǒng)分兩個部分:發(fā)射部分功能是采用相應(yīng)的傳感器模塊采集多路物理信號,通過放大、濾波、A/D轉(zhuǎn)換,輸出能被單片機所識別的數(shù)字信號,進而使用單片機控制無線發(fā)射模塊將采集而來的數(shù)據(jù)發(fā)射出去,接收部分通過無線接收模塊將數(shù)據(jù)讀入單片機,經(jīng)數(shù)據(jù)處理后將多路數(shù)據(jù)參數(shù)在LCD屏中實時顯示,具體有以下的功能指標:可同時采集多路物理信號并保證各信號之間的同步關(guān)系,互不影響;系統(tǒng)具有較強的軟、硬件支持,可靠性好,使用方便;具有最佳的設(shè)計方案,系統(tǒng)的軟件應(yīng)用程序可讀性、擴展性強;本系統(tǒng)發(fā)射部分可同時采集4路物理信號,并將數(shù)據(jù)通過無線信道傳輸,傳輸距離在200 m以上;接收部分通過液晶LCD顯示的實際溫度、濕度、壓力值準確度較高;系統(tǒng)由太陽能和風(fēng)能提供電力,非常環(huán)保;系統(tǒng)功耗非常低,且具有兩種工作模式:待機模式和工作模式,更節(jié)能;系統(tǒng)可以實現(xiàn)多節(jié)點測量,因此更加方便,系統(tǒng)具有存儲器可以將采集而來的數(shù)據(jù)存入數(shù)據(jù)庫,方便提??;系統(tǒng)的多節(jié)點通信設(shè)置了載波監(jiān)聽,因此不用擔心數(shù)據(jù)傳輸沖突,數(shù)據(jù)傳輸交換安全無憂。
3.2 實現(xiàn)原理
采用可編程智能單線數(shù)字溫度傳感器DS18B20進行4路溫度信號采集,DSl8B20的全部傳感元件及轉(zhuǎn)換電路集成電路內(nèi),測量結(jié)果可在1 s(典型值)內(nèi)把溫度變換成數(shù)字,不需要任何外圍元件,接線方便,其測量精度可控。
壓力信號采集通過達盛科技產(chǎn)品壓力、溫度傳感器模塊LGDS內(nèi)MPX53硅壓力傳感器完成,采集數(shù)據(jù)通過A/D轉(zhuǎn)換輸送到單片機,通過單片機控制其在LCD屏中顯示。
濕度信號采集通過達盛科技產(chǎn)品壓力、溫度傳感器模塊LGDS內(nèi)濕敏電阻傳感器完成,采集數(shù)據(jù)通過A/D轉(zhuǎn)換輸送到單片機,通過單片機控制其在LCD屏中顯示。
模數(shù)轉(zhuǎn)換電路中采用PCF8591模數(shù)轉(zhuǎn)換器完成前一級硬件電路采集的壓力、濕度兩路物理信號的處理,將信號轉(zhuǎn)換成數(shù)字信號輸入單片機控制電路。
單片機STC90C516控制電路接收已轉(zhuǎn)換物理信號,并通過預(yù)先編寫的源代碼程序完成對各參數(shù)的控制并將數(shù)據(jù)通過無線信道傳輸。
顯示電路將系統(tǒng)接收部分接收而來的多路參數(shù)經(jīng)處理后在中文圖形液晶模塊12864實時顯示,顯示結(jié)果靈活、直觀。
3.3 關(guān)鍵電路介紹
3.3.1 A/D轉(zhuǎn)換電路
A/D轉(zhuǎn)換電路采用PCF8591芯片,PCF8591是一個單片集成、單獨供電、低功耗、8 b CMOS數(shù)據(jù)獲取器件。PCF8591具有4個模擬輸入、1個模擬輸出和1個串行I2C總線接口。PCF8591的3個地址引腳A0, A1和A2可用于硬件地址編程,允許在同個I2C總線上接入8個PCF8591器件,而無需額外的硬件。在PCF8591器件上輸入輸出的地址、控制和數(shù)據(jù)信號都是通過雙線雙向I2C總線以串行的方式進行傳輸。PCF8591的功能包括多路模擬輸入、內(nèi)置跟蹤保持、8 b模數(shù)轉(zhuǎn)換和8 b數(shù)模轉(zhuǎn)換。PCF8591的最大轉(zhuǎn)化速率由I2C總線的最大速率決定。
I2C總線寫數(shù)據(jù)通信過程如下:
(1) 在檢測到總線空閑的條件下,主控首先發(fā)送一個START信號以控制總線;
(2) 主控發(fā)送一個地址字節(jié);
(3) 當被控器件識別到主控發(fā)送的地址字節(jié)與自己的地址相同時,被控器件發(fā)送一個應(yīng)答信號(ACK)給主控;
(4) 在收到ACK后,主控發(fā)送第一個數(shù)據(jù)字節(jié);
(5) 被控器件收到主控發(fā)出的數(shù)據(jù)字節(jié)后發(fā)送一個ACK表示可以繼續(xù)傳送數(shù)據(jù),若發(fā)送NACK則表示數(shù)據(jù)傳送結(jié)束;
(6) 在主控發(fā)送全部數(shù)據(jù)完成后,將發(fā)送一個停止位STOP以結(jié)束整個通信并釋放總線。
讀數(shù)據(jù)通信過程如下:
(1) 在檢測到總線空閑的條件下,主控先發(fā)送一個START信號以控制總線;
(2) 主控發(fā)送一個地址字節(jié);
(3) 當被控器件識別到主控發(fā)送的地址字節(jié)與自己的地址相同時,被控器件發(fā)送一個應(yīng)答信號(ACK)給主控;
(4) 在收到ACK后釋放數(shù)據(jù)總線,主控接收第一個數(shù)據(jù)字節(jié);
(5) 被控器件收到主控發(fā)出的數(shù)據(jù)字節(jié)后發(fā)送一個ACK表示可以繼續(xù)傳送數(shù)據(jù),若發(fā)送NACK則表示數(shù)據(jù)傳送結(jié)束;
(6) 在主控發(fā)送全部數(shù)據(jù)完成后,將發(fā)送一個停止位STOP以結(jié)束整個通信并釋放總線。
3.3.2 nRF905(無線收發(fā))電路
發(fā)送過程如下:
(1) 當MCU要發(fā)送數(shù)據(jù)時,按時序通過SPI 接口將接收機的地址和要發(fā)送的數(shù)據(jù)傳送至nRF905,在器件配置和通信協(xié)議時確定SPI接口速率;
(2) MCU置高TX_EN和TRX_CE,觸發(fā)nRF905的Shock Burst TM發(fā)送模式;
(3) Shock Burst TM發(fā)送模式:自動開啟射頻寄存器;打包數(shù)據(jù)(加CRC校驗碼和字頭);數(shù)據(jù)包發(fā)送;當發(fā)送完數(shù)據(jù)時,準備好數(shù)據(jù),置高引腳。
(4) 置高AUTO_RETRAN,nRF905不斷重發(fā),直至TRX_CE被置低;
(5) 當TRX_CE被置低時,nRF905完成發(fā)送過程,自動轉(zhuǎn)入空閑模式。
Shock Burst TM工作模式保證:一旦數(shù)據(jù)發(fā)送的過程開始,無論TX_EN和TRX_EN引腳是低或高,發(fā)送過程都將被處理完成。只有發(fā)送完前一個數(shù)據(jù)包,nRF905才會接收下一個發(fā)送數(shù)據(jù)包。
接收過程如下:
(1) 當TX_EN為低、TRX_CE為高時,nRF905將進入Shock Burst TM接收模式;
(2) 650 μs后,nRF905將不斷進行監(jiān)測,等待著接收數(shù)據(jù);
(3) 當nRF905檢測到某載波處于同一頻段時,載波檢測引腳將會被置高;
(4) 當nRF905接收到一個匹配的地址時,地址匹配引腳將會被置高;
(5) 當一個正確數(shù)據(jù)包被接收完畢時,nRF905將自動移去其CRC校驗位、字頭和地址,且置高數(shù)據(jù)準備好引腳;
(6) MCU置低TRX_CE,nRF905將進入空閑模式;
(7) MCU以一定的速率通過SPI口將數(shù)據(jù)移至MCU內(nèi);
(8) 當接收完所有的數(shù)據(jù)時,nRF905把地址匹配引腳和數(shù)據(jù)準備好引腳置低;
(9) 此時nRF905可進入Shock Burst TM發(fā)送模式、Shock Burst TM接收模式或關(guān)機模式。
正在接收數(shù)據(jù)包時,若TX_EN或TRX_CE引腳的狀態(tài)發(fā)生改變,nRF905將立即改變其工作模式,數(shù)據(jù)包將會丟失。當接到地址匹配引腳的信號之后,MCU就識別出nRF905正在接收數(shù)據(jù)包,MCU可以決定是讓nRF905進入另一個工作模式還是繼續(xù)接收該數(shù)據(jù)包。
SPI是環(huán)形總線結(jié)構(gòu),其時序主要是在SCK的控制下,兩個雙向移位寄存器之間進行數(shù)據(jù)交換。SPI數(shù)據(jù)傳輸至少需要4根線,3根實際上也可以。這也是所有SPI設(shè)備所共有的,它們是SC(時鐘),SDO(數(shù)據(jù)輸出),SDI(數(shù)據(jù)輸入),CS(片選)。其中CS是控制是否被選中芯片的,也就是說只有預(yù)先規(guī)定的使能信號為片選信號時,對芯片的操作才會有效。這就使得將多個SPI設(shè)備連接在同一總線上成為可能。SPI方式下,數(shù)據(jù)的傳輸是一位一位的進行的。這就是存在SCK時鐘線的原因,SCK負責提供時鐘脈沖, SDO,SDI則在此脈沖的條件下完成數(shù)據(jù)的傳輸。通過SDO線實現(xiàn)數(shù)據(jù)輸出,數(shù)據(jù)在時鐘下沿或上沿時改變,在緊接的上沿或下沿被讀取。完成一位的數(shù)據(jù)傳輸,輸入也運用同樣的原理。這樣,至少8次時鐘信號的改變(下沿和上沿為一次),就可實現(xiàn)8位的數(shù)據(jù)傳輸。假設(shè)8位寄存器內(nèi)裝的是將要發(fā)送的數(shù)據(jù)01010101,上升沿發(fā)送數(shù)據(jù)、下降沿接收數(shù)據(jù)、先發(fā)送高位。那么在第一個上升沿到來時數(shù)據(jù)將會是高位數(shù)據(jù)SDO=0。下降沿來臨的時候,SDI上的電平將會被儲存到寄存器中去,這時寄存器=0010101SDI,這樣經(jīng)過8個時鐘脈沖,兩個寄存器內(nèi)的內(nèi)容將會互相交換一次即完成了一個SPI時序。
4 結(jié) 語
經(jīng)過一定時間的分析、研究、設(shè)計,本次設(shè)計課題最終實現(xiàn)了一套比較完整的通過無線方式實現(xiàn)溫度、濕度、壓力、光照的遠程采集、監(jiān)測、報警的系統(tǒng)。在明確了系統(tǒng)所要實現(xiàn)各組數(shù)據(jù)采集與無線傳輸方案的功能后,設(shè)計了系統(tǒng)的總體架構(gòu),然后詳盡地闡述了系統(tǒng)的硬件電路結(jié)構(gòu)和完成各項功能相關(guān)的軟件設(shè)計。本系統(tǒng)是通過單片機控制無線傳輸來實現(xiàn)對周圍環(huán)境的溫度進行測量和傳輸,它是以STC89C52RC單片機為控制單元,各種傳感器為檢測器件,實現(xiàn)多組溫度數(shù)據(jù)的測量;以無線收發(fā)模塊nRF905完成數(shù)據(jù)的無線傳輸,保證了數(shù)據(jù)的安全傳輸;用LCD12864顯示器進行實時顯示,實現(xiàn)各組氣象數(shù)據(jù)的顯示。
參考文獻
[1] 劉威.基于DS18B20和nRF905的多點無線測溫系統(tǒng)[D].長春:吉林大學(xué),2008.
[2] 張寶.基于nRF905和DS18B20的無線溫度采集系統(tǒng)設(shè)計[J].中國新技術(shù)新產(chǎn)品,2010(3):103?105.
[3] FAROOQ Umar. A linear design of temperature detecting circuits with MCU [C]// The 2nd International Conference on Computer and Automation Engineering. Singapore: ICCAE, 2010: 592?597.
[4] 楊光松.基于nRF905的無線溫度數(shù)據(jù)采集系統(tǒng)[J].微計算機信息,2008(22):128?131.
[5] 謝自美.電子線路設(shè)計·實驗·測試[M].3版.武漢:華中科技大學(xué)出版社,2005.
[6] 童詩白,華成英.模擬電子技術(shù)基礎(chǔ)[M].4版.北京:高等教育出版社,2006.
[7] 譚浩強.C程序設(shè)計[M].北京:清華大學(xué)出版社,2002.
[8] 沈紅衛(wèi).單片機應(yīng)用系統(tǒng)設(shè)計實例[M].北京:北京航空航天大學(xué)出版社,2003.
[10] 靳達.單片機應(yīng)用系統(tǒng)開發(fā)實例導(dǎo)航[M].北京:人民郵電出版社,2003.
[11] 金保華,張勇,崔光照.基于nRF905的無線數(shù)據(jù)多點跳傳通信系統(tǒng)[J].儀表技術(shù)與傳感器,2004(9):39?40.