□李兵 □徐帆 □王艦威
隨著現(xiàn)代工業(yè)、農(nóng)業(yè)技術(shù)的發(fā)展,人們對(duì)精確的溫濕度測(cè)量技術(shù)的需求越來越高,溫度作為工農(nóng)業(yè)中一個(gè)重要的參數(shù),影響著棚中農(nóng)作物的產(chǎn)量和質(zhì)量[1]。目前,溫度檢測(cè)與傳輸系統(tǒng)主要有兩種方式:一種是成熟的有線傳輸方式,如現(xiàn)場(chǎng)總線和RS485總線,該方式雖然具有數(shù)據(jù)傳輸率高、抗干擾能力較強(qiáng)等優(yōu)點(diǎn),但同時(shí)也具有現(xiàn)場(chǎng)鋪設(shè)線纜成本高、設(shè)備維護(hù)難度較大以及故障檢測(cè)復(fù)雜等缺點(diǎn);第二種傳輸方式是無線傳輸方式,隨著射頻技術(shù)和集成技術(shù)的不斷發(fā)展,無線數(shù)據(jù)傳輸系統(tǒng)實(shí)現(xiàn)起來越來越容易,數(shù)據(jù)傳輸速率越來越高,抗干擾能力也越來越強(qiáng),而且具有成本低、維護(hù)簡(jiǎn)單、穩(wěn)定性高等優(yōu)點(diǎn)。因此,筆者針對(duì)有線傳輸方式的不足,提出了一種分布式無線溫濕度檢測(cè)與傳輸系統(tǒng),該系統(tǒng)具有可靠性高、傳輸距離遠(yuǎn)、維護(hù)方便等優(yōu)點(diǎn)。
本文采用的技術(shù)方案如圖1所示,為了滿足無線系統(tǒng)傳輸?shù)男枰?,整個(gè)技術(shù)方案可分為上位機(jī)子系統(tǒng)和下位機(jī)子系統(tǒng)兩部分。其中上位機(jī)子系統(tǒng)放置在監(jiān)控的機(jī)房中,通過nRF905無線傳輸模塊接受下位機(jī)采集到的溫度和濕度等信息,并利用RS232串口協(xié)議將不同下位機(jī)節(jié)點(diǎn)采集的溫濕度信息實(shí)時(shí)顯示在上位機(jī)的控制界面上,當(dāng)溫度超出了一定范圍時(shí),發(fā)出報(bào)警提示,也可以將溫濕度保存并繪制成曲線進(jìn)行數(shù)據(jù)分析。下位機(jī)子系統(tǒng)主要分布在溫濕度的采集現(xiàn)場(chǎng),單片機(jī)AT89C52實(shí)時(shí)采集由數(shù)字式溫濕度傳感器SHT11檢測(cè)到的溫濕度值并實(shí)時(shí)顯示在1602液晶屏上,同時(shí)通過無線數(shù)據(jù)傳輸模塊nRF905以無線載波的形式將溫濕度信息傳輸給上位機(jī)。
上位機(jī)子系統(tǒng)的結(jié)構(gòu)原理圖如圖2所示,由圖中可以看出,上位機(jī)子系統(tǒng)主要由液晶顯示、存儲(chǔ)器、nRF905無線傳輸模塊和232通信模塊組成。其工作原理:由單片機(jī)AT89C52單片機(jī)組成的CPU模塊發(fā)出輪詢命令,當(dāng)無線傳輸模塊檢測(cè)到頻率相同的載波時(shí),nRF905芯片對(duì)其進(jìn)行解調(diào)并進(jìn)行地址解析和CRC校驗(yàn),當(dāng)數(shù)據(jù)接受完成后,以外部中斷的形式觸發(fā)單片機(jī)進(jìn)入到中斷程序,通過單片機(jī)與nRF905芯片之間模擬的SPI接口從芯片中提取溫濕度數(shù)據(jù)并在液晶屏上顯示出來,同時(shí)CPU模塊將采集到的溫濕度數(shù)據(jù)通過232轉(zhuǎn)換電路上傳給上位機(jī)PC機(jī)中。
▲圖1 技術(shù)方案示意圖
▲圖2 上位機(jī)子系統(tǒng)結(jié)構(gòu)原理圖
下位機(jī)子系統(tǒng)結(jié)構(gòu)原理如圖3所示,由圖中可以看出,下位機(jī)子系統(tǒng)由SHT11溫濕度傳感器、CPU模塊、nRF905無線傳輸模塊、液晶顯示等模塊組成。其工作原理:當(dāng)下位機(jī)的無線傳輸模塊檢測(cè)到上位機(jī)發(fā)送的輪詢命令載波信號(hào)時(shí)對(duì)其進(jìn)行解析,數(shù)據(jù)接受完成后,CPU模塊進(jìn)入到中斷程序通過SPI模擬接口讀取nRF905芯片中存儲(chǔ)的數(shù)據(jù),并對(duì)其中的地址進(jìn)行匹配比較,當(dāng)匹配成功后,CPU模塊通過SPI接口配置nRF905激活無線傳輸模塊,將采集到的現(xiàn)場(chǎng)溫濕度數(shù)據(jù)以載波的形式發(fā)送給上位機(jī);如果匹配不成功,則不予采集。
▲圖3 下位機(jī)子系統(tǒng)結(jié)構(gòu)原理圖
本文采用SHT11傳感器,它具有I2C總線接口的單片全校準(zhǔn)數(shù)字式相對(duì)濕度和溫度傳感器。該傳感器采用獨(dú)特的CMOSensTM技術(shù),具有數(shù)字式輸出、免調(diào)試、免標(biāo)定、免外圍電路及全呼喚等特點(diǎn)。其內(nèi)部集成了14位A/D轉(zhuǎn)換器,采用數(shù)字信號(hào)輸出,且測(cè)量精度可編程調(diào)節(jié),溫度測(cè)量范圍為-40~123.8℃,精度為±0.01℃,濕度測(cè)量范圍為0~100%RH,精度為±0.03%RH。此外其具有可靠的CRC數(shù)據(jù)傳輸校驗(yàn)功能,傳輸可靠性高,抗干擾能力強(qiáng)[2],低功耗,測(cè)量時(shí)平均電流為28 μA,休眠時(shí)電流為3 μA。
nRF905芯片是挪威Nordic公司生產(chǎn)的單片射頻收發(fā)器芯片,工作電壓為1.9~3.6V,載波頻段允許433、868和915MHz等3個(gè)ISM頻道(可以免費(fèi)使用)。nRF905無線收發(fā)器采用硬件曼徹斯特編碼/解碼方式,芯片自動(dòng)實(shí)現(xiàn)字頭處理和CRC校驗(yàn)。nRF905采用非實(shí)時(shí)數(shù)據(jù)傳輸方式,當(dāng)接收端接收到數(shù)據(jù)后,首先存儲(chǔ)在片內(nèi)存儲(chǔ)器內(nèi),然后外部控制器采用中斷或查詢的方法讀取接收數(shù)據(jù)。
nRF905的工作模式由TRX_CE、TX_EN和PWR_UP的設(shè)置來決定,nRF905采用串行外圍設(shè)備接口SPI與單片機(jī)連接。由于單片機(jī)不具備SPI接口,本文采用單片機(jī)的I/O口來模擬SPI接口,接口電路如圖4所示,AT89C52單片機(jī)對(duì)nRF905進(jìn)行讀、寫操作時(shí),必須通過CSN引腳由高電平到低電平跳變使nRF905芯片處于工作狀態(tài)。由于nRF905模塊內(nèi)部有完整的通信協(xié)議,所以與nRF905進(jìn)行SPI通信時(shí),主要是實(shí)現(xiàn)對(duì)nRF905模塊的有效初始配置,以及CPU與nRF905模塊之間SPI通信的實(shí)現(xiàn)[3]。
▲圖4 無線傳輸電路
本文采用的SHT11傳感器具有I2C接口,單片機(jī)通過I/O引腳來模擬與傳感器的I2C通信協(xié)議,從而讀取現(xiàn)場(chǎng)采集到的溫度和濕度值。接口電路如圖5所示。
由于下位機(jī)子系統(tǒng)分布在采集溫濕度現(xiàn)場(chǎng),只需要顯示溫度和濕度,顯示的內(nèi)容不多,所以選用小型的1602液晶屏。上位機(jī)子系統(tǒng)布置在控制室內(nèi),需要顯示多個(gè)從機(jī)的信息,所以采用240×128點(diǎn)陣液晶。存儲(chǔ)模塊主要用于存儲(chǔ)CPU模塊采集的溫度和濕度值。
▲圖5 SHT11硬件電路圖
▲圖6 數(shù)據(jù)發(fā)送軟件流程圖
▲圖7 數(shù)據(jù)接收軟件流程圖
本系統(tǒng)主要由溫濕度傳感器SHT11、無線傳輸模塊nRF905以及液晶顯示部分組成,溫度傳感器與CPU模塊之間主要通過SPI進(jìn)行通信,該軟件比較簡(jiǎn)單,因此,整個(gè)軟件設(shè)計(jì)的重點(diǎn)是nRF905的收發(fā)。
nRF905收發(fā)芯片接受數(shù)據(jù)的軟件流程如圖6所示,單片機(jī)首先將PWR_UP引腳置為“1”、TRX_CE置為“0”,使nRF905處于待機(jī)模式,CPU模塊將下位機(jī)子系統(tǒng)的接受地址和待發(fā)送的輪詢命令寫入nRF905對(duì)應(yīng)的寄存器中,然后將PWR_UP、TRX_CE和TX_EN引腳全部置為“1”,使nRF905進(jìn)入發(fā)送模式,此時(shí)射頻寄存器自動(dòng)開啟,數(shù)據(jù)打包(加字頭和CRC校驗(yàn)碼)后被高速發(fā)送出去,數(shù)據(jù)發(fā)送完成時(shí)DR自動(dòng)置為“1”。若配置寄存器中的自動(dòng)重發(fā)位(AUTO_RETRAN)被置高,則nRF905將不斷重復(fù)發(fā)送數(shù)據(jù)包,直到TRX_CE被置為“0”;TRX_CE被置“0”時(shí),nRF905發(fā)送過程完成,自動(dòng)進(jìn)入待機(jī)模式[4][5]。
接收數(shù)據(jù)流程圖如圖7所示,當(dāng)nRF905接受數(shù)據(jù)時(shí),CPU在nRF905芯片處于待機(jī)模式時(shí)將地址寫入到nRF905中的配置寄存器中,然后單片機(jī)使TRX_CE為“1”,TX_EN為“0”,使nRF905處于接受模式。此時(shí),nRF905不斷檢測(cè)下位機(jī)子系統(tǒng)發(fā)送的載波信號(hào)。當(dāng)nRF905檢測(cè)到與接收頻率相同的載波信號(hào)時(shí),其載波檢測(cè)引腳(CD)被置為高電平,然后nRF905將接收到的數(shù)據(jù)進(jìn)行地址匹配和校驗(yàn),如果地址匹配成功且數(shù)據(jù)校驗(yàn)正確時(shí),DR引腳會(huì)自動(dòng)置高,單片機(jī)進(jìn)入中斷處理程序,使nRF905處于待機(jī)模式,最終通過SPI協(xié)議,從nRF905的數(shù)據(jù)寄存器中讀取有效數(shù)據(jù)。
(1)針對(duì)傳統(tǒng)的有線溫濕度檢測(cè)與傳輸系統(tǒng)維護(hù)成本高、故障檢測(cè)難等缺點(diǎn),設(shè)計(jì)了一種以AT89C52單片機(jī)為控制核心,采用SHT11為溫濕度傳感,nRF905為無線傳輸模塊的分布式無線檢測(cè)與傳輸系統(tǒng)。
(2)經(jīng)過試驗(yàn)驗(yàn)證,該系統(tǒng)在空曠的場(chǎng)地內(nèi)無線傳輸距離可以達(dá)到1 000 m左右,驗(yàn)證了該系統(tǒng)的可靠性和穩(wěn)定性。
[1]鄒家柱.多點(diǎn)溫度無線檢測(cè)與控制系統(tǒng)設(shè)計(jì)[J].價(jià)值工程,2011(21):35-36.
[2]張偉,戈振揚(yáng).烤煙房溫濕度無線數(shù)據(jù)采集系統(tǒng)[J].計(jì)算機(jī)工程,2010(2):240-242.245.
[3]王何宇,朱莉.基于nRF905的溫濕度無線傳輸系統(tǒng)[J].電子測(cè)試,2011(5):78-81.
[4]薛敏迪.基于nRF905的低功耗溫濕度無線測(cè)量系統(tǒng)[J].現(xiàn)代電子技術(shù),2010(1):135-138.
[5]題原,宋飛,劉樹東,等.基于nRF905的無線溫濕度檢測(cè)與傳輸系統(tǒng)設(shè)計(jì)[J].化工自動(dòng)化及儀表,2011(4):404-407.