基于无线通信的温度监测系统的设计

时间:2011-03-16

  摘要:通过对单片机技术和无线传感器网络技术的研究,介绍了一种具有分层结构的无线通信的温度监测系统, 并设计了基于这种分层结构的通信协议,给出了系统的硬件结构和软件设计。应用结果表明,系统可以广泛应用在需要温度监测的领域。

  1 引言

  温度与人们的生产生活密切相关,需要对温度监测的场合非常多。传统的有线测温方式存在着布线复杂,线路容易老化等问题。无线测温技术与有线测温技术相比,有成本低、携带方便、搭建网络简单快捷等特点,特别是在有线网络不通畅或由于现场环境因素的限制不便架设线路的情况下,使用无线通信技术进行温度监测显得更加实用、快捷。

  无线传感器网络技术在21世纪有了很大的发展,典型的传感器网络是指由大量同构的、微小的、资源受限的、基本不动的传感器节点随机分布在被测量区域形成的大规模的、自组织的、多跳的、未分割的网络。

  而在一些场合我们并不需要构建大规模的、自组织的网络,结合无线传感器网络的特点,本文提出了一种具有分层结构的无线通信的温度监测系统,并给出了这种分层结构的通信协议,该系统吸取了无线传感器网络的特点同时又不需要考虑传感器网络的自组织建网,降低了功耗。

  2 系统的组成结构

  参照无线传感器网络中的分簇结构,以降低功耗为目的,本文提出了具有两层结构的基于无线通信的温度监测系统,系统由大量的无线传感器节点、二级节点和一个主节点组成。系统结构如图1所示,主节点M相当于无线传感器网络中的簇首,同时又是主控节点。1、2、……、N相当于无线传感器网络中的二级簇首,文中称为二级节点,A1、A2、……、Am为二级节点1的子节点, B1、B2、……、Bm为二级节点2的子节点, N1、N2等为二级节点N的子节点等等。分布在传感器网络中的簇首节点主要用于接收传感器节点的数据上报,并将其进行融合处理。本系统的主控节点M没有能量限制,主要负责收集和协调各个子节点的数据,并将其处理后上传给监控主机。二级节点主要负责收集各个传感器子节点的数据,并且负责接收和下发主控节点的命令,在整个结构起中转的作用。传感器子节点带有射频收发器主要用于温度的采集和传输。为了节约能耗,底层传感器节点工作在睡眠- 侦听模式,只有收到二级节点的数据请求命令才传送数据。

系统结构

图1 系统结构

  主控节点通过串口与监控计算机通信,各二级节点要放到与主控节点距离较近的位置,传感器子节点随机放置。本系统射频传输成本低,功耗小,采用两层结构的通信方案,能够满足较远距离的温度监测。

  3 系统硬件设计

  3.1 传感器节点的硬件设计

  一个完整的传感器节点需要有小尺寸、低功耗,短距离通信的特点,因此一个传感器节点通常由传感器模块、处理器模块、无线通信模块组成。本系统的传感器节点硬件结构如图2所示。

传感器节点硬件结构图

