精确的测量是优化能源效率的第一步,同时将尽可能多的数据处理转移到专用硬件模块可以大大减少电量消耗。
上篇文章,我研究了与功耗有关的艰涩术语,以及如何降低功耗。这一次,我将研究如何在联网的智能设备中优化能源效率,第一步就是精确的测量。
要准确测量能耗,需要比简单的安培计更有能力的设备。因为安培计在电流不断变化的情况下无法显示准确的测量数字。
访问我们关于家庭和建筑自动化的资源页面
功率分析仪价格昂贵,但也有替代方案
如果您有一个积分时间很长的万用表,那么就可以做到在不断变化的电流下显示正确的结果,但积分时间必须长于您要测量的多个周期。最好的选择仍然是专门为进行这种测量而设计的功率分析仪。大型实验室仪器供应商通常会有一个高分辨率、高精度的分析仪,但它们相当昂贵,高达1万美元。
许多低功耗MCU供应商已经提供了低成本的解决方案,允许开发人员在开发阶段使用。这些设备无法提供与实验室工具相同的精度,但可以将误差百分比降到个位数,这足以准确地得出合理的能耗和电池续航估计数据。
专用硬件模块
优化CPU使用的能耗是提高系统能效的关键一步。现代CPU非常灵活,通过编程,您可以让它做任何您想做的事情,但即使是最高效的CPU架构也无法像专用硬件模块那样高效。 嵌入式系统的一个常见情况是需要执行各种小型任务,其他时间只是等待。如果您使用CPU来处理这个问题,那么您有两个基本的选择。一种方式是让CPU任务之间循环等待;另一种方式是休眠,只有在需要时才唤醒执行。
由于CPU通常是系统中最耗电的设备之一,第一个选项将消耗大量的电量,而没有做什么有用的事情。在等待时降低时钟速度将改善这一点,但这将降低工作时的效率,因为CPU在全速运行时通常效率最高。使用第二种方法将导致CPU周期性启停,这通常是一种更好的方法,但每次必须从低功耗状态再次唤醒CPU时,仍然会损失一些电量和时间。
如果能够在专用硬件上完成所有较小的控制操作,并且只有在有数据需要处理时才唤醒CPU,这将极大地提高功效。
找到合适的平衡点
在使用专用的不灵活但高能效的硬件和更灵活但低能效的CPU之间进行选择非常重要。在更现代的MCU正通过增加硬件加速功能来改善功耗。
Nordic nRF系列芯片使用DMA进行所有数据传输,并有一个称为PPI的硬件控制系统在硬件模块之间发送控制信号。与无线电模块一起使用,你可以在运行蓝牙连接时,让CPU在大部分时间处于低功耗模式。
而没有硬件加速功能的系统,其CPU通常会一直运行以控制无线电模块,从而导致能耗增加。这也意味着,由于相同的作业需要更多的时间,峰值功耗较低的系统可能会有更高的总体能耗。
硬件加速功能可以优化CPU的效率,而不是妥协于在高速运行的同时允许慢操作。您可以允许CPU被唤醒,尽可能快速有效地进行计算,然后回到低功耗模式。
新型基准测试:帮助您在复杂因素影响下进行功耗评估
专用硬件以及CPU调度策略都会影响功耗的评估,这种复杂性的增加催生了新型的基准测试(Benchmarking)。例如,EEMBC 是一个基准测试领域的行业联盟,他们原本多年来一直也在领导着Coremark Benchmark,也就是大家常说的 CPU (中央处理器)性能基准测试。Coremark被广泛用于测试CPU性能,但它只测试性能。
最近,EEMBC(嵌入式微处理器基准测试联盟)公布了更多与功耗相关的基准。ULPMark Core profile的目标是低功耗应用,这些应用会在运行时穿插低功耗模式。这一基准测试正通过ULPMark-PeripheralProfile进行扩展,外设将被用来模拟一个更完整的系统。还有一个IoTMark基准测试正在进行中,其中将添加无线连接来模拟终端节点。
由于仅仅读取数据表中的mA数字不再那么准确,这些基准测试能够更方便地在低功耗设备上进行同类比较。虽然这样的基准测试是有用的,但基准测试解决方案越接近您的实际应用它们的价值将越高。
一句忠告
最后总结,由于数字设备中的各种低功耗优化设计的存在,单纯使用数据表中标注的电流mA值来评估功耗已经变得越来越困难。如果有人告诉您可以这样做,那就要小心了!您可能会发现,要么设备没有优化到应有的程度,要么您没有被告知完整的故事。