您现在的位置: 主页 > 通讯技术 > 基于nRF24E01的无线温度采集系统设计 -
本文所属标签:
为本文创立个标签吧:

基于nRF24E01的无线温度采集系统设计 -

来源: 网络用户发布,如有版权联系网管删除 2018-11-14 

[导读]温度采集系统所采集的温度信息通常通过RS485、CAN总线通信方式传输至上位机,但这种方式维护较困难,不利于工业现场生产;而无线通信GPRS技术传输距离长,通信可靠稳定,但设计复杂、成本昂贵、后期运转成本高。本设计采用工业级内置硬件链路层协议的低成本单芯片nRF24E01无线收发器件实现系统间的无线通信,完成无线信号的接收、显示及报警功能。

温度采集系统所采集的温度信息通常通过RS485、CAN总线通信方式传输至上位机,但这种方式维护较困难,不利于工业现场生产;而无线通信GPRS技术传输距离长,通信可靠稳定,但设计复杂、成本昂贵、后期运转成本高。本设计采用工业级内置硬件链路层协议的低成本单芯片nRF24E01无线收发器件实现系统间的无线通信,完成无线信号的接收、显示及报警功能。

本文引用地址: http://www.21ic.com/app/rf/201008/62668.htm

nRF24E01简介
nRF24E1收发器是Nordic VLSI推出的系统级芯片,采用先进的0.18μs CMOS工艺、36引脚QFN封装。以nRF2401/02芯片结构为基础,将射频、8051MCU、9输入12位ADC、125通道、UART、SPI、PWM、RTC、WDT全部集成到单芯片中。nRF24E01是一款工业级内置硬件链路层协议的低成本无线收发器。该器件工作于2.4GHz全球开放ISM频段,内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合增强型ShockBurst技术,其输出功率和通信频道可通过程序配置。拥有ShockBurst和Enhanced ShockBurst两种数据传输模式。nRF24E01功耗低,以-6dBm的功率发射时,工作电流仅9mA;接收时,工作电流仅12.3mA,多种低功率工作模式(掉电和空闲模式)更利于节能设计。nRF24E1/nRF24E2适用于无线鼠标和键盘、无线手持终端、无线频率识别、数字视频、遥控和汽车电子及其他短距离无线高速应用。

系统硬件设计
系统硬件设计主要由采集发送和接收显示两部分组成。图1为采集发送电路原理图,该电路主要由温度传感器DS18B20和nRF24E01组成。

图1 采集发送电路原理图


DSl8B20是DALLAS公司生产的单总线数字1-Wire温度传感器,可把温度信号直接转换成串行数字信号供单片机处理,采用1-Wire接口,数据端DQ通过4.7kΩ的上拉电阻接NRF24E01。nRF24E01的任意IO端口都可通过程序模拟DQ通信信号,但需在编程时注意,这里接至P1端口。采集到的温度数据经过NRF24E01内部调制、混频无线传输到接收模块,接收模块可以显示或将所采集的数据通过串口发送至PC进行处理。

系统软件设计
数据采集发送部分上电后首先配置nRF24E01的相关寄存器.使其工作在发射状态,然后复位DSl8B20,向DSl8B20发送温度转换命令,读取已转换的温度值,然后由nRF24E01发送.由于DSl8B20采用的是单线读写方式,需采用软件模拟实现1-WIRE通信。因此应严格按照1-Wire的时序要求编写。复位要求nRF24E01将数据线下拉500μs,然后释放,当DS18B20收到信号后等待16〜60μs,后发出60〜240μs的存在低脉冲,主CPU收到此信号表示复位成功,其流程如图2所示。

图2 温度数据采集发送流程图


RF24E01的主要程序代码如下:


(1)nRF24E01对DSl8B20的数据读写是通过时间隙处理位和命令字来确认信息交换。根据“单线复位脉冲时序和1-wire presence detect”的时序图设计程序如下:
uint get_temperature()
{
 float wendu;
 uchar a,b;
 ds_reset();
 delay(1); //约2ms
 ds_write_byte(0xcc);
 ds_write_byte(0xbe);
 a=ds_read_byte();
 b=ds_read_byte();
 temp=b;  
 return temp;
    //返回温度相关数据
}


(2)发送函数,把温度数据通过无线发射出去,实现函数如下:
void Transmitter(unsigned char b){//发送函数
unsigned char mtemp;
CS=1;
Delay100us(0);
for(mtemp=0;mtemp<tconf.n;mtemp++){
SpiReadWrite(tconf.buf[mtemp]);//发送发送器配置字
}
CS=0;
TransmitPacket(b);
    //发送数据包
}
}



              查看评论 回复



嵌入式交流网主页 > 通讯技术 > 基于nRF24E01的无线温度采集系统设计 -
 

"基于nRF24E01的无线温度采集系统设计 -"的相关文章

网站地图

围观()