您当前的位置:五五电子网电子知识电工技术电工文摘为低功耗应用选择正确的&miro;外围器件2 正文
为低功耗应用选择正确的&miro;外围器件2

为低功耗应用选择正确的&miro;外围器件2

点击数:7796 次   录入时间:03-04 11:45:41   整理:http://www.55dianzi.com   电工文摘
此外,由于在低速或时钟停止的环境中,动态内核处理器不能保持数据的完整性,因而应尽可能使用静态内核处理器。

工作模式

休眠和“低功耗”模式也是必须考虑的重要问题。通过减慢唤醒时间实现低功耗状态(或关闭对唤醒器件非常重要的功能)会增加功耗,而不是降低功耗。

大多数低功耗器件的休眠或空闲模式会关闭处理器和时钟,通常流耗低于一微安。然后,需要I/O中断把处理器从休眠模式唤醒。使用32kHz时钟驱动定时器或实时时钟能以更灵活的方式唤醒处理器。基于32kHz振荡器的功耗不像“深度睡眠”模式那样低,但它能以几微安的电流提供时钟功能。由于许多便携式应用需要实时时钟功能,这种改进可以让系统选用多种不同的外围器件。

需要注意的一点是,如果处理器必须使用RESET信号从停机状态唤醒,它必须运行所有硬件初始化程序。事实上,即使处理器SRAM中的内容没有改变且仍然能够寻址中断,它也将不得不重新初始化处理器外围器件,这将消耗能量。

振荡器

在通过复位唤醒时,由于稳定振荡器晶体所花费的时间不同,内部振荡器能比外部振荡器多执行将近1,000条指令。例如,使用外部振荡器的100MIP机器启动、稳定和处理指令需要的时间为1毫秒。与此相比,同一台机器仅需要1微秒时间就可以使内部振荡器全速工作。让外部振荡器稳定的时间里,内部振荡器可以完成加电,执行1000条指令,然后恢复断电状态。这一时间通常已足够找到中断地址,并恢复断电状态。那么,为什么要考虑使用外部振荡器呢?外部振荡器通常在整个工作温度范围内更准确。事实上,在低功耗应用中,嵌入式程序装置经常习惯对照外部振荡器校准内部振荡器。这是因为驱动外部振荡器并使其达到速度所需的电路比内部振荡器消耗的功率更大。

选择内部振荡器时应慎重。虽然某些内部振荡器可以在数微秒内唤醒处理器,但是,必须在经过数毫秒,当外部晶体达到稳定之后,才能以更高的速度运行,然后CPU时钟才能切换到更高的频率。例如,如果一个100MIP的处理器有一个20kHz的内部时钟,该时钟与外部振荡器的1MHz时钟同时启动,内部振荡器将仍然能够执行999条指令,而更高速度的处理器用同样的时间只能执行20条指令。

定时器

利用好定时器有助于在处理器保持待机状态的情况下实现系统处理功能。由于定时器功耗非常小,因此这有助于大大降低功耗。应该使用实时时钟模块接受32kHz计时器定时器输入和设置不同时间间隔的“警报”或中断,在无需处理器干预的情况下,使计时器计数增加。同样,应该使用影子寄存器更新和比较来自ISR的值。一旦寄存器读到有效的预编程值,即触发ISR,使处理器脱离休眠或待机状态,而不需要CPU寻找ISR地址、更新周期或比较值。

管理开销

管理开销系统监视程序、监管工作有助于防范不安全的状况,有关器件包括电压监控器和看门狗定时器。由于数字电路依赖触发器或从负到正(或相反亦然)状态的转换,因此,即使工作电压有稍小的下降,也可能会意外触发RESET条件,从而造成系统无法工作。电力减弱保护作为电压监控的一部分,一般用于确保电压瞬变不会强制处理器进入和退出RESET状态。

只要有可能,在电压监控解决方案中应采用不可屏蔽的中断(NMI)来识别电压瞬变。这种方法让用户能随心所欲地设定电压触发的门限电平,无需系统复位条件,其功耗一般比模拟-数字转换器(ADC)通道更低。

看门狗定时器监视故障情况。虽然在典型的嵌入式应用中,内嵌的系统程序器往往禁用看门狗定时器,但是在低功耗系统中,在电源电压不稳定的情况下,看门狗定时器是一种有用的工具。看门狗定时器会执行预先设定功能,例如在符合某些条件时,比如电压过低或有内存问题时,向处理器发出RESET指令。所选择的处理器应该能够生成已知的ISR,使处理器无需执行RESET而恢复联机状态;因为执行RESET,必须启动外围设备,因而会消耗更多的处理器功率。

UART通信

将一个数字时钟与另一个数字时钟精确到秒地同步是不可能的,因为每个时钟均与其内部晶体同步。在MCU驱动的系统中,低功耗模式下使用的32kHz实时时钟晶体与用于生成UART波特率的普通38.4kHz频率之间会出现类似的同步问题。因为实时时钟的32,768频率使15位寄存器每秒溢出一次,所以非常适合时间保持(time-keeping)应用。比较而言,在UART中使用相同的频率,则在典型的10位(起始位、8位数据和1个奇偶校验位)传输中保证至少有一位读取不正确。这是由于32,768Hz时钟必须除以3.4,才能得到9,600波特率。由于没有3.4这一选择,因此必须选择除以3或除以4(参见图2)。

将一个数字时钟与另一个数字时钟精确到秒地同步是不可能的,因为每个时钟均与其内部晶体同步。在MCU驱动的系统中,低功耗模式下使用的32kHz实时时钟晶体与用于生成UART波特率的普通38.4kHz频率之间会出现类似的同步问题。因为实时时钟的32,768频率使15位寄存器每秒溢出一次,所以非常适合时间保持(time-keeping)应用。比较而言,在UART中使用相同的频率,则在典型的10位(起始位、8位数据和1个奇偶校验位)传输中保证至少有一位读取不正确。这是由于32,768Hz时钟必须除以3.4,才能得到9,600波特率。由于没有3.4这一选择,因此必须选择除以3或除以4(参见图2)。


图2:9600波特传输时32Khz驱动UARTRx错误


本文关键字:暂无联系方式电工文摘电工技术 - 电工文摘