康樂(lè)為 徐丹
摘 要:文章將51單片機(jī)和nRF24L01技術(shù)有機(jī)結(jié)合起來(lái),組成無(wú)線遠(yuǎn)程測(cè)溫通信系統(tǒng)。系統(tǒng)由51單片機(jī),DS18D20溫度采集模塊,LCD溫度數(shù)據(jù)顯示模塊,nRF24L01無(wú)線數(shù)據(jù)收發(fā)模塊組成。具有實(shí)現(xiàn)無(wú)線數(shù)據(jù)傳輸可靠穩(wěn)定,低功耗,編程簡(jiǎn)單等特點(diǎn)。實(shí)踐證明該系統(tǒng)能適應(yīng)于多種環(huán)境溫度的檢測(cè)。
關(guān)鍵詞:nRF24L01;溫度檢測(cè);無(wú)線通信;單片機(jī)
目前,無(wú)線通信領(lǐng)域越來(lái)越廣,如:wifi,藍(lán)牙,安全防火系統(tǒng),水產(chǎn)養(yǎng)殖系統(tǒng),智能家居系統(tǒng)等等。凡是布線復(fù)雜或者不能布線的場(chǎng)合都希望通過(guò)無(wú)線方案解決。為此需要設(shè)計(jì)相應(yīng)的接口系統(tǒng),完成系統(tǒng)數(shù)據(jù)交互,實(shí)現(xiàn)系統(tǒng)控制功能等。本系統(tǒng)采用了DS18D20溫度采集模塊及Nordic公司新推出的工作于2.4GHz頻段的nRF24L01射頻芯片,并由超低功耗單片機(jī)控制實(shí)現(xiàn)短距離無(wú)線數(shù)據(jù)通信,打破了傳統(tǒng)操作中距離受限的問(wèn)題,使測(cè)溫操作更易實(shí)現(xiàn)。系統(tǒng)框圖如圖1:
nRF24L01是一款工作在2.4~2.5GHz世界通用ISM頻段的單片無(wú)線收發(fā)器芯片,其工作速率為0~2Mb/s,最大發(fā)射功率為0dBm,其外圍元件極少,內(nèi)置硬件CRC(循環(huán)冗余校驗(yàn))和點(diǎn)對(duì)多點(diǎn)通信地址控制,集成了頻率合成器,晶體振蕩器和調(diào)制解調(diào)器.它的主要特點(diǎn)如下:
1)低工作電壓:1.9~3.6V低電壓工作;
2)高速率:2Mbps,由于空中傳輸時(shí)間很短,極大地降低了無(wú)線傳輸中的碰撞現(xiàn)象;
3)多頻點(diǎn):125頻點(diǎn),滿足多點(diǎn)通信和跳頻通信需要;
4)超小型:體積小巧,5mm 5mm;
5)低功耗:當(dāng)工作在發(fā)射模式時(shí),發(fā)射功率為-6dBm,電流消耗為9mA,接收模式為12.3mA,掉電模式和待機(jī)模式下電流消耗更低。
6)低應(yīng)用成本:nRF24L01的SPI接口可以利用單片機(jī)的硬件SPI口連接或用單片機(jī)I/O口進(jìn)行模擬,內(nèi)部有FIFO可以與各種高低速微處理器接口,便于使用低成本單片機(jī).
nRF24L01芯片最突出的特點(diǎn)是有2種通信模式:DirectMode(直接模式)和ShockBurstMode(突發(fā)模式).直接模式的使用與其他傳統(tǒng)射頻收發(fā)器的工作一樣,需要通過(guò)軟件在發(fā)送端添加校驗(yàn)碼和地址碼,在接收端判斷是否為本機(jī)地址并檢查數(shù)據(jù)是否傳輸正確.ShockBurstMode使用芯片內(nèi)部的先入先出堆棧區(qū),數(shù)據(jù)可從低速微控制器送入,高速(2Mb/s)發(fā)射出去,地址和校驗(yàn)碼硬件自動(dòng)添加和去除,這種模式的優(yōu)點(diǎn)是:可使用低速微控制器控制芯片工作;?減小功耗;?射頻信號(hào)高速發(fā)射,抗干擾性強(qiáng);減小整個(gè)系統(tǒng)的平均電流.因此,使用nRF24L01芯片特有的ShockBurstMode使得系統(tǒng)整體的性能和效率提高。
nRF24L01工作原理圖如圖2所示:
2 硬件電路設(shè)計(jì)
2.1 DS18D20溫度采集模塊
溫度部分采用數(shù)字溫度傳感器DS18B20測(cè)量溫度,DS18B20的測(cè)溫范圍-55℃~+125℃,固有測(cè)溫誤差1℃。DS18B20可以程序設(shè)定9~12位的分辨率,精度為±0.5°C。在9位分辨率時(shí)最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度很快。DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以"一線總線"串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,
具有極強(qiáng)的抗干擾糾錯(cuò)能力,并且在出現(xiàn)較大溫度誤差的情況下可以適用DHT11的測(cè)溫部分調(diào)整。本系統(tǒng)中溫度傳感器輸出腳I/O直接與單片機(jī)的P1.1相連,外接4.7KΩ的上拉電阻到電源,采用外部電源供電。
2.2 LCD1602顯示模塊
LCD顯示配置靈活,與單片機(jī)連接方便,通過(guò)讀寫(xiě)操作時(shí)序即可完成。LCD顯示塊具有顯示質(zhì)量高、數(shù)字式接口、功耗少、超薄輕巧等諸多優(yōu)點(diǎn),因此在單片機(jī)應(yīng)用系統(tǒng)中應(yīng)用廣泛,本系統(tǒng)的顯示采用的就是LCD1602作為顯示部件。
2.3 主控模塊
本系統(tǒng)設(shè)計(jì)采用51單片機(jī)作為主控芯片,這是新一代高速,低功耗,超強(qiáng)干擾的單片機(jī),指令代碼完全兼容傳統(tǒng)8051單片機(jī),12時(shí)鐘周期,采用11.0592MHz外部晶振起振,DIP40封裝,內(nèi)部集成EEPROM,用戶應(yīng)用程序空間為8K,支持ISP下載程序。串行通信時(shí)可軟件選擇UART/SPI模式,整個(gè)系統(tǒng)采用5V供電。除了上述主控芯片外,還要預(yù)留必要的功能模塊驅(qū)動(dòng)接口,主要包括:nRF24L01無(wú)線射頻芯片接口,步進(jìn)電機(jī)接口,LCD液晶接口,DS18B20,DHT11和其他的外部擴(kuò)展接口.主控制電路主要由AT89S51單片機(jī)芯片復(fù)位電路及外設(shè)晶振電路組成。具體電路圖如圖3所示,該單片機(jī)的P1.4,P1.5,P1.6,P1.7口接無(wú)線收發(fā)模塊的1、2、3、4引腳,通過(guò)SPI方式進(jìn)行通信,P1.5,P1.6引腳分別收發(fā)圖2中的數(shù)據(jù)。圖3中J3作為串口及外部擴(kuò)展使用,J4與無(wú)線收發(fā)模塊連通,J5,J6為外部擴(kuò)展接口,接LCD顯示模塊。
3.1 溫度檢測(cè)模塊軟件設(shè)計(jì)
DS18B20的測(cè)溫原理遵循嚴(yán)格的單總線協(xié)議,以確保通信數(shù)據(jù)的準(zhǔn)確性。DS18B20溫度傳感器與單片機(jī)P16口連接,液晶的RS端接P3.4口,RW端接P3.6口,EN使能端接P3.7口。然后開(kāi)始初始化,分別把RW、EN拉低,設(shè)置顯示模式,清除屏幕,將光標(biāo)移到第一行第一個(gè)位置。單片機(jī)通過(guò)時(shí)序來(lái)寫(xiě)入和讀出DS18B20中的數(shù)據(jù)。傳感器復(fù)位后,接收應(yīng)答信號(hào),啟動(dòng)溫度轉(zhuǎn)換,等待溫度轉(zhuǎn)換完畢后,保存數(shù)據(jù)。如此反復(fù),完成所有操作,其流程圖如圖3所示。
3.2 無(wú)線發(fā)射模塊軟件設(shè)計(jì)
在nRF24L01無(wú)線發(fā)送部分主程序中,首先進(jìn)行初始化操作,通過(guò)配置模式對(duì)nRF24L01進(jìn)行設(shè)置,主要包括發(fā)送的數(shù)據(jù)寬度、地址寬度、發(fā)送數(shù)據(jù)的地址和常用配置等。常用配置包括使能第一頻道設(shè)置、通信方式設(shè)置、發(fā)送數(shù)據(jù)速率設(shè)置、晶頻率設(shè)置、發(fā)送輸出功率設(shè)置、頻道設(shè)置和收發(fā)模式設(shè)置等。待初始化完成后,將nRF24L01設(shè)置為發(fā)送模式,進(jìn)行發(fā)送數(shù)據(jù)。然后查看狀態(tài)寄存器TX_DS是否為1,如果TX_DS為1則表示nRF24L01發(fā)送成功,并且1602液晶可以顯示發(fā)送的數(shù)據(jù);如果TX_DS不為1則代表nRF24L01發(fā)送不成功,程序返回重新發(fā)送。
3.3 無(wú)線接收模塊軟件設(shè)計(jì)
接收數(shù)據(jù)時(shí),首先將nRF24L01配置為接收模式。接著延遲130μS進(jìn)入接收狀態(tài)等待數(shù)據(jù)的到來(lái)。當(dāng)接收方檢測(cè)到有效地址時(shí),就將數(shù)據(jù)包儲(chǔ)存在接收堆棧中,同時(shí)狀態(tài)寄存器中的中斷標(biāo)志位RX_DR置高,產(chǎn)生中斷使IRQ引腳變?yōu)榈碗娖?,以便通知MCU去取數(shù)據(jù)。若此時(shí)自動(dòng)應(yīng)答開(kāi)啟,接收方則同時(shí)進(jìn)入發(fā)射狀態(tài)回傳應(yīng)答信號(hào)。最后接收成功時(shí),若CE變低,則nRF24L01進(jìn)入空閑模式1.
4 結(jié)束語(yǔ)
基于nRF24L01的溫度檢測(cè)系統(tǒng)擁有性能穩(wěn)定、成本低、低功耗等特點(diǎn),能夠廣泛應(yīng)用于各類(lèi)對(duì)溫度要求較為特殊的環(huán)境下溫度數(shù)據(jù)的檢測(cè)
參考文獻(xiàn)
[1]丁媛媛.基于nRF2401無(wú)線雙向通信系統(tǒng)設(shè)計(jì)[J].常州工學(xué)院學(xué)報(bào),2012.10.
[2]張毅剛.單片機(jī)原理及應(yīng)用[M].北京:高等教育出版社,2011.
[3]劉志平、趙國(guó)良.基于nRF2401的近距離無(wú)線數(shù)據(jù)傳輸[J].應(yīng)用科技,2008.3.
[4]朱玉穎、蔡占輝基于nRF2401的遠(yuǎn)程溫度檢測(cè)系統(tǒng)設(shè)計(jì)[J].自動(dòng)化技術(shù)與應(yīng)用2010,29(5)
[5]樊祥現(xiàn),袁平.nRF2401無(wú)線通信數(shù)據(jù)傳輸可靠性技術(shù)應(yīng)用[J].自動(dòng)化技術(shù)與應(yīng)用,2008,27(7):71-73.
[6]張?zhí)煜?基于MCU和nRF24L01的無(wú)線通信系統(tǒng)設(shè)計(jì)[J].電子科技,2012,4(1):34-35.