基于nRF24L01的无线温度采集系统设计1概要Word格式文档下载.docx
- 文档编号:6323224
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:8
- 大小:19KB
基于nRF24L01的无线温度采集系统设计1概要Word格式文档下载.docx
《基于nRF24L01的无线温度采集系统设计1概要Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于nRF24L01的无线温度采集系统设计1概要Word格式文档下载.docx(8页珍藏版)》请在冰点文库上搜索。
高,电压范围宽(2.2~3.8V,和MCS-51系列单片机指令系统完全兼容。
其内部还有8KBFlash程序存储器,512字节
RAM、2KBEEPROM、4路PWM以及硬件看门狗(WDT等资
源,性价比高[4]。
DS18B20是DALLAS公司生产的单总线数字1-Wire
温度传感器[5],可把温度信号直接转换成串行数字信号供单片机处理,采用1-Wire接口,DS18B20的数据端DQ可通过4.7kΩ的上拉电阻接STC12LE5408。
nRF24L01的
CE,CSN,SCK,MOSI,MISO,IRQ引脚则可接STC12LE5408
的任意端口,但需在编程时注意,这里接至P1端口。
由于
nRF24L01具有接收数据功能,所以接收显示电路由单片
机STC12LE5408、nRF24L01和显示电路组成。
所采集的数据也通过串口发送至PC机进行处理。
4系统软件设计
4.1nRF24L01的软件设置
由于STC12LE5408无标准的SPI总线接口,需采用软件
模拟实现SPI总线。
因此应严格按照SPI的时序要求编写,否则导致对nRF24L01的操作失败。
nRF24L01的各种命令字都只有一个字节,分为读寄存器、写寄存器、读数据接收缓冲区、写发送数据缓冲区等。
在输入任意命令字的同时,MISO输出STATUS寄存器的内容。
对nRF24L01的读写程序代码
基于nRF24L01的无线温度采集系统设计
王振1,胡清1,黄杰2
(1.广东工业大学信息工程学院,广东广州510006;
2.湖南铁道职业技术学院信息工程系,湖南株洲412001摘要:
介绍一种由nRF24L01型无线数据传输器和高精度的单总线数字温度传感器DS18B20组成的无线数据传输系统;
详细阐述该系统的硬件和软件设计要点;
给出基于STC12LE5408设计的nRF24L01硬件接口电路和程序代码;
并讨论该系统在无线温度采集系统中的应用。
关
键
词:
nRF24L01;
无线数据传输;
STC12LE5408;
DS18B20
中图分类号:
TP274
文献标识码:
A
文章编号:
1674-6236(200912-0024-03
DesignofwirelesstemperaturecollectionsystembasedonnRF24L01
WANGZhen1,HUQing1,HUANGJie2
(1.SchoolofInformationEngineering,GuangdongUniversityofTechnology,Guangzhou510006,China;
2.Departmentof
InformationEngineering,Hu’nanRailwayProfessionalTechnologyCollege,Zhuzhou412001,China
Abstract:
ThewirelessdatatransmissionsystemwhichiscomposedofwirelessdatatransmissiondevicenRF24L01andhigh-precision1-WirebusdigitaltemperaturesensorDS18B20,isintroducedinthispaper.Thehardwareandsoftwareofthesystemdesignareexplainedindetail.TheinterfacecircuitandprogramcodeofnRF24L01basedonSTC12LE5408areintroducedconcretely.Finally,theapplicationofthissysteminwirelesstemperaturecollectionsystemisdiscussed.Keywords:
wirelessdatatransmission;
收稿日期:
2009-07-14
稿件编号:
200907046
作者简介:
王振(1984-,男,河南新乡人,硕士研究生。
研究方向:
智能传感与控制。
2009年12月Dec.2009
第17卷第12期
Vol.17No.12
电子设计工程
ElectronicDesignEngineering
-24-
王振,等基于nRF24L01的无线温度采集系统设计
图1采集发送电路
如下:
uintSPI_RW(uintuchar
{
uintbit_ctr;
for(bit_ctr=0;
bit_ctr<
8;
bit_ctr++
{MOSI=(uchar&
0x80;
uchar=(uchar<
<
1;
SCK=1;
uchar|=MISO;
SCK=0;
}
return(uchar;
nRF24L01的ShockBurst和EnhancedShockBurst两种数据模式的区别是:
后者比前者多一个确认数据传输的信号,保证数据传输的可靠性。
按EnhancedShockBurst模式初始化,重新发送等待时间为250μs,重新发送次数为l0次,地址是RX_ADR_WIDTH,输出功率为0dBm,速度为1Mb/s。
nRF24L01处于P0WER_UP状态。
函数中WRITE_REG为写命令基地址0x20。
其相关程序如下:
voidinit_NRF24L01_send(void
inerDelay_us(100;
CE=0;
CSN=1;
SPI_Write_Buf(WRITE_REG+TX_ADDR,TX_ADDRES-S,TX_ADR_WIDTH;
SPI_Write_Buf(WRITE_REG+RX_ADDR_P0,RX_ADDR-ESS,RX_ADR_WIDTH;
SPI_RW_Reg(WRITE_REG+EN_AA,0x01;
SPI_RW_Reg(WRITE_REG+EN_RXADDR,0x01;
SPI_RW_Reg(WRITE_REG+RF_CH,0;
SPI_RW_Reg(WRITE_REG+RX_PW_P0,RX_PLOAD_WIDTH;
SPI_RW_Reg(WRITE_REG+RF_SETUP,0x07;
在接收端将nRF24L01配置为接收模式,地址是RX_AW,负载数据宽度是TX_PL_W,使能接收完数据中断,CRC校验位为2字节,nRF24L01处于POWER_UP状态,其相关程序代码如下:
voidinit_NRF24L01_receive(void
SPI_Write_Buf(WRITE_REG+TX_ADDR,TX_ADDRESS,TX_ADR_WIDTH;
SPI_Write_Buf(WRITE_REG+RX_ADDR_P0,RX_ADDRESS,RX_ADR_WIDTH;
SPI_RW_Reg(WRITE_REG+EN_RXADDR,0x01
SPI_RW_Reg(WRITE_REG+RF_CH,0
4.2数据采集发送子程序
数据采集发送部分上电后首先配置nRF24L01的相关寄存器,使其工作在发射状态,然后复位DS18B20,向DS18B20发送温度转换命令,读取已转换的温度值,然后由nRF24L01发送,其流程如图2所示。
-25-
《电子设计工程》(月刊
全年12期,读者可到当地邮局订阅,本刊亦可破订、零购。
国内刊号:
CN61-1477/TN
国际刊号:
ISSN1674-6236
在线投稿系统:
ad@(广告
地址:
西安市劳动南路210号5-1-3信箱
邮政编码:
710082
欢迎投稿!
欢迎订阅!
欢迎刊登广告!
邮发代号:
52-142订价:
6.00元/期年价:
72.00元/年
!
"
这里需注意DS18B20是单总线器件,其硬件接口比较简单,这是以相对复杂的软件编程为代价的。
DS18B20与单片机的接口协议也是通过严格的时序来实现的。
虽然增加软件开销,但由于STC12LE5408运行速度快,可以满足系统要求。
另外,对DS18B20操作的程序必须按照初始化,ROM操作命令,存储器操作命令,执行/数据的先后顺序进行。
如果总线上只挂1个DS18B20,初始化后可执行跳过ROM命令,再发送温度转换命令。
温度转换完成后,将温度值暂存在发送缓冲区tx_buf中,然后通过nRF24L01发送,其相关程序代码如下:
voidnRF24L01_TxPacket(unsignedchar*tx_buf{CE=0;
SPI_Write_Buf(WRITE_REG+RX_ADDR_P0,TX_ADDR-ESS,TX_ADR_WIDTH;
SPI_Write_Buf(WR_TX_PLOAD,tx_buf,TX_PLOAD_WI-DTH;
SPI_RW_Reg(WRITE_REG+CONFIG,0x0e;
CE=1;
inerDelay_us(10;
}4.3
数据接收显示子程序
nRF24L01在数据接收显示中为接收状态。
当nRF24L01
模块配置为接收模式后,当接收到数据中断时,从接收FIFO
读取数据。
然后将其存储到接收缓冲区rx_buf中。
其相关程序代码如下:
unsignedcharnRF24L01_RxPacket(unsignedchar*rx_buf{
unsignedcharrevale=0;
sta=SPI_Read(STATUS;
if(RX_DR{CE=0;
SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH;
revale=1;
SPI_RW_Reg(WRITE_REG+STATUS,sta;
returnrevale;
5结束语
本文介绍了nRF24L01和STC12LE5408组成的无线温度
采集系统。
采用高度集成的nRF24L01器件,大大简化了系统硬件和软件设计,减小了体积,提高了系统工作的可靠性[6]。
采用新一代增强型8051单片机STC12LE5408降低了系统成本,缩短了开发时间。
实践证明该系统设计简单,成本低廉,通信可靠,运行稳定,性能可靠,具有较高的实用价值。
参考文献:
[1]Nordic半导体公司.nRF24L01用户手册[DB/OL].http:
//www.nord=product&
act=display&
pro=89#.
[2]英庆,王代华,张志杰.基于nRF24L01的无线数据传输系
统[J].现代电子技术,2008,31(7:
68-82.
[3]丁永红,孙运强.基于nRF2401的无线数传系统设计[J].国
外电子测量技术,2008,27(4:
45-47.
[4]杜开初,杜剑飞.基于STC12C5408AD的记忆示波器[J].电
子设计工程,2007,15(7:
54-56.
[5]夏布礼,丁克勤.基于USB串口多点温度采集系统的设计
[J].电子设计工程,2009,17(3:
40-42.
[6]黄智伟.射频电路设计[M].北京:
电子工业出版社,2006.
图2
数据采集发送子程序流程
《电子设计工程》2009年第12期
-26-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 nRF24L01 无线 温度 采集 系统 设计 概要