基于nRF2401芯片的多路无线分布式温度测量系统设计
扫描二维码
随时随地手机看文章
引言
短距离多路无线通信系统不仅系统布置灵活,不 受场地等条件的制约,而且还可以完全消除通信设备 之间的物理连接,大大降低使用成本,因而已在现代 工业生产控制中得到了广泛的应用。
本文讨论并设计了一种基于nRF2401射频无线 通讯芯片的多路无线分布式温度测量系统。该系统 使用新型一线式数字温度传感器DS18B20进行温度 测量,经ATmegal6单片机处理后再用射频无线收 发芯片nRF2401实现测温数据的无线发送。主控节 点也使用nRF2401芯片进行无线测温数据的接收, 再经ATmegal6单片机进行数据转换和处理,从而 把远方4处的温度测量值巡回显示在6位LCD显示 器上,也可利用按键来单独测量某一处的温度值。该 系统的总体结构框图如图1所示。
1 系统硬件设计
本系统的主控节点和各测温通道均采用Atmel 公司开发的高性能、低功耗、高速8位处理器AT- megal6单片机作为控制器。ATmegal6单片机不仅 价格低廉,而且性能强大,能很好的完成本系统要求 的控制和数据处理功能。该单片机采用先进的RISC 结构CPU内核,具备了 1 MIPS/MHz的高速数据处 理能力,片内不仅有32个8位通用寄存器,而且包含有16 KB容量的非易失性FLASH程序存储器和 1024 B的SRAM数据存储器,并支持JTAG接口, 片内资源十分丰富。
1.1 数字温度传感器DS18B20及其接口电路
本系统的各个测温通道中都选用了 DALLAS公 司生产的新一代一线式数字温度传感器DS18B20。该 器件只有3个引脚,使用非常方便。其温度测量范围 为一55 °C〜+125笆,可实现最高12位的测温分辨 率,测温精度可达±0.0625 °C,用户还可设置温度的 上下限报警值。DS18B20器件的外形图如图2所示。 图3所示是DS18B20与单片机的连接电路。
图3中的DS18B20的供电电压可在+ 3 V〜 + 5.5V之间选取。通常为了简便,都是选择+ 5V。 DS18B20只需一根数据线就可实现控制命令和测温数据的通讯传输。本系统中把DS18B20的DQ数据 线与ATmegal6单片机的PA7端口相连。虽然这种釆用DS18B20作为测温元件的硬件电路相当简单, 但相对来说,单片机为实现温度读取而需要进行的控 制与数据读取的程序操作却较为复杂和繁琐。为获取一次温度数据,单片机需要先对DS18B20器件进行复位,再向DS18B20发送ROM操作指令和RAM 操作指令,然后才能执行温度数据的读取。DS18B20 器件的测温数据由2个字节共16位组成,其中低12位即测温的数值,高4位则代表是正摄氏度还是 负摄氏度。具体数据格式及测温数据如图4所示。
1.2 无线收发器nRF2401及其接口电路
为实现测温数据的无线传输,本设计采用的新型 短距离无线收发芯片nRF2401是单片射频收发器, 工作于2.4-2. 5 GHz的ISM频段,芯片内置频率合 成器、功率放大器、晶体振荡器和调制器等功能模块, 输出功率和通信频道可通过程序进行配置。芯片供 电电源电压范围为1. 9〜3.6 V,具有多种低功率工 作模式,节能设计方便,功耗很低。当以一5 dBm的 功率发射时,其工作电流只有10.5 mA,接收时的工 作电流只有18 mA。其具有的DuoCeiver™技术使 该芯片可以使用同一天线同时接收两个不同频道的 数据,并有125个频道可供选择。最高发射速率为 1 Mb/s,输出功率可配置并支持双通道接收和多种 低功耗模式。工作时只需要很少的外围元件,因此, 使用起来非常方便。nRF2401芯片采用扁平24引 脚封装,外形尺寸只有5 mmX 5 mm,其引脚排列及 内部组成框图如图5所示。
nRF2401芯片的引脚功能说明如表1所列。
nRF2401芯片的外部电路连接如图6所示。
nRF2401共有四种主模式:分别为收/发模式(RX/TX)、配置模式(configuration),空闲模式(Standby)和关机模式(Powerdown)„这四种工作模式由PWR_UP.CE和CS三个引脚控制,表2所列为其工作模式设置方法。其中收/发模式又分为ShockBurst™突发模式和直接模式,由nRF2401的配置字控制。
在突发模式下,待发数据低速进入片内FIFO,以高速发射出去,可以大大降低功耗。即使使用低速廉价的微控制器也可以满足高速率发射数据的应用需求。突发模式和直接模式均支持DuoCeiver™双通道接收,即通道1(CLK1、DR1和DATA)和通道2(CLK2、DR2和DOUT2)。由于通道2只能接收数据,并且其频率始终比通道1高8MHzo因此,nRF2401可以使用同一天线同时接收两个不同通道的数据;配置模式用于向nRF2401写入配置字;空闲模式可减小芯片功耗,同时又可以缩短芯片启动时间,在该模式下,部分晶振处于活动状态,配置字内容仍保留在芯片内;关机模式下,nRF2401被关闭,因而具有最小功耗,但配置字内容仍保留在芯片内。当收发器处于不活动状态时,可以进入该模式,从而延长电池使用寿命。
nRF2401一般通过PA口与单片机进行通信。可将接收数据准备好信号DR1、时钟端CLK1和数据端DATA分别与单片机的PA2.PA1和PA0相连,以用于数据的接收和发送;电源控制端PWR_UP、激活控制端CE和片选端CS分别与单片机的PA6.PA5和PA4相连,可用于控制nRF2401的工作模式。
2 系统软件设计
根据本系统确定的功能,主控节点主要负责巡回测量与显示各节点的温度(也可按键测量某一路的值)。其主控节点的软件工作流程如图7所示。
2.1 无线收发程序
由于系统中的nRF2401X作在突发模式,所以,上电后必须对配置字后面的120位进行配置。15字节的配置字可通过三线接口(CS、CLK1和DATA)写入片内配置寄存器,写时先写高位。当CS出现下降沿时,写入的配置字有效。
当有数据要发送时,首先应将CE置1,激活片内数据处理模块,然后通过CLK1和DAIA引脚向片内FIFO依次写入接收端的地址和待发送的数据,nRF2401自动为其生成CRC校验码,最后再将CE置0,nRF2401自动添加头部,激活一次ShockBurst™发射,完成发射后返回空闲模式。
接收数据时,首先将CE置1,以激活接收模块,然后200fis后,nRF2401进入监视状态。当检测到一个有效的数据包(数据包的地址段和本机配置字中的接收地址匹配且CRC校验正确)时,nRF2401自动移除头部、地址段和CRC校验位,并将DR1置1,以供控制器査询或申请中断。然后,控制器就可以以合适的速率将其中的数据段逐位移出。最后,当所有数据移出后,nRF2401自动将DR1清0,此时若CE仍为1,则准备接收下一个数据包;若CE为0,则进入空闲模式。
由ATmegal6单片机控制的数据无线收发流程如图8所示。
2.2 温度采集程序
按照对DS18B20的温度釆集控制要求,可为ATmegal6单片机设计温度釆集程序,事实上,其每一次测温操作都必须遵循以下顺序:
第一步:对DS18B20予以初始化,即单片机向DS18B20发送一低电平的复位脉冲,要求该低电平脉冲的宽度不得小于480μs。DS18B20在收到该复位脉冲后会回送一宽度为60〜240μs的低电平“存在”脉冲,以告知主机该设备的存在且处于就绪状态;
第二步:单片机发送ROM命令(随后是任何需要的读写时隙);
第三步:单片机发送RAM命令(随后是任何需要的读写时隙)。
以上命令和数据操作都是通过DS18B20的DQ传送(从最低位开始),而DQ线已与ATmegal6单片机的PA7端口相连,故在编程时必须保证端口地址设置正确且须严格按照DS18B20数据手册中要求的时序进行操作,以保证测温数据交换的正确性。
3 结语
本系统采用DS18B20作为数字温度传感器,并通过ATmegal6单片机控制nRF2401无线收发器实现了4路温度数据的无线采集、传输与实时显示。该系统不仅能够实现自动巡回温度检测,也可根据按键测量指定通道的温度。本系统具有测温简单、精度高,便携性强、布线不受地形限制等优点,可代替传统有线多路测温系统,故在工农业生产实践中具有良好应用前景。