您现在的位置是:首页 > 消费电子 > 技术解析

基于嵌入式系统的低功耗软件特征及其功能实现

时间:2018-02-08 来源: 关键字:嵌入式   测试   

引言

本文引用地址: http://power.21ic.com//ce/technical/201802/59850.html

低功耗是嵌入式电子产品必须具备的一个关键特性,在硬件技术飞速发展和日益完善的时候,已经很难有功耗方面的突破了。所以现在降低产品功耗主要是依靠软件来处理,必须依靠软件让整个系统在各个时候电流达到最小。不管是操作系统、BIOS控制程序还是外设驱动程序,这些程序将决定了最终产品的功耗水平,因此在开发时必须加以考虑。本论文将以智能电话为例,介绍一种通过软件降低功耗的方法,可供嵌入式设计工程师们参考。实现省电降低功耗的方法有很多,本文不可能面面俱到,将主要介绍软件程序如何控制物理层进行省电。

具体实现措施

系统描述及设计思想

目前国内智能电话的数字多媒体解决方案一般通过基于ARM7等内核的基带嵌入式处理芯片外接多媒体处理芯片来实现。嵌入式处理器是硬件系统的核心,运行功耗占系统功耗的大部分。目前,嵌入式处理芯片一般采用RISC体系结构,通过简化指令设计、引入流水线技术、指令预取、大量寄存器操作和高速缓存等技术提高运行效率,并采用低电压工作模式以降低运行功耗。嵌入式处理芯片一般为应用开发提供了三种工作模式:运行模式(Run)、空闲模式(Idle)和休眠模式 (STandby)。运行模式即正常工作模式,CPU全速运行;空闲模式时CPU是静态的,但LCD刷新电路和晶振都工作。在不同运行模式下,处理器工作时功耗数值差别较大;以Cirrus Logic公司EP7211(ARM7核)嵌入式处理器为例,开发手册中写到,在18MHz工作频率下,运行时消耗电流是20mA,空闲时消耗电流是 6mA,而休眠时消耗电流300mA。

本嵌入式产品系统(智能电话)中的基带嵌入式处理器芯片将采用展讯的SC6600芯片平台,多媒体芯片则采用广达的QCP1880芯片平台,音频编解码芯片采用WolfsON 8750芯片,LCD采用HIMAX8309。作为手机产品,电池一般在800~1200mA时左右,待机要求80小时以上,这就要求系统在待机状态时候的电流在10mA以下,关机后的电流在mA级以下。SC6600在睡眠模式下一般有3~5mA左右电流,QCP1880在睡眠模式下一般会有10mA左右电流,断电后在200mA左右,音频部分在空闲模式大概有270mA,在待机时SC6600的3~5mA固有电流没办法省掉,所以QCP1880必须断电。

低功耗设计的基本思想是:让系统各个部分在需要的时候才处于工作状态,其他时候处于各部分的省电状态。大部分的嵌入式处理器都具有正常工作模式和省电工作模式,最常用的是空闲模式,此时处理器内核指令执行部分关闭,时钟频率降低,空闲模式比处理器执行指令时的功耗要小得多。空闲模式一个主要特点是其进入退出基本上不需要额外开销,通常一个或几个指令周期能完成。外设部分硬件一般也有省电处理设计,软件主要是控制外设在没有工作时处于省电状态,甚至关掉整个外设,在需要时再挂上。

功能设计

在大体上,本系统省电处理主要分为三块:基带芯片(SC6600),普通外设(能很方便地在使用时打开,不用时关掉的设备,如LCD等),多媒体芯片(QCP18800)。

*基带芯片(SC6600)的处理:

