《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于nRF24L01的無(wú)線(xiàn)溫度采集系統(tǒng)設(shè)計(jì)
基于nRF24L01的無(wú)線(xiàn)溫度采集系統(tǒng)設(shè)計(jì)
EEworld
EEworld
摘要: 1引言溫度采集系統(tǒng)所采集的溫度通常通過(guò)RS485,、CAN總線(xiàn)通信方式傳輸至上位機(jī),,但這種方式維護(hù)較困難,,不利...
Abstract:
Key words :

關(guān)鍵字:nRF24L01 無(wú)線(xiàn)溫度采集

1 引言
    溫度采集系統(tǒng)所采集的溫度通常通過(guò)RS485,、CAN總線(xiàn)通信方式傳輸至上位機(jī),,但這種方式維護(hù)較困難,,不利于工業(yè)現(xiàn)場(chǎng)生產(chǎn),;而無(wú)線(xiàn)通信GPRS技術(shù)傳輸距離長(zhǎng),,通信可靠穩(wěn)定,但設(shè)計(jì)復(fù)雜,、成本昂貴,。這里采用工業(yè)級(jí)內(nèi)置硬件鏈路層協(xié)議的低成本單芯片nRF24L01型無(wú)線(xiàn)收發(fā)器件實(shí)現(xiàn)系統(tǒng)間的無(wú)線(xiàn)通信,完成無(wú)線(xiàn)信號(hào)的接收,、顯示及報(bào)警功能,。

2 nRF24L01簡(jiǎn)介
    nRF24L01是一款工業(yè)級(jí)內(nèi)置硬件鏈路層協(xié)議的低成本無(wú)線(xiàn)收發(fā)器,。該器件工作于2.4 GHz全球開(kāi)放ISM頻段,內(nèi)置頻率合成器,、功率放大器,、晶體振蕩器、調(diào)制器等功能模塊,,并融合增強(qiáng)型ShockBurst技術(shù),,其輸出功率和通信頻道可通過(guò)程序配置。擁有ShockBurst和Enhanced ShockBurst兩種數(shù)據(jù)傳輸模式,??芍苯优c單片機(jī)I/O連接,外接元件數(shù)目少,。nRF24L01功耗低,,以-6 dBm的功率發(fā)射時(shí),工作電流僅9 mA,;接收時(shí),,工作電流僅12.3 mA,多種低功率工作模式(掉電和空閑模式)更利于節(jié)能設(shè)計(jì),。

3 系統(tǒng)硬件設(shè)計(jì)
    系統(tǒng)硬件設(shè)計(jì)主要由采集發(fā)送和接收顯示兩部分組成,。圖1為采集發(fā)送電路原理圖,該電路主要由溫度傳感器DS18B20,、單片機(jī)STC12LE5408和nRF24L01組成,。
  

 

  STC12LE5408是增強(qiáng)型8051單片機(jī),速度快,,集成度高,,電壓范圍寬(2.2~3.8 V),和MCS-51系列單片機(jī)指令系統(tǒng)完全兼容,。其內(nèi)部還有8 KB Flash程序存儲(chǔ)器,,512字節(jié)RAM、2 KB EEPROM,、4路PWM以及硬件看門(mén)狗(WDT)等資源.性?xún)r(jià)比高,。
    DSl8B20是DALLAS公司生產(chǎn)的單總線(xiàn)數(shù)字1-Wire溫度傳感器,可把溫度信號(hào)直接轉(zhuǎn)換成串行數(shù)字信號(hào)供單片機(jī)處理,,采用1-Wire接口,。DSl8B20的數(shù)據(jù)端DQ可通過(guò)4.7 kΩ的上拉電阻接STC12LE5408。nRF24L01的CE,,CSN,,SCK,MOSI,MISO,,IRQ引腳則可接STC12LE5408的任意端口,,但需在編程時(shí)注意,這里接至P1端口,。由于nRF24L01具有接收數(shù)據(jù)功能,,所以接收顯示電路由單片機(jī)STC12LE5408、nRF24L01和顯示電路組成,。所采集的數(shù)據(jù)也通過(guò)串口發(fā)送至PC機(jī)進(jìn)行處理,。

