一种嵌入式实时操作系统(RT-Thread)中基于设备管理框架实现的低功耗方法

文档序号:1419439 发布日期:2020-03-13 浏览:19次 >En<

阅读说明:本技术 一种嵌入式实时操作系统(RT-Thread)中基于设备管理框架实现的低功耗方法 (Low-power consumption method realized based on equipment management framework in embedded real-time operating system (RT-Thread) ) 是由 李存皓 蒋行川 谢涛 于 2018-09-05 设计创作,主要内容包括:本发明是一种嵌入式实时操作系统(RT-Thread)中基于设备管理框架实现的低功耗方法属于计算机技术领域。实现了基于RT-Thread设备管理框架的一种低功耗管理策略,在BSP中向软件层提供了简单进入低功耗的接口,实现了简单快速的一步进入低功耗状态的方法,并且进入低功耗之后MCU进入休眠,达到最低功耗控制,MCU从休眠中唤醒后重新启用所有设备,让所有设备进入工作状态。在设备管理框架中设计两个遍历算法,一个遍历算法实现查找设备列表中已经打开的设备,并将这些设备关闭并标记,另一个遍历算法实现查找上一个遍历算法中标记的设备,并将这些设备打开和去标记,这样就可以实现所有设备的低功耗管理。(The invention discloses a low-power consumption method based on an equipment management framework in an embedded real-time operating system (RT-Thread), belonging to the technical field of computers. The method realizes a low-power-consumption management strategy based on an RT-Thread device management framework, provides an interface for a software layer to simply enter a low-power-consumption state in the BSP, realizes a simple and quick method for entering the low-power-consumption state in one step, enables the MCU to enter the sleep state after entering the low power consumption state to achieve the lowest power consumption control, and restarts all devices after the MCU wakes up from the sleep state to enable all the devices to enter the working state. Two traversal algorithms are designed in a device management framework, one traversal algorithm is used for searching for devices which are already opened in a device list, closing and marking the devices, the other traversal algorithm is used for searching for devices which are marked in the previous traversal algorithm, and opening and unmarking the devices, and therefore low-power-consumption management of all the devices can be achieved.)

一种嵌入式实时操作系统(RT-Thread)中基于设备管理框架 实现的低功耗方法

1、缩略语和关键术语定义

缩写 全称 中文
RTOS EmbeddedReal-timeOperation System 嵌入式实时操作系统
I/O Input/Output 输入输出
HAL Hardware Abstract Layer 硬件抽象层
BSP Board Support Package 板级支持包
LPD Low-Power Design 低功耗设计
MCU Microcontroller Unit 微控制单元

2、技术领域

本发明属于计算机技术领域,具体涉及一种嵌入式实时操作系统(RT-Thread)中基于设备管理框架实现的低功耗方法

3、背景技术

3.1技术背景

随着计算机技术的迅速发展和芯片制造工艺的不断进步,嵌入式系统的应用日益广泛:从民用的电视、手机等电路设备到军用的飞机、坦克等武器系统,到处都有嵌入式系统的身影。在嵌入式系统的应用开发中,采用RTOS能够支持多任务,使得程序开发更加容易,便于维护,同时能够提高系统的稳定性和可靠性。这已逐渐成为嵌入式系统开发的一个发展方向。

在工业控制、军事设备、航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统。我们常常说的嵌入式操作系统都是嵌入式实时操作系统。比如μC/OS-II、eCOS和Linux、HOPEN OS。故对嵌入式实时操作系统的理解应该建立在对嵌入式系统的理解之上加入对响应时间的要求。

一般RTOS分为硬件层、软件层和中间层,硬件层与软件层之间为中间层,也称为HAL或BSP,它将系统上层软件(应用程序)与底层硬件分离开来,使系统的底层驱动程序与上层无关,上层软件开发人员无需关心底层硬件的具体情况,根据BSP提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能,设备管理即处于中间层。

在嵌入式系统的设计中,LPD是许多设计人员必须面对的问题,其原因在于嵌入式系统被广泛应用于便携式和移动性较强的产品中去,而这些产品不是一直都有充足的电源供应,往往是靠电池来供电,所以设计人员从每一个细节来考虑降低功率消耗,从而尽可能地延长电池使用时间。事实上,从全局来考虑低功耗设计已经成为了一个越来越迫切的问题。

3.2现有技术

3.2.1现有技术方案

RT-Thread是一个来自中国的开源物联网操作系统,在RT-Thread实时操作系统中,RT-Thread提供了一套简单的I/O设备管理框架,它把I/O设备分成了三层进行处理。如图1所示。

一个设备能够被上层应用访问前,需要先把这个设备注册到系统中,并添加一些相应的一些属性。这些注册的设备均可以通过设备名,采用“查找设备接口”的方式从系统中查找到,从而获得该设备控制块(或设备句柄)。注册设备的函数接口如下:

rt_err_t rt_device_register(rt_device_t dev,const char*name,rt_uint8_t flags);