由于很多中断都能把处理器从空闲模式中唤醒,所以采用智能等待这种模式。让处理器平常处于空闲模式,把随机事件和实时要求比较高的都挂在中断上,当事件发生处理器能很快被唤醒,处理这些事件。其他有规律的事件和实时性要求不高的用定时器去进行扫描。这种等待机理应用很普遍,现今大多数PDA和智能电话都是由具有空闲模式功能的处理器和操作系统控制,处理器只有在有用户操作或有任务处理时才处于正常工作状态,其他时候都是处于空闲(SLEEP)状态,这样最大程度提高电源效率。例如,在用手机看电子书时,处理器处于空闲状态,当用户翻页或其他操作(按键、触屏等)时,处理器将被唤醒处理相应的操作,处理完又进入空闲状态。

对于CPU的处理,后台起一个线程监控系统CPU的使用情况,当CPU处于空闲状态时,且系统其他模块也允许CPU 睡眠的时候,CPU立刻进入睡眠模式。

基带芯片的处理流程图见图1。

 

 嵌入式系统的低功耗软件设计

 

图1 基带芯片的处理流程

*普通外设的省电处理:

除LCD 和背光外,其他外设在CPU进入睡眠模式之前被关掉。LCD和背光用做用户的操作界面需要的是友好性,所以让用户可以设置。在用户设定的时间用完后自动熄灭。其他外设如音频模块,在没有声音时就关闭,需要播放声音时再打开。音频模块本来有睡眠模式,但其电流没达到要求,所以断开了其电源让它进入断电模式,这里有个缺点是,以前初始化和后来设置好的参数就会丢失,需要在打开初始化时重新设置(浪费些资源记录它的状态)。LCD及背光处理流程图见图2。

 

 嵌入式系统的低功耗软件设计

 

图2 LCD及背光处理流程图

*关于多媒体芯片(QCP1880):

(1) VDD( Power for Operaon Mode Module);(2)IOVDD (Power for All IO Module);(3) VDD_ON( Power for ByPass Mode Module)。说明:1.切断VDD和保持PDEN为低,QCP1880耗电将低于200mA。2. QCP1880进入IDLE(空闲)状态,耗电在10mA左右。3. QCP1880进入最省电状态后,其GPIO口不能保持。如果进入这种状态后,要让GPIO口保持高,则外部要通过上拉电阻接到IOVDD,如果要 GPIO口保持高低,则外部要通过下拉电阻接到地。4.切断VDD和保持PDEN为低后,QCP1880里的程序将会丢失,重新装载的时间比较久 (500ms左右)。

在应用方面芯片主要功能是:MP3/MIDI/AAC/AMR/MP4回放;AMR、MP4录制;拍照和图片回放;USB/UDISK;GPIO接口;CODEC(声卡驱动);SD卡文件系统。

该芯片在待机时,电流为10mA,切断主电源电流能下降到mA级。工作时,电流较大,且根据功能的不同而不同。多媒体芯片能够自动到待机状态。不能达到要求,必须要让其进入断电状态。又因为涉及模块比较多,所以不能简单的直接关闭QCP1880。针对于本嵌入式系统不能随意切断QCP 电源的原因,所以采用了查询的方法。即在CPU进入睡眠模式之前会查询QCP1880的状态,当LCD和背光都是熄灭的状态下,会切断QCP1880的主电源。(因为LCD部分电流较大,且频繁下载QCP的效率低下,所以在LCD和背光都亮时不会切断QCP的主电源)。

 

 嵌入式系统的低功耗软件设计

 

图3 QCP1880的电源由三组电源组成

在唤醒后同样有3类,其中唤醒CPU和普通外设的流程比较简单,所以略过。唤醒QCP存在一个下载的过程(切断电源时,QCP内部的代码已经丢失),如下载完全功能的版本需要的时间比较长,在一些对时间要求严格的地方有些问题(如按键时指示灯的响应,指示灯是用QCP1880控制的)。这里采用的是先下载一个比较小的版本,完成那些需要快速响应的操作,然后再下载完全功能的版本,当然这跟省电的关系不大,只是省电引起的一个小问题。值得注意的是此处需要 QCP在切换版本时GPIO能保持不变。唤醒后,系统一般会先调用QCP GPIO的功能,每个QCP 的API都有调用QCP_LOCK();所以在这里进行装载工作。在处理上,系统也分了3类来处理这些外设,其中基带芯片部分和一般外设一类,LCD处理一类,QCP芯片部分处理一类。基带芯片部分的处理和LCD的处理完全独立,LCD会影响QCP芯片的处理。QCP的处理流程图见图4。

 

 嵌入式系统的低功耗软件设计

 

