摘要:设计并实现了一种低功耗、通用性好的无线传感器节点,重点介绍了开发板的软、硬件设计,充分考虑了节能和扩展性的需求。系统支持多种目标文件格式。 微电子和无线通信技术的飞速发展,使得低功耗、低成本、体积微小的传感器网络的研制成为可能。这种网络的节点被放置在目标区域中,自组网络,采集数据,通过无线通信设备将数据经多跳传送到基站,由Intemet或其他有线网络传到用户终端。传感器网络的应用非常广泛,可用于环境检测、军事探测、医疗保健等各个部门。它的应用将对人们的生活方式产生深远的影响,该技术被美国《商业周刊》评为未来四大高技术产业之一。
微电子和无线通信技术的飞速发展,使得低功耗、低成本、体积微小的 传感器网络的研制成为可能。这种网络的节点被放置在目标区域中,自组网络,采集数据,通过无线通信设备将数据经多跳传送到基站,由Intemet或其他有线网络传到用户终端。 传感器网络的应用非常广泛,可用于环境检测、军事探测、医疗保健等各个部门。它的应用将对人们的生活方式产生深远的影响,该技术被美国《商业周刊》评为未来四大高技术产业之一。
本文介绍了一种无线 传感器开发系统的设计方法.包括节点和开发板。节点具有功耗低、通用性好的特点,带有多种传感器,可以感知温度、湿度和光等,并带有扩展口。开发板用于配置节点和下载程序。开发板具有友好的上位机用户界面,并支持多种编译系统生成的不同目标文件格式。
1 节点的硬件设计
传感器节点的硬件结构主要由传感模块、处理模块、通信模块和电源模块组成。传感器节点一般采用电池供电,由于节点放置在危险或不易到达的区域,更换电池几乎是不可能,因此节能成为设计的关键技术,此外,还要控制成本和体积。设计的节点硬件框图如图1所示。
1.1 微处理器模块
微处理器选用ATMEL公司的ATMELGAl28L。该芯片功耗低,且有多种睡眠模式;多个中断源,53个10口,可以连接多个传感器扩展口;内带8 路 10位A/D转换器,可以将传感器送来的模拟信号转换为数据信号;双向I2C串行总线接口;主/从SPI串行接口;可编程串行通信接口;JTAG和SPI 在线编程方式等。该芯片的丰富资源可以满足节点数据处理和传输的要求,尤其是六种不同的睡眠模式,特别适合有能量限制的应用。
存储器存放待处理或接收的数据.选用Mierochip公司的25AAl024。该芯片的存储量为1024KB,功耗低,读写方式为SPI,占用10口少。节点索引号产生器选用MAXIM公司的DS2411,用来产生48位随机数,作为节点的惟一标识号。
1.2 射频模块
射频芯片的选取直接影响节点的功耗,因为节点消耗能量的近2/3都用于无线收发。选用的射频芯片为NORDIC公司的nRF24L01。该芯片功耗低。在相同工作模式下,比Chipcon公司的CC2420芯片节省近l/3的能量;工作于2.4G~2.5GHz ISM频段;支持高速跳频;体积很小;外围器件少,配置简单,且使用两层PCB板,节省成本。nRF24L0l配置框图如图2所示。
nRF24L01与微处理器相连只需6根信号线,其中4根是SPI信号线,与ATMELGAl28L的SPI口相连;其余一根为片选,另一根用于中断请求。
射频电路要取得好的RF性能,PCB设计必须合理。nRF24L01的供电电源必须经过良好的滤波,并且与数字电路分开;避免长距离走线;在射频信号输出部分,根据发送功率设置滤波网络,以实现阻抗匹配,使到达天线的信号最强。要防止高频信号泄漏,否则会对发射信号造成很大干扰。由于天线要散播电磁能量,需选用Q我较小的器件。制作PCB板时,在器件周围覆铜,以提高抗干扰性能。
1.3 传感器模块和扩展口
板上设有一光敏电阻感应光信号,由于是模拟信号,需接入ATMELGAl28L的AD引脚进行AD转换后才可处理。板上还装有一数字型温湿度传感芯片SHT15,可感知温度和湿度,精确度较高,且功耗低,采用I2C读写,占有IO口很少。
为了让节点具有更广泛的应用,节点板上接有扩展口,其中有I2C口、AD口和中断口等,用来连接其他传感器。
1.4 电源横块和电能消耗
节点有两种供电方式,在实验室调试和测试时通过开发板供电,在外界环境中工作时,用2个AA电池供电。为了防止2个电源之间的干扰,在板上加有一个手动开关。
因为电能的消耗决定了传感器节点的使用寿命,在节点的软、硬件设计时,必须充分考虑能源的有效性。节点在各种运行模式下,必须关闭不必要的模块以节省能量。当通信采用节点定时关闭和打开的协议且关闭与打开的时间比为1:99时,使用2节1000毫安时(mAhr)的AA电池供电,节点耗能如表1 所示。
在上述工作模式下,如果用2节1000mA-hr的AA电池供电,则节点寿命为12.55个月。此值是在最大发送功率情况下计算的。当发送功率和收发速率变小时,耗能更少,传感器的寿命会更长。
2 开发板的硬件设计
开发板的硬件系统框图如图3所示。
节点CPU的JTAG口接在开发板上。如果使用JTAG口下载和调试程序,则需要JTAG下载器。为此,设计了另一种下载方式,即串行下载。CPU通过 USB口接收上位机的代码,然后通过SPI口下载到节点CPU的FLASH。CPU为中心控制模块,接收上位机的各种命令并进行相应处理。CPU芯片选用 ATMEL公司的ATMELGAl6L,该芯片带有可编程UART口和工作于主机,从机模式的SPI口。
USB转换芯片实现上位机端的USB数据与下位机端的UART数据之间的转换。选用芯片为FT232BM。由于编程板CPU、 ATMELGAl28都要通过USB口与上位机通信,为了防止不同输入输出信号间的干扰,设计时用了两个带有使能控制的BUFFER来控制不同CPU串口通信的通断。
为了更方便地配置传感器节点,在板上集成了一块E2PROM。目标代码可以先存储在EZPROM中。当需要向节点下载时,通过按钮激发外部中断即可将E2PROM的代码通过SPI口写入节点CPU。操作方便简单,摆脱了上位机的限制。
节点连接器是17针的节点与开发板和扩展传感器之间的接口,除了编程口和串口,还有连接传感器的扩展口,包括I2C口、中断口和AD口等。
节点CPU SPI编程共需4根信号线,其中3根SPI通信线与开发板CPU的SPI口相连,节点CPU的RESET信号 由开发板CPU的IO口控制即可。
3 开发板软件设计
3.1 上位机程序设计
用C++ Builder 6.0编写上位机程序,制作了用户操作界面,并将不同编译系统生成的多种目标文件格式转换成上、下位机约定的文件格式,传送给下位机。
为提高向ATMELGAl28L的FLASH和E2PROM写代码的效率和便于从E2PROM向FLASH写代码,上位机传送给下位机的代码采用图4所示的格式。
图4中,地址指该段代码要写入FLASH的初始地址,包括2字节的页地址和l字节的页内地址;序列号表示该段代码是全部代码中的第几段;长度指该段代码的字节数,不包括地址和序列号。每一地址段代码都采用表2的格式。
上位机程序支持的目标文件格式有:TinyOS、AVRGCC和IAR生成的Intel hex文件。Intel hex是Intel公司提出的一种文件标准,是最常用的目标文件格式之一。上位机程序还支持TI(德州仪器)公司提出的msp430-txt格式,该格式及说明如表2所示。