引言
近几年来,随着电子技术、信息技术的发展和数字化产品的普及,嵌入式系统被广泛应用到汽车工业、网络、手持通信设备、国防军事、消费电子和自动化控制等各个领域。同时,嵌入式系统设计中的功耗问题也正受到普遍的关注。嵌入式系统一般是由电池来供电的,系统采用低功耗设计,不仅能够延长电池的寿命,而且可以降低系统的热耗,对提高可靠性与稳定性有着重要意义。在这种应用背景下,Infineon、Freescale、Atmel、TI等知名单片机生产厂家纷纷推出功能强大的低功耗单片机
1 单片机功耗的来源
单片机是一种集成度较高的芯片。通常,集成电路的功耗分为静态功耗和动态功耗2部分。静态是指“0”和“1”的恒定状态,当电路没有状态翻转时产生的功耗为静态功耗;动态是指“0”和“1“的跳变状态,当电路状态翻转时产生的功耗为动态功耗。
目前绝大多数的单片机都采用CMOS工艺。CMOS电路为电压控制型,一般情况下静态功耗极小。它的动态功耗由瞬时导通功耗和电容充放电功耗2部分组成。在单片机运行时,开关电路不断地由“1”变“0”,由“0”变“1”,内部电容不停地充放电,要实现开关电路快速关断和电容的快速充放电,需要比较大的动态电流[3]。因此CMOS的动态功耗要远大于静态功耗,是单片机功耗的主要来源。动态功耗主要受工作频率和工作电压的影响。
通过对单片机功耗来源的分析,可得出结论:要降低单片机系统的功耗,可以采取降低工作频率、降低工作电压和尽可能使电路处于静态的方法。事实上,现有的低功耗单片机也都提供了灵活的时钟方案、电源管理方案,以及低功耗工作模式,在硬件上为降低工作频率、降低工作电压和使电路处于静态工作状态提供了可能。
2 TLE7810简介
TLE7810是Infineon公司推出的一款高集成度低成本智能功率芯片,主要应用于汽车工业。其功能模块图如图1所示。它集成了1个支持片上调试功能并且与标准8051单片机兼容的8位微控制器XC866,以及1个SBC(System Basis Chip,系统基础芯片)。这样的结构设计可以满足汽车工业尽乎苛刻的应用条件。同其他厂家的微控制器类似,Infineon XC866也提供了灵活的时钟方案、电源管理方案和低功耗工作模式,本文对这些功能就不再多做介绍,而是着重介绍TLE7810特有的SBC的低功耗设计方案。
从图1中可以看出,SBC配备1个LIN收发器、1个低压差电压调节器、2个用于驱动继电器的低边开关、1个用于驱动LED的高边开关、1个霍尔传感器电源、5个唤醒输入,以及1个标准的16位SPI(Serial Peripheral Interface,串行外设接口)接口等。通过SPI接口,XC866可以发送1个16位的命令来控制SBC的运行, SBC同时向XC866回复1个16位的数据,指示SBC当前的运行状态。
3 SBC的低功耗设计方案
3.1 SBC集成的外设
SBC不仅将多个外设集成到1个芯片内部,而且可以通过SPI接口控制这些外设的打开与关闭,根据实际应用情况,可以灵活地控制这些外设,以达到降低功耗的目的。
① LIN收发器。可以通过SPI命令将SBC的工作模式设置成“LIN Sleep”模式。在这个工作模式下,LIN收发器的内部上拉电阻被关掉,以此来禁用LIN收发器,这样就能够减小一部分电流消耗。禁用的LIN收发器可以随时通过主节点或其他从节点的LIN消息来激活。
② 低压差电压调节器。可以通过SPI命令将SBC的工作模式设置成“Sleep”模式。在这个工作模式下,该电压调节器被关闭,以停止对微控制器供电,从而使系统进入休眠状态,将功耗降到小。
③ 高边开关。高边开关可以直接驱动LED。在不需要使用LED的场合,可以直接通过SPI命令将该开关关闭。
④ 霍尔传感器电源。该电源可以直接为霍尔传感器供电,驱动霍尔传感器正常工作,也可以为其他一些设备,比如运算放大器供电。在不需要使用霍尔传感器的场合,可以直接通过SPI命令将该电源关闭。
3.2 SBC的省电模式与唤醒测试
SBC可以在多个工作模式下工作,根据实际应用情况,可以灵活地进行工作状态的切换。SBC提供了2种省电模式,“Sleep”模式和“Stop”模式。工作在这2种模式下,可以极大地降低系统的功耗。
3.2.1 SBC Sleep Mode
可以通过直接修改SPI命令来进入该工作模式。在这个工作模式下,LIN收发器以及所有的内部开关都被关闭,同时内部的电压调节器也被关闭,以停止对微控制供电。通过这种方式可以将系统的功耗降到小。可以通过5个唤醒输入引脚上的电平跳变或者LIN消息来退出该模式,将系统唤醒。被唤醒后,内部的电压调节器将自动激活,微控制器将产生1个复位信号,将系统复位。图2为“Sleep”模式的测试波形。其中,曲线1为唤醒输入引脚MON4的波形,曲线2为复位引脚RESET的波形。在“Sleep”模式下,MON4引脚的输入为12 V高电平,RESET引脚输出0 V低电平。当MON4引脚的电平发生跳变,由高电平变为低电平后,RESET引脚产生1个5 V高电平的复位信号,将系统唤醒并复位。从图中可以看出这段唤醒时间持续约9.5 ms。根据进一步的测量,在该模式下,系统的静态电流约为9 m
3.2.2 SBC Stop Mode
需要先将XC866的工作模式设置成省电模式,再修改SPI命令才能进入该工作模式。在这个工作模式下,LIN收发器以及所有的内部开关也都被关闭,但是并不关闭电压调节器,而是用微弱的静态电流对微控制器供电,微控制器同时停止执行指令。可以通过5个唤醒输入引脚上的电平跳变或者LIN消息来退出该模式。图3为“Stop”模式的测试波形。其中,曲线1为唤醒输入引脚MON4的波形,曲线2为输出引脚P0.5的波形。在“Stop”模式下,MON4引脚的输入为12 V高电平,P0.5引脚输出0 V低电平,当MON4引脚的电平发生跳变,由高电平变为低电平后,将系统唤醒,然后马上让P0.5引脚输出5 V高电平。从图中可以看出这段唤醒时间持续约265 μs。根据进一步的测量,在该模式下,系统的静态电流约为30 mA。与“Sleep”模式相比较,该模式不仅能够极大地降低系统功耗,同时因为没有关闭微控制器,能够更快地将系统唤醒,而且唤醒后不产生复位信号,直接从停止的指令位置继续执行。
4 TLE7810低功耗方案的应用
TLE7810的一个具体应用是电动车窗控制器。基于TLE7810的电动车窗控制器的硬件结构框图如图4所示。其中,高边开关(MON5引脚)为按键背光灯供电,霍尔传感器电源(Supply引脚)同时为霍尔传感器和运算放大器供电。
MON5引脚与Supply引脚的输出电平由SPI命令直接控制。当控制车窗升降的4个按键(MON1~MON4)未按下时,通过SPI命令控制MON5引脚输出低电平,按键背光灯灭;当有按键按下时,通过SPI命令控制MON5引脚输出高电平,按键背光灯亮。当电机处于停止状态时,通过SPI命令控制Supply引脚输出低电平,关闭对霍尔传感器与运算放大器的供电。霍尔传感器是在电机运转时测量电机的转速与转向的,运算放大器用来对电机电流进行采样放大,因此在电机处于停止状态时这两个外设都没必要工作,关闭对它们的供电在一定程度上可以降低功耗。
当后门侧车窗在没有收到任何由后车门按键发出的控制命令,也没有收到任何由司机侧车门通过LIN总线发出的命令时,可在延时一段时间后,直接通过SPI命令让系统进入“Sleep”模式。车窗控制器在正常工作模式下,系统电流约150 mA,而在该模式下,TLE7810内部的电源模块停止对所有负载供电,系统电流仅为9 mA,将控制器的功耗降到小。休眠后,若司机侧或者后门侧按键重新发出命令,可将唤醒系统,进入正常工作状态。
5 总结
本文分析了单片机功耗的来源,以Infineon TLE7810单片机为例,研究了TLE7810特有的SBC的低功耗设计方案,并结合具体电动车窗控制器的例子,简单阐述了TLE7810低功耗设计方案的实际应用。在复杂的实际应用中,还需要综合考虑系统硬件设计相应的软件,结合具体的应用场合,选择合适的低功耗设计方案,以达到降低系统功耗的目的。