图4 QCP的处理流程图

部分接口函数详细代码设计

由于通过控制各个模块的时钟频率以及电源开关可以达到省电效果,比如说SD存储器的开关,不用SD存储器的时候就可以关掉,或是不需要高速存取的时候,就可以把SD存储器的频率降低,以求省电。下面以LCD模块的代码为例来说明LCD省电的详细思路。其他模块的代码设计思想与其一致,这里不再赘述。

#define POWER_SAVING_ME (60*1000) // 间隔时间

#define LCD_CONTROLLER_POWER 0x22400000 //LCD控制寄存器的地址

extern unsigned int System_me; //全局变量存储系统时间

unsigned int Last_Keystroke_me; //最后的触发事件的时间

void Sys_SetAlarm(unsigned int T); //设置当前任务时间

void User_Press_A_Key(void) //当有外部事件触发将调用此函数

{ if(*(unsigned int *)(LCD_CONTROLLER_POWER) == 0) {

*(unsigned int *)(LCD_CONTROLLER_POWER) = 1;

}

}

Void User_Input_Task(void) //当有触发事件到来执行该函数

{

static unsigned int previous_key_time;

previous_key_time = Last_Keystroke_Time;

while(1) {

Sys_SetAlarm(POWER_SAVING_TIME);

if(previous_key_time == Last_Keystroke_Time) {

/*一分钟内没有任何外部事件触发,将关闭LCD */

*(unsigned int *)(LCD_CONTROLLER_POWER) = 0;

}

else

previous_key_time = Last_Keystroke_Time;

}

}

省电性能测试总结

 

 嵌入式系统的低功耗软件设计

 

图5 整个多媒体芯片系统的转化流程示意图

嵌入式系统目前在多个行业得到广泛应用,低功耗是其性能指标之一。基于功耗实现设计硬件平台后,低功耗实现主要从软件方面来解决。本文基于嵌入式系统特征及其功能实现,采用程序优化技术来降低功耗。经过测试,整合多媒体芯片的无线终端平均功耗下降了50%。其中在正常待机时,电流为400mA左右,而在睡眠时降到了200mA左右;如果应用深度睡眠(关闭SC6600、QCP1880和所有设备,维持一个32kHz的时钟)电流甚至可以降到10~20mA,完全满足长时间待机。实验表明,利用本软件构架,可以对无线终端实行之有效的省电管理。现已用于诸多无线移动多媒体终端项目(智能电话等),效果理想。由于限于篇幅,不再赘述。

换一批

延伸阅读

[资讯] 地平线落户上海临港 将推进边缘计算在智慧城市落地

地平线落户上海临港 将推进边缘计算在智慧城市落地

在上海世界人工智能大会期间,嵌入式人工智能技术的人工智能创业企业地平线宣布落户上海临港,同上海市临港区开发建设管理委员会正式签约。 ......

关键字:人工智能 AI 嵌入式

[资讯] 台厂携手日机装共同开发UV-LED产品

台厂携手日机装共同开发UV-LED产品

日机装掌握UV-LED上游磊晶粒专利技术,并在日本有工厂,年产能150万粒,现阶段双方将以消化现有150万磊晶粒为主要策略,因此达成共识,将从下游应用产品开发,针对水杀菌、空气杀菌二大项设计多款产品。......

关键字:LED UV-LED 封装测试

[资讯] 快充时代,你打算选择什么样的测试电源?

