基于MSP430的极低功耗系统设计
,根据需要使用软件将CPU设定到某一种低功耗工作模式下,在需要时使用中断将CPU从休眠状态中唤醒,完成工作之后又进入休眠状态。
MSP430的可编程中断结构可以组成灵活的片上和外部中断体系,以适应实时中断驱动系统的需要。中断可由处理机的运行状态来启动,如看门狗溢出、外部模块发生的事件等。每个中断源泉可以用中断允许位单独关闭,而状态寄存器中的通用中断允许位GIE可以禁止全部中断。
当中断请求发生并且相应的中断允许位和通用中断允许位(GIE)置位时,中断服务程序按下顺序激活:
如果CPU处于活动状态则完成当前执行指令。如果处于省电状态,则终止低功耗模式→将指向下一条指令的PC值压堆栈→将SR压入堆栈→如果在执行上条指令时已有多个中断请求发生,则选择最高优先级者→在单一中断源标志中的中断请求标志位自动复位,多中断源标志仍保持置位以等待软件服务→通用中断允许位GIE复位,CPUOff位/OscOff位和SCG1位复位,SCG0不改变,FLL环路控制保持原有工作状态,状态位VNZ和C复位→将相应的中断向量值装入PC,程序从该地址继续执行中断处理,中断响应从接受中断请求开始到执行相应的中断服务程序的首条指令,持续6个周期,中断处理结束的最后指令为RETI→将SR从堆栈中弹出,被中断的程序回到与中断前完全相同的状态→将PC机堆栈中弹出。因此它的中断系统也配合极低功耗的要求,一个中断事件可将系统从各种工作模式中唤醒,而RETI指令又使运行返回到事件发生前的工作模式,不需额外的指令。测试仪的主要工作就是测量并显示温度。系统启动后首先进入低功耗的休眠模式,因为温度的测试可以间隔一段时间测量一次,设定一个触发周期,当周期的触发脉冲到来时,CPU退出休眠,测量温度并显示,检测完之后又自动回到休眠状态。
(4)外设
MSP430系列微控制器的运行主要受控于存储在特殊寄存器(SFR)中的信息,不同SFR中的位可以根据需要允许中断或用来定义外围模块的工作模式,能够作到部分或全部禁止外围模块的功能,被禁止的外围模块将停止它的功能以减少电源消耗。
例如,Basic Timer1可以根据需要对输入时钟源选择MCLK、ACLK或ACLK/256之一,同时控制位包含HOLD,当HOLD=1时,可以禁止模块的所有功能,并把功耗降低到最低只有漏电流。
串口是系统与外围联系的重要手段,可以利用MSP430对帧的敏感作为启动条件。通常情况下都应该从低功耗模式中被启动,这就需要用到UART的中断接收方式,有关代码如下:
IFG2 .EQU 3 ;URXIFG和UTXIFG标志地址
UTCTL .EQU 71h ;USART控制寄存器
UTXIFG .EQU 0
URXSE .EQU 8
……
URX_INT BIT.B #URXIFG,&IFG2 ;检查URXIFG信号以确定帧开始
JNE ST_COND
……
ST_COND BIC.B #URXSE,&UTCTL;清除URXS触发器信号,消除中断请求
BIS.B #URXSE,&UTCTL;准备用URXS触发器检查下一帧开始条件
当有多台机进行通信时,还应该充分利用线路空闲多处理机模式。使用此模式可以使处于多机通信的CPU在接收数据之前首先判断地址,如果地址与自己软件中设定的一款,则CPU被激活接收下面的数据;如果不一致,则保持休眠状态。这样可以最大限度地降低UART所消耗的功率。
低功耗系统必须采用LCD,MSP430有些型号中已经为我们集成了LCD驱动器,在使用时只有需要显示时才打开LCD模块,休眠状态下控制LCD的控制方式与模式寄存器中的LCDM0=0,可以关闭LCD。LCDM1=1,高电压驱动;LCDM1=0,LCDM1=1,驱动低电压。尽可能选择低电压驱动。通过以上处理,LCD的功耗可以达到最少。
MSP430的A/D也具有微功耗的模式。当转换结束时(EOC),中断标志会自动设置进入中断例程,通知处理机一次转换已经完成。这时CPU关闭A/D时钟,A/D通道停止工作,直到下一次SOC位置位才开启,因此,模/数的开启是可以由CPU通过控制ACTL寄存器主动进行的。"测试仪"需要测量传感器送来的电压,使用A/D进行模/数转换,可以通过键盘输入或周期性触发脉冲选择开启A/D转换,完成后又自动关闭,以节省电流消耗。
此外在设计外设时还有一些常规原则:将不用的FETI输入端连接到VSS;JTAG端口TMS、TCK和TDI不要连接到VSS;CMOS输入端不能有浮空的节点,将所有输入端接适当的电平;不论对于内核还是对于各外围模块,选择尽可能低的运行频率,如果不影响功能应设计自动关机。
3 总结
综上所述,MSP430以其卓越的性能和极低功耗的特点,使我们有很大的余地可以设计出高性能的微功耗系统。实践证明:使用MSP430为核心构成的便携式系统,其电池的使用寿命可以比基于一般
- 由MSP430和CC1100构成的无线传感器网络(08-01)
- 基于MSP430F413的智能遥控器(03-28)
- 基于MSP430单片机的智能无功补偿控制器设计(04-26)
- 远程心电监测系统的研究与设计(03-19)
- 基于MSP430的便携式心率计的设计(03-28)
- 基于MSP430的超低功耗电子温度计的设计(06-16)