APP下载

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

2014-04-18胡中玉岳强冯维杰佘东

现代电子技术 2014年7期
关键词:序列号流程图单片机

胡中玉+岳强+冯维杰+佘东

摘 要: 根据无线传感器网络节点的硬件体系结构,设计出了节点,极大地降低了功耗。系统以AT89C2051单片机为核心,采用数字式温度传感器DS18B20、无线收发芯片nRF24L01实现了温度的采集、无线收发等,给出了系统硬件及软件的具体设计思想与实现方法,最后进行了实际测试。

关键词: 无线传感器网络; AT89C2051单片机; 温度检测; 传感器节点

中图分类号: TN911?34; TP273 文献标识码: A 文章编号: 1004?373X(2014)07?0012?03

Design of wireless sensor network node based on nRF24L01

HU Zhong?yu1, YUE Qiang1, FENG Wei?jie1, SHE Dong2

(1. Kunming University, Kunming 650214, China; 2. Sichuan Electromechanical Institute of Vocation and Technology, Panzhihua 617000, China)

Abstract: According to the hardware architecture of wireless sensor network node, the nodes were designed, which can greatly reduce the power consumption. The system uses AT89C2051 single?chip microcomputer as the core. The temperature collection and wireless transceiver are realized by using the digital temperature sensor DS18B20 and wireless transceiver chip nRF24L01. The specific design thought and realization method of the hardware and software of the system are also provided. Finally, the practical test was conducted.

Keywords: wireless sensor network; AT89C2051 MCU; temperature measurement; sensor node

无线传感网络是当前的新兴的前沿热点研究领域。它综合了传感技术、嵌入式技术、无线通信和网络技术[1]。无线传感器网络在军事、地震预测、农业、医疗等领域都得到了广泛的应用[2]。无线传感器网络系统能实时监测、感知和采集各种检测对象的信息,通过嵌入式系统对信息进行加工和处理,然后利用无线通信技术,通过多跳中继方式传输信息到远处的终端和用户[3]。所以无线传感器网络的设计可以建立在普通的无线温度采集电路之上,结合无线通信技术来实现。本文将利用无线传感器网络的这一特点,采用低功耗的器件,设计一个简易的无线传感器网络节点。

1 无线传感器网络节点的构成

传感器网络节点一般由数据采集模块、数据处理和存储模块、数据传输模块和电源四部分组成[4]。如图1所示。

在节点设计的过程中,功耗是一个主要考虑的问题,因为大量的节点都是放置在野外的,只能靠电池供电,功耗太大的话,需要频繁的更换电池,维护成本会提高[5]。所以在本系统中采用的器件都是相对低功耗的。传感器模块采用DS18B20数字式温度传感器来实现环境温度的检测;处理器模块采用AT89C2051;无线通信模块采用2.4 GHz无线收发芯片nRF24L01。

图1 传感器网络节点的体系结构

2 硬件设计

2.1 数据采集模块[6]

DS18B20为美国Dallas半导体公司生产的单线总线型温度传感器,测温范围为-55~125 ℃,最高分辨率可达0.062 5 ℃,可以满足一般的测量需要。信息经过单线接口送入DS18B20或从DS18B20送出。读、写和完成温度变换所需的电源由数据线本身提供,不需要额外供电,这样功耗低且可以简化电源电路。DS18B20的接线电路如图2所示,控制命令和温度信息通过单片机的P1.7口来控制。

图2 DS18B20的外围接线

2.2 数据传输模块

该模块选用NORDIC公司推出的2.4 GHz无线收发芯片nRF24L01,它具有增频率发生器、增强型的ShockBursTM模式控制器、功率放大器、晶体振荡器、调制器和解调器。它功耗低,发射时的工作电流只有9 mA,接收时的工作电流只有12.3 mA,空闲模式使节能更方便。nRF24L01的部分接线电路如图3所示。

图3 nRF24L01的外围部分接线

2.3 处理器模块[7]

对于网络节点的处理器来说,要实现将自己所检测到的温度信息发射出去;作为中继节点,先接收然后再转发其他节点的温度数据两个功能。而在其他时间,进入睡眠状态,节约能量。AT89C2051单片机具备用软件设置的睡眠省电功能,所以能够实现以上功能。为了指示数据的接收和发送情况,又额外接入2只发光二极管。AT89C2051的接线如图4所示。

