引 言
目前,无线传感器网络硬件平台可以按节点控制器类型、节点无线通信类型、节点操作特性等多种方式进行分类。由于无线传感器网络主要关注的是检测区域内某一范围而不是某一个特定点的状态信息,因此按照节点操作特性来进行分类的方法较为科学,它覆盖了节点的具体实现形式。按照这种方法可以将无线传感器网络分为4类[1]:特定传感器平台、通用传感器平台、高带宽传感器平台和网关平台。
特定传感器平台侧重于节点的超低功耗和体积的微型化设计,但同时也决定了其处理能力和传输能力很有限。比如UC Berkeley的Spec[l]就是在2.5 mm×2.5 mm的硅片上集成了处理器、RAM、通信接口和传感器的一种节点,它靠一个附带的微型电池供电可以连续工作几年,但在其原型版本中只有单向的通信链路;再如由DAR-PA/MTO MEMS program支持UC Berkeley研发的Smart Dust也是一种超微型的节点,其设计目标体积是1 mm3左右,由于使用光通信并采用主动和被动两种工作模式,其功耗可以进一步降低。
通用传感器平台对体积要求有所放宽,侧重于节点的可扩展性和测试需求,但同样对节点功耗有较严格的要求,这类平台也是目前在实验研究和产品化中应用最多的。该类型中以UC Berkeley的Mica系列节点为主要代表,主要包括Rene、Mica、Mica2、Mica2dot、Mica-Z等不同版本。
高带宽传感器平台的主要特点是处理能力强、存储容量大、接口丰富,其射频带宽比前两种更宽,甚至可以进行音视频信号的传递。该类节点的典型代表是由Intel公司设计的Imote,它采用ARM7TDMI内核,可通过蓝牙接口与PDA等设备连接,由于功能强大,相应的系统功耗也有所增加。
网关平台是无线传感器网络中不可缺少的部分,通常它的处理能力和接口带宽比其他几类更高。它实现的是无线传感器网络与其他类型网络之间,或者是不同无线传感器网络之间的数据交换,由通用接口使用协议转换功能实现。
1 网络架构与节点设计
1.1 网络架构设计
系统网络体系结构如图1所示。多个终端节点node与汇集节点sink决定了检测区域的范围,各节点监测数据通过自组织的多跳路由网络传送至网关节点gate;然后通过串行通信接口传送至网关计算机并接入Internet,远程的监控终端可以通过Internet获取监控范围内的监测数据。
在该网络中,网关接入设备和监控终端均可使用传统的计算机实现,以下主要关注的是终端节点、汇集节点和网关节点。从数据处理强度来看,由于采用的是一种树状网络,所以终端节点数据最少,仅需在特定的检测时获取数据并送出;汇集节点数据量稍大,需要接收多个终端节点的数据并经过初步处理后送至下一汇集节点或网关节点;网关节点的数据量最大,需要接收整个检测区域内的数据并经过解析、融合、协议转换等处理后再送入Internet。从能源需求来看,终端节点能耗最小,汇集节点次之,但这两类节点通常都只能使用自带的有限能源,一旦耗尽即停止工作;而网关节点虽然能耗大,但可以采用外部能源持续供给,在功耗上可以不作苛刻要求。因此,在全网中主要针对终端节点和汇集节点的能耗作严格要求并在多层次进行优化,以最大限度地延长全网的有效工作时间。
1.2节点设计
由于无线传感器网络是一种典型的自组织网络,其拓扑结构会随着节点的加入、退出或移动而改变,各节点在网络中的功能也随之动态变化,因此在监测区域中的节点都应具备充当终端节点或汇集节点的能力。终端节点和汇集节点可统称为"普通节点",其硬件结构如图2所示。
在普通节点中设计并实现了一个8位RISC结构低功耗MCU作为系统控制核心,后面会进行详细介绍;存储器SST29VE020用作外部程序存储器,容量为256KB;A/D转换器MAX152用于将外部传感器经调理后的电压信号转换为数字信号;射频收发模块使用Chipcon公司支持ZigBee协议的CC2420[2]。网关节点与普通节点从结构上看是类似的,只是工作环境不同且功能需求有所增加,可由普通节点扩展实现。
2 8位RISC结构低功耗MCU设计
在现有的各类无线传感器网络节点硬件设计中都采用的是嵌入式领域广泛应用的一些通用处理器单元,而没有针对无线传感器网络应用开发专用的控制核心,因而节点设计中会受到体积、功耗、接口、资源等方面的限制,甚至在某些设计中还存在资源浪费的情况。这对节点的低功耗、微型化设计非常不利,因此在本设计中自行设计并实现了一种8位RISC结构低功耗MCU,作为节点控制核心。
2.1 MCU结构设计
MCU硬件结构如图3所示。在该设计中MCU采用了与ELAN公司EM78系列MCU指令集兼容的形式,完成原型开发。CPU采用两级流水,使用两相时钟控制完成预取指操作,在跳转指令后自动加入一条空操作指令NOP完成对转移类操作的控制。目前在同等总线时钟频率的情况下,该CPU的操作速度比EM78系列MCU快一倍。
MCU外部程序存储器采用256K×8位结构,实际使用时由相邻奇偶地址单元构成128K×16位形式,以满足13位宽度指令集的需求。用于取指操作的寄存器R2(PC)为17位宽,其中高7位用作程序存储器128个页面的寻址;低10位用于页内寻址;寄存器R5存储当前工作页面地址,由指令解码器判定并操作向R2的传递。这种寻址方式有利于物理结构上同样采用分页形式的Flash存储器的操作。
MCU片内存储器包括4KB数据RAM、128字节通用寄存器RAM以及其他特殊寄存器。为缩小CPU的直接寻址范围和满足固定短字长指令集的使用,各存储器采用了分页、分块和映像的统一组织方式。特殊寄存器包括MCU各模块寄存器和I/O寄存器,共分为6页,每页最大16字节,使用寄存器R3进行页面的切换操作;由于寄存器并不完全占用所有地址空间,暂缺的部分留作以后扩展。128字节通用寄存器RAM分为4个块,每块32字节,使用寄存器R4进行块切换操作,虽然进行了分块但仍然设计了直接和间接两种寻址方式,提高了其操作灵活度。该部分空间主要由程序中变量使用,而分块的结构在节省地址空间的同时也增强了各函数变量间的保护机制,有利于嵌入式操作系统的应用。4 KB数据RAM被映像到分页的数据寄存器之中,通过16位宽的地址接口和8位宽的数据接口进行存取操作,极大地缩小了直接寻址空间。目前这种存储器组织方式虽然会增加一些数据存取的开销,但在运算负荷并不重的节点系统中使用不会影响其性能,并且可以在编译器层次针对这种结构对代码进行优化。这种形式带来的优点是可以简化CPU的硬件结构,显著减小节点体积和降低功耗,从总体上来看对节点系统构造是有利的。
MCU中共有8个外部中断源和5个内部中断源。8个外部中断源与端口PORT7复用引脚,并可以设定上升沿或下降沿触发模式,以满足不同外设接口的需要。5个内部中断源分别来自TCC、COUNTER1、COUNTER2、UART和SPI模块。TCC模块可利用外部时钟进行计时操作,为操作系统进行时间片的划分提供基本硬件支持;COUNTER1和COUNTER2采用内部总线时钟计数,除基本的计数和定时功能外,还可将其与外部中断引脚配合实现输入捕捉或输出比较功能;UART和SPI模块的中断主要用于通信服务程序。
2.2 设计中的低功耗考虑
由于无线传感器网络的应用特点决定其设计必须围绕低功耗进行,因此作为节点控制核心的MCU的低功耗设计也相当重要。在设计中从系统层次和逻辑层次的三个方面进行低功耗考虑:工作电压、时钟控制和电路规模。工作电压主要与芯片制造工艺相关,目前选用3.3V工作电压以O.18μm CMOS工艺设计,由于制造工艺环节不在我们的可控范围内,故在此不作更多讨论。
在时钟控制方面主要使用了门控时钟、两相时钟流水和休眠唤醒机制。门控时钟主要采用使能信号控制各独立模块和电路的时钟信号来源,以灵活地开启和关闭各触发器的翻转来达到降低功耗的目的。两相时钟流水主要用于提高CPU的顺序取指执行速度,采用这种方式可以在同等总线时钟和同样工作负荷的情况下缩短CPU的工作时间,从系统层次来看减小了CPU的工作占空比,从而降低功耗。休眠唤醒机制的基本原理是关闭系统中暂时不使用的部分甚至是CPU的核心模块,以降低系统总体的能源消耗。在该MCU中设计了全速工作模式working和两种低功耗休眠模式sleep1、sleep2,如图4所示。这两种休眠模式下都会关闭系统主时钟,但其唤醒方式和程序运行模式有所不同。
通过执行SLEP指令即可将MCU切换至sLeep1模式。在进入该模式前需要启用看门狗电路以使看门狗复位或外部复位信号恢复工作状态;恢复working模式后系统重启并重新开始执行程序,以前的信息将会丢失。这种方式适合于系统长时间休眠且唤醒后系统重新工作的情况。要进入sleep2模式只需将寄存器RA中的SLPC位置位。该模式与sleep1的主要区别是可以使用中断信号唤醒CPU并且继续执行休眠前的程序,不会丢失任何信息。这种方式在无线传感器网络中大量使用,因为MCU工作的时间远远小于节点信息采集和系统组网等操作的时间间隔,所以在操作系统中即可充分利用这种模式以降低MCU的工作占空比。
在电路规模方面采用了RISC架构设计,该CPU共支持58条精简指令,每条指令固定为13位长度,有效减小了CPU核的规模和存储体系规模。位于MCU中的其他接口功能模块采用了独立IP的组成形式,可以根据需求很方便地进行功能裁减,以达到对嵌入式环境的最佳适应。
3 平台的实现
3.1 节点的实现
在该设计中已使用FPGA平台对自行设计的MCU进行了验证,并采用O.18μm CMOS工艺进行了后端设计、仿真并投片,达到了设计要求。目前的设计中MCU共占用了3 mm×3 mm的硅片面积,但实际的逻辑及存储部分仅占1/3左右,主要原因是保留了较多暂时未用的引脚及测试引脚,增加了设计周长。在原型版本的节点中A/D转换模块采用了商用芯片MAX152,同时还设计了与之兼容的A/D电路并与MCU一同投片,将在后期版本中进行混合信号设计从而实现系统集成。
3.2 网络构造实现
在该无线传感器网络节点平台上成功移植了TinyOS嵌入式操作系统,实现了对环境温度的采集处理、射频模块的操作以及多跳自组织网络的构造,并通过网关节点汇集监测区域信息数据,利用IPv6网络传递至监控终端,实现了无线传感器网络的基本功能。
4 小 结
本设计采用了典型的无线传感器网络节点架构,开发出属于通用传感器平台类型的原型版本,使用自行设计的低功耗MCU实现了系统集成和微型化。
作者:电子科技大学,周亮、李广军
|