国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

無(wú)線倉(cāng)儲(chǔ)環(huán)境監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2013-08-13 06:09:34何瑞平種蘭祥
電子技術(shù)應(yīng)用 2013年11期
關(guān)鍵詞:溫度傳感器寄存器網(wǎng)關(guān)

何瑞平,種蘭祥

(西北大學(xué) 信息學(xué)院,陜西 西安710127)

隨著社會(huì)經(jīng)濟(jì)快速發(fā)展,現(xiàn)代物流與倉(cāng)儲(chǔ)的重要性日益凸顯。特別是倉(cāng)儲(chǔ)管理,對(duì)于物資的保管養(yǎng)護(hù),防止產(chǎn)品的腐蝕、霉變、蟲(chóng)害等問(wèn)題有著重要的意義。傳統(tǒng)的倉(cāng)儲(chǔ)環(huán)境檢測(cè)大多采用人工定時(shí)巡檢或有線在線監(jiān)測(cè)方式[1]。前者存在效率低、數(shù)據(jù)誤差大、時(shí)間人力成本高等缺點(diǎn);后者雖能夠?qū)崟r(shí)獲取倉(cāng)儲(chǔ)環(huán)境信息,但不便于布設(shè)、維護(hù)和擴(kuò)展。采用無(wú)線通信方式則可以解決以上問(wèn)題。考慮到倉(cāng)儲(chǔ)管理的實(shí)際需求,采用Arduino開(kāi)源電子平臺(tái)[2]和射頻收發(fā)器 nRF24L01,結(jié)合溫濕度及煙霧傳感器等,能方便地構(gòu)建出分布式多點(diǎn)無(wú)線監(jiān)測(cè)系統(tǒng)。

1 系統(tǒng)總體方案設(shè)計(jì)

為了便于部署與擴(kuò)展,倉(cāng)儲(chǔ)環(huán)境檢測(cè)系統(tǒng)采用模塊化設(shè)計(jì),包括Arduino控制板、數(shù)字傳感器、基于射頻芯片nRF24L01的測(cè)量節(jié)點(diǎn)、天線和上位機(jī)監(jiān)控平臺(tái),其結(jié)構(gòu)如圖1所示。無(wú)線測(cè)量節(jié)點(diǎn)分布于整個(gè)監(jiān)測(cè)區(qū)域,進(jìn)行數(shù)據(jù)采集與傳送,以自組織的方式和測(cè)量網(wǎng)關(guān)共同構(gòu)成無(wú)線數(shù)據(jù)傳輸網(wǎng)絡(luò)。測(cè)量網(wǎng)關(guān)負(fù)責(zé)建立網(wǎng)絡(luò)連接并接收來(lái)自與之相連的多達(dá)32個(gè)節(jié)點(diǎn)的數(shù)據(jù),并將這些數(shù)據(jù)上傳到監(jiān)控平臺(tái)。監(jiān)控平臺(tái)與互聯(lián)網(wǎng)相連,負(fù)責(zé)數(shù)據(jù)存儲(chǔ)、顯示與網(wǎng)絡(luò)發(fā)布。一旦測(cè)量數(shù)據(jù)超過(guò)安全設(shè)定閾值,會(huì)產(chǎn)生相應(yīng)警報(bào)。該系統(tǒng)也可應(yīng)用于工業(yè)、農(nóng)業(yè)與林業(yè)的環(huán)境檢測(cè)中。

圖1 系統(tǒng)結(jié)構(gòu)圖

2 測(cè)量節(jié)點(diǎn)設(shè)計(jì)

分布式無(wú)線測(cè)量節(jié)點(diǎn)負(fù)責(zé)環(huán)境物理量測(cè)量、數(shù)據(jù)傳輸,其系統(tǒng)由微控制器核心、無(wú)線通信模塊、傳感模塊及供電模塊構(gòu)成。

本著模塊化、低成本、低功耗的設(shè)計(jì)原則,本設(shè)計(jì)采用型號(hào)為NANO的Arduino微型控制板控制射頻芯片nRF24L01和溫、濕度數(shù)字傳感器等來(lái)實(shí)現(xiàn)測(cè)量節(jié)點(diǎn)功能,硬件結(jié)構(gòu)如圖2所示。

圖2 測(cè)量節(jié)點(diǎn)設(shè)計(jì)

