嵌入式系统中的低功耗设计东南大学信息科学与工程学院张圣清zhangsq@seu.edu.cn主要内容低功耗设计的概念嵌入式系统的低功耗设计MSP430系统的低功耗设计主要内容低功耗设计的概念嵌入式系统的低功耗设计MSP430系统的低功耗设计低功耗设计的重要性低功耗设计并不仅仅是省电;降低了电源模块和散热模块的成本,使产品小型化;延长了电池工作时间;减少了电磁辐射和热噪声,降低了系统的实现难度;随着设备温度的降低,设备的寿命得以延长;低功耗设备的特点1.首先要求体积小、重量轻、便于携带。2.采用低功耗电路的设计方法,1.硬件2.软件3.电池驱动的需要。4.安全的需要。5.降低EMI。6.节能的需要。7.采用LCD液晶显示器。8.采用微功耗、高抗干扰的CMOS集成电路。功耗产生的原因1.耗能元件,如电阻等2.P=U*I与功耗有关的因素1.电阻上消耗的功率2.有源器件的开关转换阶段3.集成电路内部和外部电容的充放电4.系统的性能指标、负载能力、被处理信号的工作频率、电路的工作频率、电源的管理水平、零部件的性能、散热条件、接口的物理性能等对系统功耗起着重要的作用。元件工艺的低功耗1.在集成电路设计中采用低功耗的电路设计2.电源设计3.存储器(SDRAM、ROM)的高速化与低功耗4.高集成度的完全单片化设计5.内部电路可选择性地工作6.宽电源电压范围7.具有高速和低速两套时钟8.在线改变CPU的工作频率9.后备功能(idle,power-down)10.使用低功耗的元件降低功耗的措施功耗的组成:动态+静态动态电源管理动态电压缩放低功耗硬件设计低功耗软件设计主要内容低功耗设计的概念嵌入式系统的低功耗设计MSP430系统的低功耗设计嵌入式系统的低功耗设计硬件系统的低功耗设计9处理器的选择9接口器件和电路的选择动态电源管理供电电路的设计软件系统的低功耗设计嵌入式系统的低功耗设计硬件系统的低功耗设计9处理器的选择9接口器件和电路的选择动态电源管理供电电路的设计软件系统的低功耗设计处理器的选择CPU的性能和功耗(动态和静态)CPU的供电电压和工作时钟CPU的总线宽度低功耗原则:够用即可,尽量选择总线宽度小,供电电压低,工作时钟慢的,支持低功耗模式.降低处理器的时钟频率工艺改进促使供电电压降低02468101992199319941995199619971998199920002001电压5.0V3.3V2.5V1.8V崩溃电压供电电压多电压兼容系统内核电压3.3V、2.5V或1.8V接受2.5V、3.3V或者5.0V输入输出电位标准Vccio0%20%40%60%80%100%19921993199419951996199719981999200020015.0V3.3V2.5V1.8V初始设计百分比不同芯核电压器件流行趋势硬件系统的低功耗设计选择低功耗的器件CMOS电路的特点和选用不用的引脚的处理-输出为高原则选用高速低频工作方式与电磁兼容性矛盾选用低功耗的处理器选用低功耗的通信收发器(网络功能)选用低功耗的存储器件慎用上拉和下拉电阻确实需要的才使用,并合理选择阻值空闲IO的处理不用的I/O口如果悬空的话,受外界的一点点干扰就可能成为反复振荡的输入信号了,而MOS器件的功耗基本取决于门电路的翻转次数。如果把它上拉的话,每个引脚也会有微安级的电流,所以昀好的办法是设成输出,当然外面不能接其它有驱动的信号。硬件系统的低功耗设计选择低功耗的电路形式集成化的电路有利于降低功耗集成化器件比分离件功耗低功率放大器A类B类AB类C类(高频功率放大器)D类硬件系统的低功耗设计模拟器件9单电源、低电压供电(例LM324)缺点:降低了系统的动态范围9选用低功耗器件,昀好有关断脚15V220mw10V90mw5V15mwLM324供电电压与功耗的关系硬件系统的低功耗设计数字器件9低电压供电9选用低功耗器件,接好芯片的片选脚硬件系统的低功耗设计有效利用I/O器件的待机方式可编程器件(8255,8251etc.)通信收发器器件(maxim的RS232收发器)其他可编程器件硬件系统的低功耗设计分区供电降低功耗硬件系统的低功耗设计利用I/O引脚为外部设备供电硬件系统的低功耗设计传感器分时供电嵌入式系统的低功耗设计硬件系统的低功耗设计9处理器的选择9接口器件和电路的选择动态电源管理供电电路的设计软件系统的低功耗设计动态电源管理—选择合适的工作模式1.全速工作:消耗的功率昀大2.空闲方式1.处理器的工作停止2.可以响应中断3.可以通过中断退出3.掉电方式1.不响应中断2.只能复位退出动态电源管理—动态改变CPU的时钟关闭不使用的外设降低系统的持续工作电流改变状态用电,维持状态不用电在一些机电系统设计中,尽量使系统在状态转换时消耗电流,在维持工作时刻不消耗电流。例如IC卡水表、煤气表等,在打开和关闭开关时给相应的机构上电,开关的开和关状态通过机械机构保持,而不通过电流保持,可以进一步降低电能的消耗。动态电源管理嵌入式系统的低功耗设计硬件系统的低功耗设计9处理器的选择9接口器件和电路的选择动态电源管理供电电路的设计软件系统的低功耗设计电源电路设计线性稳压(包括LDO)DC-DC线性稳压优点:电路结构简单,所需元件数量少,输入和输出压差可以很大缺点:其致命弱点就是效率低,功耗高。其效率完全取决于输入输出电压差LM7805,LM1117等等DCtoDCDCtoDC电路的特点是效率高,升降压灵活,但缺点时电路相对复杂,干扰较大。一般常见的由Boost和Buck两种电路,前者用于升压,后者用于降压关于电池供电系统使用电池的考虑工作电压范围多大?电流消耗速率为多少?是否有尺寸约束?系统将使用多长时间?可以承受的电池价格是多少?系统在什么温度范围工作?关于电池供电系统嵌入式系统的低功耗设计硬件系统的低功耗设计9处理器的选择9接口器件和电路的选择动态电源管理供电电路的设计软件系统的低功耗设计软件系统的低功耗设计1.编译低功耗优化技术2.硬件软件化3.尽量减少处理器的工作时间4.采用快速的算法5.通信系统中提高通信的波特率6.数据采集系统中尽量降低采集的速率7.延时程序的设计考虑8.软件设计成中断驱动方式9.睡眠方式10.静态显示软件系统的低功耗设计编译低功耗优化技术1.不同的指令执行的时间不同,消耗的功率不同2.编译优化分类:1.代码大小2.执行时间3.节省功率目前实现起来比较困难软件系统的低功耗设计硬件软件化只要是硬件电路,必然消耗功率方案硬件完成的工作由软件实现:信号的抗干扰处理、滤波等综合考虑例:多媒体信号解码硬件解码:CPU性能要求低软件解码:CPU性能要求高比较功耗?软件系统的低功耗设计尽量减少处理器的工作时间嵌入式系统中,CPU的运行时间对系统的功耗影响极大,故应尽可能的缩短CPU的工作时间,较长地处于空闲方式或掉电方式是软件设计降低单片机系统功耗的关键。在开机时靠中断唤醒CPU,让它尽量在短时间内完成对信息或数据的处理,然后就进入空闲或掉电方式,在关机状态下让它完全进入掉电方式,用定时中断、外部中断或系统复位将它唤醒。这种设计软件的方法是所谓的事件驱动的程序设计方法。软件系统的低功耗设计采用快速的算法数字信号处理中的运算,采用如FFT和快速卷积等,可以大量节省运算时间,从而减少功耗;在精度允许的情况下,使用简单函数代替复杂函数作近似,也是减少功耗的一种方法。使用简单的数据类型(整型/浮点型)使用查表的方法软件系统的低功耗设计通信系统中提高通信的波特率在多机通信中,通过对通信模块的合理设计,尽量地提高传送的波特率(即每秒钟串行口传送的数据位数)提高通信速率,意味着通信时间的缩短。发送、接收均应采用外部中断处理方式,而不采用查询方式。软件系统的低功耗设计数据采集系统中尽量降低采集的速率A/D转换需要消耗功率,采集的速度快,则消耗的功率多产生的数据量大,处理数据需要大量的CPU时间,消耗功率数据处理,抗干扰处理等数据的传输需要消耗功率软件系统的低功耗设计延时程序的设计考虑延时方法软件硬件降低功耗的方案硬件定时器方法定时器工作于中断方式软件系统的低功耗设计软件设计成中断驱动方式软件系统的低功耗设计使用睡眠方式许多单片机设有低功耗模式,即睡眠方式(SLEEP)。使用单片机的睡眠方式可以减少单片机的工作时间,降低单片机功耗。便携式智能仪器在较长时间不进行测量采样和数据处理时,可以让单片机执行一条“SLEEP”指令,进入低功耗模式。软件系统的低功耗设计显示方法LED显示方式静态需要的电路多电路消耗功率动态需要软件刷新扫描刷新操作消耗功率综合计算,选择方案LED的静态显示接口LED动态显示接口主要内容低功耗设计的概念嵌入式系统的低功耗设计MSP430系统的低功耗设计MSP430的发展历程MSP430系列单片机的重要特性超低功耗强大的处理能力高性能模拟技术及丰富的片上外围模块系统工作稳定方便高效的开发环境特性1-超低功耗MSP430的低功耗参数0.1uA掉电模式0.8uA待机模式250uA/1MIPS50nA的端口漏电流超低功耗的重要性MSP430的超低功耗特性时钟系统工作模式中断能力外围模块超低功耗—时钟系统保持打开的低频ACLK根据需要启动的DCODCO从启动到稳定1uS超低功耗—时钟系统超低功耗—工作模式超低功耗—中断能力超低功耗—中断能力超低功耗—中断能力超低功耗—外围模块MSP430F4XX系列时钟模块1.三个时钟源2.内部DCO,FLL3.时钟1/2/4/8分频系数可选MSP430F4XX时钟寄存器系统时钟控制寄存器SCTQCTL系统时钟频率积分寄存器0SCFI0系统时钟频率积分寄存器1SCFI1FLL+控制寄存器0FLL+CTL0FLL+控制寄存器1FLL+CTL1FLL+模块应用举例例1设:ACLK=LFXT1=32768Hz,令MCLK=SMCLK=DCOCLK=(n+1)×ACLK,并将MCLK和ACLK分别通过P1.1和P1.5输出。程序代码如下#includemsp430x44x.hvoidmain(void){WDTCTL=WDTPW+WDTHOLD;//停止看门狗SCFI0|=FN_2;FLL_CTL0=XCAP18PF;SCFQCTL=74;//(74+1)×32768=2.45MhzP1DIR=0x22;//P1.1&P1.5输出P1SEL=0x22;//P1.1&P1.5输出MCLK&ACLKwhile(1);}内部DCO=2.45Mhz,P1.1--MCLK=2.45Mhz,P1.5--ACLK=32khz根据实际连接情况,确定ACLK、SMCLK和MCLK时钟源。ACLK:ACLK:LFTX1(32768)LFTX1(32768)MCLK:MCLK:DCOCLKDCOCLK或者或者LFTX1LFTX1SMCLK:SMCLK:DCOCLKDCOCLK或者或者LFTX1LFTX1ACLK:ACLK:00MCLK:MCLK:DCOCLKDCOCLKSMCLK:SMCLK:DCOCLKDCOCLKACLK:ACLK:LFTX1(LFTX1(高频模式高频模式))MCLK:MCLK:DCOCLKDCOCLK或者或者LFTX1(LFTX1(高频模式高频模式))SMCLK:SMCLK:DCOCLKDCOCLK或者或者LFTX1(LFTX1(高频模式高频模式))ACLKACLK只能来源于只能来源于LFXT1LFXT1。。MSP430X11X1MSP430X11X1内部只有内部只有LFXT1LFXT1和和DCODCO,,没有没有XT2XT2。。LFXT1LFXT1只有工作于高频模式才需要外接电容。只有工作于高频模式才需要外接电容。MCU工作模式汇编模式下工作模式的转换C语言下工