3 软件设计

在软件设计的时候,主要考虑的问题仍然是节能,所以需要采用一些可以降低功耗的设计方法,比如:精简冗余指令、优化系统的时钟和优化工作时序等。

3.1 主程序设计

主程序开始后首先进行初始化,包括给相应的字符名称赋值,设置串口通信参数等,然后进行通信链路的确定,这一步需要根据每个节点所在的位置和相邻节点的位置来确定,所以需要先发送本身的序列号,再接收其他节点的信息,通过确认其他节点的序列号来得知相邻的,可互相通信的节点,再将其他节点的序列号加在本身序列号之后进行发送,这样,监控中心可根据接收的序列号的顺序得到该条通信线路上所包含的所有节点。在序列号发完以后进入睡眠模式,直到被温度测试指令唤醒以后,给DS18B20发初始化脉冲,发送skipROM命令,进行温度的检测,将测得的数据发送,复位中断返回,再次进入睡眠模式[8],流程图如图5所示。

图4 AT89C2051的外围部分接线

图5 主程序流程图

3.2 温度采集程序设计[9]

由于DS18B20由一根单线实现数据的读和写,所以使用的关键是总线时序设置。先初始化,接着主机释放总线进入接收状态。流程图如图6所示。

3.3 无线传输程序设计[10]

nRF24L01的设置包括:频道设置、本地地址设置和发射速率设置等。本设计中,使用Enhanced ShockBurstTM 收发模式。设置完成后,可以由单片机进行查询模式的数据发送,流程图如图7,图8所示。

图6 DS18B20温度检测部分流程图

图7 nRF24L01发送流程图

图8 nRF24L01接收流程图

4 性能测试

4.1 节点功耗测试

检测状态时功率=DS18B20的典型功率+AT89C2051在工作状态时的功率+nRF24L01工作在RX和TX模式下的功率=3 V×1 mA+3 V×2.5 mA+3 V×(11.3+12.3) mA=3 V×27.1 mA=81.3 mW

数据转发时功率=AT89C2051在工作状态时的功率+nRF24L01工作在RX和TX模式下的功率=3 V×2.5 mA+3 V×(11.3+12.3) mA=80.3 mW

休眠时功率=AT89C2051在休眠时的功率+ nRF24L01工作在休眠模式下的功率 =3 V×2.5 μA+3 V×900 nA=3 V×3.4 μA=10.2 μW

4.2 通信质量测试

在室外无障碍的环境下进行测试,分别选取5个测试距离,接收到的正确率见表1。

表1 通信距离和正确率的关系

[通信距离 /m\&正确率 /%\&5\&100\&10\&100\&20\&99\&50\&10\&80\&0\&]

5 结 语

该无线传感器网络节点电路简单,功耗低,性能稳定,可靠性高,可以应用于检测环境、粮库及展厅等封闭空间或其他需要多点温度检测的场合。

参考文献

[1] 孙利民,李建中,陈渝,等.无线传感网络[M].北京:清华大学出版社,2005.

[2] AKYILDIZ I F, SU W, CAYIRCI E. Wireless sensor networks: a survey [J]. Computer Ne tworks, 2002, 38(3): 393?422.

[3] 张晓彤.无线传感器网络与人工生命[M].北京:国防工业出版社,2008.

[4] 曾勇,杨涛,冯月晖.基于nRF24L01的超低功耗无线传感器网络节点设计[J].电子技术应用,2008(7):45?48.

[5] 焦凤昌,龚仁喜,臧慧,等. 一种新型的无线低功耗环境指数传感器[J].传感器与微系统,2013(8):81?84.

[6] 求是科技.单片机典型模块设计实例导航[M].北京:人民邮电出版社,2004.

[7] 胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,2004.

[8] 佘东,胡中玉.基于单片机的无线测温系统设计[J].微型机与应用,2012,31(13):78?80.

[9] 蔡美琴,张为民.MCS?51系列单片机系统及其应用[M].2版.北京:高等教育出版社,2004.

[10] 张培仁.基于C语言编程MCS?51单片机原理与应用[M].北京:清华大学出版社,2003.

3 软件设计