Arduino是采用精簡(jiǎn)指令集開(kāi)發(fā)的電子平臺(tái),使用類似于Java和C語(yǔ)言的開(kāi)發(fā)環(huán)境[3],硬件部分主要由 AT-mel AVR微控制器和I/O接口電路等組成。

作為測(cè)量節(jié)點(diǎn)微控制器的Arduino NANO核心采用ATmega328處理器,具有 32 KB的 Flash,一個(gè) 16 MHz晶振,14路數(shù)字輸入輸出,6路模擬輸入,1個(gè) UART接口,支持I2C總線,并且支持PWM輸出以及SPI通信。

無(wú)線通信模塊采用Nordic公司研發(fā)的內(nèi)置鏈路層邏輯的工業(yè)級(jí)2.4 GHz無(wú)線收發(fā)芯片nRF24L01[4]。板載鞭形PCB天線,支持多點(diǎn)通信,內(nèi)置頻率合成器、晶振、功放等模塊,采用GFSK調(diào)制,可自動(dòng)跳頻128個(gè)頻點(diǎn),融合Enhanced ShockBurstTM技術(shù),最高傳輸速率達(dá)2 Mb/s,具有體積小、功耗低、傳輸可靠等優(yōu)點(diǎn)。

無(wú)線模塊與MCU通過(guò)SPI總線連接,如圖3所示。MCU用數(shù)字線D13為無(wú)線芯片提供時(shí)鐘信號(hào),CSN為片選信號(hào),CE信號(hào)和CONFIG寄存器的PWR_UP、PRIM_RX位決定芯片是否處于發(fā)送/接收工作模式,MOSI、MISO為SPI接口, 實(shí)現(xiàn)數(shù)據(jù)輸入輸出。 當(dāng)nRF24L01發(fā)出數(shù)據(jù)發(fā)送完畢 (TX_DS)、數(shù)據(jù)接收完畢(RX_DR)、達(dá)到最大重發(fā)次數(shù)(MAX_RT)三類輸出中斷請(qǐng)求任意之一出現(xiàn)時(shí),中斷引腳IRQ拉低。MCU查詢IRQ中斷標(biāo)志位狀態(tài)用以判斷發(fā)射或接收成功。常態(tài)下,無(wú)線模塊處于休眠狀態(tài),一旦被監(jiān)測(cè)網(wǎng)關(guān)選中查詢,則被激活,進(jìn)入發(fā)送模式。

圖3 無(wú)線測(cè)量節(jié)點(diǎn)MCU與無(wú)線模塊連接

測(cè)量節(jié)點(diǎn)能量供應(yīng)采用三端線性穩(wěn)壓器LM7805與AMS1117將9 V蓄電池穩(wěn)壓至5 V和3.3 V以提供電源。如圖4所示,旁路電容C1、C2主要用來(lái)抑制自激振蕩,穩(wěn)定輸出。

圖4 節(jié)點(diǎn)電源設(shè)計(jì)

本文選用的傳感器單元有溫度、濕度、煙霧傳感器,也可根據(jù)實(shí)際增加其他傳感器。采用數(shù)字傳感器,無(wú)需設(shè)計(jì)復(fù)雜的接口轉(zhuǎn)換電路,使用簡(jiǎn)便且可靠性高。下面著重介紹溫度傳感器單元。

溫度采集單元采用DALLAS公司的集成芯片DS18B20數(shù)字式溫度傳感器,與傳統(tǒng)的熱敏電阻最大不同的是:測(cè)量溫度范圍寬(-55~+125℃),精度高(在-10~+85℃,精度為±0.5℃)。并且可實(shí)現(xiàn)多點(diǎn)組網(wǎng),測(cè)量精度可調(diào),獨(dú)有的單總線技術(shù),同時(shí)傳輸時(shí)鐘和數(shù)據(jù)、硬件設(shè)計(jì)簡(jiǎn)潔、成本低、便于擴(kuò)展和維護(hù)等傳統(tǒng)溫度傳感器不具備的優(yōu)勢(shì)。

DS18B20有兩種供電模式:寄生供電和外部供電。寄生供電時(shí),只需一根地線和一根上接4.7 kΩ上拉電阻的數(shù)據(jù)線,數(shù)據(jù)線既傳輸數(shù)據(jù)又提供電能。這樣,當(dāng)總線閑置時(shí)其狀態(tài)為高電平。其內(nèi)置電容會(huì)在高電平期間儲(chǔ)能,低電平期間放電。但在多點(diǎn)測(cè)溫任務(wù)時(shí)會(huì)產(chǎn)生較大的測(cè)量誤差[5],本文采用外部供電,可使每個(gè)設(shè)備的精確度和穩(wěn)定性得到提升。

DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64 bit光刻ROM、溫度傳感器、1 B的溫度報(bào)警觸發(fā)器 TH和TL、配置寄存器。64 bit ROM寄存器具有唯一的序列號(hào)。微控制器可以通過(guò)單總線對(duì)具有特定序列號(hào)的溫度傳感器進(jìn)行尋址,以實(shí)現(xiàn)一根總線上掛接多個(gè) DS18B20的目的。用戶可以通過(guò)配置寄存器來(lái)設(shè)置溫度轉(zhuǎn)換的精度。

其測(cè)量精度可以配置成 9、10、11或 12 bit四種狀態(tài),分辨率分別對(duì)應(yīng)為 0.5、0.25、0.125、0.062 5,圖5 為12 bit分辨率時(shí)數(shù)據(jù)存儲(chǔ)格式,其中,前5位是符號(hào)位,后11位是數(shù)據(jù)位。

圖5 DS18B20數(shù)據(jù)格式

需要指出的是DS18B20的單總線功能是按嚴(yán)格的時(shí)序完成的。訪問(wèn)DS18B20需3個(gè)步驟:初始化→ROM操作指令→功能操作指令。具體流程如圖6所示。DS18B20所有數(shù)據(jù)交換都由一個(gè)初始化序列開(kāi)始。主機(jī)通過(guò)拉低單總線至少480 μs,以產(chǎn)生低電平復(fù)位脈沖(TX),然后釋放總線進(jìn)入接收模式(RX)。在單總線被上拉電阻拉至高電平 15~60 μs后,DS18B20通過(guò)拉低總線60~240 μs產(chǎn)生應(yīng)答脈沖,表示該設(shè)備已處在總線上且準(zhǔn)備工作。主機(jī)檢測(cè)到其復(fù)位成功后,會(huì)發(fā)送一條ROM操作指令,來(lái)檢測(cè)總線上從設(shè)備的數(shù)量并進(jìn)行匹配。共有 5條 ROM命令:搜索 ROM、讀 ROM、匹配 ROM、跳過(guò)ROM和報(bào)警搜索。當(dāng)主機(jī)指定訪問(wèn)某個(gè)特定的設(shè)備時(shí),可發(fā)出功能操作指令。

圖6 DS18B20單點(diǎn)測(cè)溫流程

由于Arduino的開(kāi)源特性,通過(guò)擴(kuò)展庫(kù)可將硬件底層封裝起來(lái)[6],針對(duì)具體應(yīng)用可編寫(xiě)相應(yīng)的庫(kù)函數(shù)。如針對(duì)日立HD44780芯片組驅(qū)動(dòng)的液晶顯示器而推出的LiquidCrystal庫(kù)、針對(duì)串行控制的SoftwareSerail庫(kù)等,只要了解其成員函數(shù)種類和調(diào)用方式,即可方便快速地進(jìn)行開(kāi)發(fā)。下面是輸出測(cè)量溫度代碼:

溫度傳感器在測(cè)量完成后將測(cè)量的結(jié)果存儲(chǔ)在兩個(gè)8 bit的RAM中,Arduino可通過(guò)單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后。

3 測(cè)量網(wǎng)關(guān)設(shè)計(jì)

網(wǎng)關(guān)在硬件結(jié)構(gòu)上與測(cè)量節(jié)點(diǎn)相類似,微處理器采用性能更加強(qiáng)勁的Atmega2560。去除了傳感器單元,并增加了顯示接口和上位機(jī)接口。主要負(fù)責(zé)無(wú)線網(wǎng)絡(luò)的建立和信息的接收,最終通過(guò)RS232上位機(jī)接口傳輸給監(jiān)控計(jì)算機(jī)。網(wǎng)關(guān)硬件結(jié)構(gòu)如圖7所示。

4 軟件設(shè)計(jì)

圖7 測(cè)量網(wǎng)關(guān)

采用模塊化設(shè)計(jì)思想,按整體功能分為無(wú)線模塊的初始化、收發(fā)過(guò)程的實(shí)現(xiàn)。無(wú)線測(cè)量節(jié)點(diǎn)啟動(dòng)后,先對(duì)各設(shè)備和寄存器進(jìn)行初始化,查找網(wǎng)關(guān)并建立連接,最終將采集到的數(shù)據(jù)上傳至網(wǎng)關(guān)。

