本帖最后由 feb 于 2017-1-4 10:29 编辑
典型低功耗MCU系列的比较 各大半导体公司如Freescale、ST、NXP、SiliconLabs、Atmel 、TI、Microchip等,纷纷推出适用于穿戴式医疗设备的中低端MCU系列。表1和表2将16bit和32 bit典型的低功耗MCU系列展开对比,8 bitMCU不在比对列表中。这是因为8 bit MCU已经不适合穿戴式医疗设备的发展趋势,其市场也正被ARM Cortex-M系列内核的MCU蚕食。 表1重点比较了16 bit/32 bit内核的性能差别,32bit的内核在运算效率方面全面超越16 bit 的内核,意味着当穿戴式医疗设备需要在片上执行数据处理和复杂算法时,Cortex-M系列内核的32 bit MCU更具优势。表2则将典型的低功耗MCU展开能效对比,可以发现16 bit MCU在低功耗方面的优势已不明显,以低功耗著称的MSP430系列在运行功耗和休眠功耗方面跟Cortex-M系列32 bit内核的STM32L系列相差无几。而32 bit MCU在休眠状态下的唤醒时间也能做到了10 μs以下,在休眠效率、快速响应方面有良好表现。 表1 典型低功耗内核架构的性能对比 Tab.1 The performance comparison between typical low-power architectures 注:(1)内核性能的测试结果(CoreMark Scores)以EEMBC组织公布的数据为准。 表2 典型低功耗MCU的能效对比 Tab.2 The comparison of energy-efficiency between typical low-power MCUs 注: (1) 对于表1的MCU系列具体型号的测试报告,所挑选的型号片上配置相近,Flash容量均为64 kB; (2) 常温条件+25 oC,所有外设关闭,程序从Flash运行;MCU供电电压除了PIC24的3.3 V、Nano120的3.6 V之外,其他均为3.0 V;各型号的测试结果均为当前主频下的最佳配置; (3) 休眠功耗的测试标准:片内主时钟和所有外设关闭,RTC打开,保留RAM。 综合表1和表2可见,Cortex-M系列内核的32 bitMCU在功耗水平上已经做到与传统8 /16 bit MCU相当,而在运算效率上优势明显,更适合那些对任务和算法有较高要求的穿戴式医疗设备。
3 基于Cortex-M0+内核的MCU选型分析
3.1 Cortex M系列内核的对比
Cortex-M系列中低功耗成员有M3、M0和M0+,是ARM公司针对那些对成本敏感、同时对能效有较高要求的应用而设计的。当传统的8/16 bit MCU在性能、功能上表现越来越乏力时,ARM公司于2009年推出了低成本、低功耗、高能效的Cortex-M0内核。Cortex-M0内核以优异的表现击败了传统的8bit MCU,成功杀入低端的MCU市场。在这契机下,ARM公司于2012年相应适宜地推出M0的升级版——M0+,在能效和功能上作进一步的优化和增设,以超低的能耗提供更快的任务处理能力。
从表1和2的数据可知,三者内核性能的排序为M3>M0+>M0,运行功耗的排序为M3>M0>M0+,即M0+内核的能效高于M0,运算性能仅次于M3。由于M0+在价格方面比M3有优势,故更适合于执行低成本、高能效的任务。综合可知,那些对功耗有苛刻要求、运算处理任务较复杂、且需要控制成本的设备选择M0+内核的MCU最为合适。
3.2 基于Cortex M0+内核的主流MCU系列
各大MCU生产厂商结合自身的优势对Cortex-M0+内核加以整合优化,在功耗、性能和外设方面各有所长。表3列举了市场上M0+内核的主流MCU系列,并结合穿戴式医疗设备的需求进行分析。
表3 基于Cortex M0+内核的主流MCU系列
Tab.3 The mainstream MCU series based on Cortex-M0+ architecture
注:(1) ST公司和NXP公司都建立了涵盖Cortex-M系列所有内核的产品线,Cortex-M系列MCU的中国市场在2012年达到1.68亿美元,其中ST以35%的市场份额居于首位,而NXP位居第二占有32%;
(2) Silicon Labs于2013年收购了专攻低功耗领域的Energy Micro,之后推出的Zero Gecko系列吸取了以往EFM32系列超低功耗的优点。
上述Cortex M0+内核的MCU 系列可为穿戴式医疗设备开发者提供多种选择,而具体的MCU型号要根据设备的实际需求来决定。在同一系列里,MCU的最高主频、内核效率、功耗状况都是一致的,具体型号之间的差别在于片上资源。如表4所示,STM32L0系列分为3条主要的产品线,差异就体现在一些特殊的集成外设,如DAC、USB控制器和LCD控制器。恰当地选用这些高集成度的MCU有助于减少外部芯片的个数,可降低系统成本和功耗。因此,片上集成资源的种类、数量、功耗和性能,都是决定MCU选型的重要参考因素。
表4 STM32L0系列的3条产品线
Tab.4 Three product lines of STM32L0 series
3.3 MCU系统的低功耗策略
Cortex M0+内核的MCU 系列兼具低功耗、高性能和灵活的休眠模式,为穿戴式医疗设备的开发提供了优良的平台和电气基础。然而,如何在保持高性能的情况下,将任务的整体平均功耗降到最低,将是设备开发者的重要任务。MCU系统的低功耗策略决定了设备的性能和续航时间,策略的制定需要从以下四个方面入手:
(1) 合理地控制MCU的时钟系统,针对特定的任务,选择适合系统运行的时钟频率,迅速完成复杂的任务争取更多的休眠时间;
(2) 选择恰当的休眠模式和休眠时间;
(3) 进入休眠模式时, 将未用到的外设以及时钟关闭;
(4) 优化任务的时间片,将平均功耗降到最低。
图1 展示了基于表3的Zero Gecko系列设计的动态心电记录仪的低功耗策略,MCU系统任务的理论耗电流如图2所示。其中,MCU主要在三个模式之间切换:运行模式1(EM0_1),运行模式2(EM0_2),深度睡眠模式(EM2)。平时MCU工作在EM2,高频时钟和外设关闭,耗电流为IEM2;当定时器发生中断时,MCU从EM2中唤醒,将进入EM0_1以f1主频高速运行,此时耗电流为IEM0_1,同时启动A/D进行心电信号采样,采样完毕后将数据暂存在RAM中;如果缓存的数据量没有达到阈值,MCU将直接进入EM2并定时等待;如果缓存的数据量达到阈值,则MCU切换到更高的f2主频进入EM0_2,耗电流短时间内达到IEM0_2,对缓存数据进行处理并存储到SD卡上,存储完毕后进入EM2。运行模式下使用到两个不同的主频f1和f2,分别是由A/D采样任务和SD卡存储任务对运算能力的不同需求来决定,将任务的平均功耗最优化。
图1 基于Zero Gecko系列的动态心电记录仪的低功耗策略
Fig.1 The low-power strategy of the dynamic ECG recorder based on Zero Gecko series
图2 动态心电记录仪执行不同任务下的理论耗电流曲线
Fig.2 The theoretical power consumption profile of the dynamic ecg recorder performing different tasks
4 穿戴式医疗设备的MCU选型案例
血氧饱和度的监测是了解人体心血管生理状况的重要手段,设计一款腕带式血氧饱和度监测仪,设计目标:基于反射式光电容积脉搏波的测量方法,实现无创、连续地检测人体动脉血的血氧饱和度;对脉搏波信号进行处理、分析,计算得到心率和呼吸频率这两个重要的生理参数;当用户的血氧饱和度或心率超出正常预定范围时,会自动报警提醒。
图3 腕带式血氧饱和度监测仪的功能框图
Fig.3 The function block diagram of wrist-wearable pulse oximetry
根据设计方案和目标进行系统功能规划,腕戴式血氧饱和度监测仪的功能框图如图3所示。该设备对MCU的特殊要求有:
(1) 高能效,即低运行功耗、超低休眠功耗和较高的运算性能;
(2) 低功耗的ADC,采样精度不低于10 bit,脉搏波采样频率设为200Hz;
(3) USB控制器,需要通过USB接口烧写程序或与主机通讯。
综合考虑了该设备对MCU性能、功耗以及外设所提出的要求,可以分三个步骤来进行MCU选型:
(1) 结合前文对不同内核的分析,选择低功耗、高性能的Cortex-M0+内核;
(2) 根据Cortex M0+内核MCU系列的横向比较,选择集成了低功耗12 bit ADC的STM32L0系列,满足长时间采样的需求;
(3) 考虑到带USB控制器的型号, 可以选择STM32L052C8作为设备的主控制器,从而达到在性能、功耗、成本和体积方面的最佳平衡。
在实际的MCU选型中要具体问题具体分析,根据现有的MCU系列和设备的切实需求,做出最恰当的抉择。
|