基于nRF24E1的无线传感网络节点设计

时间:2022-08-26 03:02:07

基于nRF24E1的无线传感网络节点设计

摘 要:本文阐述了无线传感器网络技术,nRF24E1的应用,路由协议的目前的发展状况。根据现有传感器网络技术,本着满足低成本的短距离无线传感器网络通信的需求,研究实现了以nRF24E1芯片为核心,DS18B20为传感器进行周围环境温度信号的采集。

关键词:无线传感器,网络节点,nRF24E1

无线数据监测网络解决了传统有线数据监测与传输在多点测量及特殊环境下布线复杂困难且功耗高等问题,在工农业及军事等通信领域正得到广泛应用。本文设计的无线传感网络节点,采用高速无线收发器nRF24E1进行多点组网[1],实现了多个节点的数据采集与监测,并运用超低功耗短时突发式无线发射技术,从而大大降低了系统功耗。

1 nRF24E1的内部结构

图1是nRF24E1的内部结构框图和元件。从芯片的内部结构图可以看出,nRF24E1内有增强型8051内核、无线收发器nRF2401、9路100kspls/s的10bit模数转换器、UART异步串口、SPI接口、PWM输出、RC振荡器、看门狗和唤醒定时器,此外,nRF24E1还内置了专门的稳压电路。在nRF24E1的内部存储空间中,512B ROM用于存储引导程序。上电后,它可将EEPROM中存储的程序下载到4kB RAM的程序运行空间,另外的256BRAM为数据存储器。

图1 nRF24E1的内部结构和元件

2应用电路

nRF24E1可工作于2.4GHz的国际通用ISM频段而无需申请无线应用许可证,从而大大方便了开发者和用户。nRF24E1内置了增强型8051控制器,是一种集无线数据接收和发送于一体,并可对数据进行处理的片上系统(SoC),这使得nRF24E1的应用系统更为简化,并且大大增强了无线系统的稳定性和可靠性。

nRF24E1体积小、功耗低,因此非常适用于对体积和功耗要求较高的应用场合。图2所示是nRF24E1的应用电路。图中,nRF24E1通过SPI口与EEPROM进行连接。上电后,电路可在512B ROM中存储的引导程序的控制下,通过SPI将EEPROM中存储的用户程序传送至nRF24E1的4kB RAM程序运行空间中,以把控制的任务转到用户程序,这样,通过SPI口就可以与其它器件进行通讯了。当上电后,首先必须对无线收发器nRF24E1的配置字进行初始化,这可通过8051对配置字写数据来实现。

图2基于nRF24E1的典型应用电路图

3系统结构及硬件设计

数据采集系统采用nRF24E1片上系统芯片为核心,主要包括:信号采样与整理、数/模变换、无线传输等模块。该系统的硬件设计将由外部传感器获得的弱信号作电压限幅后,通过滤波、放大、隔离以及末级放大等一系列处理后,送片内A/D进行采样;根据需要对信号做数字处理后,通过片内集成的收发器传送信号。在PC端采用无线USB接口接收数据。该系统由传感器信号输入、信号调理电路、ADC转换、发射和接收、天线部分构成。以nRF24E1为核心的射频模块所需的高频元件全部集成在芯片内部,仅需极少的保护和整理电路就可完成收发系统硬件的设计,而发射功率、工作频率等所有的参数全部通过相应的软件设置完成[2]。以nRF24E1芯片为核心组成的短距离无线数据传输系统的电路原理图如图3所示:

图3采集系统框图

3.1数字式温度传感器的选择

在如此众多的产品中选择出合适的器件,应该把握以下几点:电路应该尽量简单;测温的精度、分辨率要合适,以便减少不必要的电路和软件开发成本;温度传感器采用的总线负载能力如何,能否满足多点测温的需要;占用MCU的 I/O引脚数情况如何。

由于DS18B20独特的单总线接口方式在多点测温时有明显的优势,占用MCU的 I/O 引脚资源少,和MCU的通信协议比较简单,成本较低,传输距离远,所以,选用DS18B20做为温度测量的传感器。

图4温度采集网络框图

3.2 无线收发芯片的选择

nRF24E1是挪威 Nordic VLSI ASA公司开发的一种嵌入了高性能单片机内核的高速单片无线收发芯片。不需要外接SAW滤波器,极少的电路,发射功率、工作频率等所有工作参数全部通过软件设置完成,所有高频元件包括电感、振荡器等已经全部集成在芯片内部,一致性良好,性能稳定且不受外界影响;工作在全球开放的 2.4GHz 频段、勿需申请通信许可证[3]。它可应用在:无线键盘和鼠标、无线耳机、工业传感器、PC外设、电话外设、报警器、远程遥控及其它短距离无线高速应用,故本系统将nRF24E1做为无线收发芯片的首选。