将设备从设备系统中移除,被卸载的设备将不能再通过“查找设备接口”被查找到。卸载设备的函数接口如下所示:

rt_err_t rt_device_unregister(rt_device_t dev)

根据指定的设备名称查找设备,可以通过如下接口完成:

rt_device_t rt_device_find(const char*name)

初始化指定设备,可以通过如下函数接口完成:

rt_err_t rt_device_init(rt_device_t dev)

根据设备控制块来打开设备,可以通过如下函数接口完成:

rt_err_t rt_device_open(rt_device_t dev,rt_uint16_t oflags)

根据设备控制块来关闭设备,可以通过如下函数接口完成:

rt_err_t rt_device_close(rt_device_t dev)

从设备中读取,或获得数据,可以通过如下函数接口完成:

rt_size_t rt_device_read(rt_device_t dev,rt_off_t pos,void*buffer,rt_size size)

向设备中写入数据,可以通过如下函数接口完成:

rt_size_t rt_device_write(rt_device_t dev,rt_off_t pos,const void*buffer,rt_size size)

根据设备控制块来控制设备,可以通过下面的函数接口完成:

rt_err_t rt_device_control(rt_device_t dev,rt_uint8_t cmd,void*arg)

现有技术利用RT-Thread的设备管理框架可以很方便的将硬件层和软件层分离开来,调用设备框架接口就能方便的管理设备,其中关闭设备和打开设备用于控制设备开关,从而减少设备功耗。

3.2.2现有技术方案的缺点

现有技术方案只能通过打开每个设备或者关闭每个设备来控制功耗,不能实现简单的一步关闭所有设备或打开所有设备,并且不能与MCU休眠配合,操作起来非常麻烦,并且容易出错。

4、

发明内容

本发明实现了一种基于RT-Thread设备管理框架的一种低功耗管理策略,在BSP中向软件层提供了简单进入低功耗的接口,实现了简单快速的一步进入低功耗状态的方法,并且进入低功耗之后MCU进入休眠,达到最低功耗控制,MCU从休眠中唤醒后重新启用所有设备,让所有设备进入工作状态。首先设备管理框架提供了每个设备的驱动接口,包括打开、关闭、读、写和控制接口,其中打开接口应当实现设备的上电和初始化工作,关闭接口实现设备的下点和复初始化工作,这样可以用打开和关闭接口来控制设备的功耗,然后在设备管理框架中设计两个遍历算法,一个遍历算法实现查找设备列表中已经打开的设备,并将这些设备关闭并标记,另一个遍历算法实现查找上一个遍历算法中标记的设备,并将这些设备打开和去标记,同时封装一个接口,让这个接口执行第一个遍历算法,然后让MCU休眠,唤醒时执行第二个遍历算法,这样就可以实现所有设备的功耗管理。

5、附图说明

图1 I/O设备三层管理框架

图2基于RT-Thread设备管理框架对每个外设进行驱动设计图

图3根据RT-Thread设备管理框架设计的遍历查找方法,查找打开的驱动

图4根据RT-Thread设备管理框架设计一个遍历查找方法图,查找关闭的驱动

图5设备功耗管理的封装图

6、

具体实施方式

为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。

首先基于RT-Thread设备管理框架对每个外设进行驱动设计,填充每个外设驱动的打开和关闭接口,打开接口中实现设备上电或初始化,关闭接口中实现设备下电和恢复初始化,并将设备驱动注册到RTOS之中,如图2所示。

然后根据RT-Thread设备管理框架设计一个遍历查找方法,查找系统中已经注册并打开的设备驱动,发现该设备驱动后调用该设备驱动的关闭方法,同时标记被关闭的设备,如图3所示。

然后根据RT-Thread设备管理框架设计一个遍历查找方法,查找系统中已经注册并被标记关闭的设备驱动,发现该设备驱动后调用该设备驱动的打开方法,如图4所示。

上述两个遍历算法利用了RT-Thread的设备管理框架,实现了关闭所有已经打开的设备和打开刚才被关闭的设备。然后将上述两个算法封装成一个设备休眠和唤醒的接口,然后配合MCU休眠,即可实现对设备功耗管理的封装,如图5所示。

最后将整个过程封装成一个接口,提供给软件层,如void device_enter_sleep(void);

实例关键代码如下

Figure BSA0000170182740000031

Figure BSA0000170182740000041

Figure BSA0000170182740000051

Figure BSA0000170182740000061

Figure BSA0000170182740000071

7、本发明技术方案带来的有益效果

技术层面:对于软件层开发人员来说,不用关心BSP如何进行功耗管理,只用调用该接口就能实现低功耗管理,对BSP驱动设计人员来说,只需要实现每个设备的打开和关闭方法,并且在其中进行功耗控制,不用考虑进行系统休眠的时候怎样关闭设备,极大的减少了各层人员的开发难度,降低了各层人员出错的概率。

应用层面:提高了功耗控制的精细程度,减少了功耗出现异常的概率。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于VR的轮胎吊实训系统及方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!