基于nRF2401芯片的多路无线分布式温度测量系统设计

时间:2022-03-24 03:45:47

基于nRF2401芯片的多路无线分布式温度测量系统设计

摘要:介绍了单片无线收发器nRF2401的主要特点及工作模式。给出了利用DSl8820数字温度传感器、ATmegal6和nRF2401实现无线分布式温度测量系统的设计方法,同时给出了系统的硬件结构以及无线收发和温度采集模块的软件工作流程。

关键词:nRF2401;DSl8820;无线通信;温度测量

中图分类号:TP216 文献标识码:A 文章编号:2095-1302(2011)09-0050-04

引言

短距离多路无线通信系统不仅系统布置灵活,不受场地等条件的制约,而且还可以完全消除通信设备之间的物理连接,大大降低使用成本,因而已在现代工业生产控制中得到了广泛的应用。

本文讨论并设计了一种基于nRF2401射频无线通讯芯片的多路无线分布式温度测量系统。该系统使用新型一线式数字温度传感器DSISB20进行温度测量,经ATmegal6单片机处理后再用射频无线收发芯片nRF2401实现测温数据的无线发送。主控节点也使用nRF2401芯片进行无线测温数据的接收,再经ATmegal6单片机进行数据转换和处理,从而把远方4处的温度测量值巡回显示在6位LCD显示器上,也可利用按键来单独测量某一处的温度值。该系统的总体结构框图如图1所示。

1.系统硬件设计

本系统的主控节点和各测温通道均采用Armel公司开发的高性能、低功耗、高速8位处理器ATmegal6单片机作为控制器。ATmegal6单片机不仅价格低廉,而且性能强大,能很好的完成本系统要求的控制和数据处理功能。该单片机采用先进的RISC结构CPU内核,具备了1 MIPS/MHz的高速数据处理能力,片内不仅有32个8位通用寄存器,而且包含有16 KB容量的非易失性FLASH程序存储器和1024 B的SRAM数据存储器,并支持JTAG接口,片内资源十分丰富。

1.1数字温度传感器DSl8820及其接口电路

本系统的各个测温通道中都选用了DALLAS公司生产的新一代一线式数字温度传感器DSl8820。该器件只有3个引脚,使用非常方便。其温度测量范围为-55℃~+125℃,可实现最高12位的测温分辨率,测温精度可达±0.0625℃,用户还可设置温度的上下限报警值。DSl8820器件的外形图如图2所示。图3所示是DSl8820与单片机的连接电路。

图3中的DSl8820的供电电压可在+3 V~+5.5 V之间选取。通常为了简便,都是选择+5 V。DSl8820只需一根数据线就可实现控制命令和测温数据的通讯传输。本系统中把DSl8820的DQ数据线与ATmegal6单片机的PA7端口相连。虽然这种采用DSl8820作为测温元件的硬件电路相当简单,但相对来说,单片机为实现温度读取而需要进行的控制与数据读取的程序操作却较为复杂和繁琐。为获取一次温度数据,单片机需要先对DSl8820器件进行复位,再向DSl8820发送ROM操作指令和RAM操作指令,然后才能执行温度数据的读取。DSl8820器件的测温数据由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。其具有的DuoCeiverTM技术使该芯片可以使用同一天线同时接收两个不同频道的数据,并有125个频道可供选择。最高发射速率为1 Mb/s,输出功率可配置并支持双通道接收和多种低功耗模式。工作时只需要很少的元件,因此,使用起来非常方便。nRF2401芯片采用扁平24引脚封装,外形尺寸只有5 mm×5 mm,其引脚排列及内部组成框图如图5所示。

nRF2401芯片的引脚功能说明如表1所列。

nRF2401芯片的外部电路连接如图6所示。

nRF2401共有四种主模式:分别为收/发模式(RX/TX)、配置模式(configuration)、空闲模式(Stand by)和关机模式(Power down)。这四种工作模式由PWR_UP、CE和CS三个引脚控制,表2所列为其工作模式设置方法。其中收/发模式又分为ShockBurstTM突发模式和直接模式,由nRF2401的配置字控制。

