延长电池使用寿命是智能手表的首要开发考量。为达成此一目标,设计人员须选用在工作/动态模式下功耗较低,且能同时维持高性能运作的微控制器(MCU),并导入快速唤醒功能,以便让MCU尽可能处于休眠或闲置模式,进一步降低系统总体功耗。
图1 智能手表将是未来的潮流。 所谓的智能手表该如何定义呢?基本上,智能手表是设计成手表外型、可戴式的运算装置,当和智慧型手机无线连结时,可提供更多的智慧型功能。一般常见的功能包括了日历通知、电子邮件或简讯提示。若是同时还内建感应器,如加速度计或温度感测器等,智能手表就能够帮助记录与监控使用者的运动进度、表现和心跳率等。有些手表还能控制音乐、读取简讯,甚至能透过使用者手机的蓝牙低功耗(Low Energy, LE)连结,直接透过手表接听电话。
那么,对智能手表的开发人员而言,什么是关键的设计考量?在产品设计过程中,很容易会不自觉地想加进更多、更强大的功能。不过性能强大的手表应用程式,通常得搭配相对强大的处理器,而强大的处理器却往往很耗电,导致具有加分效果的性能提升,就这样被功耗抵销掉。毕竟,就算其功能再强大,谁会愿意买一个每隔几个小时就要充电一次的智能手表?
为了要延长电池的使用时间,最好的办法就是在考虑系统的心脏,也就是中央微控制器(MCU)时,选择在工作/动态模式下功耗较低的元件。
在系统设计上(图2),必须让智能手表的中央微控制器,能够在大部分时间维持在睡眠模式,而当系统必须被唤醒来执行任务时,能够不影响系统表现,并在最短的时间内被唤醒。
图2 智能手表结构图 工作/动态模式下维持低功耗
当然,设计人员希望能在不牺牲性能的前提下具有最低功耗的工作模式,然而如果只是一味降低在工作/动态模式下的功耗,也会因此降低了微控制器的运算速度,导致微控制器将花费更多时间处于工作模式,才能把任务执行完成并进入功耗更低的睡眠模式,最终反而会增加系统的平均功耗。另外大家都知道,系统的操作电压越低,越能延长电池的寿命。有些微控制器宣称工作电压可低至1.8伏特(V),但实际上,当其工作电压在1.8V时,不仅运算速度降低,同时某些周边功能可能无法正常运作,这些都不是真的能帮助系统降低功耗的技术。
目前市场上已有业者推出能在低功耗的情形下维持高性能运作的微控制器。如爱特梅尔(Atmel)的SAM4L微控制器系列,就能够在不用改变产品规格的情况下,保持低至1.68V的工作电压,并且维持最高性能,且其外围周边操作不受影响。根据费氏(Fibonacci)基准,该系列是市面上拥有最低工作/动态模式功耗(90μA/MHz)的ARM Cortex-M4微控制器。若再加以运用功率调节(Power Scaling)技术,可以进一步平衡最大时脉速度和功耗(图3)。
图3 SAM4L微控制器在工作模式下的功耗表现 除此之外,如果设计人员选用的微控制器能够提供不同的电压调节器选择,可进一步降低在工作/动态模式下的系统功耗。例如降压或开关稳压器能够在操作电压为 2~3.6V时提供更高的功率,或是线性稳压器在1.68~3.6V的范围内运作,具有较高的抗噪性,而在小于2.3V范围内调节器则可达到最高功率。快速唤醒能力攸关节能效益
前面有提到,为了要让电池维持更长的寿命,在智能手表的系统设计上,中央微控制器大部分时间必须维持在睡眠模式,因此如果能降低中央微控制器睡眠模式的功耗,将有助于进一步降低系统的总体功耗。
可是,如果总是要花很长时间从睡眠模式中唤醒系统,这并非真正的节能。设计人员的终极目标是要确保能快速将系统从睡眠模式中唤醒,并且能根据系统需求,有弹性地选择不同睡眠模式,这样一来系统就可以尽可能在深度睡眠模式中停留更长的时间,而不会出现性能上的延迟,这才是真正的节能。
如前文所提及的SAM4L微控制器系列,具有来自于picoPower技术的超低睡眠模式电流特性,可以支援四种睡眠模式:睡眠、待机、保存和备用。在所有的模式下,以第一条指令抓取的唤醒,即使在最低功耗的睡眠模式下醒来,也只需要1.5微秒(μs)的唤醒时间(图4)。
图4 SAM4L微控制器在睡眠模式下的功耗表现 该系列还具有非常灵活的唤醒配置。设计人员可使用内部的电源管理器和备用电源管理,来开启和关闭系统时脉来源,并选择唤醒来源。时脉来源由电源管理器控制,包括on-chip RC振荡器,以及振荡器和超精密数位相位锁相环(DFLL)。在睡眠、待机和保存模式下,可以选择任何来源以唤醒系统。
接下来将提及的梦游(Sleep Walking)功能,也允许周边功能在不须要系统定时器持续运行的情况下,以非同步方式唤醒系统;而在备用模式下,32kHz时脉或系统定时器,再加上通用异步收发器(UART)、外部中断或电压不足侦测(BOD)警告,便能唤醒系统。
事件系统/梦游功能 进一步降低系统功耗
事件系统(Event System)允许外围周边直接发送讯号或事件到其他周边,而毋须藉由中央处理器(CPU)。举例而言,定时器溢位(Timer Overflow)或类比比较器输出如有变化,不需要CPU即能触动类比数位转换器(ADC)转换或启动直接记忆体存取(DMA)传输。那么事件系统能解决什么问题呢?
首先,事件系统能让CPU进入更长时间的睡眠或闲置状态,提升节能效果。再者,它能让外围周边不须透过CPU即可互相通讯,因此CPU可以更集中执行非CPU不可的任务,进而提升CPU表现。事件系统能提供事件一个恒定且100%可预测的反应时间--在两个时脉周期或 40奈秒(ns)内发生反应。如果是先藉由软体程序的中断,再透过CPU来执行相同的任务,则可能需要数微秒(μs)的反应时间。此外,该系统允许多达八个周边同时平行处理,因此不须要担心中断拥塞的情况发生(图5)。
图5 在事件系统运作下,周边可不透过CPU而互相通讯。 除了标准的同步事件之外,事件系统亦支援非同步事件。非同步事件甚至可以在系统时脉未运行的情况下,在各种睡眠模式下执行。这是透过一些先进的电源管理器功能来达成的,例如梦游功能和非同步唤醒功能。
梦游功能允许外围周边透过请求模组的局部时脉,而不用系统定时器持续地运行或非同步地唤醒元件,并且可以让事件系统在各种睡眠模式下处理非同步事件。事件处理完成后,模组局部时脉的请求便会解除,让模组回到睡眠状态。简而言之,梦游功能帮助系统进一步降低功耗,不须要妥协于反应时间,或是为了降低系统功耗而免去一些跟系统安全性有关的监测功能。
接着举一个将梦游功能应用于智慧管理外部温度量测的实例。该应用须要定期测量温度,以决定它是否超过系统临界温度。如果超过,该温度读数会被储存在静态随机存取记忆体(SRAM)中,并交由CPU处理该数据;如果没有超过,则系统会继续维持在睡眠模式,CPU不会被唤醒或采取任何行动。
梦游功能让CPU在整个事件过程中保持关闭状态。首先,利用即时计数器(RTC)在固定的时间间隔下产生一个事件(测量温度),同时利用梦游功能来唤醒ADC进行温度测量,并比较该温度和预设临界值。再来,ADC确定温度没有超过临界值后,便会回到睡眠状态。接着重覆以上的程序,继续唤醒下一个ADC,量测到温度上升到临界值之上,CPU才会被唤醒。最后,DMA控制器将数据传送到SRAM以进行处理(图6)。
图6 梦游功能的应用范例 相较之下,传统的微控制器在执行同样的应用监测例子时,由于没有梦游功能,所以每一次都必须唤醒CPU来指示ADC去量测温度,以确定系统温度是否超过临界值。但大多数的情况下,测量温度都不会超过临界值,更不须要再执行什么动作,如此反覆操作将耗去很多能量。即使这是一个在多数时间都处于睡眠模式的系统,却仍然产生很大的能量损失,大幅降低电池寿命。可以从图7中很明显地比较出来,具备梦游功能的微控制器,消耗的能量远远小于传统的微控制器。
图7 MCU具有梦游功能时的功耗 完美的智能手表也许不存在,毕竟不同的人有不同需求。有些人喜欢时尚精简的手表,有的喜欢支援强大功能、带有触控大表面的手表,不过有些条件,例如延长电池寿命则是无论如何都不能缺少的。
如果设计人员能选用在工作和睡眠模式下功耗较低、能在最短的时间内从睡眠中被唤醒,同时带有独特低功耗特性,如事件系统和梦游功能等的微控制器,想要设计出不须在性能上做任何妥协即可执行强大功能的应用软体,并同时拥有持久电池寿命的智能手表,将不再是一个不可能的任务。 |