4.1 初始化過(guò)程

節(jié)點(diǎn)布置完畢后,Arduino通過(guò)SPI接口對(duì)nRF24L01初始化。置CSN針腳為低,使能芯片進(jìn)入配置模式,所有配置工作都是通過(guò)SPI指令完成的,共有30 B的配置字[7],包括在寄存器TX_ADDR中寫(xiě)入 TX節(jié)點(diǎn)地址、在RX_ADDR_P0中寫(xiě)入RX節(jié)點(diǎn)地址、使能自動(dòng)應(yīng)答功能EN_AA、配置發(fā)射參數(shù)RF_SETUP寄存器(包括低噪放大器增益、發(fā)生功率和無(wú)線速率)、配置選擇通信頻率RF_CH寄存器和配置自動(dòng)重發(fā)次數(shù)寄存器SETUP_RETR等。

4.2 收發(fā)流程

初始化完畢nRF24L01后,設(shè)置無(wú)線模塊為發(fā)送模式,將 CE 拉高至少 10 μs,130 μs 后啟動(dòng)發(fā)射,隨后進(jìn)入待機(jī)狀態(tài)。若此時(shí)從網(wǎng)關(guān)收到查詢信號(hào),則調(diào)用發(fā)送函數(shù)。為了有效地提高抗干擾性,降低系統(tǒng)功耗,將芯片工作模式設(shè)置為增強(qiáng)型ShockBurstTM模式;發(fā)送數(shù)據(jù)時(shí)只需將數(shù)據(jù)存入TX_FIFO緩沖區(qū)中,nRF24L01會(huì)自動(dòng)處理字頭和CRC校驗(yàn)碼,并將這些數(shù)據(jù)按表1所示的幀格式打包發(fā)送。

表1 增強(qiáng)型ShockBurst模式下數(shù)據(jù)幀格式

數(shù)據(jù)發(fā)送完畢后,發(fā)送模塊自動(dòng)轉(zhuǎn)入接收模式等待應(yīng)答信號(hào),同時(shí)產(chǎn)生TX_DS中斷;若發(fā)送超出時(shí)限,則產(chǎn)生MAX_RT中斷;IRQ拉低后讀取STATUS狀態(tài)寄存器位值,來(lái)判斷中斷源來(lái)源;當(dāng)且僅當(dāng)發(fā)送完畢中斷產(chǎn)生,說(shuō)明數(shù)據(jù)成功發(fā)送,清除置位和發(fā)送數(shù)據(jù)緩存TX_FIFO。流程如圖8所示。

測(cè)量網(wǎng)關(guān)一端在完成初始化等一系列準(zhǔn)備后,將nRF24L01配置為RX模式。數(shù)據(jù)到來(lái)時(shí),從待機(jī)狀態(tài)進(jìn)入接收模式。當(dāng)判斷節(jié)點(diǎn)地址與CRC校驗(yàn)值等信息正確后,讀狀態(tài)寄存器相應(yīng)位確認(rèn)產(chǎn)生接收中斷RX_DR,則從接收數(shù)據(jù)緩存區(qū)RX_FIFO中讀取數(shù)據(jù);完畢后清除置位、緩存、進(jìn)入待機(jī)模式,等待下一次數(shù)據(jù)的到來(lái)。

圖8 軟件流程圖

5 功能與性能測(cè)試

系統(tǒng)設(shè)計(jì)完畢后需對(duì)軟硬件進(jìn)行主要包括無(wú)線收發(fā)指令控制,以及無(wú)線傳輸?shù)木嚯x、功耗、傳輸速率和丟包率等性能的綜合測(cè)試。

5.1 傳輸距離測(cè)試

無(wú)線收發(fā)模塊的傳輸距離受發(fā)射功率、接收靈敏度和實(shí)際環(huán)境等因素影響。在相同條件下,每組進(jìn)行10次測(cè)試,取其均值,如表2所示。nRF24L01的發(fā)射功率可配置為-18 dBm~0 dBm。在傳輸速率恒定條件下,發(fā)射功率越高,傳輸距離越遠(yuǎn)。

5.2 丟包率測(cè)試