在软件设计的时候,主要考虑的问题仍然是节能,所以需要采用一些可以降低功耗的设计方法,比如:精简冗余指令、优化系统的时钟和优化工作时序等。

3.1 主程序设计

主程序开始后首先进行初始化,包括给相应的字符名称赋值,设置串口通信参数等,然后进行通信链路的确定,这一步需要根据每个节点所在的位置和相邻节点的位置来确定,所以需要先发送本身的序列号,再接收其他节点的信息,通过确认其他节点的序列号来得知相邻的,可互相通信的节点,再将其他节点的序列号加在本身序列号之后进行发送,这样,监控中心可根据接收的序列号的顺序得到该条通信线路上所包含的所有节点。在序列号发完以后进入睡眠模式,直到被温度测试指令唤醒以后,给DS18B20发初始化脉冲,发送skipROM命令,进行温度的检测,将测得的数据发送,复位中断返回,再次进入睡眠模式[8],流程图如图5所示。

图4 AT89C2051的外围部分接线

图5 主程序流程图

3.2 温度采集程序设计[9]

由于DS18B20由一根单线实现数据的读和写,所以使用的关键是总线时序设置。先初始化,接着主机释放总线进入接收状态。流程图如图6所示。

3.3 无线传输程序设计[10]

nRF24L01的设置包括:频道设置、本地地址设置和发射速率设置等。本设计中,使用Enhanced ShockBurstTM 收发模式。设置完成后,可以由单片机进行查询模式的数据发送,流程图如图7,图8所示。

图6 DS18B20温度检测部分流程图

图7 nRF24L01发送流程图

图8 nRF24L01接收流程图

4 性能测试

4.1 节点功耗测试

检测状态时功率=DS18B20的典型功率+AT89C2051在工作状态时的功率+nRF24L01工作在RX和TX模式下的功率=3 V×1 mA+3 V×2.5 mA+3 V×(11.3+12.3) mA=3 V×27.1 mA=81.3 mW

数据转发时功率=AT89C2051在工作状态时的功率+nRF24L01工作在RX和TX模式下的功率=3 V×2.5 mA+3 V×(11.3+12.3) mA=80.3 mW

休眠时功率=AT89C2051在休眠时的功率+ nRF24L01工作在休眠模式下的功率 =3 V×2.5 μA+3 V×900 nA=3 V×3.4 μA=10.2 μW

4.2 通信质量测试

在室外无障碍的环境下进行测试,分别选取5个测试距离,接收到的正确率见表1。

表1 通信距离和正确率的关系

[通信距离 /m\&正确率 /%\&5\&100\&10\&100\&20\&99\&50\&10\&80\&0\&]

5 结 语

该无线传感器网络节点电路简单,功耗低,性能稳定,可靠性高,可以应用于检测环境、粮库及展厅等封闭空间或其他需要多点温度检测的场合。

参考文献

[1] 孙利民,李建中,陈渝,等.无线传感网络[M].北京:清华大学出版社,2005.

[2] AKYILDIZ I F, SU W, CAYIRCI E. Wireless sensor networks: a survey [J]. Computer Ne tworks, 2002, 38(3): 393?422.

[3] 张晓彤.无线传感器网络与人工生命[M].北京:国防工业出版社,2008.

[4] 曾勇,杨涛,冯月晖.基于nRF24L01的超低功耗无线传感器网络节点设计[J].电子技术应用,2008(7):45?48.

[5] 焦凤昌,龚仁喜,臧慧,等. 一种新型的无线低功耗环境指数传感器[J].传感器与微系统,2013(8):81?84.

[6] 求是科技.单片机典型模块设计实例导航[M].北京:人民邮电出版社,2004.

[7] 胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,2004.

[8] 佘东,胡中玉.基于单片机的无线测温系统设计[J].微型机与应用,2012,31(13):78?80.

[9] 蔡美琴,张为民.MCS?51系列单片机系统及其应用[M].2版.北京:高等教育出版社,2004.

[10] 张培仁.基于C语言编程MCS?51单片机原理与应用[M].北京:清华大学出版社,2003.

3 软件设计

在软件设计的时候,主要考虑的问题仍然是节能,所以需要采用一些可以降低功耗的设计方法,比如:精简冗余指令、优化系统的时钟和优化工作时序等。

