一种基于cpu及dsp协同机制的gui系统实现方法

文档序号:6443833阅读:253来源:国知局
专利名称:一种基于cpu及dsp协同机制的gui系统实现方法
技术领域
本发明用于实现基于DSP软件解码的图形用户接口,应用于工业控制和消费类电子产品中,如手机、PDA、车载系统、智能家电等领域。
背景技术
嵌入式图形用户接口(⑶I)系统是嵌入式实时操作系统的一个重要组成部分,随着嵌入式系统硬件设备可获得性的提高和价格的不断降低以及嵌入式系统应用范围的不断扩大,嵌入式GUI系统的重要性越来越突出。图形用户接口系统是系统级的支撑软件,它可以和文件系统、操作系统内核等一起构成一个完整的操作系统,GUI为用户提供与应用系统交互的可视化通道,即GUI负责系统的可视化界面生成,管理系统与用户之间的交互信息。与通用的⑶I系统相比,嵌入式系统下对⑶I基本要求包括轻型、占用资源少、高性能、高可靠性和可配置等。现阶段,⑶I的实现都是大多采用单处理器的方式,如单片机、ARM、DSP。对于不是很复杂的GUI来说,单处理器足以应对。但随着工业控制产品和消费类电子产品的发展, 人们对消费类或工业控制类产品的图形用户接口的功能要求越来越多,性能要求也越来越高。单处理器并不能完全满足这类产品的要求。比如现在很多产品采用ARM来做⑶I,虽然ARM的控制能力很强,但是对于JPEG图片的解码、图像渲染等运算比较复杂的部分却并不擅长,这就带来了⑶I运行速度的降低;也有一些产品采用DSP实现⑶I,DSP芯片具有高速的信息处理能力,对图片解码和图像渲染等耗时运算的处理能力很好,但是DSP的控制能力相对较弱,这是GUI性能提升的一个瓶颈。除此之外,自从1999年,NVIDIA公司首次提出图形处理单元(GPU)的概念以后, GTO受到了人们的关注。由于GPU具有高性能的图形处理能力,很多嵌入式系统在实现图形用户接口的时候采用GPU来进行图形处理。虽然GPU的性能比通用处理器高,但GPU也存在一定的缺陷,首先,GPU不能自主地进行运算处理,需要CPU提供指令来运行;再者,GPU 的功耗也比较高,这对一些手持设备来说是一个致命的弱点。

发明内容
技术问题本发明的目的是提供一种基于CPU-DSP架构的嵌入式系统中GUI系统的设计方法,将CPU的控制能力和DSP的并行处理能力相结合,提高图形用户接口系统的美观度、灵活性和性能。技术方案图形用户接口(GUI)用于用户与系统的交互以及图形的显示。一套完整的⑶I系统的组成模块包括消息管理模块、窗口和控件管理模块、图形设备接口(⑶I) 模块、图形库模块和设备抽象层模块。采用本发明方法实现的图形用户接口采用图I所示的结构。每个模块的功能如下
(I)消息处理模块整个⑶I编程架构是建立在消息分发、消息循环以及消息处理之上的,系统自身的运行以及GUI应用程序的运行都是依赖于消息处理模块。该模块主要负责消息的接收、 传递和分发。GUI的消息可以分为两类底层系统消息和内部消息。底层系统消息,包括中断(触摸屏、鼠标等)和定时器,系统将根据消息的类型,将事件分发到对应的窗口或者应用程序上。内部消息,如CPU与DSP之间消息的传递,系统则通过总线或者共享内存传递消肩、O(2)窗口和控件管理模块该模块为上层应用程序提供了创建主窗口和控件的基本接口,并负责维护控件类。该模块实现了多窗口管理,允许用户把内容显示在不同的、可以重叠的屏幕区域内。多窗口系统能够显示更丰富的信息,而且之间可以方便、快速地切换。控件的底层是初级绘图层,控件是初级绘图层的一种封装实现,常用的有静态框、按钮、编辑框、列表框、下拉框等。(3)图形设备接口模块该模块是连接上层应用和下层硬件抽象层的图形设备通信的媒介。它一方面建立在硬件抽象层之上,另一方面又对应用程序提供了一些与设备无关的接口。通过图形设备接口,GUI应用程序就可以在图形显示设备上进行图形输出,包括基本的绘图和文本输出。(4)图形库模块该模块包含一些比较独立的绘图子模块,如字体字符集支持、图像支持、图形渲染支持以及视频支持。(5)设备抽象层模块该模块抽象出两类设备基于图形显示设备(如LCD)的图形抽象层(GAL);基于输入设备(如键盘、触摸屏等)的输入抽象层(IAL)。GAL层完成系统对具体的显示硬件设备的操作,隐藏了硬件的技术实现细节,为上层提供了统一的图形编程接口 ;IAL层则需要实现对于不同输入设备的控制操作,提供统一的调用接口。本发明采用CPU-DSP的多核架构平台实现图形用户接口系统,需要对GUI的模块进行任务分配。考虑到CPU和DSP处理的特性,本发明采用一种主从方式——由CPU来控制DSP工作。总体说来,CPU(如ARM)主要负责整个⑶I系统的流程控制,包括与外围设备以及其他模块的交互,DSP则负责涉及到复杂计算的视频编解码、图片解码以及图片渲染等任务。如图2所示。本发明采用共享内存的方式来完成CPU与DSP之间的数据传递。CPU将需要处理的数据存放在内存的指定地址,并将其首地址指针用消息的方式发送给DSP ;DSP也采用同样地方式将处理完的数据信息反馈给CPU。本发明采用消息传递来完成CPU与DSP核之间的同步。由CPU向DSP发送命令消息包,其包含消息的类型以及消息处理时所需要的数据在共享内存中的位置信息;DSP处理完数据后,向CPU发送反馈消息包,反馈消息包包括消息类型以及处理完的数据在共享内存中的位置信息。有益效果^fDSP的并行处理技术运用到图形用户接口系统的设计上,与传统的 Gn系统相比,增强了系统对图片、图像以及视频的处理能力,提高了系统的实时性;与包含GPU模块的系统相比,增加了系统的通用性,同时也降低了系统功耗。