在突发模式下,待发数据低速进入片内FIFO,以高速发射出去,可以大大降低功耗。即使使用低速廉价的微控制器也可以满足高速率发射数据的应用需求。突发模式和直接模式均支持DuoCeiver双通道接收,即通道1(CLKl、DRl和DATA)和通道2(CLK2、DR2和DOUT2)。由于通道2只能接收数据,并且其频率始终比通道1高8MHz。因此,nRF2401可以使用同一天线同时接收两个不同通道的数据;配置模式用于向nRF2401写入配置字;空闲模式可减小芯片功耗,同时又可以缩短芯片启动时间,在该模式下,部分晶振处于活动状态,配置字内容仍保留在芯片内;关机模式下,nRF2401被关闭,因而具有最小功耗,但配置字内容仍保留在芯片内。当收发器处于不活动状态时,可以进入该模式,从而延长电池使用寿命。

nRF2401一般通过PA口与单片机进行通信。可将接收数据准备好信号DR1、时钟端CLKl和数据端DATA分别与单片机的PA2、PAl和PA0相连,以用于数据的接收和发送;电源控制端PWRUP、激活控制端CE和片选端CS分别与单片机的PA6、PA5和PA4相连,可用于控制nRF2401的工作模式。

2.系统软件设计

根据本系统确定的功能,主控节点主要负责巡回测量与显示各节点的温度(也可按键测量某一路的值)。其主控节点的软件工作流程如图7所示。

2.1无线收发程序

由于系统中的nRF2401工作在突发模式,所以,上电后必须对配置字后面的120位进行配置。15字节的配置字可通过三线接口(CS、CLKl和DATA)写入片内配置寄存器,写时先写高位。当CS出现下降沿时,写入的配置字有效。

当有数据要发送时,首先应将CE置1,激活片内数据处理模块,然后通过CLKl和DATA引脚向片内FIFO依次写入接收端的地址和待发送的数据,nRF2401自动为其生成CRC校验码,最后再将CE置0,nRF2401自动添加头部,激活一次ShockBurs发射,完成发射后返回空闲模式。

接收数据时,首先将CE置1,以激活接收模块,然后200 us后,nRF2401进入监视状态。当检测到一个有效的数据包(数据包的地址段和本机配置字中的接收地址匹配且CRC校验正确)时,nRF2401自动移除头部、地址段和CRC校验位,并将DR1置1,以供控制器查询或申请中断。然后,控制器就可以以合适的速率将其中的数据段逐位移出。最后,当所有数据移出后,nRF2401自动将DRl清0,此时若CE仍为1,则准备接收下一个数据包;若CE为0,则进入空闲模式。

由ATmegal6单片机控制的数据无线收发流程如图8所示。

2.2温度采集程序

按照对DSl8820的温度采集控制要求,可为ATmegal6单片机设计温度采集程序,事实上,其每一次测温操作都必须遵循以下顺序:

第一步:对DSl8820予以初始化,即单片机向DSl8820发送一低电平的复位脉冲,要求该低电平脉冲的宽度不得小于480 us。DSl8820在收到该复位脉冲后会回送一宽度为60~240 us的低电平“存在”脉冲,以告知主机该设备的存在且处于就绪状态;

第二步:单片机发送ROM命令(随后是任何需要的读写时隙);

第三步:单片机发送RAM命令(随后是任何需要的读写时隙)。

以上命令和数据操作都是通过DSl8820的DQ传送(从最低位开始),而DQ线已与ATmegal6单片机的PA7端口相连,故在编程时必须保证端口地址设置正确且须严格按照DSl8820数据手册中要求的时序进行操作,以保证测温数据交换的正确性。

3.结语

本系统采用DSl8820作为数字温度传感器,并通过ATmegal6单片机控制nRF2401无线收发器实现了4路温度数据的无线采集、传输与实时显示。该系统不仅能够实现自动巡回温度检测,也可根据按键测量指定通道的温度。本系统具有测温简单、精度高,便携性强、布线不受地形限制等优点,可代替传统有线多路测温系统,故在工农业生产实践中具有良好应用前景。

上一篇:物联网让首都交通更加智能 下一篇:基于几何特征的在线手绘流程图识别