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读命令字,开始接收。