1 引 言
目前,大多采用的是有线多点温度采集系统,通过安装温度节点来实现对室内外温度监控。这种传统的多点采集系统需要用导线与每个温度采集节点连接,其技术成熟,制作成本相对较低。但是,在许多场合需要将传感器节点直接放置在目标地点进行现场的数据采集,这就要求传感器节点具有无线通信的能力。同时,由于无线传感器通常使用电池作为能源,所以,它对能耗要求非常高。
针对这些问题,本文提出一个无线传感器设计方案,来实现主机端与传感器节点之间的通信,并且通过选用低功耗的芯片和对软件的低功耗设计实现了低功耗的目标。本文设计主要是基于433 MHz ISM频段,无需申请就可以使用。该设计方案有许多明显的优点:传输速度快、距离远、数据稳定;采用低功耗模式,延长电池使用时间;能保证任何时候数据不丢失,提高系统的强健度。
2 系统硬件设计
所设计的无线温度传感器主要由以下几部分组成:温度测量、发射部分、接收部分、LCD显示部分以及操控部分。系统结构图如图1所示。
2.1 温度测量电路
在温度测量电路中采用Dallas公司生产的1-Wire总线数字温度传感器DS18B20。温度测量电路如图2所示。
DS18B20是3引脚TO-92小体积封装形式;温度测量范围为-55~125℃,可编程为9-12位A/D转换精度,测温分辨率可达0.062 5℃,被测温度以带符号扩展的16位数字方式串行输出。
DS18B20内部结构主要由4部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH和 TL及配置寄存器。ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。 ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS181E0的目的。
DS18B20中的温度传感器完成对温度的测量,用16位符号扩展的二进制补码形式提供,以0.062 5℃/LSB形式表达。例如+25.062 5℃的数字输出为0191H,-25.062 5℃的数字输出为FF6FH。
高低温报警触发器TH和TL、配置寄存器均由一个字节的E2PROM组成,使用一个存储器功能命令可对TH,TL或配置寄存器写入。其中配置寄存器的格式如下:
R1和R0决定温度转换的精度位数:R1R0=“00”,9位精度,最大转换时间为93.75 ms;R1R0=“01”,10位精度,最大转换时间为187.5 ms;R1R0=“10”,11位精度,最大转换时间为375 ms;R1R0;“11”,12位精度,最大转换时间为750 ms;未编程时默认为12位精度。设计取R1R0=“11”。
2.2 无线收发电路
2.2.1 IA4421与单片机的接口
IA4421支持SPI通信协议,本设计选择了美国ATMEL公司出品的高性能单片机ATmega324p,其内置增强型SPI接口,并且有32 kB的FLASH,能够满足在系统中的LCD上显示中文字符。IA4421与单片机的接口电路示意图如图3所示。
ATmega324p内置的增强型串行外设接口SPI提供访问一个全双工同步串行总线的能力。SPI所使用的4个信号为MOSI,MISO,SCK和 SS。MOSI用于从主器件到从器件的串行数据传输;MISO用于从器件到主器件的串行数据传输;SCK用于同步主器件和从器件之间在MOSI和MISO 线上的串行数据传输。
2.2.2 无线发送时序
IA4421的发送方式为发送寄存器缓冲数据传输方式,由配置设置命令的第7位el来使能,图1可以看出,IA4421共有2个8位的数据寄存器,发送的数据首先被锁存到其中一个数据寄存器中,当电源管理命令的第5位et被置1,则发送器开始以设置的码率从第一个寄存器向外发送数据。
每次发送数据必须以0xAA作为发送数据的前导码,否则外部接收装置无法接收数据。若是采用同步模式,则要用0x2DD4作为同步模式的标志码,然后才能开始传输数据。引脚nIRQ可以用来检测寄存器是否准备好从微处理器接收下一个字节来发送,若是引脚nIRQ变为低电平,则表示寄存器准备好了。
2.2.3 无线接收时序
IA4421的接收方式有两种:一种是一直接收;另一种是FIFO模式。前一种方式并不推荐,会引起较高的误码率。本设计采用后一种模式。在相应的控制字都设置好之后,数据已进入缓冲器中,若引脚nIRQ变成低电平,则表示IA4421准备好接收数据,这时发送FIFO读命令字,开始接收。
2.3 外围天线设计
IA4421的支持天线直接驱动,设计相当简单方便并且通信距离长。一个50 Ω的外接螺旋天线和对应的差分电路就可以实现数据的发送和接收。本系统设计的天线是用1.17 cm的单芯铜导线实现,导线的直径是0.6 mm,用螺丝刀的金属棒饶制7圈成螺旋状。经过实验,实际有效的通信距离能达到200 m左右,满足了系统需要。
3 系统软件设计
3.1 单片机软件设计
单片机软件部分主要包括主程序、中断子程序、测温子程序、LCD的转换显示,蜂鸣器报警子程序,按键子程序以及SPI子程序等。为了降低功耗,使用中断来唤醒单片机进行测温等工作,因此主程序部分比较简单,主要负责系统各部分初始化和中断的调用,在系统初始化完成后就直接进入睡眠模式,当中断到来时单片机退出睡眠模式,调用中断子程序实现测温、转换显示、温度数据的传输等功能。单片机控制程序流程图如图4所示。
3.2 IA4421应用程序设计
本系统是基于无线收发芯片IA4421和单片机ATmega324p的增强型串行外设接口SPI来实现无线数据的传输,在核心协议栈上编写自己的上层应用程序。发送接收数据的程序流程图如图5所示。
3.3 低功耗设计
作为无线传感器,低功耗运行可以最大限度地延长设备的有效使用时间,本系统是采用电池供电,功耗肯定就是一个不得不考虑的问题。为了获得最佳性能,设计时在电源损耗和可用性方面必须根据情况权衡使用,除了选用低功耗器件外,还从以下几个方面设计电源管理程序以尽量减少无线温度传感器的功耗:
(1)由于无线温度传感器负责向控制终端传输数据,因此何时进行数据采集、何时进行数据传输可以由上位机的控制终端决定,非常适合使用休眠模式和呼吸模式,通过减少IA4421在微微网中的活动达到节电的目的。把控制终端作为主设备,将电源管理程序设计在终端的应用控制层中,并由控制终端完成设备的查询、配对、建链等工作,当无线传感器与控制终端配对成功并连接后进入休眠模式,此时主从设备仍然保持着信道,只是不能发送和接收数据。当需要进行数据传输时,退出休眠模式进入呼吸模式,通过呼吸时隙发送数据,呼吸间隔可设为20~40 ms,间隔过大会带来明显延迟,当数据传输结束后再次进入休眠模式,从而尽可能地降低能耗。
(2)应用单片机的睡眠模式达到节能目的。当IA4421退出待机状态,发送指令进行数据采集时,IA4421的中断请求标志位nIRQ产生低电平,通过中断标志位上电平的变化产生外部中断来唤醒单片机进入工作状态。
4 结 语
所设计的数字化无线温度传感器可应用到各种需要无接触的测温场合,实现对现场温度的“先知先觉”。设计中充分利用各芯片的低功耗特性,有效地延长了电池使用寿命。无线数据传输方式使用方便灵活。系统完全可以扩充为一个网络系统,形成温度采集网,以满足现场控制及测控系统的各种需求,这将是作者下步所研究开发的课题。