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

關鍵字:nRF24L01 無線溫度采集

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

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

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

 

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

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

 

  nRF24L01的ShockBurst和Enhanced ShockBurst兩種數據模式的區(qū)別是:后者比前者多一個確認數據傳輸的信號,,保證數據傳輸的可靠性。按Enhanced ShockBurst模式初始化,重新發(fā)送等待時間為250μs,,重新發(fā)送次數為10次,,地址是RX_ADR_WIDTH,輸出功率為0 dBm,,速度為1 Mb/s,。nRF24L01處于POWER_UP狀態(tài)。函數中WRITE_REG為寫命令基地址0x20,。其相關程序如下:

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




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


關鍵字:nRF24L01 無線溫度采集

 

 

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




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




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

 

 

此內容為AET網站原創(chuàng),,未經授權禁止轉載。