朱山川
(滁州职业技术学院 机电工程系,安徽 滁州 239000)
无线传感网络是当前工业生产等各种自动化技术应用领域的一个研究热点,它可以对大量感知数据进行分布式处理,提高感知数据中的准确性.另外,网络化传感器能够重点关注网络中其他传感器指出的关键事件.本文对无线网络中的传感器节点设计进行研究,设计一种适合于工业环境下温度测量的低功耗无线传感网络节点,以低功耗单片机MSP430F2012为基础,使用线式数字温度传感器DS18B20对温度进行测量,通过一线总线传给430单片机.单片机通过射频收发芯片nRF24L01与基站通信,接受基站下发的系统设定参数(温度超限定值),在温度超限时上传实际温度值;通过nRF24L01接收基站的温度查询命令,上传实测温度值.
测温节点由温度传感器、单片机和无线射频芯片三个主要部分组成,图1是硬件设计原理的整体示意框图.
图1 硬件设计原理
针对无线传感网络设计中的能耗问题,尤其是对测温节点,对节能且高效有更重要的要求.所以,本文的硬件选型注重节能要求,本文的具体选型如下:
(1)单片机选用低功耗单片机MSP430F2012,该型号单片机采用矢量中断,支持多个中断源,并可以任意嵌套,用中断请求唤醒CPU最短可达1 μm,所以该款单片机具有较低的功耗;(2)温度传感器采用数字型智能传感器DS18B20,是美国DALLAS公司推出的一种可组网数字式传感器[1],具有单总线通信的优点;(3)无线收发芯片选用nRF24L01,其可以工作于世界通用ISM频段,且具有待机模式.
图2 硬件整体连接设计
本文所设计硬件系统如图2所示,在传感器DS18B20的信号线与单片机的连接采用三线制方式,单片机MSP430的P1.0作为DS18B20的DQ数据接口的数据输入,作为信号线使用,输入数据和读取数据时都采用位传送的方式,P1.1口作为24L01 的CE信号,即片选信号;P1.2 作为24L01的SCN信号,即SPI的使能信号;P1.4连SCK,作为时钟信号;P1.5连在MISO(主入从出)引脚上;P1.6连在MOSI(主出从入)引脚上;P1.7接IRQ,作为信号输入口,接收来自24L01的中断信号.
DS18B20内部的温度转换装置将模拟信号转换为数字信号.数据读入单片机后即可进行处理,读出的温度值与基站送来的温度限值比较是否超过限值,若超过温度限值则报警,再将处理结果送至24L01发送给基站.本文设计时没有直接使用单片机的SPI接口,而是采用普通I/O接口模拟SPI接口的方式同无线收发芯片进行通信.
在本文设计中传感器需要对周围的环境温度定时进行采集,然后转换为数字量送给单片机,单片机对温度值进行判断处理后,如果超过限值则立即上传给基站,若正常将处理结果送至24L01定时发送给基站.而如果基站向节点单片机下达一些任务执行命令,就需要单片机将收发设备接收到的数据传达给温度采集模块.软件设计流程图如图3所示:
图3 软件工作流程
在主函数中,主要采用调用各个部分的子函数来实现整体功能.利用MSP430内部的定时装置,定时时间到定时器会提出中断,CPU便会去响应相应的中断子程序.
温度数据采集流程如图4所示.本文设计使用DS18B20的三个功能命令:温度转换(44H),写暂存器(4EH),读暂存器(BEH).DS18B20加电后处于低功耗待命状态,MCU每次必须发送转换温度命令(44H)来初始化DS18B20采集温度数据,并进行数据 A/D转换,最终结果保存在中间暂存器的温度寄存器,然后返回待命状态.在转换过程中,控制器可以查询当前状态,转换进行中返回0,转换结束返回1[2].工作时DS18B20从最低byte的最低bit开始发送温度数据,如果只需要接收部分寄存器中的数据,则可通过发送复位脉冲来使DS18B20停止发送后续数据.
图4 温度数据采集流程
为配合硬件设计中利用MSP430F2012 的普通I/O 口模拟SPI 串口通信,软件设计对nRF24L01 的数据包处理方式采用增强型ShockBurstTM模式.这种模式可以在不增加MCU工作量的提前下,同时控制应答及重发功能,因而能够更加方便有效地执行双向链接协议.数据接收和发送流程如图5所示.
图5 数据接收和发送流程
工作过程中对于延时部分设计时采用调用延时子程序的方法.MSP430F2012的指令周期是62.5ns,通过设置循环次数来设置所需的延时.对于定时发送数据的需求,本设计采用单片机内部定时器A,定时器A的寄存器需要配置,通过设置MC1、MC2改变计数模式,TAIE为1允许定时器溢出中断,定时器溢出标志位TAIFG程序中若置为1,说明定时到,即可向CPU提中断,CPU响应相应的中断服务子程序.单片机中的寄存器都可以直接访问,继而可以对其各个位进行读写.时钟源采用单片机内部的时钟源,即将SSEL1、SSEL0设置为10,使用系统时钟(MCLK).根据时钟选择的的低速或高速频率和需要的定时时间算出计数初值.时钟信号可以根据需要进行1、2、4、8分频后使用.
本文基于nRF24L01的性能特点,采用数字传感器DS18B20进行温度的采集工作,并利用低功耗单片机MSP430F2012作为软件设计平台,对无线传感网络的测温节点进行硬件和软件的相关设计.实现节点的测温以及温度超限报警任务.并可以利用nRF24L01进行数据的无线传输,实现节点同基站间的无线通信.
[1]刘俊伏,宗云.DS18B20与单片机的接口及编程技术[J].河北工业科技,2007(4):227-229.
[2]张鹏,熊磊,姚东苹.分辨率可编程的一线总线数字温度计DS18B20及其应用[J].电子产品世界,2002(2):20-23.
[3]张阳阳,顾叶丹,潘日敏.基于C8051F单片机的汽车超载实时控制系统[J].微计算机信息,2011(11):62-63.