单片机MSP430的极低功耗系统设计
- 格式:doc
- 大小:48.50 KB
- 文档页数:4
M S P430F R单片机的超低功耗设计方法和原则李志腾,郑耿,孙鹏,张良,秦旸,刘伟(东方电子股份有限公司,烟台264001)摘要:以M S P30F R6972芯片为例,详细介绍了M S P430F R系列单片机在硬件㊁软件上的超低功耗设计方法和原则,并提出了在软件开发过程中采用U L P A d v i s o r和E n e r g y T r a c e工具分析优化功耗的方法㊂通过综合的设计㊁优化能使单片机达到最佳的低功耗状态,更好地适应超低功耗应用领域的要求㊂关键词:M S P430F R;U L P A d v i s o r;E n e r g y T r a c e中图分类号:T P368.1文献标识码:AD e s i g n M e t h o d a n d P r i n c i p l e o f U l t r a-l o w P o w e r C o n s u m p t i o n o n M S P430F RL i Z h i t e n g,Z h e n g G e n g,S u n P e n g,Z h a n g L i a n g,Q i n Y a n g,L i u W e i(D o n g f a n g E l e c t r o n i c s C o.,L t d.,Y a n t a i264001,C h i n a)A b s t r a c t:I n t h i s p a p e r,M S P430F R6972M C U i s t a k e n a s a n e x a m p l e t o i n t r o d u c e t h e d e t a i l u l t r a-l o w p o w e r d e s i g n m e t h o d s a n d p r i n c i-p l e s o f M S P430F R M i c r o c o n t r o l l e r s i n h a r d w a r e a n d s o f t w a r e f i e l d s.I n t h e s o f t w a r e d e v e l o p m e n t,a m e t h o d i s p r e s e n t e d f o r a n a l y z i n g a n d o p t i m i z i n g M S P430F R s p o w e r c o n s u m p t i o n b y u s i n g U L P A d v i s o r a n d E n e r g y T r a c e t o o l s.W i t h t h e c o m p r e h e n s i v e d e s i g n a n d o p-t i m i z i n g,t h e M C U c a n a c h i e v e t h e b e s t l o w p o w e r s t a t e i n t h e u l t r a-l o w p o w e r a p p l i c a t i o n s.K e y w o r d s:M S P430F R;U L P A d v i s o r;E n e r g y T r a c e引言M S P430F R是美国德州仪器(T I)公司推出的新一代超低功耗系列单片机,由于其具有超低功耗的性能和可以高速㊁耐久读写数据的内置F R AM,非常适合应用于电力仪表等低功耗仪器仪表领域㊂在对功耗要求很苛刻的领域,如何合理开发使用M S P430F R系列单片机成为实现超低功耗的关键㊂本文以M S P430F R6972单片机为例,详细介绍了M S P430F R系列单片机的超低功耗开发㊁设计原则㊂1M S P430F R系列单片机概述M S P430F R系列单片机是16位单片机,采用了精简指令集(R I S C)结构,具有灵活可控的时钟和丰富的片内外设,每个片内外设都可以单独控制,从而实现多种不同功能的低功耗模式[1]㊂以M S P430F R6972单片机为例,其具有7种低功耗模式(如表1所列),其中,L P M3模式是在L P M2模式基础上关闭了芯片内部的锁频环; L P M3.5模式及L P M4.5模式是在L P M3与L P M4模式基础上进一步关闭了芯片内部R AM的供电㊂L P M3.5和L P M4.5模式下,一些寄存器将会失效,未保存的数据及动态变量会丢失,因此在进入这两种模式时一定要将有用的数据或变量保存到铁电中,等到C P U从该模式恢复后,再将保存的数据读出,重新赋给相应的变量㊂单片机会根据不同的运行模式关闭或打开C P U㊁时钟及相应的外设,从而保证在最低功耗下实现相应的功能㊂表1M S P430F R6972运行模式及功耗(T=25ħ,f=1MH z,V c c=3.0V)运行模式C P U及时钟状态典型功耗/μA L P M0C P U o f f A C L K a c t i v e S M C L K o p t i o n a l a c t i v e80 L P M1C P U o f f A C L K a c t i v e S M C L K o p t i o n a l a c t i v e40 L P M2C P U o f f A C L K a c t i v e S M C L K o f f1.20 L P M3C P U o f f A C L K a c t i v e S M C L K o f f0.90 L P M4C P U o f f A C L K o f f S M C L K o f f0.55 L P M3.5C P U o f f A C L K a c t i v e S M C L K o f f0.35 L P M4.5C P U o f f A C L K o f f S M C L K o f f0.04 M S P430F R系列单片机与其他M S P430系列单片机的最大不同是采用内置F R AM取代F l a s h来存储程序与数据,数据写入速度是F l a s h的100多倍㊂由于F R AM无需预擦除段并且可以实现位级数据存取,简化了代码开发,从而能够在功耗不变的情况下实现实时数据记录㊂此外,相较于F l a s h ,M S 430F R 芯片中的F R AM 可提供超过100亿次的写入周期耐久性㊂2 M S P 430F R 系列单片机超低功耗设计原则单片机的超低功耗设计包括硬件㊁软件两个方面㊂在进行超低功耗设计时要综合考虑硬件和软件的设计,使其达到最优的低功耗状态㊂2.1 硬件设计原则2.1.1 供电电压及时钟频率设置M C U 是由若干C MO S 门电路组成,C MO S 的功耗计算公式如下:P =P s t a r t +P Q +P d y n (1)P d yn =C L ˑf ˑV 2c c (2)其中,P s t a r t 是由扩散区和衬底之间的反向偏置漏电流产生的静态功耗,P Q 是动态情况下P 管和N 管同时导通时的短路电流产生的动态功耗,P d y n 是开关电流产生的动态功耗㊂这三项中P d y n 大约占电路功耗的80%,是C MO S 电路的主要功耗[3]㊂在式(2)中C L 为CMO S 的负载电容,f 为系统时钟频率,V c c 为芯片的电源电压㊂由此可知,电源电压V c c 对系统C MO S 电路功耗影响最大,其次是时钟频率f 和负载电容C L ㊂因此,为了能够实现超低功耗,在满足应用要求的前提下,要尽可能降低芯片的供电电压㊂一般而言,时钟频率越大,功耗越大㊂但另一方面,时图1 I /O 电平不固定情况下的电流消耗钟频率与工作时间成反比,时钟频率越高,完成一段代码的执行时间越短,C P U 处于空闲或睡眠状态的时间就越长㊂因此,并不一定是频率越高功耗就越大㊂在有些应用中,提高主频反而可以使平均功耗降低,频率的确定需要根据实际应用中的项目需求而定㊂例如,以不同频率执行相同代码,其功耗大小如表2所列,从表中可以看出对于如下代码,频率在8MH z 时C P U 消耗的平均功耗最小㊂v o i d m a i n (v o i d){ I n i t S o f t WD o g (0,0,0); I n i t G p i o (); I n i t S Y S C l o c k (); w h i l e (1){ P i n 1_0(1);//P 1.0引脚置高 C o d e A (); C o d e B (); C o d e C (); P i n 1_0(0);//P 1.0引脚置低 }}表2 不同频率下执行相同代码的功耗主频/MH z 供电电流/m A C P U 执行相同代码耗时/μs C P U 执行相同代码的功耗(m A ㊃μs )说 明10.16725.054.18342.670.3309.353.08553.50.4107.172.939740.4606.262.87965.330.6104.672.848770.7703.592.764380.8603.132.691810.50.9902.972.9403121.1202.592.9008161.4001.932.7020采用万用表串入供电电路测量供电电流;用示波器捕捉P 1.0引脚的高低电平变化,获取执行时间㊂在测试过程中C P U一直处于a c t i v e m o d e,A C L K 的频率为32.768k H z ,S M C L K 被关闭2.1.2 I /O 口设置默认情况下,M S P 430F R 系列单片机的I /O 口为输入状态,且内部的上㊁下拉电阻未使能㊂因此,I /O 口的电平不确定,从而容易产生寄生电流[2],如图1所示㊂在默认状况下,P 1.0口的电压处于不稳定状态,当P 1.0口的电压为1.7V 左右时,寄生电流能够超过40μA ㊂但P 1.0端口电压为3.0V 或者0V 时,电流几乎为0㊂为此,在进行产品设计时,硬件上可以通过将未用的I /O 接到V c c 或者G N D 上,使其端口电平固定,从而避免产生寄生电流㊂若硬件上未进行相应处理,软件上可以通过将未用的I /O 口设置为输出高电平或低电平,使其端口电平固定;或者将未用I /O 口设置为输入状态,并通过软件设置内部上拉电阻或下拉电阻,使端口的电平保持固定,避免产生寄生电流㊂2.1.3 外部设备M S P 430F R 系列单片机内部包含了丰富的低功耗外设,如D MA ㊁A D C 等器件,合理利用这些低功耗外设能够更好地降低系统的功耗㊂例如在相同情况下搬移1312个字节,M S P 430F R 6972的D MA 模块与m e m c p y()函数所消耗的时间及功耗对比如表3所列㊂D MA 可以在更短的时间内,用更低的功耗实现数据的搬移,且D MA 进行数据搬移时并不会占用C P U ,C P U 可以继续执行其他指令㊂表3 D M A 模块与m e m c p y()函数功能对比功能电流/m A 时间功耗(m A ㊃m s)m e m c p y ()1.2761.65m s2.105D MA2.057272.50μs0.5612.2 软件设计原则典型的低功耗C P U 的工作模式如图2所示,C P U 大部分时间处于空闲或休眠状态,仅有部分外设在工作,此时电流消耗很小㊂只有定时事件完成或有其他事件触发时,C P U 才会进入运行状态执行相应的工作,工作完成后C P U 再次进入空闲或休眠状态,继续等待定时或其他事件的触发,这样系统整体的平均功耗就会很低[4]㊂例如采用M S P 430F R 6972芯片实现串口数据接收功能,可以选择A C L K 作为片内串口模块的时钟源,这样芯片可以长时间处于L P M 3模式下接收串口数据,当要处理接收数据时再进入A c t i v e 模式进行数据处理,从而使单片机功耗保持最佳㊂图2 典型的低功耗C P U 的工作模式此外,在软件编程上尽可能地提升代码的执行效率,缩短C P U 的活跃时间,也可以更好地降低功耗㊂例如尽量使用无符号数,尽可能采用快速查表法来代替复杂的计算等㊂2.2.1 U L P A d v i s o r 代码分析T I 公司提供了U L P (U l t r a -L o w P o w e r )A d v i s o r 分析工具,用于指导开发人员编写有效的代码,以充分利用M S P 430微控制器的独特超低功耗特性[5]㊂U L P A d v i s o r功能可以在I A R 或C C S 编译器中通过设置启用㊂U L P 包含了15条编程规则,在编译时,U L P A d v i s o r 会提供通知和备注,以突出显示代码中可以进一步优化的区域,如图3所示,U L P A d v i s o r 提示f o r 循环的代码可以优化㊂点击图3中m e s s a g e s 对话框中的T I U L P A d v i s o r 报警信息,就会弹出如图4所示的详细说明,并包括优化代码的例子㊂从详细说明中可知,M S P 430单片机内进行非零值比较时需要执行两条汇编指令,而与零比较只需执行一条汇编指令,所以可以将f o r (i i =0;i i <20;i i ++)改为f o r (i i =20;i i >0;i i --),提高代码的执行效率,从而节省功耗㊂图3 U L P A d v i s o r 告警信息图4 U L P A d v i s o r 详细说明2.2.2 E n e r g y Tr a c e 功耗分析在进行单片机超低功耗设计时,辅助的测量方法有很多种㊂可将高精度电流表串入供电回路测量功耗,或者在供电回路中串联一个精密电阻(误差为1%,甚至更低),用示波器实时测量电阻两端的电压等方法㊂为了能够更好地在程序设计过程中了解功耗,可以采用T I 公司的E n e r g y T r a c e 工具㊂E n e r g y Tr a c e 工具主要用于D e b u g 模式,其可以实时记录M S P 430单片机的实时功耗㊁内部外设和芯片运行的状态(见图5)㊁程序里功能函数执行的次数及每个功能函数的功耗,生成l o g 信息并以图表的形式实时展示出来[5]㊂E n e r g y Tr a c e 工具可以对比利用U L P A d v i s o r 工具调整后和调整前的代码的实时功耗情况,如图6所示㊂通过将U L P A d v i s o r 和E n e r g y Tr a c e 结合使用,可以帮助软件人员在程序设计调试中更好地优化代码,从而保证功耗做到最低㊂图5芯片内部外设及运行模式实时追踪图6 E n e r g y Tr a c e 功耗跟踪及对比分析结 语M S P 430F R 系列单片机适用于很多超低功耗实时数据测量场合㊂通过恰当的低功耗硬件设计㊁合理的软件策略及综合的优化方法,可以使M S P 430F R 系列单片机在超低功耗的应用领域中表现得更为优秀㊂参考文献[1]胡大可.M S P 430系列超低功耗16位单片机原理与应用[M ].北京:北京航空航天大学出版社,2000.[2]T e x a s I n s t r u m e n t s .M S P 430F R 58x x ,M S P 430F R 59x x ,M S P 430F R68x x ,a n d M S P 430F R 69x x F a m i l y Us e r s G u i d e [E B /O L ].[201805].h t t p ://w w w .t i .c o m /c n /l i t /pd f /s l a u 367.[3]王昌林,张勇,李东生.C MO S 集成电路功耗分析及其优化方法[J ].舰船电子工程,2006,26(3):123125.[4]杨天池,金梁,王天鹏.嵌入式系统的低功耗设计[J ].仪器仪表学报,2006,27(z 1):946948.[5]T e x a s I n s t r u m e n t s .M S P 430A d v a n c e d P o w e r O pt i m i z a t i o n s _U L P A d v i s o r S o f t w a r e a n d E n e r g y T r a c e T e c h n o l o g y [E B /O L ].[201805].h t t p://w w w.t i .c o m.c n /c n /l i t /a n /s l a a 603/s l a a 603.李志腾(嵌入式软件工程师),主要负责智能配电产品线㊂(责任编辑:薛士然 收稿日期:2018-05-03)。
MSP430系列16位超低功耗单片机原理与实践MSP430系列单片机采用了哈佛结构,具有16位的数据宽度,可以实现更高的数据处理速度。
它的主频范围从1MHz到25MHz,能够满足不同应用的需求。
同时,MSP430系列单片机具有多种低功耗模式,例如待机模式、休眠模式和独立模式,可以有效地降低功耗,延长电池寿命。
MSP430系列单片机具有丰富的外设接口,包括多个串口通信接口、通用输入输出口、模拟输入输出口以及定时器和计数器等。
这些外设接口使MSP430系列单片机可以与其他外部设备进行通信,实现数据的输入和输出。
此外,MSP430系列单片机还具有多个中断源,可以实现实时中断处理,提高系统的响应能力。
使用MSP430系列单片机进行开发,首先需要选择合适的开发板和编程工具。
德州仪器公司提供了MSP430 LaunchPad开发板,可以方便地进行程序的编写和调试。
同时,德州仪器还提供了MSP430编程工具链,包括编译器、调试器和仿真器等,在开发过程中能够提高开发效率。
在实际开发中,可以利用MSP430系列单片机的低功耗特性,实现一些需要长时间运行的应用。
例如,可以将MSP430系列单片机用于物联网中的传感器节点,采集和传输环境数据。
由于MSP430系列单片机的低功耗特性,可以通过电池供电,从而实现长时间的无线监测。
此外,MSP430系列单片机还可以用于电力管理系统、家庭自动化系统和医疗设备等领域。
它的低功耗特性和丰富的外设接口使其具有很高的适用性,能够满足各种不同应用的需求。
总结起来,MSP430系列单片机是一款16位超低功耗单片机,具有高性能和丰富的外设接口。
它的低功耗特性使得它在物联网、电力管理、家庭自动化和医疗设备等领域具有广泛的应用前景。
通过学习MSP430系列单片机的原理和实践,可以更好地应用它在实际开发中。
MSP430系列单片机介绍MSP430系列单片机是德州仪器(TI)公司推出的一种低功耗、高集成度、高性能的16位超低功耗单片机。
它采用精确的调度技术和先进的低功耗架构设计,拥有出色的性能、高功耗效率、广泛的外设集成以及丰富的工具和软件支持。
MSP430系列单片机的内核基于RISC架构,拥有16位数据总线和16位地址总线。
它可以工作在多种工作频率下,从几kHz到几十MHz不等,以满足不同的应用需求。
此外,MSP430系列单片机还具有多种睡眠模式,可以进一步降低功耗。
MSP430系列单片机内置了丰富的外设,包括模拟接口、数字接口和通信接口。
模拟接口包括模数转换器(ADC)、数字模拟转换器(DAC)和比较器等,可以实现各种传感器接口和模拟信号处理。
数字接口包括通用输入输出(GPIO)、定时器/计数器、串行通信接口等,可以实现数字信号处理和通信功能。
通信接口包括UART、SPI和I2C等,可以实现与外部设备的数据交换。
MSP430系列单片机广泛应用于各种电子设备中,如便携式设备、智能家居、医疗器械、工业自动化等。
由于其低功耗和高性能的特点,它可以满足不同应用场景下对功耗和性能的需求。
例如,在便携式设备中,MSP430系列单片机可以实现长时间的电池寿命;在智能家居中,它可以实现低功耗的远程控制和数据传输;在医疗器械中,它可以实现高精度的信号处理和通信。
总之,MSP430系列单片机是一种低功耗、高集成度、高性能的16位超低功耗单片机。
通过其先进的架构设计和丰富的外设集成,它可以满足各种应用的需求。
同时,它还提供了丰富的工具和软件支持,方便开发者进行开发和调试。
MSP430单片机最小系统8.2BSL编程器原理图8-1MSP430单片机正常启动复位时序信号当TEST引脚出现至少两个跳变沿,当TEST为高电平而RST引脚出现高电平,如图8-2所示启动程序载入器(Boottrap)所需的时序时,单片机进入启动程序载入器工作方式。
图8-2MSP430单片机进入BSL时序信号图8-43.3V电源电路图图8-3中USB插座的1、2、3、4脚分别为5v电源,D-和D+差分信号线,地线。
5、6脚为插座外壳接地引脚。
电脑可通过1脚提供5V电源,由于PL23032图8-5IAR生成MSP430-t某t编程文件配置2)打开MSPFET软件,做如下设置,如图8-6所示,并选择芯片型号为MSP430F149。
3图8-6MSPFET配置通过电脑的并行端口实现MSP430单片机的JTAG端口编程和调试,对于初学者是一种成本较低的方案,下面介绍用电脑的并行口实现JTAG编程,但是在4用JTAG烧断保密熔丝后,要再想修改闪存程序,就只能用BSL方法了。
图8-9IAR的调试器配置5图8-10IAR的FET调试器并口配置8.4MSP403F149单片机最小系统设计前面的章节中,我们主要采用MSP403F249作为仿真器件详述了单片机内部功能和外部扩展电路的设计和应用,本节主要介绍实用的单片机小系统开发板的硬件设计,可以作为单片机实验学习使用。
在选择单片机型号时,由于市面上MSP403F149较为常用且购买容易,且与MSP403F249功能基本相同,管脚也兼容,因此选择MSP403F149作为单片机最小系统的主芯片。
该单片机的特点如下:1.8V~3.6V超宽供电电压5种低功耗模式,从tandby模式唤醒时间小于6μ0.1uARAM保持0.8uA实时时钟模式2KRAM,60KB+256BFlahMemory(支持IAP)片内硬件乘法器支持四种乘法运算两个具有PWM输出单元的16-Bit定时器(TimerA3,TimerB7)两个UART接口,两个SPI接口(与UART复用)一个8通道12-Bit模数转换器(ADC),具有片内参考电压源一个模拟比较器,看门狗电路等开发板可使用的资源如下:两种可选供电方式(标准稳压器接口、USB接口)符合TI标准的14芯JTAG仿真调试端口蜂鸣器18B20单芯片12-Bit高精度温度传感器12-Bit模数转换器(ADC)接口和单路输出10-Bit数模转换器(DAC)6标准的1602液晶接口和标准的12864液晶接口六位共阴极动态扫描数码管电路RTC实时时钟+纽扣电池IIC接口的EEPROM4某4的矩阵式键盘标准的RS232接口和RS485接口含8个LED的流水灯电路(红、黄、绿)1)单片机电路图8-11MSP430F149单片机电路7图8-12MSP430F149电源电路2)RS232串行口电路这里选用MA某3232作为单片机串行口转换芯片,MA某3232是一款3.0V~5.5V供电、低功耗的RS232收发器,支持高达1Mbp的通信速率,仅需要四个0.1uF的电容作为外部元件即能工作。
MSP430低功耗运行模式原理及应用MSP430系列单片机因为其良好的低功耗表现和强大的数据处理能力,在许多领域具有广泛的应用,文章通过分析其低功耗模式的原理,介绍了MSP430及其衍生型号在相关领域的应用,对研究MSP430的低功耗模式及其实际应用具有一定的指导意义。
标签:MSP430;低功耗模式;应用MSP430系列单片机是美国德州仪器(TI)公司推出的集多种先进技术于一体的新一代单片机,该机最突出的特点是其低功耗模式,同时由于其具有强大的运算能力和仿真调试能力以及丰富的内外设,所以在全世界范围内获得了空前的成功[1],尤其在对功耗要求比较高的领域,得到了广泛的应用。
文章通过研究其低功耗的原理,介绍了MSP430系列单片机在相关领域的具体应用。
1 MSP430的低功耗运行模式研究MSP430系列单片机的内部结构框图如图1所示,MSP430系列单片机之所以能够有超低的功耗表现,主要有以下几个原因:1.1 工作电压低,低功耗模式多MSP430系列单片机的CPU的标准工作电压范围为1.8V-3.6,最低能在1.8V 的电压下工作,芯片最低的工作电流只有0.1μA,所以从基础结构的设计上就能保证低功耗的良好表现。
MSP430有1种活动模式(AM)和5种低功耗工作模式(LPM0、LPM1、LPM2、LPM3、LPM4),由于该型单片机主要用在工作时间短、休眠时间长的环境,所以多种低功耗模式的设计,可以使MSP430能够经常处于最经济的状态,有效降低了功耗。
1.2 中断响应速度快MSP430处于低功耗状态时,如果中断事件发生,MSP430可以在6μs内唤醒CPU进入工作状态,当事件处理完毕后,MSP430再次进入低功耗状态,由于其CPU强大的处理能力,一般能够很快地完成处理任务,所以MSP430大部分时间能够处于低功耗状态,这是MSP430非常省电的另一个重要原因。
1.3 灵活的时钟系统MSP430系列单片机中的两种不同的时钟系统(基本时钟系统和锁频环(FLL和FLL+)时钟系统或DCO数字振荡器时钟系统)可以根据实际需求产生三种不同频率的时钟信号,具体有:低频的辅助时钟(A-CLK),主要用于低频处理的场合,也可作为外设的信号源或时钟;高频的主系统时钟(MCLK),用于工作模式,也可作为高速外设的时钟;高频的子系统时钟(SMCLK),作为外设需要的备份。
基于MSP430的低功耗RF/红外控制器的设计
0 引言
在智能化家居控制系统应用中,无线通信和控制已经越来越广泛地被运用。
为了实现对居室电器设备的集中无线控制,可采用电话遥控、手持遥控器进行远程或短距离的无线控制,但所控制和传输的信号都是RF 信号。
然而有些被控对象本身是用红外信号遥控的,例如电视机、空调,由于各种品牌的空调都有自己的红外编码信号,相互不能通用,这就给智能化家居控制系统中红外遥控器的集中无线控制带来了极大的不便。
本文就基于MSP430 的低功耗RF/红外控制器的设计与实现进行介绍。
1 工作原理
大多数红外遥控信号的输出都是用编码后串行数据对38~40KHz 的方波进行脉冲幅度调制而产生的PWM 信号,如图1 所示。
各种品牌的红外遥控器的编码信号互不兼容[1][2]。
对该波形进行测量,并将高低电平的宽度存于Flash 中,而不管其如何编码。
当需要对远端的红外设备进行无线控制时,在内存中取出该数字序列,经Msp430 单片机中的捕获比较功能模块,将其还原成红外编码信号。
为了实现无线传输,将该信号调制到350MHz 或420MHz 的无线电波上进行传送。
由于红外编码信号的频率只有几十K 左右,而无线载波的频率是350MHz,以上变换的误差很小。
而防止产生误动作的关键是脉冲函数的宽度的选取。
采样频率越高,误差就越小,但内存的用量就越大。
本文选取采样频率为红外基波频率(20KHz)的6 倍[6][7]。
接收端的电路先将收到的调制信号解调,得到与图 1 相似的红外波形,。
单片机MSP430的极低功耗系统设计<P <B 关键词:极低功耗系统MSP430 低功耗管理<P <B 1 影响系统功耗的主要因素对于一个数字系统而言,其功耗大致满足以下公式:P=CV2f,其中C为系统的负载电容,V为电源电压,f为系统工作频率。
由此可见,功耗与电源电压的平方成正比,因此电源电压对系统的功耗影响最大,其次是工作频率,再就是负载电容。
负载电容对设计人员而言,一般是不可控的,因此设计一个低功耗系统,应该考虑到不影响系统性能前提下,尽可能地降低电源的电压和使用低频率的时钟。
下面对TI公司新出MSP430来具体探讨这个问题。
2 基于MSP430极低功耗系统的设计MSP430具有工业级16位RISC,其I/O和CPU可以运行在不的时钟下。
CPU功耗可以通过开关状态寄存器的控制位来控制:正常运行时电流160μA,备用时为0.1μA,功耗低,为设计低功耗系统提供了有利的条件。
图1是我们设计的以MSP430为CPU的“精密温度测试仪”(下面简称测试仪)。
该产品使用电池供电,体积小巧,携带方便。
(1)电源电压在使用时应该尽可能地选择最低的电源电压。
对于MSP430而言,可用的最低电压是很低的,最低可达1.8V。
我们使用TI公司推荐使用的3V。
通常的电源只提供5V 电压,因此,需要将5V电压由一个3V的稳压管降压后给CPU供电,也可以直接锂电池供电。
3V不是标准的TTL电平,因此,在使用时需要用接口电路使CPU的非TTL标准电平能与TTL标准电平的器件连接。
这些接口电路应该也是低功耗的,否则会造成一方面使用低电压降低了功耗,另一个方面使用额外的接口电路又增加了系统的功耗。
或者直接使用支持3V电压的外围芯片。
(2)时钟频率从低功耗的角度看,需要较低的频率,但是在实时应用中为了快速响应外部事件又需要有比较快的系统时钟。
这就需要系统具有两个高低不同的频率,在需要的时候可以在两个频率之间进行切换。
为了保证切换迅速/时间延迟少,又要求低Q值振荡器,同时切换时往往造成时钟频率的不稳定,这对于要求频率稳定的系统,如实时时钟RTC而言又是不适合的。
设计一个完全达到以上要求的时钟系统是很困难的,MSP430采用了一种折衷办法,即在CPU 外使用一个较低的频率为32 768Hz的钟表晶体振荡器生成辅助时钟ACLK,能够保证一些低频率应用场合的要求,对于一些低频工作的外设而言可以直接作为信号源或时钟,而无需增加额外的分频电路;同时,在CPU内部使用结合数字控制振荡器DCO的FLL技术,将ACLK倍频升高,作为系统的主时钟MCLK。
它使得指令能够在较低晶振下获得高时钟时的运行速度,能够满足高速实时的要求。
低、高频之间的切换只需6μs。
对于149型号的芯片而言,更具有第三个频率SMCLK可供外设使用,它可外接二个晶振,当设置DCOR=0时SMCLK使用DCOCLK,当DCOR=1时SMCLK使用第二个外晶振X2。
X2的频率一般比X1要高,这样便又可以满足高速外设的要求。
(3)低功耗软件控制MSP430的工作模式通过模块的智能化运行管理和CPU的状态组合以先进的方式支持超低功耗的各种要求。
CPU内状态寄存器SR中的SCG1、SCG2、OscOff 与功耗有关.可由软件组合成6种工作模式.①活动模式——AM正常的工作模式,这时CPU消耗的电能最大.②低功耗模式0——LPM0CPUOff置位,CPU停止活动,但外围模块继续工作,ACLK和MCLK信号保持活动,MCLK的锁频坏控制正常工作.有关控制位设置为:SCG1=0,SCG0=0,SCG0=0,OscOff=0,CPUOff=1。
③低功耗模式1——LPM1CPUOff置位,CPU停止活动,但外围模块继续工作,MCLK的锁频环控制停止工作,ACLK与MCLK保持活动,有关控制位设置为:SCG1=0,SCG0=1,OscOff=0,CPUOff=1。
④低功耗模式2——LPM2 CPUOff置位,CPU停止活动,但外围模块继续工作,MCLK的锁频环控制停止,ACLK活动,MCLK停止,有关控制位设置为:SCG1=1,SCG0=0,OscOff=0,CPUOff=1。
⑤低功耗模式3——LMP3CPUOff置位,CPU停止活动,但外围模块继续工作,MCLK的锁频环控制和MCLK停止工作,DCO的DC发生器关闭,但ACLK信号仍保持活动,有关控制位设置为:SCG1=1,SCG0=1,OscOff=0,CPUOff=1。
⑥低功耗模式4——LPM4CPUOff置位,CPU停止活动,但外围模块继续工作,MCLK的锁频环控制和MCLK停止工作,晶振停止,有关控制位设置为:SCG1=X,SCG0=X,OscOff=1,CPUOff=1。
不同工作模式对应的典型电源消耗如图2所示。
这些模式可以完成对晶振的关闭,FLL关闭,还能实现对外设功耗的控制,从而进一步降低系统的功耗。
为了充分利用CPU的低功耗功能,可以让CPU工作于突发状态。
在通常情况下,根据需要使用软件将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为核心构成的便携式系统,其电池的使用寿命可以比基于一般CPU的系统延长3~5倍。
可以预见,在不久的将来基于MSP430的微功耗便携式系统将越来越多,这也正是我们讨论的意义所在。
出师表两汉:诸葛亮先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。
然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。
诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。
宫中府中,俱为一体;陟罚臧否,不宜异同。
若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理;不宜偏私,使内外异法也。
侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下:愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。
将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰“能”,是以众议举宠为督:愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。