首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于μC/OS-II嵌入式系统的低功耗开发
来源:本站整理  作者:佚名  2009-12-23 09:31:07



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多毫安;处于节电模式时,消耗的电流仅为几个微安。实践表明,本文提出的低功耗设计方案对降低系统功耗的作用是显而易见的。

上一页  [1] [2] [3]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:20,867.19000 毫秒