快充时代,你打算选择什么样的测试电源?

快充时代到了,越来越多的大电池加快充方案的电子设备面世。如果您还在为手机充电三小时待机一天,充电线插口正着反着都插不进而抱怨的话,那您真的落伍了。......

关键字:快速充电 测试电源 Quick Charge4.0

[资讯] 器件通过数百万个器件-小时严谨的应力测试 EPC发布可靠性测试报告以记录氮化镓(GaN)技术的可靠性

器件通过数百万个器件-小时严谨的应力测试 EPC发布可靠性测试报告以记录氮化镓(GaN)技术的可靠性

宜普电源转换公司(EPC)发布第八阶段可靠性测试报告。该报告表明,在累计超过800万个器件-小时的应力测试后,没有器件发生失效的情况。该报告详细探讨EPC器件在被确认为合格产品前所经受的各项应力测试,并且分析器件失效的物理原因。......

关键字:EPC 氮化镓 测试报告

[资讯] 特斯拉在中国成立充电测试中心

特斯拉在中国成立充电测试中心

近日,特斯拉联合中国质量认证中心(CQC)共同启动“特斯拉充电伙伴计划”。同时,特斯拉宣布在中国成立充电测试中心,从获得CQC认证证书的充电设施企业中,优先遴选并进行互联互通测试,将其纳入“特斯拉充电伙伴计划”。......

关键字:特斯拉 电动汽车 充电测试

[疯狂史] 黄明威:一个从阿里离开后又回来的人

黄明威:一个从阿里离开后又回来的人

阿里人”这三个字,黄明威如今背了14年,也自豪了14年。如果不是中途下了“车”,那就是足足的18年了。......

关键字:黄明威 阿里巴巴

[真心话] 单片机大师郭天祥的大学六年,看看与你的有何不同?

单片机大师郭天祥的大学六年,看看与你的有何不同?

在哈尔滨工程大学五年,我在学校电子创新实验室呆了四年,这四年里创新实验室给我提供了良好的学习环境和完善的实验设备;在这里与众多电子爱好者的交流中,使我学到了更多的专业知识;在学校老师们的教导下,让我学会了如何做一名合格的大学生。......

关键字:单片机 郭天祥

[真心话] 软件开源活动领航人Eric Raymond:C语言时代行将落幕

软件开源活动领航人Eric Raymond:C语言时代行将落幕

这几天来,我(Eric Raymond)在思考那些正在挑战C语言的系统编程语言领袖地位的新潮语言,尤其是Go和Rust。思考的过程中,我意识到了一个让我震惊的事实——我有着35年的C语言经验。每周我都要写很多C代码,但是我已经记不清楚上一次......

关键字:Eric Raymond C语言

[真心话] 明年内存铁定要降价!中国三大存储公司将量产内存、闪存

明年内存铁定要降价!中国三大存储公司将量产内存、闪存

对于关注国产内存、闪存的用户来说,从明年开始将会有实质性的成果,因为长江存储、晋华集成电路以及合肥Innotro存储都将量产。据台湾电子时报报道称,2019年,中国大陆地区将有三家存储芯片厂竣工并投入量产。目前,......

关键字:内存 存储
发表评论 共有条评论
用户名: 验证码:

精确稳定 让平均电流法帮你实现模块电源并联

精确稳定 让平均电流法帮你实现模块电源并联

今天要为大家介绍的是平均电流法,这种方法能够精确稳定的帮助工程师实现电源模块的并……

九款最简单的电子镇流器电路图原理图分析

九款最简单的电子镇流器电路图原理图分析

从工作原理而言,电子镇流器是一个电源变换电路,它将交流输入市电电源的波形、频率和……

干货|交流接触器常用接线电路图和实物图

干货|交流接触器常用接线电路图和实物图

今天分享一些电气知识中的交流接触器常用接线电路图和实物图,从简单到复杂。

……

项目外包