4系统软件设计

4.1主程序及上下位机程序

系统的主程序设计主要完成系统初始化、中断优先级设定以及判断调用各模块程序,即主要实现各程序模块的连接。上位机的系统初始化主要包括 nRF24E1 中寄存器、存储单元的设置、nRF2401 子系统初始化、ZLG7289A 的初始化。下位机的系统初始化主要包括 nRF24E1 中寄存器、存储单元的配置、nRF2401 子系统初始化、DS18B20 的初始化和 HM1500地址的设置。

上位机主程序开始后先进行初始化设置。初始化的内容包括给相应的字符名称赋值,ZLG7289A 的初始化,设置串口通信参数,打开 CPU 中断,打开串口中断,设置定时器 T0 中断。没有中断的时候,上位机子系统处于等待状态,直到有中断需要响应时,单片机进入相应的中断服务程序,向下位机发送温度(或湿度)测试指令,等下位机接收到完整数据后,将上位机置接收方式,准备接收测得的数据,在上位机接收完下位机上传的数据后,根据中断指令进行显示(或上传),并保持状态,直到响应新的中断为止。

下位机主程序开始后首先进行初始化设置。初始化的内容包括给相应的字符名称赋值,设置串口通信参数。下位机然后向在线的 DS18B20发初始化脉冲。然后发送 Skip ROM 命令,也就是接下来的 RAM 命令是针对在线所有 DS18B20。将在线所有 DS18B20 序列号存入下位机中,接着循环查询 nRF2401 子系统是否置接收方式,直到有接收数据,转入相应的子程序,执行温度(或湿度)的检测,然后,将测得的数据发送给上位机,复位返回,准备进行新的测试[4]。

4.2温度测量子程序

首先由下位机发出所要查询的DS18B20地址,所有的DS18B20响应中断,判断是否与主机查询的地址相符。地址符合的DS18B20回送本机地址,并改变 SM2,地址不符合的 DS18B20 退出中断,SM2=1 不变。DS18B20在与下位机建立联系后,跟着以查询方式接收下位机接着发送的 DS18B20 的ROM 命令。主机只有两种DS18B20的ROM 命令:读 DS18B20 的序列号和匹配指定 DS18B20。读序列号和匹配指定DS18B20 都是单字节的指令。匹配指定 DS18B20 命令发送后紧接着的是相应测温点序列号[5]。DS18B20 首先判断是那一种命令,然后转入相应子程序进行处理。

读序列号指令相应的子程序完成的是,读出在线的 DS18B20 的序列号,一共八个字节并回送下位机。读序列号时线上只能有一个 DS18B20,否则会引起数据冲突。匹配指定 DS18B20 命令相应的子程序先把接收到的相应测温点序列号放入单片机 RAM 的指定地址中。然后向在线的多个DS18B20 发送匹配测温点的 ROM 命令和相应序列号。只有序列号相同的DS18B20 响应命令。然后单片机发送读寄存器命令,把相应 DS18B20 寄存器内的数据先放入单片机 RAM 的指定地址中。

5 结论

本文所研究的无线传感网络节点是短距离无线通信技术在环境参数测量方面的一个具体应用。系统以嵌入增强型51单片机内核的单片射频收发芯片 nRF24E1 为核心,采用数字式温度传感器 DS18B20,应用传感技术、无线收发技术及计算机技术,实现多点温度数据的采集和短距离无线传输。

参考文献:

[1] 吴名.我国RFID应用现状和技术现状及发展策略分析[J].金卡工程,2006年11期.

[2] 丁恩杰,踪晓志.基于nRF24E1和DS18 B20的无线测温系统[J].仪表技术与传感器,2012.15 (11) :60一62.

[3] 黄智伟,杨案江超低功耗单片无线系统应用入门[M].北京:北京航空航天大学出版社,2011:1 -28

[4] 管继刚物联网技术在智能农业中的应用[J].通信管理与技术,2010 (3) :24一27

[5] 李霞,郑恩让.基于nRF24E1的无线测温报警系统设计[J].微计算机信息,2007.23(23):305一306.

上一篇:浅析道路运输行政组织管理的问题及其措施 下一篇:关于一起宾馆火灾事故的调查