4 系統(tǒng)軟件設(shè)計(jì)
4.1 nRF24L01的軟件設(shè)置
    由于STC12LE5408無(wú)標(biāo)準(zhǔn)的SPI總線(xiàn)接口,需采用軟件模擬實(shí)現(xiàn)SPI總線(xiàn),。因此應(yīng)嚴(yán)格按照SPI的時(shí)序要求編寫(xiě),,否則導(dǎo)致對(duì)nRF24L01的操作失敗。nRF24L01的各種命令字都只有一個(gè)字節(jié),,分為讀寄存器,、寫(xiě)寄存器、讀數(shù)據(jù)接收緩沖區(qū),、寫(xiě)發(fā)送數(shù)據(jù)緩沖區(qū)等,。在輸入任意命令字的同時(shí),MISO輸出STATUS寄存器的內(nèi)容,。對(duì)RF24L01的讀寫(xiě)程序代碼如下:

 

  nRF24L01的ShockBurst和Enhanced ShockBurst兩種數(shù)據(jù)模式的區(qū)別是:后者比前者多一個(gè)確認(rèn)數(shù)據(jù)傳輸?shù)男盘?hào),保證數(shù)據(jù)傳輸?shù)目煽啃?。按Enhanced ShockBurst模式初始化,,重新發(fā)送等待時(shí)間為250μs,重新發(fā)送次數(shù)為10次,,地址是RX_ADR_WIDTH,,輸出功率為0 dBm,速度為1 Mb/s,。nRF24L01處于POWER_UP狀態(tài),。函數(shù)中WRITE_REG為寫(xiě)命令基地址0x20。其相關(guān)程序如下:

  在接收端將nRF24L01配置為接收模式,,地址是RX_AW,,負(fù)載數(shù)據(jù)寬度是TX_PL_W,使能接收完數(shù)據(jù)中斷,,CRC校驗(yàn)位為2字節(jié),,nRF24L01處于POWER_UP狀態(tài),其相關(guān)程序代碼如下:




4.2 數(shù)據(jù)采集發(fā)送子程序
  數(shù)據(jù)采集發(fā)送部分上電后首先配置nRF24L01的相關(guān)寄存器.使其工作在發(fā)射狀態(tài),,然后復(fù)位DSl8B20,,向DSl8B20發(fā)送溫度轉(zhuǎn)換命令,讀取已轉(zhuǎn)換的溫度值,然后由nRF24L01發(fā)送.其流程如圖2所示,。


關(guān)鍵字:nRF24L01 無(wú)線(xiàn)溫度采集

 

 

  這里需注意DS18B20是單總線(xiàn)器件.其硬件接口比較簡(jiǎn)單,,這是以相對(duì)復(fù)雜的軟件編程為代價(jià)的。DS18B20與單片機(jī)的接口協(xié)議也是通過(guò)嚴(yán)格的時(shí)序來(lái)實(shí)現(xiàn)的,。雖然增加軟件開(kāi)銷(xiāo),,但由于STC12LE5408運(yùn)行速度快,可以滿(mǎn)足系統(tǒng)要求,。另外,,對(duì)DS18B20操作的程序必須按照初始化,ROM操作命令,,存儲(chǔ)器操作命令,,執(zhí)行/數(shù)據(jù)的先后順序進(jìn)行。如果總線(xiàn)上只掛1個(gè)DS18B20,,初始化后可執(zhí)行跳過(guò)ROM命令,,再發(fā)送溫度轉(zhuǎn)換命令。溫度轉(zhuǎn)換完成后,,將溫度值暫存在發(fā)送緩沖區(qū)tx_buf中,,然后通過(guò)nRF24L01發(fā)送,其相關(guān)程序代碼如下:




4.3 數(shù)據(jù)接收顯示子程序
  nRF24L01在數(shù)據(jù)接收顯示中為接收狀態(tài),。當(dāng)nRF24L01模塊配置為接收模式后,,當(dāng)接收到數(shù)據(jù)中斷時(shí),從接收FIFO讀取數(shù)據(jù),。然后將其存儲(chǔ)到接收緩沖區(qū)rX_bur中,。其相關(guān)程序代碼如下:




5 結(jié)束語(yǔ)
  本文介紹了nRF24L01和STC12LE5408組成的無(wú)線(xiàn)溫度采集系統(tǒng)。采用高度集成的nRF24L01器件,。大大簡(jiǎn)化了系統(tǒng)硬件和軟件設(shè)計(jì),,減小了體積,提高了系統(tǒng)工作的可靠性,。采用新一代增強(qiáng)型8051單片機(jī)STC12LE5408降低了系統(tǒng)成本,,縮短了開(kāi)發(fā)時(shí)間。實(shí)踐證明該系統(tǒng)設(shè)計(jì)簡(jiǎn)單,,成本低廉,,通信可靠,運(yùn)行穩(wěn)定,,性能可靠,,具有較高的實(shí)用價(jià)值。

 

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。