2.1MCU结构设计
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页,每页{zd0}16字节,使用寄存器R3进行页面的切换操作;由于寄存器并不xx占用所有地址空间,暂缺的部分留作以后扩展。128字节通用寄存器RAM分为4个块,每块32字节,使用寄存器R4进行块切换操作,虽然进行了分块但仍然设计了直接和间接两种寻址方式,提高了其操作灵活度。该部分空间主要由程序中变量使用,而分块的结构在节省地址空间的同时也增强了各函数变量间的保护机制,有利于嵌入式操作系统的应用。4KB数据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μmCMOS工艺设计,由于制造工艺环节不在我们的可控范围内,故在此不作更多讨论。
在时钟控制方面主要使用了门控时钟、两相时钟流水和休眠唤醒机制。门控时钟主要采用使能信号控制各独立模块和电路的时钟信号来源,以灵活地开启和关闭各触发器的翻转来达到降低功耗的目的。两相时钟流水主要用于提高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的组成形式,可以根据需求很方便地进行功能裁减,以达到对嵌入式环境的{zj0}适应。
3平台的实现
3.1节点的实现
在该设计中已使用FPGA平台对自行设计的MCU进行了验证,并采用O.18μmCMOS工艺进行了后端设计、仿真并投片,达到了设计要求。目前的设计中MCU共占用了3mm×3mm的硅片面积,但实际的逻辑及存储部分仅占1/3左右,主要原因是保留了较多暂时未用的引脚及测试引脚,增加了设计周长。在原型版本的节点中A/D转换模块采用了商用芯片MAX152,同时还设计了与之兼容的A/D电路并与MCU一同投片,将在后期版本中进行混合信号设计从而实现系统集成。
3.2网络构造实现
在该无线传感器网络节点平台上成功移植了TinyOS嵌入式操作系统,实现了对环境温度的采集处理、射频模块的操作以及多跳自组织网络的构造,并通过网关节点汇集监测区域信息数据,利用IPv6网络传递至监控终端,实现了无线传感器网络的基本功能。
4小结
本设计采用了典型的无线传感器网络节点架构,开发出属于通用传感器平台