STM32L水下记录仪的软硬件低功耗设计
2016-08-31綦声波王圣南刘群
綦声波,王圣南,刘群
(中国海洋大学 工程学院,青岛 266100)
STM32L水下记录仪的软硬件低功耗设计
綦声波,王圣南,刘群
(中国海洋大学 工程学院,青岛 266100)
以水下记录仪为例,从硬件和软件两方面研究了基于STM32L系列微控制器的低功耗设计技术及本仪器所采用的方法。对系统组成及功能进行分析的基础上,设计了记录仪的低功耗策略。在硬件方面选用低功耗、高效率器件,并采用供电控制方法。在软件方面采用层次化、标准化的软件架构,减少代码冗余量。最后通过电压和电流对照实验,证明了本系统低功耗设计的有效性。
水下记录仪;STM32L;低功耗设计
引 言
嵌入式系统的低功耗设计是与其应用背景息息相关的,因此建立在实际应用基础上的低功耗设计才有意义。海底电磁采集站是海洋石油探测设备,本文所研究的水下记录仪是海底电磁采集站的重要组成部分,它自成一体,内置MCU,可以将采集的姿态、温度、盐度和深度等数据存储在CF卡中,并在回收后导出数据,作为电磁场数据解算的重要依据。
水下记录仪在海底工作,其最大工作深度达4 000 m,因此只能依靠内置锂电池供电;考虑到外壳抗压能力和诸多因素,锂电池的空间和容量有限,一旦电池电量耗尽,记录仪便会失去作用;海底电磁采集站要检测的海底电磁信号均为微弱信号,水下记录仪内部的电流变化会引起电磁辐射,功耗越大,辐射能量越大,对海底微弱电磁信号的影响就越大;此外,水下记录仪更换电池过程繁琐,降低系统功耗可以延长设备的使用寿命,降低电池更换的频率。因此,低功耗设计是水下记录仪设计中必须考虑的重要因素。
水下记录仪的低功耗设计,必须从系统的角度出发,对硬件和软件进行精细化设计,在实现其基本功能的基础上,尽量降低功耗,以满足系统性能和低功耗两方面的要求。
1 系统组成原理及功耗分析
水下记录仪系统由主控制器、采集模块、存储模块、电源模块和上位机组成,如图1所示。其中,主控制器负责整个系统的运行和管理;采集模块分为TCM传感器和CTD传感器两部分,分别用来采集基站姿态和周围海洋物理参数;存储模块利用CF卡来存储传感器采集的数据;电源模块是锂电池及电源控制电路,为整个系统提供动力;上位机主要实现参数配置和数据回收。
图1 系统架构
由于系统在水下正常工作时不需要上位机,只是在数据回收时利用上位机导出数据,因此水下记录仪的功耗主要集中在以下几个部分:
① 主控制器:主控制器的功耗是由其本身特性及工作模式决定的。
② TCM和CTD传感器:在数据采集和命令传输过程中需要耗电。
③ CF卡的读写: CF卡的读写均耗电,其中写状态耗电大于读状态耗电。
为了达到低功耗的目的,水下记录仪的外设以队列的方式周期性地工作。由于各模块电源相互独立,方便主控制器进行电源管理,因此在某一时刻只开启TCM传感器的电源,关闭其他部件的电源,下一时刻则使CTD传感器工作,其他外设不工作,这样就可以达到降低功耗的目的。
2 硬件低功耗设计
在嵌入式系统的低功耗设计过程中,硬件设计是必不可少的一部分。几乎所有系统功耗都集中于硬件平台,所谓软件低功耗也是通过硬件才能实现,因此降低硬件平台的功耗是实现低功耗的基本所在。但是,硬件器件本身的功耗与加工工艺密切相关,要达到降低功耗目的,就要从器件选型和硬件电路形式等方面入手。
2.1单片机选型
ST公司的STM32系列32位微控制器在嵌入式领域得到了广泛应用,其基于ARM Cortex-M3内核,具有较高的数据处理能力。水下记录仪采用STM32L151作为主控芯片,不仅兼顾STM32系列微控制器的功能,而且还具有更优良的低功耗特性,是高性能、低功耗应用领域的最佳选择。STM32L151采用EnergyLite超低功耗平台,通过6个超低功耗模式能够在任何设定时间内以最低的功耗完成任务。其各模式下的功耗及唤醒条件如图2所示。
图2 STM32L151的低功耗模式及唤醒条件
与其他单片机相比,STM32L151进入低功耗响应的时间更短,电流更小,正常运行模式下的功耗仅为214 μA/MHz。与低功耗单片机MSP430系列相比,STM32L151单片机不仅运算速度更快,适用于处理大数据,并且待机功耗更低。
在水下记录仪的设计中,采用睡眠模式和待机模式相结合的方法,以达到低功耗设计的目的。在睡眠模式下,可由任意中断或事件唤醒,控制器功耗最低可达到4.4 μA;在待机模式下,只能由外部复位或WKUP唤醒,控制器最低功耗可达到0.9 μA。通过上位机软件或定时器可以使系统进入不同低功耗模式,如系统在运行过程中,在空闲时进入睡眠模式,通过定时器唤醒;在运输过程中,利用上位机设置其进入待机模式,通过复位唤醒。这样就有效降低了系统功耗。
2.2电源转换芯片选择
记录仪所用锂电池充满后的供电电压约为16 V,主控器和存储模块需要3.3 V供电,TCM传感器和CTD传感器需要5 V供电,因此需要有电源转换芯片将电池电压转换为系统所需要的3.3 V和5 V。相比较线性电源芯片,开关电源芯片从原理上更有优势,但是必须兼顾两个原则,一是转换效率高,二是静态电流低。设计中选择了Linear公司的电源芯片LT3990,它与常用的开关电源芯片LM2575的参数对比如表1所列。
表1 LT3990与LM2575参数对比
由表1可以看出,与LM2575相比,LT3990具有转换效率高、静态电流小和具有宽范围可调开关频率等优势。除此以外,LT3990只需要改变特定电阻的阻值就可以输出3.3 V或5 V电压,电路兼容性强。
2.3组件电源控制
电源模块采用分区/分时控制,每个模块都有独立的电源控制电路,由单片机控制,即分区控制;在某一时刻只有一个模块的电源开启,其他电源关闭,即分时控制。
系统采用的电源开关电路如图3所示。当需要开启电源进行工作时,只需将CTRL置高电平,则Q2会导通,Q1的栅-源之间存在负电压并且大于其导通阈值,促使Q1导通,电压由POWER_OUT端输出;相应工作完成后,将CTRL置低,则所有的MOS管都处于关断状态,极大地降低了系统功耗。
图3 电源控制电路模型
3 软件低功耗设计
在嵌入式系统中,底层硬件的电路状态通常由软件指令驱动,间接地导致了系统能耗的产生。软件功耗与系统程序架构、指令周期和软件算法等密切相关。因此在低功耗嵌入式系统的软件开发过程中要尽量减少软件代码量,精简冗余代码,对程序结构进行优化。此外,软件设计还应该遵循标准化、模块化和层次化原则,一方面可以优化软件架构,另一方面可以减少代码重复率,降低系统功耗。
3.1程序架构
嵌入式系统的软件执行效率与其架构密切相关,水下记录仪系统的软件开发采用层次性和标准化的设计方法,减少代码冗余量,提高程序的重用率,简化程序的调试过程,缩短项目开发周期,同时增强了软件可移植性。水下记录仪的软件架构如图4所示,程序设计采用自顶向下的设计方法。
图4 系统软件架构
首先分析系统整体结构,然后分析各模块的功能,最后由软件具体实现。水下记录仪的整个软件架构包括应用层、物理层和驱动层。应用层是整个程序的最顶层,是处理数据和实现通信的关键所在;物理层定义了接口函数,可以利用封装库实现中断管理以及对单片机运行模式的控制;驱动层是整个嵌入式程序运行的基础,是连接硬件与软件的桥梁。
3.2应用层设计
为了达到系统低功耗和稳定性的要求,应用层采用模块化和状态机的设计方法。如图4所示,应用层包括主程序和中断处理程序两部分,其中主程序有3个状态。系统启动首先进入工作状态,在空闲时会进入睡眠状态,在睡眠状态下关闭所有外设电源,通过定时器唤醒进入工作状态,继续下一个流程;在设备运输过程中,系统不需要工作,可以通过串口指令使其进入待机状态,同样关闭所有的外设电源,可以通过外部复位和串口指令使其进入工作状态。
3.3物理层设计
在水下记录仪的软件设计中物理层主要是中断接口函数和CF卡读写函数,如图4所示。为了降低系统的功耗,单片机以中断方式工作,在系统空闲时进入等待模式或停止模式,同时关闭通信接口和读写接口;而在查询方式下,单片机必须不停地访问I/O 寄存器,这会带来很多额外的功耗。因此利用中断方式代替查询方式可以减少单片机的工作量,降低系统功耗。CF卡读写函数可以直接以寻址方式访问寄存器,提高了软件执行效率,在一定程度上降低了系统功耗。
3.4驱动层设计
驱动层是嵌入式系统中不可或缺的重要部分,其作用是为上层程序提供硬件设备的操作访问接口,并且在设备启动时对硬件进行初始化。严格意义上的驱动层包括硬件抽象层、板级支持包和驱动程序。在水下记录仪的软件设计中,将驱动层定义为连接软件和硬件、对硬件进行配置和管理的程序段,包括GPIO端口配置、引脚分配和电源管理等。为了尽可能地降低单片机的功耗,将未使用的单片机引脚配置为浮空输入,避免了灌电流的产生。驱动层最主要的功能是对组件电源实现控制,在同一时刻只允许一个外设工作,关闭其他外设的电源和接口,以降低系统的功耗。
4 实验及分析
4.1实验条件和方法
为了验证系统低功耗设计的可靠性和可行性,在同一环境条件下设置了两组对照实验,并且每组实验分别进行电压和电流的测试。对照组中各模块电源始终开启,微控制器一直处于工作状态,而测试组中各模块电源由微控制器控制,并且在系统空闲时,微控制器会进入睡眠状态。
(1) 电压测试
系统硬件集成了电压检测电路,可以检测当前电池的电压值,并且将电压值及其时间信息存入CF卡中。在实验中,每分钟记录一次当前时间和电压值。
(2) 电流测试
利用万用表测量系统消耗的电流,将万用表分别串联在两组实验的系统回路中,每次测试一次系统子状态(工作状态下的每个状态)的电流值,并且记录下来。
4.2数据分析
利用MATLAB将采集到的电压值进行日平均处理,然后绘出两套设备一周内的电压变化曲线,如图5(a)所示,由曲线可以看出,测试组的电压变化较为平缓,而对照组的电压下降很快。
根据万用表测得的电流数据,描绘出电流变化曲线,如图5(b)所示。可以明显看出对照组的电路消耗较大,而加入低功耗设计之后,测试组的电流消耗明显降低,符合预期设想,达到了低功耗设计的目的。
图6 电压和电流变化曲线对比
从数据分析和实际测试效果来看,经过低功耗设计的水下记录仪可以连续正常工作20天以上,完全达到了系统设计的目标。
结 语
低功耗是嵌入式系统设计中不可忽略的一项重要指标,也是衡量和影响一个嵌入式系统性能的重要因素。本文针对水下记录仪的低功耗问题进行了深入研究,总结出嵌入式系统的低功耗设计应遵循的基本原则,并根据理论分析设计了一套实施方案,实验结果证明了该方案的可行性和有效性。本文所论述的低功耗设计技术和方法同样适用于其他基于单片机的嵌入式系统。
[1] 肖星.STM32L152和SI4432的无线网络系统设计[J].单片机与嵌入式系统应用, 2011(8):48-51.
[2] 刘啸滨, 郭兵, 沈艳,等.基于ARM处理器的嵌入式软件能耗统计模型[J] .电子科技大学学报, 2012, 41(5):770-774.
[3] 张炜, 韩进.低功耗嵌入式系统的分析与应用[J] .计算机系统应用, 2009,18(11):109-113.
[4] 赵伟国, 李文军, 黄震威.基于MSP430的低功耗热能表的研制[J] .中国计量学院学报, 2008,19(2):142-145.
[5] 沈晓昱,王晓娜,李文军.基于MSP430的低功耗温度采集报警系统的实现[J] .工业仪表与自动化装置,2009(3):31-33.
[6] 谢敏.基于MSP430的低功耗仪表系统设计[J] .微计算机信息,2007,23(22):142-144.
[7] 耿玉茹,黄世勇.基于MSP430的多功能低功耗流量计硬件设计[J].自动化与仪器仪表,2010(6):93-94.
[8] 辛凯,张喜验,綦声波,等.基于STM32的海洋环境数据采集系统设计[J].山东科学,2014,27(2):8-12.
[9] 文桦,张亚军.嵌入式系统低功耗设计研究[J].现代电子技术,2009,32(22):20-22.
[10] 周宽久,迟宗正,西方.嵌入式软硬件低功耗优化研究综述[J].计算机应用研究,2010,27(2):423-428.
Software and Hardware Low-power Consumption of Underwater Recorder Based on STM32L
Qi Shengbo,Wang Shengnan,Liu Qun
(College of Engineering,Ocean University of China,Qingdao 266100,China)
In the paper,taking the underwater recorder as an example,the low-power consumption technologies and methods in hardware and software based on STM32L series microcontroller are researched.Based on the system composition and function analysis,the low-power strategy is achieved.In the hardware,the low power and high efficiency components are adopted,and the power supply control method is used.In the software,the hierarchical and standardized architecture is used to reduce the redundancy codes.Finally,the control experiment of voltage and current proves the effectiveness of the low-power consumption design.
underwater recorder;STM32L;low-power consumption design
TP202
A
(责任编辑:杨迪娜2015-10-08)