微电子和无线通信技术的飞速发展,使得低功耗、低成本、体积微小的传感器网络的研制成为可能。
本文介绍了一种无线传感器开发系统的设计方法.包括节点和开发板。节点具有功耗低、通用性好的特点,带有多种传感器,可以感知温度、湿度和光等,并带有扩展口。开发板用于配置节点和下载程序。开发板具有友好的上位机用户界面,并支持多种编译系统生成的不同目标文件格式。
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板时,在器件周围覆铜,以提高抗干扰性能。 [!--empirenews.page--]
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口。[!--empirenews.page--] 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的格式。 [!--empirenews.page--]
上位机程序支持的目标文件格式有:TinyOS、AVRGCC和IAR生成的Intel hex文件。Intel hex是Intel公司提出的一种文件标准,是最常用的目标文件格式之一。上位机程序还支持TI(德州仪器) 公司提出的msp430-txt格式,该格式及说明如表2所示。
上位机程序将不同编译系统生成的不同格式的目标文件转换成图4所示的格式,再发给下位机。上位机操作界面提供了各种命令按钮,用户点击命令按钮后,上位机即按制定的该命令模式处理协议发送命令和数据。在传送文件时,为确保数据传送不出差错,采用了停止-等待传输协议。上位机发送约定长度的数据后停止发送,等接收到下位机发来的确认标志后再开始发送。上位机总程序框图如图5所示。
3.2 下位机程序设计
下位机接收上位机的命令,完成读写FLASH、E2PROM、镇定位、熔丝位和USB口使用权的切换等功能。由于实现的功能较多,采用了模块化、自下向上的结构化设计方法。首先按照ATMELCAl28L数据手册提供的SPI编程算法,用C语言实现了读写FLASH、锁定位和熔丝位等模块。
程序设计的一个难点是将接收的上位机发送的文件写入FLASH或E2PROM,因为涉及到接收数据和写FLASH或EZPROM的交互。解决方法是采用停止一等待传输协议进行数据传送。下位机开辟约定数量的缓冲区,利用中断接收上位机数据至缓冲区满,处理完缓冲区数据后发送确认标志,上位机收到确认后再开始下一次发送。
[!--empirenews.page--]
按制定的协议写ATMELGA128L的FIASH的流程图如图6所示。
写EZPROM与写FLASH类似,只是要将接收的地址、序列号、长度也写入E2PROM。代码在E2PROM中存放时仍保持表2所示的格式,即段初始地址、序列号、该段长度、数据的格式,以便将E2PROM中存储的代码写入FLASH。
编写下位机程序时,依据各模块分别用子函数实现、模块间接口清晰、主程序简单的原则,实现了读写FLASH和E2PROM、读写锁定位和锁定位、从 E2PROM写FLASH等几大模块,主函数接收到命令调用相应模块即可。当按下中断按钮时,中断程序先检测FLASH连接,如果检测成功,则调用从 E2PROM写FLASH模块;否则红灯闪烁指示操作失败。
使用本文设计的开发板对节点下载程序,程序运行正常,节点间通信状态良好,且功耗低,实现了预计的功能并满足性能要求。
从设计过程和使用可以看出,本开发系统具有以下优点:
(1)节点功耗低,体积小,射频芯片灵敏度高;
(2)节点通用性好,可以连接多种传感板;
(3)开发工具用户界面友好,支持多种目标文件格式;
(4)代码可存储在E2PROM中,需要下载时按下按钮便写入FLASH,配置节点方便。
本文所设计的传感器开发系统便于研究者做更深入的实践研究,推动了传感器更广泛的应用。