3无线温度采集系统的硬件电路设计
3.1 单片2.4GHz NRF24L01无线模块
3.1.1 NRF24L01芯片概述
NRF24L01是一款新型单片射频收发器件,工作于2.4 GHz~2.5 GHz ISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。NRF24L01功耗低,在以-6 dBm的功率发射时,工作电流也只有9 mA;接收时,工作电流只有12.3 mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。
NRF24L01主要特性如下: GFSK调制;
硬件集成OSI链路层;
具有自动应答和自动再发射功能; 片内自动生成报头和CRC校验码; 数据传输率为l Mb/s或2Mb/s; SPI速率为0 Mb/s~10 Mb/s; 125个频道;
与其他NRF24系列射频器件相兼容; QFN20引脚4 mm×4 mm封装; 供电电压为1.9 V~3.6 V。
[7]
3.1.2 引脚功能及描述
NRF24L01的封装及引脚排列如图3.1所示。各引脚功能如下:
[8]
图3.1 NRF24L01封装图
CE:使能发射或接收;
CSN,SCK,MOSI,MISO:SPI引脚端,微处理器可通过此引脚配置NRF24L01: IRQ:中断标志位; VDD:电源输入端; VSS:电源地;
XC2,XC1:晶体振荡器引脚;
VDD_PA:为功率放大器供电,输出为1.8 V;
8
ANT1,ANT2:天线接口; IREF:参考电流输入。
3.1.3 工作模式
通过配置寄存器可将NRF241L01配置为发射、接收、空闲及掉电四种工作模式,如表3-1所示。
待机模式1主要用于降低电流损耗,在该模式下晶体振荡器仍然是工作的; 待机模式2则是在当FIFO寄存器为空且CE=1时进入此模式; 待机模式下,所有配置字仍然保留。
在掉电模式下电流损耗最小,同时NRF24L01也不工作,但其所有配置寄存器的值仍然保留。
表3-1:NRF24L01四种工作模式
模式 接收模式 发射模式 发射模式 待机模式2 待机模式1 掉电 PWR_UP 1 1 1 1 1 0 PRIM_RX 1 0 0 0 - - CE 1 1 1→0 1 0 - FIFO寄存器状态 - 数据在TX FIFO 寄存器中 停留在发送模式,直至数据发送完 TX FIFO 为空 无数据传输 - [9]
3.1.4 工作原理
发射数据时,首先将NRF24L01配置为发射模式:接着把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入NRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10μs,延迟130μs后发射数据;若自动应答开启,那么NRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致)。如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TX FIFO中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,TX FIFO中数据保留以便在次重发;MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。最后发射成功时,若CE为低则NRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2。
接收数据时,首先将NRF24L01配置为接收模式,接着延迟130μs进入接收状态等待数据的到来。当接收方检测到有效的地址和CRC时,就将数据包存储在RX FIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则NRF24L01进入空闲模式1
[10]
。
9
在写寄存器之前一定要进入待机模式或掉电模式。如下图3.2、3.3,给出SPI操作及时序图:
图3.2 SPI读操作 图3.3 SPI 写操作
3.1.5 配置字
SPI口为同步串行通信接口,最大传输速率为10 Mb/s,传输时先传送低位字节,再传送高位字节。但针对单个字节而言,要先送高位再送低位。与SPI相关的指令共有8个,使用时这些控制指令由NRF24L01的MOSI输入。相应的状态和数据信息是从MISO输出给MCU。
NRF24L0l所有的配置字都由配置寄存器定义,这些配置寄存器可通过SPI口访问。NRF24L01 的配置寄存器共有25个,常用的配置寄存器如表3-2所示。
表3-2:常用配置寄存器
地址(H) 00 01 02 03 04 07 0A~0F 10 11~16 寄存器名称 CONFIG EN_AA EN_RXADDR SETUP_AW SETUP_RETR STATUS RX_ADDR_P0~P5 TX_ADDR RX_PW_P0~P5 功能 设置24L01工作模式 设置接收通道及自动应答 使能接收通道地址 设置地址宽度 设置自动重发数据时间和次数 状态寄存器,用来判定工作状态 设置接收通道地址 设置接收接点地址 设置接收通道的有效数据宽度 3.1.6 NRF24L01模块原理图
NRF24L01单端匹配网络:晶振,偏置电阻,去耦电容。下图3.4为NRF24L01单端50Ω射频输出电路原理图。
10
VDDC7C810nF1nFCECSNSCKMOSIMISOIRQC933nFR222KVSS20DVDD19VDD18VSS17IREF16U1C550omh,RFI/O3.9nH1.5pFC6L11.0pF8.2nHL22.7nHC3C42.2nF4.7pFL36IRQ7VDD8VSS9XC210XC1C122pF1CE2CSN3SCK4MOSI5MISO15VSS1413ANT212ANT1VDD_PA11VDDNRF24L01X116MR11MC222pF
图3.4 NRF24L01单端50Ω射频输出电路原理图
3.2 温度采集端
无线温度测量仪的温度采集端由AT89C51单片机、温度测量电路、无线发送模块NRF24L01、显示电路、时钟电路及其它电路组成。温度采集硬件框图如图3.5所示
电源模块 无线接收电路 AT89C51 单片机 报警电路 时钟电路 DS18B20 液晶显示
图3.5 温度采集硬件框图
3.2.1采集单元
这里我们用到温度芯片DS18B20。DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式。测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出。其工作电源既可在远端引入,也可采用寄生电源方式产生。CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
DS18B20支持“一线总线”接口,测量温度范围为-55℃~+125℃,在-10℃~85℃范围内,精度为土0.5℃。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等
[11]
。
11
1. DS18B20的内部结构:
DS18B20内部结构图如图3.6所示。
寄存器和控制器 温度灵敏元件 高速 缓存 存储器 电源检测 64位 ROM 和 单线 接口 低温触发器TL 高温触发器TH 配置寄存器 8位CRC生成器 图3.6 DS18B20内部结构图
(1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
(2) DS18B20中的温度传感器可完成对温度的测量,如表3-3所示,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。
表3-3 DS18B20温度值格式表
LS Byte MS Byte bit7 23
bit6 22 bit5 21 bit4 20 bit3 2-1 bit2 2-2 bit1 2-3 bit0 2-4 bit15 S bit14 S bit13 S bit12 S bit11 S bit10 26 bit9 25 bit8 24 这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度
[12]
。
例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。 2. DS18B20的工作原理
DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。在讲解其工作流程之前我们有必要了解DS18B20的内部存储器资源。DS18B20共有三种形态的存储器资源,它们分别是:
12