采用點(diǎn)對(duì)點(diǎn)傳輸進(jìn)行丟包率測(cè)試,在開(kāi)闊地、數(shù)據(jù)傳輸速率均為1 Mb/s條件下,發(fā)送端發(fā)射功率為0 dBm,接收方靈敏度為-85 dBm。發(fā)送端連續(xù)發(fā)送數(shù)據(jù)載荷為1 B的100個(gè)數(shù)據(jù)包,接收端同步接收并統(tǒng)計(jì)發(fā)錯(cuò)或丟失的數(shù)據(jù)幀數(shù)目。本設(shè)計(jì)丟包率測(cè)試結(jié)果如表3所示。

在25 m內(nèi)丟包率可穩(wěn)定在1%內(nèi),發(fā)射功率保持恒定,提高數(shù)據(jù)傳輸速率為2 Mb/s,接收靈敏度降低約為-81 dBm,傳輸距離同時(shí)下降??梢?jiàn),在實(shí)際應(yīng)用需求中需要對(duì)無(wú)線傳輸速率與傳輸距離進(jìn)行折中選擇。

本文詳細(xì)介紹了新型2.4 GHz無(wú)線收發(fā)芯片nRF24L01的特性與應(yīng)用,結(jié)合Arduino創(chuàng)新平臺(tái)設(shè)計(jì)出了星型拓?fù)浣Y(jié)構(gòu)的通信系統(tǒng),并給出了具體的軟、硬件設(shè)計(jì)方案。實(shí)驗(yàn)證明,該系統(tǒng)具有成本低廉、性能穩(wěn)定等優(yōu)點(diǎn),有較大的推廣價(jià)值。

表2 不同發(fā)射功率下傳輸距離測(cè)試

表3 通信距離和誤幀率測(cè)試

[1]戰(zhàn)美玲.基于ZigBee無(wú)線傳感器網(wǎng)絡(luò)的倉(cāng)儲(chǔ)環(huán)境監(jiān)控系統(tǒng)研究[D].濟(jì)南:山東師范大學(xué),2012.

[2]程晨.Arduino開(kāi)發(fā)實(shí)戰(zhàn)指南[M].北京:機(jī)械工業(yè)出版社,2012.

[3]袁本華,董錚.基于 Arduino控制板的溫室大棚測(cè)溫系統(tǒng)設(shè)計(jì)[J].安徽農(nóng)業(yè)科學(xué),2012,40(8):5049-5050.

[4]時(shí)志云,楊毓.基于 nRF24L01和 FT245BM的無(wú)線文件傳輸系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2007,33(10):90-92.

[5]陳明,邱超凡.基于 DS18B20數(shù)字溫度傳感器的設(shè)計(jì)與實(shí)現(xiàn)[J].傳感器技術(shù),2008(8):188-189.

[6]蔡睿妍.Arduino的原理及應(yīng)用[J].電子設(shè)計(jì)工程,2012(16):155-157.

[7]李輝,宋詩(shī),周建江.基于 ARM和 nRF24L01的無(wú)線數(shù)據(jù)傳輸系統(tǒng)[J].國(guó)外電子元器件,2008,16(12):44-46.

猜你喜歡
溫度傳感器寄存器網(wǎng)關(guān)
基于改進(jìn)RPS技術(shù)的IPSEC VPN網(wǎng)關(guān)設(shè)計(jì)
Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
溫度傳感器DS18B20在溫度計(jì)設(shè)計(jì)中的應(yīng)用
電子制作(2019年12期)2019-07-16 08:45:44
一種高性能CMOS溫度傳感器
XTR105電流變送器在溫度傳感器中的應(yīng)用
電子制作(2018年12期)2018-08-01 00:47:40
分簇結(jié)構(gòu)向量寄存器分配策略研究*
LTE Small Cell網(wǎng)關(guān)及虛擬網(wǎng)關(guān)技術(shù)研究
應(yīng)對(duì)氣候變化需要打通“網(wǎng)關(guān)”
溫度傳感器在筆記本電腦散熱系統(tǒng)中的應(yīng)用
一種實(shí)時(shí)高效的伺服控制網(wǎng)關(guān)設(shè)計(jì)
盐池县| 永新县| 岳阳市| 贵定县| 武鸣县| 辉南县| 嵩明县| 化德县| 微山县| 新和县| 梁河县| 中西区| 六安市| 望江县| 新郑市| 宝丰县| 方城县| 京山县| 云安县| 永新县| 罗甸县| 砀山县| 隆德县| 栾川县| 新民市| 乐都县| 新余市| 云南省| 临海市| 甘孜| 炉霍县| 福安市| 临清市| 保亭| 临海市| 驻马店市| 西畴县| 广安市| 剑阁县| 红河县| 武宣县|