图2 传感器节点硬件结构图

  温度传感器采用DALLAS公司生产的DS18B20,DS18B20具有独特的单总线接口,只需一个接口引脚即可通信,并且多个DS18B20可以存在于同一条单线总线上,测量范围为- 55~125 ℃,以9位数字值方式读出温度,需要的外围器件很少,体积小,满足传感器节点的要求。

  单片机ATmega16L是Atmel公司的基于AVR的增强型R ISC结构的极低功耗的8位CMOS微控制器

  Atmega16L数据吞吐率高达1M IPS/MHz,从而缓解了系统在功耗和处理速度之间的矛盾,有六种睡眠模式,并且在1MHz, 3V, 25 ℃时的功耗在正常模式是111mA,在空闲模式是0135mA,适合传感器节点的低功耗要求。

  无线通信芯片采用Nordic公司的NRF905无线收发芯片。NRF905是一款工作在433 /868 /915频段上的可编程的单片射频收发器,体积小,外围电路简单,集成度高。NRF905可以自动完成处理字头和CRC (循环冗余码校验)的工作,可由片内硬件自动完成曼彻斯特编码、解码,使用SP I接口与微控制器通信。其功耗非常低,以- 10 dBm的输出功率发射时电流只有11 mA,在接收模式时电流为1215 mA。主要的特点是可以通过单片机编程给每片NRF905分配地址,地址宽度多可达4字节。

  传感器节点主要负责温度的采集和无线发送,传感器DS18B20将采集的数据发送给Atmega16L, At2mega16将数据通过SP I口发送给NRF905,再由NRF905将数据打包后发送给二级节点。

  3.2 主控节点和二级节点硬件设计

  主控节点和二级节点的硬件结构如图3所示,处理器都是采用了低功耗的单片机ATmenga16L,发射芯片采用Nordic公司的NRF905无线收发芯片,有区别的是主控节点通过RS232与监控计算机通信,主控节点收集的来自各个传感器节点的数据经简单处理后传送给监控计算机,监控计算机负责数据的保存和温度值的显示。

二级节点和主控节点硬件结构

图3 二级节点和主控节点硬件结构

  4 通信协议的设计

  系统采用如图1所示的分层结构,主节点采用数据请求工作方式,按顺序对二级节点进行数据请求,二级节点收到数据请求命令后,将采集的数据交给主节点统一处理,主节点把带有传感器地址的温度数据传送给上位机。NRF905每次只能收发32字节数据,因此底层传感器节点并不是无限多,根据DS18B20的通信协议,DS18B20采集的温度数据是用两个字节表示,而每个传感器有的1字节地址,这样每个传感器传送给二级节点的数据都是三个字节,即两个字节的温度数据和一个字节的地址数据。二级节点多传送32字节数据,为了保证数据传送的稳定性, 该系统每个二级节点对应10个底层传感器节点,共构建了20个二级节点,系统总的底层传感器节点的数目是200个。本系统的所有节点的通讯都是同一信道,当出现多个节点同时传送数据的情况时,会形成相互间的干扰导致数据无法正确的接收,因此需要一种机制来合理的分配信道资源,减少数据冲突。基于NRF905通讯的特点,即两个NRF905模块必需具有相同的频段和地址才能通讯成功,设计了通信协议,通信协议的算法如下:

  (1)主节点M采用轮询数据请求工作方式,按顺序对二级节点进行数据请求,主节点对每一个二级节点发送完请求数据命令后都会进入信道侦听状态,一定的时间间隙T内主节点一直处于侦听信道状态。

  (2)二级节点侦听信道,接收来自主节点的数据请求命令, 收到数据请求命令后结束侦听,发送应答信息。

  (3)二级节点采用类似主节点M的工作方式,按顺序对传感器节点进行数据请求,二级节点对每一个传感器节点发送完请求数据命令后都会进入信道侦听状态,一定的时间间隙Tm内二级节点一直处于侦听信道状态。

  (4)传感器节点侦听信道,接收来自二级节点的数据请求命令,收到命令后,结束侦听,发送温度数据信息。

  (5)二级节点与传感器节点进行数据传输,接收数据包。

  (6)主节点与二级节点进行数据传输,接收来自二级节点的数据包。

  (7)主节点与监控主机通信,传送各个传感器节点采集的温度数据和传感器地址。

  数据在系统中无线传输必须有统一的格式,数据包格式如下:


  其中,前导码由器件自动添加,占用1个字节;目的地址是表示数据包要到达的目的地址,占用1个字节;数据属性用来说明该数据包是数据包还是命令包,占用一个字节;有效数据包括节点的采集信息和地址信息可设定为32个字节; CRC校验系统自动完成,本系统采用16位CRC校验占用2个字节。

  主节点发出的通信数据包格式如下:


  其中,目的地址是二级节点的地址,命令字是指请求数据命令,用0AH代表数据请求命令,占用一个字节,有效数据长度为空。

  二级节点的应答数据包格式如下:


  其中目的地址是主节点的地址,应答字用0BH表示,占用1字节,有效数据长度为空。

  二级节点发出的带有采集点数据的包格式如下:


  其中目的地址是主节点的地址,数据标志用0CH表示,占用一个字节,有效数据长度包括传感器节点的温度数据和传感器地址数据,占用30个字节。

  系统中所有的节点都工作在同一信道,同一时刻只能有两个节点通讯,并且只有在主节点对某一节点有数据要求时通信才会连接,其他时间双方都处于未连接状态,通讯协议的实现有效避免了数据的冲突,降图4 主节点程序流程图低了系统功耗。

