随着嵌入式系统应用的日益广泛,如何实现嵌入式系统的低功耗开发已经成为嵌入式应用发展的关键技术之一,是近几年来人们在嵌入式系统的设计中普遍关注的难点与热点。嵌入式系统正被广泛应用于移动性较强的产品中去,而这些产品不是一直有充足的电源供应,往往需要电池来供电,因此,设计人员需要从每一个细节来考虑降低系统的功率消耗,从各个方面去实现降低系统的功耗。同时功耗对终端设备的成本及体积大小有显著影响。
本文结合FM电台手持式测试仪这一实例,从系统硬件设计、系统软件设计、利用内核扩展接口和产品应用特点这四个方面深入地讨论了基于μC/OS-II嵌入式系统丌发中低功耗系统的设计。
1、嵌入式系统概述
1.1 嵌入式系统的定义
根据IEEE(国际电气和电子工程师协会)的定义:嵌入式系统是用于控制、监视或者辅助操作机器和设备的装置。
1.2 嵌入式操作系统
从20世纪80年代开始,市场上出现各种各样的商用嵌入式操作系统,主要有VxWorks、Psos、Neculeus、QNX、Linux、Windows CE等。
本文使用的μC/OS-II是一个典型的实时操作系统。它的特点可以以概括为以下几个方面:公开源代码,代码结构清晰、明了,注释详细,组织有条理,可移植性好,可裁剪,可固化。内核属于抢占式。
2、研究主题的平台简介
2.1 本文硬件平台是基于FM电台手持式测试仪的一套开发平台。
FM电台手持式测试仪由主控板、信号源板、测量板组成,其结构框图见图1。
主控板包括嵌入式微控制器(SHARPLH79520)、存储芯片(NAND FLASH)、CPLD(用于总线扩展)、并口转串口芯片(ST16C16554)、直流电源转换芯片(TI公司TPS5430)、实时时钟芯片等。主控板主要用于控制信号源板的操作和测量板的操作。信号源板主要用于调制射频信号、发送调制信号和音频信号,以及接收电台发出的信号、解调射频信号等。测量板主要用于测量射频频率、射频功率、射频电平、音频频率、音频电平、失真等电台参数。
2.2 研究目标
本文主要研究嵌入式操作系统μC/OS-II在FM电台手持式测试仪中的应用,从硬件、软件、操作系统和产品应用特点这四个层面上,讨论如何降低系统的功耗。FM电台手持式测试仪的体系结构如图2。
3、低功耗系统的设计
3.1 低功耗系统设计概述
随着嵌入式系统的广泛应用,功耗问题是近几年来人们在嵌入式系统的设计中普遍关注的难点与热点。系统的低功耗设计,并非是某一个方面、某一个角度的解决方案,而应当从系统级的设计考虑功耗的节省,是一个硬件设计与软件控制相互结合的协调过程。
本文将依次从系统硬件设计、系统软件设计、利用μC/OS-II给出的内核扩展接口和产品应用特点这四个方面系统地讨论低功耗系统设计。
3.2 硬件低功耗设计
3.2.1 低功耗设计的器件
选择低功耗的电子器件可以从根本上降低整个硬件系统的功耗。嵌入式处理器是嵌入式系统的硬件核心,消耗大量的功率,因此设计时应选用低功耗的处理器;另外,选择低功耗的通信收发器(对于通信应用系统)、低功耗的外围电路。
本文中使用的微控制器是夏普公司的LH79520。LH79520有五种工作模式,分别是:运行模式、休眠模式、睡眠模式、停止模式1、停止模式2。处于不同的工作模式下,微控制器消耗的功率不同,处于运行模式的微控制器消耗的功率最多,处于停止模式2的微控制器消耗的功率最少。
3.2.2 低功耗电路
目前的半导体工艺主要有TTL工艺和CMOS工艺,CMOS工艺具有很低的功耗,在电路设计上尽量选用,使用CMLS系列电路时,其不用的输入端不要悬空,因为悬空的输入端可能存在的感应信号造成高低电平的转换,转换器件的功耗很大,尽量采用输出为高的原则。同时尽量使用集成度高的器件,减少电路中使用的元件的个数,从而减少整机的功耗。
3.2.3 分区/分时供电技术
一个嵌入式系统的所有组成部分并非时刻在工作,基于此,可采用分时/分区供电技术。原理是利用“开关”控制电源供电单元,在某一部分电路处于休眠状态时,关闭其供电电源,仅保留工作部分的电源。
本文使用的硬件平台,使用了TI公司的直流电源转换芯片TPS5430,给其他辅助板和主控板上的外设提供电源。
3.2.4 降低处理器的时钟频率
处理器的工作频率和功耗的关系很大,频率越高,功耗越大。可以动态改变处理器的时钟以降低系统的总功耗。微控制器空闲时降低时钟频率;处于工作状态时,提高时钟频率,全速运行处理事务。
本文使用的硬件平台的控制板所使用的时钟,使用了外部晶振和锁相环技术,可以在很宽的范围内调整系统时钟。
3.3 软件部分的设计
至今,还没有一个严格的标准来判断一个软件的低功耗特性,但是,设计者仍需尽量将应用的低功耗特性反映在软件中,以避免那些“看不见”的功耗损失。
3.3.1 中断与查询
一个程序使用中断方式还是查询方式对于一些简单的应用并不那么重要,但在其低功耗特性上却相去甚远。使用中断方式,微控制器可以什么都不做,甚至可以进入等待模式或停止模式;而查询方式下,微控制器必须不停地访问I/O寄存器,这会带来很多额外的功耗。
本文是通过中断通信方式与片上的两个串口资源进行通信,而非采用查询的方式,减少了串口占用处理器的工作时间,有效地降低了系统的功耗。
3.3.2 宏的使用
读RAM会比读Flash带来更大的功耗,正是因为如此,低功耗性能突出的ARM微控制器在设计上仅允许一次子程序调用。因为微控制器进入子程序时,会首先将当前微控制器寄存器推入堆栈(RAM),在离开时又将微控制器寄存器弹出堆栈,这样至少带来两次对RAM的操作。因此,考虑用宏定义来代替子程序调用。调用一个子程序还是一个宏在程序写法上并没有什么不同,但宏会在编译时展开,微控制器只是顺序执行指令,避免了调用子程序。这实际上是一种以空间换时间的思想。这样做,不仪提高了程序的执行效率,同时可以减少系统的功耗。
3.3.3 减少微控制器的运算量
将一些运算的结果预先算好,放在Flash中,用查表的方法替代实时的计算,减少微控制器的运算工作量,可以有效地降低微控制器的功耗;不可避免的实时计算,算到精度够了就结束,避免“过度”的计算;尽量使用短的数据类型,在精度允许的情况下,使用简单函数代替复杂函数作近似,也可以减少功耗。
3.3.4 减少微处理器的工作时间
尽量减少CPU的全速运行时间以降低系统的功耗,使微控制器较长地处于空闲方式或掉电方式是用软件设计降低系统功耗的关键。让它尽量在短时间内完成对信息或数据的处理,然后就进入空闲或掉电方式,在关机状态下让它完全进入掉电方式,用定时中断、外部中断或系统复位将它唤醒。
3.4 基于μC/OS-II内核扩展接口的低功耗模式
利用任务调度的空闲时间使微控制器进入低功耗模式,以降低系统功耗这一思想在μC/OS-II内核设计之初就被注意到了。为此设计者特意留出了相应的内核扩展接口。用户可以利用此接口,实现一个实时的低功耗系统。
3.4.1、μC/OS-II的空闲任务扩展接口
实现μC/OS-II低功耗特性的方法:利用μC/OS-II中空闲任务的扩展接口,使系统在空闲状态下进入某种低功耗模式,降低系统功耗;利用时钟节拍(本文使用LH79520内部定时器0作为时钟节拍),周期性地唤醒CPU。CPU被唤醒之后,将执行节拍中断服务程序,重新判断是否有任务处于就绪态,如果有,就执行该任务;如果没有,则重复上面的过程。
μC/OS-II最多可以管理64个任务,并为每一个任务分配一个不同的优先级。每一个任务有五种可能的状态——睡眠态、就绪态、运行态、等待态和中断服务态。μC/OS-II属于可剥夺型内核,也就是说,μC/OS-II总是运行进入就绪状态的优先级最高的任务。一旦优先级高的任务进入就绪态,就可以将CPU从低优先级任务中抢过来。在μC/OS-II初始化时,会建立一个优先级最低的任务——空闲任务,在没有任务进人就绪态的时候,空闲任务就会开始运行。空闲任务会调用一个函数——OSTaskI-dleHook()。这是留给用户使用的内核扩展接口。空闲任务实际上并没有什么事情可做,只是一个等待中断的无限循环。因此用户可以利用OSTaskIdleHook(),使CPU进入低功耗模式。
4、FM电台手持式测试仪的低功耗设计
4.1 FM电台手持式测试仪低功耗设计的思想
当目标板上的按键在一定时间内没有被按下时,FM电台手持式测试仪进入低功耗工作模式。在FM电台手持式测试仪进入到低功耗工作模式后,按下FM电台手持式测试仪上任何一个按键(通过按键产生中断唤醒微控制器),让FM电台手持式测试仪返回到正常的工作模式。其工作流程如图3。
4.2 进入低功耗模式前的设置
在进入低功耗工作模式前,需要完成以下几个操作。首先,要使能并初始化外部中断(INT5);其次,关闭测量板、信号源板的工作电源;最后,执行关闭目标板上液晶显示屏电源、隔离总线等操作。
4.3 设置LH79520的低功耗工作模式
在完成进入低功耗模式前的设置后,需要让微控制器LH79520进入低功耗工作模式,从而让测试仪进入到低功耗工作模式。微控制器LH79520的不同功耗工作模式的选择是通过设置RCPC寄存器来实现的。
4.4 唤醒微控制器LH79520
当微控制器LH79520处于低功耗工作模式时,给微控制器LH79520能够识别的中断信号,即可让微控制器LH79520从低功耗工作模式返回到正常的工作模式。
本文使用的目标板是通过外部中断5来唤醒微控制器LH79520。外部中断5引脚与目标板的键盘相连。在使能外部中断5之后,同时设计外部中断5为低电平触发中断。这样,一旦按下键盘,就会产生一个低电平信号,从而触发外部中断5,以此来唤醒微控制器LH79520。
4.5 唤醒系统后的设置
当从低功耗工作模式唤醒后,进入到正常的工作模式时,需要完成以下几个操作。首先,关闭外部中断5;其次,给液晶屏供电,点亮液晶屏,同时,使能外部总线,使其可以与其他外设进行通信;然后,给信号源板和测量板供电。
5、结束语
本文首先从硬件和操作系统的层面上,讨论如何降低系统的功耗;然后,从软件代码的设计和产品应用的特点研究如何减少系统的功率消耗。通过FM电台手持式测试仪验证,当测试仪处于正常工作模式时,电流是300多毫安;处于节电模式时,消耗的电流仅为几个微安。实践表明,本文提出的低功耗设计方案对降低系统功耗的作用是显而易见的。
上一篇:嵌入式系统中USB-HOST协议栈的设计
下一篇:Linux2.4与Linux2.6内核调度器的比较研究
推荐阅读最新更新时间:2024-05-02 20:36