CN111399624A - 一种基于嵌入式的低功耗图像显示方法及系统 - Google Patents
一种基于嵌入式的低功耗图像显示方法及系统 Download PDFInfo
- Publication number
- CN111399624A CN111399624A CN202010100396.2A CN202010100396A CN111399624A CN 111399624 A CN111399624 A CN 111399624A CN 202010100396 A CN202010100396 A CN 202010100396A CN 111399624 A CN111399624 A CN 111399624A
- Authority
- CN
- China
- Prior art keywords
- task
- power consumption
- low power
- screen
- image display
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3265—Power saving in display device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Controls And Circuits For Display Device (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种基于嵌入式的低功耗图像显示方法,包括基于RTOS分别建立低功耗任务、传感器任务和图形显示任务;建立一个用于通知帧缓存数据变化的信号量;根据RTOS的任务就绪表调用任务;选择判断所述任务属性,进行图像显示,还提供一种基于嵌入式的低功耗图像显示系统,包括建立模块,用于建立低功耗任务、传感器任务、图形显示任务及信号量;任务调度模块,用于根据RTOS的任务就绪表进行调用任务;运行模块,用于根据所述任务调度模块调动的任务进行运行;显示模块,用于进行图像显示,通过嵌入式技术实现了绚丽的图形界面与长时间的续航。
Description
技术领域
本发明涉及嵌入式人机交互技术领域,尤其涉及一种基于嵌入式的低功耗图像显示方法及系统。
背景技术
人机交互技术是指通过计算机输入、输出设备,以有效的方式实现人与计算机对话的技术。人机交互技术包括机器通过输出或显示设备给人提供大量有关信息及提示请示等,人通过输入设备给机器输入有关信息,回答问题及提示请示等。人机交互技术是计算机用户界面设计中的重要内容之一。随着物联网和5G等技术的快速发展,智能家居和智能穿戴设备走进了我们日常的生活。
众所周知,智能穿戴设备最重要就是体积,例如智能手表外形薄,待机续航时间长就是极具竞争力的一方面。基于MPU的产品功耗高,待机续航时间不能得到保证,目前的智能穿戴设备可优选基于ARM Cortex-M4内核的MCU产品,由于MCU的性能相比MPU而言具有极大的差距,算力不足以达到与MPU相媲美的程度,在图形显示方面具有极大的差距,若花费大部分的算力去计算图形是得不偿失的,故此,寻求一种提高MCU产品图形显示功能的方法具有重要意义。
发明内容
本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。
鉴于上述现有小型智能穿戴产品图像显示及待机续航功能存在的问题,提出了本发明。
因此,本发明解决的技术问题是:解决现有技术无法在保证小型智能穿戴产品待机续航时间的情况下,同时也保证较好的图像显示效果的问题。
为解决上述技术问题,本发明提供如下技术方案:一种基于嵌入式的低功耗图像显示方法,包括基于RTOS分别建立低功耗任务、传感器任务和图形显示任务;建立一个用于通知帧缓存数据变化的信号量;根据RTOS的任务就绪表调用任务;选择判断所述任务属性,进行图像显示。
作为本发明所述的基于嵌入式的低功耗图像显示方法的一种优选方案,其中:建立所述低功耗任务具体包括RTOS低功耗的实现、屏幕开关以及低功耗策略;其中,RTOS采用基于时间片轮转的抢占式任务调度机制。
作为本发明所述的基于嵌入式的低功耗图像显示方法的一种优选方案,其中:所述RTOS低功耗的实现具体为,当空闲任务运行时,进入低功耗模式;在适当条件下,通过中断或外部事件唤醒MCU;且当RTOS系统中的定时器产生中断时,也将MCU从低功耗模式中唤醒;其中,所述RTOS系统中的定时器为动态,任务调度器可以预测到下一个周期性任务的触发时间;当MCU被唤醒时,系统时钟提供补偿。
作为本发明所述的基于嵌入式的低功耗图像显示方法的一种优选方案,其中:所述屏幕开关以及低功耗策略的实现具体为,通过设备的姿态控制屏幕的开关和是否进入低功耗,当所述传感器任务采集数据并进行位姿算法后通过AHRS算法判断是否点亮屏幕;其中,当一定时间未操作屏幕则自动进行低功耗状态。
作为本发明所述的基于嵌入式的低功耗图像显示方法的一种优选方案,其中:在所述图形显示任务的实现中,可以拥有任意数量的屏幕,可以选择在单个屏幕的上下文中实现整个应用程序。
作为本发明所述的基于嵌入式的低功耗图像显示方法的一种优选方案,其中:在所述图形显示任务的实现中还包括一个内存分配方案,自动分配大多数的RAM消耗屏幕所需的RAM,且在所述应用程序的所有屏幕上重复使用此RAM块。
作为本发明所述的基于嵌入式的低功耗图像显示方法的一种优选方案,其中:还包括屏幕转换机制,可以设置从一个屏幕到另一个屏幕的过渡动画,内置过渡器提供从一个屏幕到另一个屏幕的即时切换,并且可以在新屏幕中水平或垂直滑动。
作为本发明所述的基于嵌入式的低功耗图像显示方法的一种优选方案,其中:还提供设置大小和位置的选择功能,在界面中使用的Drawable类适用于所有内置Drawable类以及创建的任何自定义Drawable类;且支持所有语言高质量的以及消除锯齿文本和字体;且选择一个或两帧缓冲器,通过双缓冲,将下一帧渲染到一个帧缓冲区;还使用一个可以绘制线条和形状的Canvas Widget渲染器;且可以降低触摸控制器的采样频率。
作为本发明所述的基于嵌入式的低功耗图像显示方法的一种优选方案,其中:选择判断所述任务属性,进行图像显示具体包括,当任务被运行之后所述传感器任务实时采集数据传输至AHRS姿态算法来判断是否要进入或退出低功耗模式,当确定进入低功耗模式后,屏幕将关闭,所述图形显示任务被挂起,设备进入低功耗模式,设备通过一个低功耗计时器来替代SYSTick,将外部或内部晶振关闭,此时只有低功耗任务在运行,用于检测是否唤醒,位姿变化时传感器的DMP会输出IO中断,所述低功耗任务被唤醒退出Tickless模式,所述图形显示任务依然被挂起,所述传感器任务从挂起态转为运行态,采集数据传输至AHRS姿态算法来判断是否要点亮屏,当屏幕点亮,所述图形显示任务由挂起态转变为运行态,开始运行;其中,当屏幕被点亮的同时会有一个定时器运行记录亮屏的时间,若超过规定的时间后同样会熄灭屏幕,并进入低功耗。
为解决上述技术问题,本发明还提供如下技术方案:一种基于嵌入式的低功耗图像显示系统,包括建立模块,用于建立低功耗任务、传感器任务、图形显示任务及信号量;任务调度模块,用于根据RTOS的任务就绪表进行调用任务;运行模块,用于根据所述任务调度模块调动的任务进行运行;显示模块,用于进行图像显示;其中,所述运行模块具体包括运行单元,运行调用的任务;判断控制单元,用于根据所述任务属性控制所述运行单元进行唤醒或休进入低功耗模式。
本发明的有益效果:本发明针对物联网技术终端用户,使用嵌入式技术,基于ARMCortex-M4内核的MCU所开发的一种低功耗图形界面的方法,利用RTOS与图形界面相结合的方式极大的利用了单位时间,提高了MCU的利用率,通过嵌入式技术实现了绚丽的图形界面与长时间的续航,解决了在电池容量限制下需要长时间的续航时间的使用场景下做到能与ARM Cortex-A系列基于Android开发大图像显示界面的效果相媲美,大大减少了产品的厚度与成本,在智能穿戴设备具有巨大的潜力。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。其中:
图1为本发明提供的基于嵌入式的低功耗图像显示方法的方法流程图;
图2为本发明提供的基于嵌入式的低功耗图像显示方法的低功耗任务调度图;
图3为本发明提供的基于嵌入式的低功耗图像显示方法中传感器任务通过多轴加速度传感器获取数据的示意图;
图4为本发明提供的基于嵌入式的低功耗图像显示方法中的屏幕内存分配方案示意图;
图5为本发明提供的基于嵌入式的低功耗图像显示方法的模型-视图-显示的模式框架示意图;
图6为本发明提供的基于嵌入式的低功耗图像显示方法中将屏幕概念与模型-视图-显示的模式框架结合示意图;
图7为本发明提供的基于嵌入式的低功耗图像显示方法中在界面中使用的Drawable类示意图;
图8为本发明提供的基于嵌入式的低功耗图像显示方法中文字和图片经过转换器换变成C文件被编译的过程示意图;
图9为本发明提供的基于嵌入式的低功耗图像显示方法中对于触摸采样方法和频率进行优化的效果示意图;
图10为本发明提供的基于嵌入式的低功耗图像显示方法中对于触摸采样方法和频率进行优化的又一效果示意图;
图11为本发明提供的基于嵌入式的低功耗图像显示系统的模块示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明,显然所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的保护的范围。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。
本发明结合示意图进行详细描述,在详述本发明实施例时,为便于说明,表示器件结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间尺寸。
同时在本发明的描述中,需要说明的是,术语中的“上、下、内和外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一、第二或第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
本发明中除非另有明确的规定和限定,术语“安装、相连、连接”应做广义理解,例如:可以是固定连接、可拆卸连接或一体式连接;同样可以是机械连接、电连接或直接连接,也可以通过中间媒介间接相连,也可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
实施例1
请参阅图1~10,为本发明提供的基于嵌入式的低功耗图像显示方法的第一个实施例:一种基于嵌入式的低功耗图像显示方法,包括:
基于RTOS分别建立低功耗任务、传感器任务和图形显示任务;
建立一个用于通知帧缓存数据变化的信号量;
根据RTOS的任务就绪表调用任务;
选择判断任务属性,进行图像显示。
本发明提供的基于嵌入式的低功耗图像显示方法首先基于RTOS(实时操作系统)需要建立三个任务,分别是:低功耗任务、传感器任务和图形显示任务。其中,低功耗任务主要负责当MCU(微控制单元,又称为单片微型计算机或单片机)处于空闲状态或者熄屏时及时的进入低功耗模式;传感器任务负责采集六轴加速度传感器的数据来判断设备处于的位姿;图形显示任务分为两个部分,第一部分负责通过DMA2D技术使用MIPI协议将每帧数据推送至屏幕上显示,第二部分负责计算并输出每帧图像的数据到等待传送到屏幕的帧缓存里。齐次,需要建立一个信号量,用于通知帧缓存的数据变化,当帧缓存每次出现变化时信号量都会通知DMA进行图形数据的传输。
当系统运行起来之后,建立了三个任务和一个信号量,开启任务调度器。在任务控制块就会有这三个任务,之后任务会根据RTOS的任务就绪表进行调用,由于使用的是基于时间片轮转的抢占式任务调度机制,任务的调用由RTOS管理无需再进行操作。
当任务被运行之后传感器任务实时采集数据传输至AHRS姿态算法来判断是否要进入或退出低功耗模式。当确定进入低功耗模式后,屏幕将关闭,图形显示任务被挂起,设备进入低功耗模式,设备通过一个低功耗计时器来替代SysTick(即为系统定时器,又称嘀嗒定时器,是Cortex-M3内核的一个外设,集成在NVIC中,是一个24bit的向下递减的计数器,每计数一次的时间为1/SYSCLK,一般为72MHz。操作系统需要执行多任务管理,用SysTick产生中断,确保单个任务不会锁定整个系统,同时还可用于闹钟定时、时间测量等。由于Cortex-M3芯片都有SysTick,所以软件可以很容易地在Cortex-M3的产品间移植),从而可以将外部或内部晶振关闭,此时只有低功耗任务在运行,用于检测是否唤醒。位姿变化时传感器的DMP(数据管理平台)会输出IO中断,低功耗任务被唤醒退出Tickless模式,此时屏幕还是关闭的,所以图形显示任务依然被挂起,传感器任务从挂起态转为运行态,采集数据传输至AHRS姿态算法来判断是否要点亮屏,当屏幕点亮,图形显示任务由挂起态转变为运行态,开始运行。当屏幕被点亮的同时会有一个定时器运行记录亮屏的时间,如果超过规定的时间后同样会熄灭屏幕,并进入低功耗。
具体的,关于低功耗任务的实现主要分为RTOS低功耗、屏幕开关以及低功耗策略两个方面:
①RTOS低功耗:RTOS采用基于时间片轮转的抢占式任务调度机制。
首先当空闲任务运行时,进入低功耗模式,其次在适当的条件下,通过中断或者外部事件唤醒MCU。每次当RTOS系统中的定时器产生中断时,也会将MCU从低功耗模式中唤醒,而频繁的进入休眠及唤醒会使得MCU无法进入深度睡眠。
本方法Tickless Idle Mode(FreeRTOS下的实现),可以让MCU更长时间的处于低功耗模式如图2所示,横轴是时间轴,T1,T2,T3,T4是RTOS的时间片基准,有四个任务分别是:Task A:周期性任务;Task B:周期性任务;Task C:突发性任务;Task D:周期性任务。从图中可以看出在四个任务进行调度之间会有四次空闲期间(此时RTOS会调度ldle空闲任务运行,软件设计的目标是尽可能使MCU在空闲任务运行时处于低功耗模式)。
Ldle1:ldle任务运行期间,会产生一次系统时钟滴答,此时会唤醒MCU,唤醒后MCU又会进入低功耗模式,这次唤醒是无意义的。期望使MCU在ldle1期间一直处于低功耗模式,因此适当调整系统定时器中断使得T1时不触发系统时钟中断,中断触发点设置为TaskB到来时;
Ldle2:TaskC在系统滴答到达前唤醒MCU(外部事件),MCU可以在ldle2中可以一直处于低功耗模式;
Ldle3:与ldle2情况一致,但ldle3时间很短,若是此事件很短,则进入低功耗模式的意义不大,因此在进入低功耗模式时软件应该添加策略;
Ldle4:与ldle1情况一致。
从图2中可以看出本方法解决了:合理地进入低功耗模式,避免了频繁使MCU在低功耗模式和运行模式下进行不必要的切换。RTOS的系统时钟源于硬件的某个周期性定时器(Cortex-M系列内核多数采用SYSTick)。RTOS的任务调度器可以预期到下一个周期性任务的触发时间,如上文所述,调整系统时钟定时器中断触发时间,可以避免RTOS进入不必要的时间中断,从而更长的时间停留在低功耗模式中,此时RTOS的时钟不再是周期的而是动态的。当MCU被唤醒时,通过某种方式提供为系统时钟提供补偿,MCU可能被两种情况所唤醒,动态调整过的系统时钟中断或者突发性的外部事件。无论是哪一种情况,都可以通过运行在低功耗模式下的某种定时器来计算出MCU处于低功耗模式下的时间,在MCU唤醒后对系统时间进行软件补偿。
②屏幕开关以及低功耗策略:
屏幕通常是一个设备的耗电大户,本方法通过设备的姿态从而控制屏幕的开关和是否进入低功耗。例如智能手表,通过多轴加速度传感器获取的数据可以得到手表的位置如图3,当用户有一个抬手的动作通过多轴加速度传感器获取的加速度与三轴数据通过AHRS姿态算法可以得知是一个抬手的动作从而屏幕点亮,同理手部下落或者一定时间未操作屏幕自动关闭进入低功耗模式。
进一步的,在图形界面的实现中,本方法可以拥有任意数量的“屏幕”。本方法中的屏幕是界面元素(小部件)及其相关业务逻辑的逻辑分组。屏幕由两个类组成:一个包含此屏幕上显示的所有小部件的视图类,以及一个包含此屏幕业务逻辑的推送层。所以可以选择在单个屏幕的上下文中实现整个应用程序,本发明中包含一个内存分配方案,自动分配大多数RAM消耗屏幕所需的RAM。这样分配这些,并且在应用程序的所有屏幕上重复使用此RAM块。通过拥有多个屏幕使您的界面代码更易于维护,如图4所示,多个屏幕都是独立的互不干涉。
进一步的,由于本方法是用C++实现的,所以可以选择在屏幕中利用面向对象的范例。例如,如果所有屏幕都需要在顶部显示状态栏,显示当前时间,电池电量等等,可以通过创建一个仅包含状态栏的基本视图类,并让所有视图都来自此类,将获得状态栏功能自动,同时由于屏幕分配内存的方式(仅分配最大的视图类和最大的推送层),一次只能有一个视图类和一个推送层在活动状态。
本方法使用模型-视图-显示的模式即MPV框架如图5所示,该方法是在界面应用程序中划分责任的常用方法。通过使用该方法分离了设置图形元素界面,避免了在维护以及添加新的界面状态的顾虑。
如图6所示,本方法将屏幕概念如何与整个模型-视图-显示架构相结合。底层类是一个单独的,它始终处于活动状态,有两个目的:
①存储界面的状态信息,切换屏幕时会取消分配视图和屏幕,因此它们不能用于存储应跨屏幕转换保留的信息;
②充当后端系统的接口,将事件传入和传出当前活动的屏幕,底层类自动设置为具有指向当前活动的屏幕的指针。当模型中发生更改时,将通知当前活动的Presenter更改,通过应用程序中的底层Listener接口中的方法完成的。需要注意的是:视图还将包含指向关联的Presenter的指针,该指针由框架自动设置。使用此指针,可以将按钮单击等界面事件传递给Presenter。Presenter类(同样是源自推送层的用户定义类)负责当前活动屏幕的业务逻辑,将从底层接收后端事件,并从视图接收界面事件并决定采取哪些操作。例如,如果从模型接收到警报事件,则屏幕可能决定告诉视图应显示警报弹出对话框。本方法具有屏幕转换机制,可以设置从一个屏幕到另一个屏幕的过渡动画。内置过渡器提供从一个屏幕到另一个屏幕的即时切换,并且可以在新屏幕中水平或垂直滑动。如果需要,可以很容易地创建自己的自定义过渡。
更进一步的,本方法提供一系列常用功能,如设置大小和位置。从Drawable类派生出两个具有重要的类:绘图和容器。
在界面中使用的Drawable类如图3所示,适用于所有内置Drawable类以及创建的任何自定义Drawable类。从Drawable类派生的那些类将具有该功能的实现,这意味着屏幕上显示某些内容就是这些类,例如图片控件,按钮控件和文本框控件。容器可用于将其他容器或小部件添加到容器的功能,例如,如果希望有一个控件,它可以显示一个带有文本的按钮,则可以创建一个容器并向其中添加按钮控件和文本框控件。
此外,字体和文本是现代图形用户界面的一个非常重要的方面。本方法支持所有语言高质量的以及消除锯齿文本和字体。本方法翻译处理是通过assets/texts/texts.xlsx电子表格完成的。除Excel以外的其他程序可用于编辑电子表格,如OpenOfficeCalc和LibreOffice Calc。此电子表格由两个部分组成。一个用于排版,另一个用于文本(包括所有翻译)。文字和图片经过转换器都换变成C文件被编译,如图8所示。
需要说明的是:
①本方法根据MCU,显示器类型(基于TFT控制器/8080),显示器分辨率和UI复杂性,可以选择使用一个或两帧缓冲器。在大多数平台上,双缓冲需要外部存储器(例如SDRAM),因为MCU没有足够的SRAM来容纳两个帧缓冲器(取决于显示器分辨率)。如果基于TFT控制器的系统,显示器使用并行RGB线和VSYNC/HSYNC/DE控制信号连接。传统上,在这些系统上使用双缓冲以避免屏幕撕裂的风险。本方法通过双缓冲,将下一帧渲染到一个帧缓冲区,而TFT控制器访问另一个帧缓冲区。渲染下一帧时,交换缓冲区。使用这种方法,无论渲染下一帧需要多长时间都不会有撕裂的风险,因为TFT控制器总是可以访问最新的完整数据。渲染时间小于16.67ms:保证不会撕裂;渲染时间为17-32ms:不太可能撕裂;渲染时间大于33ms:将发生撕裂。如果基于8080/SPI的系统,在这些系统上,显示器本身具有集成的帧缓冲器。因此,即使在单帧缓冲系统中,长帧渲染时间也不会导致撕裂。
②本方法还使用一个Canvas Widget渲染器,这个渲染器可以绘制线条和形状。但是必须存在缓冲区才能使用此功能,此缓冲区的大小取决于画布的要求和所需的性能。可以使用这个缓冲区将SD卡或者移动存储的图片先放入缓存区。
③本方法对于触摸采样方法和频率进行了优化,如果程序始终依赖于低MCU负载,那么通过该功能降低触摸控制器的采样频率。在大多数电容式触摸控制器都有一个输出引脚,用于指示触摸数据,通过读取该引脚,可以避免对触摸控制器进行不必要的轮询,如图9和图10所示。
如图9所示,为了使MCU负载保持在较低的水平,本技术采用使用DMA,通过使用DMA技术使得MCU在图层渲染和帧缓存的搬运都不需要占用MCU,大大降低了MCU的负载。由图9可看出,GUI任务唤醒(A)并开始处理帧(采样触摸、处理计时器滴答、创建DMA操作队列)。当此操作完成后,DMA将接管(B),而后GUI任务在(C)执行基于MCU的绘制,以及随后以DMA和MCU为基础的绘制过程的其余部分。交织过程的同步被由帧缓冲区信号量控制,从而允许GUI任务和DMA在帧缓冲区中交替执行绘图操作。
如图10所示,MCU上的TFT控制器负责用帧缓冲区中的像素值更新显示屏幕。显示屏幕本身没有任何内存,因此像素值必须连续地传输到显示,不管帧缓冲区内容是否改变。因此,即使在显示静止图像时,帧缓冲区也会被传输到显示屏幕上。显示器的更新频率各不相同,但通常在50-60hz之间,意味着没16-20毫秒帧缓冲区内容被传输一次。其中,图10中空的区域是没有发送数据的延迟区域,像素数据每次传输一个像素,从水平移动的显示左上角(像素0,0)开始,每一行前后都有延迟(水平通道),每一行前后都有延迟(垂直通道)。对于每一个显示更新帧,都会发出一个VSYNC信号,对于该帧中的每一行,都会发出一个HSYNC信号,无论何时控制器在活动区域内,包含帧缓存区的SDRAM都是繁忙的,为了优化SDRAM访问,当执行其呈现时,控制器信号被直接连接,当屏幕发出显示更新信号通过DMA无需MCU进行处理就可以自动的将帧缓存内的数据搬运置显示屏幕上使MCU负载保持较低的水平。
④考虑到海外用户需求,本方法支持:波斯尼亚语,保加利亚语,克罗地亚语,捷克语,丹麦语,荷兰语,英语,爱沙尼亚语,芬兰语,法语,德语,匈牙利语,意大利语,拉脱维亚语,立陶宛语,挪威语,波兰语,葡萄牙语,罗马尼亚语,塞尔维亚语,斯洛文尼亚语,斯洛伐克语,西班牙语,瑞典语,土耳其语,乌克兰中文,希腊文,日文,俄文等语言。
实施例2
请参阅图11,为本发明提供的基于嵌入式的低功耗图像显示系统的第一个实施例:一种基于嵌入式的低功耗图像显示系统,包括:
建立模块100,用于建立低功耗任务、传感器任务、图形显示任务及信号量;
任务调度模块200,用于根据RTOS的任务就绪表进行调用任务;
运行模块300,用于根据任务调度模块200调动的任务进行运行;
显示模块400,用于进行图像显示;
其中,运行模块300具体包括:
运行单元,运行调用的任务;
判断控制单元,用于根据任务属性控制运行单元进行唤醒或休进入低功耗模式。
应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
如在本申请所使用的,术语“组件”、“模块”、“系统”等等旨在指代计算机相关实体,该计算机相关实体可以是硬件、固件、硬件和软件的结合、软件或者运行中的软件。例如,组件可以是,但不限于是:在处理器上运行的处理、处理器、对象、可执行文件、执行中的线程、程序和/或计算机。作为示例,在计算设备上运行的应用和该计算设备都可以是组件。一个或多个组件可以存在于执行中的过程和/或线程中,并且组件可以位于一个计算机中以及/或者分布在两个或更多个计算机之间。此外,这些组件能够从在其上具有各种数据结构的各种计算机可读介质中执行。这些组件可以通过诸如根据具有一个或多个数据分组(例如,来自一个组件的数据,该组件与本地系统、分布式系统中的另一个组件进行交互和/或以信号的方式通过诸如互联网之类的网络与其它系统进行交互)的信号,以本地和/或远程过程的方式进行通信。
应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (10)
1.一种基于嵌入式的低功耗图像显示方法,其特征在于:包括,
基于RTOS分别建立低功耗任务、传感器任务和图形显示任务;
建立一个用于通知帧缓存数据变化的信号量;
根据RTOS的任务就绪表调用任务;
选择判断所述任务属性,进行图像显示。
2.根据权利要求1所述的基于嵌入式的低功耗图像显示方法,其特征在于:建立所述低功耗任务具体包括RTOS低功耗的实现、屏幕开关以及低功耗策略;
其中,RTOS采用基于时间片轮转的抢占式任务调度机制。
3.根据权利要求2所述的基于嵌入式的低功耗图像显示方法,其特征在于:所述RTOS低功耗的实现具体为,当空闲任务运行时,进入低功耗模式;在适当条件下,通过中断或外部事件唤醒MCU;且当RTOS系统中的定时器产生中断时,也将MCU从低功耗模式中唤醒;
其中,所述RTOS系统中的定时器为动态,任务调度器可以预测到下一个周期性任务的触发时间;当MCU被唤醒时,系统时钟提供补偿。
4.根据权利要求1或2所述的基于嵌入式的低功耗图像显示方法,其特征在于:所述屏幕开关以及低功耗策略的实现具体为,通过设备的姿态控制屏幕的开关和是否进入低功耗,当所述传感器任务采集数据并进行位姿算法后通过AHRS算法判断是否点亮屏幕;
其中,当一定时间未操作屏幕则自动进行低功耗状态。
5.根据权利要求1所述的基于嵌入式的低功耗图像显示方法,其特征在于:在所述图形显示任务的实现中,可以拥有任意数量的屏幕,可以选择在单个屏幕的上下文中实现整个应用程序。
6.根据权利要求5所述的基于嵌入式的低功耗图像显示方法,其特征在于:在所述图形显示任务的实现中还包括一个内存分配方案,自动分配大多数的RAM消耗屏幕所需的RAM,且在所述应用程序的所有屏幕上重复使用此RAM块。
7.根据权利要求6所述的基于嵌入式的低功耗图像显示方法,其特征在于:还包括屏幕转换机制,可以设置从一个屏幕到另一个屏幕的过渡动画,内置过渡器提供从一个屏幕到另一个屏幕的即时切换,并且可以在新屏幕中水平或垂直滑动。
8.根据权利要求1所述的基于嵌入式的低功耗图像显示方法,其特征在于:还提供设置大小和位置的选择功能,在界面中使用的Drawable类适用于所有内置Drawable类以及创建的任何自定义Drawable类;且支持所有语言高质量的以及消除锯齿文本和字体;且选择一个或两帧缓冲器,通过双缓冲,将下一帧渲染到一个帧缓冲区;还使用一个可以绘制线条和形状的Canvas Widget渲染器;且可以降低触摸控制器的采样频率。
9.根据权利要求1所述的基于嵌入式的低功耗图像显示方法,其特征在于:选择判断所述任务属性,进行图像显示具体包括,当任务被运行之后所述传感器任务实时采集数据传输至AHRS姿态算法来判断是否要进入或退出低功耗模式,当确定进入低功耗模式后,屏幕将关闭,所述图形显示任务被挂起,设备进入低功耗模式,设备通过一个低功耗计时器来替代SYSTick,将外部或内部晶振关闭,此时只有低功耗任务在运行,用于检测是否唤醒,位姿变化时传感器的DMP会输出IO中断,所述低功耗任务被唤醒退出Tickless模式,所述图形显示任务依然被挂起,所述传感器任务从挂起态转为运行态,采集数据传输至AHRS姿态算法来判断是否要点亮屏,当屏幕点亮,所述图形显示任务由挂起态转变为运行态,开始运行;
其中,当屏幕被点亮的同时会有一个定时器运行记录亮屏的时间,若超过规定的时间后同样会熄灭屏幕,并进入低功耗。
10.一种基于嵌入式的低功耗图像显示系统,其特征在于:包括,
建立模块(100),用于建立低功耗任务、传感器任务、图形显示任务及信号量;
任务调度模块(200),用于根据RTOS的任务就绪表进行调用任务;
运行模块(300),用于根据所述任务调度模块(200)调动的任务进行运行;
显示模块(400),用于进行图像显示;
其中,所述运行模块(300)具体包括,
运行单元,运行调用的任务;
判断控制单元,用于根据所述任务属性控制所述运行单元进行唤醒或休进入低功耗模式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010100396.2A CN111399624B (zh) | 2020-02-18 | 2020-02-18 | 一种基于嵌入式的低功耗图像显示方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010100396.2A CN111399624B (zh) | 2020-02-18 | 2020-02-18 | 一种基于嵌入式的低功耗图像显示方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111399624A true CN111399624A (zh) | 2020-07-10 |
CN111399624B CN111399624B (zh) | 2021-04-13 |
Family
ID=71434226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010100396.2A Expired - Fee Related CN111399624B (zh) | 2020-02-18 | 2020-02-18 | 一种基于嵌入式的低功耗图像显示方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111399624B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112596599A (zh) * | 2020-12-21 | 2021-04-02 | 上海商米科技集团股份有限公司 | 一种应用于嵌入式系统降低功耗的方法 |
CN113377321A (zh) * | 2021-08-16 | 2021-09-10 | 深圳市聚视智能系统有限公司 | 显示模组节能方法、装置、系统、计算机设备和存储介质 |
CN114168105A (zh) * | 2021-12-08 | 2022-03-11 | 深圳市研强物联技术有限公司 | 基于双系统穿戴产品的音频媒体播放的实现方法与介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080301484A1 (en) * | 2007-05-30 | 2008-12-04 | Kabushiki Kaisha Toshiba | Information processing device |
CN101884022A (zh) * | 2007-09-14 | 2010-11-10 | 戈恩斯潘公司 | 降低基于模数控制电路的片上系统的功耗的方法及系统 |
CN103728874A (zh) * | 2013-12-27 | 2014-04-16 | 上海斐讯数据通信技术有限公司 | 一种智能点亮手表屏幕的方法及手表 |
CN103809730A (zh) * | 2014-02-18 | 2014-05-21 | 上海新储集成电路有限公司 | 一种低功耗可穿戴设备系统 |
US20150161970A1 (en) * | 2013-12-03 | 2015-06-11 | Samsung Electronics Co., Ltd. | Method and system for providing a real time content updates to a user |
CN104917581A (zh) * | 2015-06-29 | 2015-09-16 | 小米科技有限责任公司 | 系统时间的校正方法、装置、终端及路由器 |
CN105759939A (zh) * | 2016-02-19 | 2016-07-13 | 山东超越数控电子有限公司 | 一种基于ReWorks系统的手持机实现屏幕关闭与唤醒的方法 |
CN105788542A (zh) * | 2014-08-08 | 2016-07-20 | 华为技术有限公司 | 一种显示设备的刷新控制方法及装置 |
CN106547204A (zh) * | 2016-10-18 | 2017-03-29 | 上海斐讯数据通信技术有限公司 | 一种智能手表及其亮显屏幕的方法 |
CN107025040A (zh) * | 2017-04-28 | 2017-08-08 | 上海斐讯数据通信技术有限公司 | 基于oled屏幕的显示设置方法、系统及图形用户界面 |
CN107273141A (zh) * | 2017-07-10 | 2017-10-20 | 无锡走向智能科技有限公司 | 嵌入式实时操作系统 |
CN209085657U (zh) * | 2017-08-02 | 2019-07-09 | 强力物联网投资组合2016有限公司 | 用于与化工生产工艺有关的或工业环境的数据收集系统 |
-
2020
- 2020-02-18 CN CN202010100396.2A patent/CN111399624B/zh not_active Expired - Fee Related
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080301484A1 (en) * | 2007-05-30 | 2008-12-04 | Kabushiki Kaisha Toshiba | Information processing device |
CN101884022A (zh) * | 2007-09-14 | 2010-11-10 | 戈恩斯潘公司 | 降低基于模数控制电路的片上系统的功耗的方法及系统 |
US20150161970A1 (en) * | 2013-12-03 | 2015-06-11 | Samsung Electronics Co., Ltd. | Method and system for providing a real time content updates to a user |
CN103728874A (zh) * | 2013-12-27 | 2014-04-16 | 上海斐讯数据通信技术有限公司 | 一种智能点亮手表屏幕的方法及手表 |
CN103809730A (zh) * | 2014-02-18 | 2014-05-21 | 上海新储集成电路有限公司 | 一种低功耗可穿戴设备系统 |
CN105788542A (zh) * | 2014-08-08 | 2016-07-20 | 华为技术有限公司 | 一种显示设备的刷新控制方法及装置 |
CN104917581A (zh) * | 2015-06-29 | 2015-09-16 | 小米科技有限责任公司 | 系统时间的校正方法、装置、终端及路由器 |
CN105759939A (zh) * | 2016-02-19 | 2016-07-13 | 山东超越数控电子有限公司 | 一种基于ReWorks系统的手持机实现屏幕关闭与唤醒的方法 |
CN106547204A (zh) * | 2016-10-18 | 2017-03-29 | 上海斐讯数据通信技术有限公司 | 一种智能手表及其亮显屏幕的方法 |
CN107025040A (zh) * | 2017-04-28 | 2017-08-08 | 上海斐讯数据通信技术有限公司 | 基于oled屏幕的显示设置方法、系统及图形用户界面 |
CN107273141A (zh) * | 2017-07-10 | 2017-10-20 | 无锡走向智能科技有限公司 | 嵌入式实时操作系统 |
CN209085657U (zh) * | 2017-08-02 | 2019-07-09 | 强力物联网投资组合2016有限公司 | 用于与化工生产工艺有关的或工业环境的数据收集系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112596599A (zh) * | 2020-12-21 | 2021-04-02 | 上海商米科技集团股份有限公司 | 一种应用于嵌入式系统降低功耗的方法 |
CN113377321A (zh) * | 2021-08-16 | 2021-09-10 | 深圳市聚视智能系统有限公司 | 显示模组节能方法、装置、系统、计算机设备和存储介质 |
CN113377321B (zh) * | 2021-08-16 | 2021-11-09 | 深圳市聚视智能系统有限公司 | 显示模组节能方法、装置、系统、计算机设备和存储介质 |
CN114168105A (zh) * | 2021-12-08 | 2022-03-11 | 深圳市研强物联技术有限公司 | 基于双系统穿戴产品的音频媒体播放的实现方法与介质 |
CN114168105B (zh) * | 2021-12-08 | 2023-12-01 | 深圳市研强物联技术有限公司 | 基于双系统穿戴产品的音频媒体播放的实现方法与介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111399624B (zh) | 2021-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111399624B (zh) | 一种基于嵌入式的低功耗图像显示方法及系统 | |
CN106233249B (zh) | 用于管理睡眠模式的处理器的图形缓冲区的装备和方法 | |
WO2021008543A1 (zh) | 一种资源调度的方法和电子设备 | |
US9798378B2 (en) | Apparatus and method for awakening a primary processor out of sleep mode | |
EP2473914B1 (en) | Hardware-based scheduling of graphics processor unit (gpu) work | |
EP3309674B1 (en) | Memory power savings in idle display case | |
US9804665B2 (en) | Apparatus and method for passing event handling control from a primary processor to a secondary processor during sleep mode | |
US9417769B2 (en) | Control device, display device, control method and program product | |
JPS58195966A (ja) | 多重タスク処理ワ−ド・プロセツサにおける使用者制御によるリソ−ス切換え方法 | |
WO2013090064A1 (en) | Electronic reader display control | |
US20210208935A1 (en) | Method for Scheduling Multi-Core Processor, Terminal, and Storage Medium | |
WO2024032144A1 (zh) | 设备控制方法、装置、可穿戴设备及存储介质 | |
CN107430787A (zh) | 在共享着色器核心上提供异步显示着色器功能 | |
CN115543551A (zh) | 线程调度方法、装置及电子设备 | |
CN1292340C (zh) | 对图形显示具有最低影响的元件操作参数调整的方法 | |
US10936365B2 (en) | Data processing systems | |
CN116137675A (zh) | 渲染方法及装置 | |
CN112492393A (zh) | 一种mic开关关联节能模式的实现方法及显示设备 | |
CN108170475A (zh) | 一种用于移动式航向基准设备的嵌入式软件开发方法 | |
JP2000020112A (ja) | 表示器 | |
EP4345622A1 (en) | Service process calling method and related device | |
CN118152091A (zh) | 车机启动控制方法、装置、电子设备及存储介质 | |
CN111556194B (zh) | 亮度调节方法、装置、存储介质及终端 | |
WO2021115229A1 (zh) | 电子书的显示方法、装置、存储介质及电子设备 | |
CN116700585A (zh) | 熄屏控制方法、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210413 Termination date: 20220218 |
|
CF01 | Termination of patent right due to non-payment of annual fee |