3.1 主程序设计

主程序开始后首先进行初始化,包括给相应的字符名称赋值,设置串口通信参数等,然后进行通信链路的确定,这一步需要根据每个节点所在的位置和相邻节点的位置来确定,所以需要先发送本身的序列号,再接收其他节点的信息,通过确认其他节点的序列号来得知相邻的,可互相通信的节点,再将其他节点的序列号加在本身序列号之后进行发送,这样,监控中心可根据接收的序列号的顺序得到该条通信线路上所包含的所有节点。在序列号发完以后进入睡眠模式,直到被温度测试指令唤醒以后,给DS18B20发初始化脉冲,发送skipROM命令,进行温度的检测,将测得的数据发送,复位中断返回,再次进入睡眠模式[8],流程图如图5所示。

图4 AT89C2051的外围部分接线

图5 主程序流程图

3.2 温度采集程序设计[9]

由于DS18B20由一根单线实现数据的读和写,所以使用的关键是总线时序设置。先初始化,接着主机释放总线进入接收状态。流程图如图6所示。

3.3 无线传输程序设计[10]

nRF24L01的设置包括:频道设置、本地地址设置和发射速率设置等。本设计中,使用Enhanced ShockBurstTM 收发模式。设置完成后,可以由单片机进行查询模式的数据发送,流程图如图7,图8所示。

图6 DS18B20温度检测部分流程图

图7 nRF24L01发送流程图

图8 nRF24L01接收流程图

4 性能测试

4.1 节点功耗测试

检测状态时功率=DS18B20的典型功率+AT89C2051在工作状态时的功率+nRF24L01工作在RX和TX模式下的功率=3 V×1 mA+3 V×2.5 mA+3 V×(11.3+12.3) mA=3 V×27.1 mA=81.3 mW

数据转发时功率=AT89C2051在工作状态时的功率+nRF24L01工作在RX和TX模式下的功率=3 V×2.5 mA+3 V×(11.3+12.3) mA=80.3 mW

休眠时功率=AT89C2051在休眠时的功率+ nRF24L01工作在休眠模式下的功率 =3 V×2.5 μA+3 V×900 nA=3 V×3.4 μA=10.2 μW

4.2 通信质量测试

在室外无障碍的环境下进行测试,分别选取5个测试距离,接收到的正确率见表1。

表1 通信距离和正确率的关系

[通信距离 /m\&正确率 /%\&5\&100\&10\&100\&20\&99\&50\&10\&80\&0\&]

5 结 语

该无线传感器网络节点电路简单,功耗低,性能稳定,可靠性高,可以应用于检测环境、粮库及展厅等封闭空间或其他需要多点温度检测的场合。

参考文献

[1] 孙利民,李建中,陈渝,等.无线传感网络[M].北京:清华大学出版社,2005.

[2] AKYILDIZ I F, SU W, CAYIRCI E. Wireless sensor networks: a survey [J]. Computer Ne tworks, 2002, 38(3): 393?422.

[3] 张晓彤.无线传感器网络与人工生命[M].北京:国防工业出版社,2008.

[4] 曾勇,杨涛,冯月晖.基于nRF24L01的超低功耗无线传感器网络节点设计[J].电子技术应用,2008(7):45?48.

[5] 焦凤昌,龚仁喜,臧慧,等. 一种新型的无线低功耗环境指数传感器[J].传感器与微系统,2013(8):81?84.

[6] 求是科技.单片机典型模块设计实例导航[M].北京:人民邮电出版社,2004.

[7] 胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,2004.

[8] 佘东,胡中玉.基于单片机的无线测温系统设计[J].微型机与应用,2012,31(13):78?80.

[9] 蔡美琴,张为民.MCS?51系列单片机系统及其应用[M].2版.北京:高等教育出版社,2004.

[10] 张培仁.基于C语言编程MCS?51单片机原理与应用[M].北京:清华大学出版社,2003.

猜你喜欢

序列号流程图单片机
一种离线电子钱包交易的双向容错控制方法
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
recALL
专利申请审批流程图
专利申请审批流程图
Microchip推出两个全新PIC单片机系列
宁海县村级权力清单36条
PP助手教你辨别翻新iPhone5小白不再中招