图I是本发明中所陈述的图形用户系统的结构层次图。图中的箭头方向表示数据的流向。整个系统包含模块消息管理模块、窗口和控件管理模块、图形设备接口模块、图形库模块和设备抽象层模块。整个系统是建立在消息分发、消息循环以及消息处理的基础之上的,每层之间通过消息的方式进行交互。图2为CPU与DSP处理器以及外设之间的关系示意图。其中粗箭头代表数据的流向,细箭头代表消息的流向。CPU和DSP是一种主从关系,由CPU来控制⑶I的流程,在需要进行复杂运算的时候启动DSP ;DSP主要负责图形渲染、图片解码、字库解码等运算量较大的模块。它们之间通过共享内存进行数据交互;并通过总线以消息包的方式进行同步。其中命令消息包包括消息的类型以及消息处理时所需要的数据在共享内存中的位置信息;反馈消息包包括消息类型以及处理完的数据在共享内存中的位置信息。图3描述了 CPU工作流程图,说明了 CPU控制DSP工作的详细流程。图4是DSP在接收到CPU的命令消息后,进行数据处理并返回消息至CPU的流程示意图。
具体实施例方式一种基于CPU及DSP协同机制的⑶I系统实现方法,先设计⑶I系统,⑶I系统包括消息管理模块、窗口和控件管理模块、图形设备接口模块、图形库模块和设备抽象层模块;其特征是设计CPU负责整个GUI系统的各个模块的流程控制,该流程控制包括与外围设备以及其他模块的交互,DSP负责涉及到视频编解码、图片解码以及图片渲染工作;由CPU 来控制DSP工作;所述⑶I系统本设计成由CPU和DSP两部分组成;所述CPU与DSP之间采用共享内存的方法进行数据传送,并通过总线以消息包的方式通知对方;对于CPU CPU通过图形设备接口模块接收到绘图信息后,获取设备上下文信息,根据绘图类型判断,如果绘图类型是图片、字库、视频或者图形渲染,则交予DSP处理器处理,其余则由 CPU处理器处理。这里的设备上下文信息是指,每个图形设备定义了计算机显示屏幕上的一个矩形输出区域。在调用图形输出函数时,均要求指定经初始化的图形设备上下文。上下文信息一般包括该设备上下文所在的设备信息(显示模式、色彩深度、显存布局等等);该设备上下文所代表的窗口以及该窗口被其他窗口剪切的信息;该设备上下文的基本操作函数(点、 线、多边形、填充、块操作等)及其上下文信息;由程序设定的局部信息(绘图属性、映射关系和局部到切域等);对于DSP 用DSP实现资源库,资源库包括图片解码、字库解码、视频解码和图片渲染;I)所述CPU交任务给DSP处理,则向DSP发送命令消息包,然后等待DSP处理完数据;所述命令消息包中包含消息的类型、消息处理时所需要的数据在共享内存中的位置信
6
2)DSP接收到CPU发送的命令消息包,经过解析,得到消息的类型和数据在共享内存中的位置信息;DSP根据该位置信息从共享内存中调取相应数据,并根据消息的类型,调用相应的资源库对数据进行并行处理;3)DSP处理完以后在将反馈消息包传送给CPU ;所述反馈消息包中包含消息类型、 处理完成的数据在共享内存中的位置信息。所述消息处理模块负责消息的接收、传递和分发;GUI的消息可以分为两类底层系统消息和内部消息;底层系统消息包括设备中断和定时器;GUI系统根据消息的类型,将事件分发到对应的窗口或者应用程序上;内部消息包括CPU与DSP之间消息的传递,GUI系统通过总线或者共享内存传递消息;所述窗口和控件管理模块为应用层的应用程序提供了创建主窗口和控件的基本接口,并维护控件类;该模块实现了多窗口管理,允许用户把内容显示在不同的、可以重叠的屏幕区域内;控件的底层是初级绘图层,控件是初级绘图层的封装实现,控件包括静态框、按钮、编辑框、列表框和下拉框;图形设备接口模块连接应用层和设备抽象层的图形设备通信媒介;该模块建立在硬件抽象层之上,又对应用程序提供与设备无关的接口 ;通过图形设备接口模块,Gn应用程序在图形显示设备上进行图形输出,包括基本的绘图和文本输出;图形库模块包含独立的绘图子模块,自模块包括字体字符集支持、图像支持、图形渲染支持以及视频支持;设备抽象层模块该模块抽象出两类设备基于图形显示设备的图形抽象GAL层; 基于输入设备的输入抽象IAL层;GAL层完成GUI系统对图形显示设备的硬件操作,为图形设备接口提供了统一的图形编程接口 ;IAL层实现对于不同输入设备的控制操作,提供统一的调用接口。这里,调用接口是指调用输入设备(如键盘、鼠标、触摸屏等)接口来实现具体的输入抽象层操作,如打开设备、从设备中读取数据、关闭设备等;GAL层的接口包括打开设备、关闭设备、设置分辨率及显示模式等)。具体到本例中,下面结合附图与具体实施方式
对本技术方案进一步说明如下本发明的处理器由CPU和DSP两部分组成,其中CPU控制整个系统的流程,将⑶I 中用到的图片视频解码和图形渲染运算交予DSP处理,DSP处理完以后CPU再继续自己的工作。CPU用于实现图形用户系统的流程控制。该部分按照图I所示的模块图实现消息管理模块、窗口和控件管理模块、图形设备接口(GDI)模块、图形库模块和设备抽象层模块。消息管理模块实现外部消息的接收与分发和内部消息的传递。系统接收到来自底层(键盘、触摸屏等)的消息或者应用程序内部消息((PU和DSP之间的消息),该模块根据消息事件的类型,将消息派发到对应的应用程序或者窗口控件中。窗口和控件管理模块实现多窗口管理和控件库。多窗口管理模块实现三个功能接收消息管理模块分发的事件消息,并使消息正确路由至目标窗口,并触发窗口过程;更新活动窗口和焦点窗口或者控件;维护窗口的Z序列和各个窗口的剪切域矩形链,正确进行窗口重绘,执行窗口过程。图形设备接口模块和图形库模块的实现流程如图3所示。GDI模块接收到绘图信息后,获取设备上下文信息,根据绘图类型判断是交予DSP处理器或是交予CPU处理器处理。DSP处理器负责图像、字体以及视频的解码和图形的渲染,其他的都由CPU完成。如果是交由DSP处理,则向DSP发送命令消息包,命令消息包中包含消息的类型以及消息处理时所需要的数据在共享内存中的位置信息,然后等待DSP处理完数据后,向CPU发送反馈消息包,反馈消息包包括消息类型以及处理完的数据在共享内存中的位置信息。设备抽象层模块包括图形抽象层和输入抽象层。设备抽象层根据输入设备和输出设备定义了一组不依赖任何特殊硬件的抽象接口,类似操作系统的驱动程序,便于上层应用的统一调用。DSP处理器用于实现一些复杂的资源库,如图片、字体以及视频的解码以及图形渲染。DSP的工作流程如图4所示,当接收到CPU发送的命令消息包,经过解析,得到消息的类型和数据信息,根据消息的类型,调用不同的资源库对数据进行并行处理,处理完以后在将消息类型和处理完的数据信息打包成反馈消息包,传送给CPU。CPU和DSP之间采用通信方式如图2所示。CPU和DSP将需要传递给对方的数据存放在共享内存中,然后通过总线以消息包的方式通知对方,从而到达同步的目的。
权利要求
1.一种基于CPU及DSP协同机制的⑶I系统实现方法,先设计⑶I系统,⑶I系统包括消息管理模块、窗口和控件管理模块、图形设备接口模块、图形库模块和设备抽象层模块; 其特征是设计CPU负责整个GUI系统的各个模块的流程控制,该流程控制包括与外围设备以及其他模块的交互,DSP负责涉及到视频编解码、图片解码以及图片渲染工作;由CPU来控制DSP工作;所述⑶I系统本设计成由CPU和DSP两部分组成;所述CPU与DSP之间采用共享内存的方法进行数据传送,并通过总线以消息包的方式通知对方;对于CPU (PU通过图形设备接口模块接收到绘图信息后,获取设备上下文信息,根据绘图类型判断,如果绘图类型是图片、字库、视频或者图形渲染,则交予DSP处理器处理,其余则由CPU 处理器处理;对于DSP 用DSP实现资源库,资源库包括图片解码、字库解码、视频解码和图片渲染;1)所述CPU交任务给DSP处理,则向DSP发送命令消息包,然后等待DSP处理完数据; 所述命令消息包中包含消息的类型、消息处理时所需要的数据在共享内存中的位置信息;2)DSP接收到CPU发送的命令消息包,经过解析,得到消息的类型和数据在共享内存中的位置信息;DSP根据该位置信息从共享内存中调取相应数据,并根据消息的类型,调用相应的资源库对数据进行并行处理;3)DSP处理完以后在将反馈消息包传送给CPU;所述反馈消息包中包含消息类型、处理完成的数据在共享内存中的位置信息。
2.根据权利要求I所述的基于CPU及DSP协同机制的GUI系统实现方法,其特征是 所述消息处理模块负责消息的接收、传递和分发;GUI的消息可以分为两类底层系统消息和内部消息;底层系统消息包括设备中断和定时器;GUI系统根据消息的类型,将事件分发到对应的窗口或者应用程序上;内部消息包括CPU与DSP之间消息的传递,GUI系统通过总线或者共享内存传递消息; 所述窗口和控件管理模块为应用层的应用程序提供了创建主窗口和控件的基本接口,并维护控件类;该模块实现了多窗口管理,允许用户把内容显示在不同的、可以重叠的屏幕区域内;控件的底层是初级绘图层,控件是初级绘图层的封装实现,控件包括静态框、按钮、编辑框、列表框和下拉框;图形设备接口模块连接应用层和设备抽象层的图形设备通信媒介;该模块建立在硬件抽象层之上,又对应用程序提供与设备无关的接口 ;通过图形设备接口模块,GUI应用程序在图形显示设备上进行图形输出,包括基本的绘图和文本输出;图形库模块包含独立的绘图子模块,自模块包括字体字符集支持、图像支持、图形渲染支持以及视频支持;设备抽象层模块该模块抽象出两类设备基于图形显示设备的图形抽象GAL层;基于输入设备的输入抽象IAL层;GAL层完成GUI系统对图形显示设备的硬件操作,为图形设备接口提供了统一的图形编程接口 ;IAL层实现对于不同输入设备的控制操作,提供统一的调用接口。
全文摘要
一种基于CPU及DSP协同机制的GUI系统实现方法,适用于工业控制和消费类电子产品中,结合CPU的控制能力和DSP的并行处理能力,提高图形用户接口系统的美观度、灵活性和性能。该系统包含CPU和DSP两个部分,其中CPU主要负责整个GUI系统的流程控制,包括与外围设备以及其他模块的交互,DSP则负责涉及到复杂计算的视频编解码、图片解码以及图片渲染等任务。采用共享内存的方式来完成CPU与DSP之间的数据传递,并通过总线以消息包的方式通知对方,从而到达同步的目的。
文档编号G06F9/44GK102591657SQ201110448438
公开日2012年7月18日 申请日期2011年12月29日 优先权日2011年12月29日
发明者包冰莹, 戚隆宁, 杨军, 黄少珉 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1