主节点程序流程图

图4 主节点程序流程图

  5 软件设计

  遵循通信协议,本系统的软件程序主要包括主节点的程序设计,二级节点的程序设计和底层传感器的程序设计。主节点程序负责整个系统的协调工作,系统的数据请求命令都是由主控节点发出,数据的汇总也都是有主控节点完成。二级节点程序在整个系统起中转作用,底层传感器程序只负责数据的采集和发射。遵循通信协议,在进行各节点的程序设计时系统要有一个统一的规划,系统为除了主节点外的每个NRF905 模块都分配一个不同的地址,整个系统共有220个NRF905模块,对应了220个地址,地址的配置是实现整个通讯协议的关键。NRF905通讯的特点是两个NRF905模块必需具有相同的频段和地址才能通讯成功,这200多个具有不同地址的模块要通讯成功必须严格遵守软件流程,并且除了主节点以外其他各个节点在开机的时候NRF905都被配置一个的地址,且置为接收模式。

  主节点程序设计是整个通讯的关键,二级节点的软件设计思想和主节点程序设计相同。主节点程序流程图如图4所示,主节点控制器初始化NRF905模块,配置NRF905的地址为二级节点1的地址,主控制器置NRF905为发射模式,发送数据请求命令,因为主节点配置的是二级节点1的地址,主节点发送数据请求命令,只有二级节点1能够收到,其它二级节点接收不到,实现了点对点的通信。主节点发送完毕数据请求命令后,进入等待状态1,接收来自二级节点的应答消息,收到应答消息后结束等待状态1,进入等待状态2,接收来自二级节点的数据包,收到数据包后结束等待状态2。节点进入等待状态后若是没有收到来自二级节点的应答信息或数据包都会延时一定时间自动结束等待。主节点控制器重置NRF905的地址为二级节点2的地址,重复上述过程,每采集完一个二级节点的数据包后,主节点控制器都要重置NRF905的地址为下个二级节点地址,如此循环直到采集完整个二级节点的数据,主控制器通过串口传送所有数据给监控主机,传送完毕后主控制器重新配置NRF905的地址进行下一轮数据的采集。按照上述流程,主节点控制器要存放20个二级节点的地址,这是轮询通信的关键。

  6 结束语

  本文给出了一种具有两层簇状结构的无线通信的温度监测系统,通信协议简单可靠,系统吸取了传感器网络的特点又不需要考虑类似传感器网络中的建网设计,大大降低了能量消耗。系统的结构简单体积小,可以广泛应用在大棚温室测温、粮库温度监测、电力开关测温等领域。


  

参考文献:

[1]. DS18B20 datasheet https://www.dzsc.com/datasheet/DS18B20_819975.html.
[2]. ATmega16L datasheet https://www.dzsc.com/datasheet/ATmega16L_1127392.html.
[3]. RS232 datasheet https://www.dzsc.com/datasheet/RS232_585128.html.


上一篇:一种新型的正弦信号发生器的设计与实现
下一篇:一种高清媒体信息发布终端的设计

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料