一种嵌入式设备的液晶屏显示方法及装置与流程

文档序号:14835284发布日期:2018-06-30 12:08阅读:348来源:国知局
一种嵌入式设备的液晶屏显示方法及装置与流程

本申请涉及嵌入式技术领域,尤其涉及一种嵌入式设备的液晶屏显示方法及装置。



背景技术:

嵌入式设备主要由嵌入式处理器、相关支撑硬件和嵌入式软件系统组成,可以显示图形界面。嵌入式设备通常采用Linux系统,使用Linux系统中帧缓存FrameBuffer为显示设备提供接口。FrameBuffer允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。Linux FrameBuffer本质上只提供了对图形设备的硬件抽象,在开发者的角度,FrameBuffer是一块显示缓存,在显示缓存中写入特定格式的数据就意味着向屏幕输出内容。

例如,初始化为16位的FrameBuffer,FrameBuffer中的两个字节代表屏幕上一个点,从上到下,从左至右,屏幕位置与内存地址是顺序的线性关系。通过不停的向FrameBuffer中写入数据,显示控制器自动从FrameBuffer中读取数据并显示,全部的图形共享内存中同一个FrameBuffer。显示控制器根据中央处理器CPU的控制到指定的位置读取数据和指令。

在结构组成简单的嵌入式设备中,CPU中可能没有显示控制器灯专门负责显示的模块,CPU与液晶屏之间通过串行外设接口SPI总线互联。此时FrameBuffer机制过于复杂,在硬件条件不符合的情况下不在适用。



技术实现要素:

本申请提供了一种嵌入式设备的液晶屏显示方法及装置,以解决硬件条件不符合Lunix FrameBufuffer机制不能驱动液晶屏的问题。

第一方面,本申请提供了一种嵌入式设备的液晶屏显示方法,该方法包括:应用软件将初始数据转化为预置数据格式的显示数据;在字符设备中申请内存块,所述内存块大小为保存单帧数据对应的数据量所需的内存空间,所述单帧数据是所述液晶屏单次显示的数据;所述应用软件将所述显示数据保存至所述内存块;所述字符设备获取所述显示数据;通过总线驱动发送所述显示数据,所述总线驱动为在Linux系统中的Platform驱动中,选取与总线参数相适应的总线驱动,所述总线参数包括总线编号、总线时钟和总线模式;液晶屏接收并显示所述显示数据。采用本实现方式,在结构简单的嵌入式设备中实现灵活的液晶屏驱动显示方案,对上层应用程序屏蔽具体硬件类型以及操作,只用关心需要液晶屏大小,颜色,位置等内容,下层则借助linux强大的总线驱动结构完成多种类型的硬件适配。同时,适用于多种lcd设备的硬件。

结合第一方面,在第一方面第一种可能的实现方式中,所述应用软件将初始数据转化为预置数据格式的显示数据,包括:将所述初始数据拆分成数个单帧数据,所述初始数据的数据格式包括字符、图片、动画和视频,所述单帧数据是所述液晶屏单次显示的数据;按照所述预置数据格式,将所述单帧数据转化为显示数据。采用本实现方式,同时能完成多种形式的定制显示,比如图片、动画等。

结合第一方面,在第一方面的第二种可能的实现方式中,所述将所述初始数据拆分成数个单帧数据,包括:获取所述初始数据的数据格式;查找所述数据格式对应的拆分算法;根据所述拆分算法,拆分所述初始数据。

结合第一方面,在第一方面的第三种可能的实现方式中,所述在所述字符设备中申请内存块,包括:为所述内存块配置I/O管理通道,所述I/O管理通道为ioctl接口。采用本实现方式,通过ioctl接口,依据frame buffer原理实现上层应用软件的数据接收以及下层硬件的数据传输。

结合第一方面,在第一方面的第四种可能的实现方式中,所述液晶屏接收并显示所述显示数据,包括:按照预置时间间隔,刷新所述液晶屏。采用本实现方式,对动态显示的控制,这个需要稳定每帧的持续时间,达到较好的显示效果。

第二方面,本申请还提供了一种嵌入式设备的液晶屏显示装置,所述装置包括用于执行第一方面各种实现方式中方法步骤的模块。

第三方面,本申请还提供了一种终端,包括:处理器及存储器;所述处理器可以执行所述存储器中所存储的程序或指令,从而实现以第一方面各种实现方式所述嵌入式设备的液晶屏显示方法。

第四方面,本申请还提供了一种存储介质,该计算机存储介质可存储有程序,该程序执行时可实现包括本申请提供的嵌入式设备的液晶屏显示方法各实施例中的部分或全部步骤。

附图说明

为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请提供的嵌入式设备控制液晶屏显示的结构示意图;

图2为本申请提供的一种嵌入式设备的液晶屏显示方法流程图;

图3为本申请提供的一种应用软件将初始数据转化为预置数据格式的显示数据的方法流程图;

图4为本申请提供的一种嵌入式设备的液晶屏显示装置组成框图;

图5为本申请提供的转化单元的组成框图。

具体实施方式

参见图1,为本申请提供的嵌入式设备控制液晶屏显示的结构示意图。在中央处理器CPU内包括同步动态随机存储器SDRAM控制器和液晶屏LCD控制器,SDRAM控制器负责控制SDRAM的输入、输出和存储,液晶屏LCD控制器负责控制液晶屏的显示。在SDRAM中保存液晶屏的显示数据。

CPU指定LCD控制器工作,则LCD控制器根据CPU的控制到指定的地方去取数据和指令,目前的数据一般是从显存里取,如果显存里存不下,则从内存里取,内存也放不下,则从硬盘里取,当然也不是内存放不下,而是为了节省内存的话,可以放在硬盘里,然后通过指令控制显示控制器去取。FrameBuffer中的数据是一帧一帧存储的,显卡会不停的刷新FrameBuffer,也就是实时更新的。无论显示数据在内存还是显存里,都是一个显性的信息,假设是800x600的分辨率,则保存的是800x600个像素点和颜色值。

参见图2,为本申请提供的一种嵌入式设备的液晶屏显示方法流程图。如图1所示,该方法包括:

201、应用软件将初始数据转化为预置数据格式的显示数据。

应用软件,是为满足用户不同领域、不同问题的应用需求而提供的那部分软件,用于放大硬件功能,可以使用多种程序设计语言,以及多种程序设计语言编制的应用程序的集合。在本申请中应用软件是指应用于该嵌入式设备的,涉及液晶屏显示的所有软件。初始数据,是指需要通过液晶屏显示的数据。预置数据格式,是指能够用于液晶屏显示的数据格式,例如RGB、CMYK、YUV等等。无论初始数据的格式是文本,图片,还是视频,都转化成液晶屏能够显示的显示数据。

202、在字符设备中申请内存块。

字符设备负责与上层的应用软件进行交互,将应用软件需要显示的数据接收下来,同时将这个数据通过总线驱动传递到液晶屏上去。视频,也就是连续播放的图像。也就是液晶屏每次显示整屏图像,然后在显示下一屏图像,如果是图片格式的数据,则响应于用户操作或者设置的图片切换速度,一张一张的显示;如果是视频格式的数据,则根据视频中图像的切换速度,切换图片,以一段视频的结束为停止标识。

在向液晶屏传输数据时,以一屏显示的数据量为单位,单屏传输数据。为了减少数据量的限制方法,设置内存块大小为保存单帧数据对应的数据量所需的内存空间,单帧数据是液晶屏单次显示的数据。

为了便于数据的传输,为内存块配置I/O管理通道,所述I/O管理通道为ioctl接口。ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的参数个数如下:int ioctl(int fd,int cmd,…);其中fd就是用户程序打开设备时使用open函数返回的文件标示符,cmd就是用户程序对设备的控制命令,至于后面的省略号,那是一些补充参数,一般最多一个,有或没有是和cmd的意义相关的。ioctl函数是文件结构中的一个属性分量,就是说如果你的驱动程序提供了对ioctl的支持,用户就能在用户程序中使用ioctl函数控制设备的I/O通道。

203、应用软件将显示数据保存至内存块。

应用软件确定需要液晶屏显示的显示数据后,将显示数据保存至内存块。内存块我存储空间有限,所以应用软件可以设置显示数据保存至内存块的传输速度或者传输条件。例如,如果显示数据是一段视频,那么通常这段视频是连续播放的,可以设置只要内存块中的数据已传输至液晶屏,就将下一屏数据保存至内存块。在传输过程中,可采用中断方式响应暂停、停止、退出等强制操作,其强制切断位置,可以是应用软件向内存块导出位置、也可以是从内存块到液晶屏的导出位置,在本申请实施例中不做限定。

204、字符设备获取显示数据。

字符设备从内存块中获取显示数据。

205、通过总线驱动发送显示数据。

总线驱动为在Linux系统中的Platform驱动中,选取与总线参数相适应的总线驱动,总线参数包括总线编号、总线时钟和总线模式。根据总线类型以及具体硬件参数,如总线编号、总线时钟、总线模式等,配置总线设备驱动的参数,完成驱动注册。注册完成后,执行液晶屏的初始化,最主要的是配置显示模式,这个会影响到传输给硬件的数据格式,为了屏蔽硬件配置对上层的影响可以在驱动再进行一次格式转换。

206、液晶屏接收并显示显示数据。

具体包括:按照预置时间间隔,刷新液晶屏。对动态显示的控制,这个需要稳定每帧的持续时间,达到较好的显示效果。

采用本实现方式,在结构简单的嵌入式设备中实现灵活的液晶屏驱动显示方案,对上层应用程序屏蔽具体硬件类型以及操作,只用关心需要液晶屏大小,颜色,位置等内容,下层则借助linux强大的总线驱动结构完成多种类型的硬件适配。同时,适用于多种lcd设备的硬件。

参见图3,为本申请提供的一种应用软件将初始数据转化为预置数据格式的显示数据的方法流程图。在图2所示方法的基础上,如图3所示,应用软件将初始数据转化为预置数据格式的显示数据,包括:

301、将初始数据拆分成数个单帧数据。

初始数据的数据格式包括字符、图片、动画和视频,单帧数据是液晶屏单次显示的数据。初始数据能够被拆分成若干个单帧数据,在本申请中对单帧数据的数量不做限定。具体的包括:获取初始数据的数据格式;查找数据格式对应的拆分算法;根据拆分算法,拆分初始数据。

应用软件则根据需要,进行内容的定制,需要针对不同的格式进行解析和拆分。比如中英文的显示,需要字符编码的解析和中英文字库的运用;比如图片和动画的显示,这个需要对图片和动画的格式进行解析和拆分。

302、按照预置数据格式,将单帧数据转化为显示数据。

预置数据格式,可以是液晶屏显示方式的任意一种。如果单帧数据的数据存储形式与预置数据格式不同,则将单帧数据转化成显示数据。

采用本实现方式,同时能完成多种形式的定制显示,比如图片、动画等。

作为图2和图3所示方法的具体实现,参见图4,为本申请提供的一种嵌入式设备的液晶屏显示装置组成框图,参见图5,为本申请提供的转化单元的组成框图。如图4所示,该装置包括:

转化单元41,用于应用软件将初始数据转化为预置数据格式的显示数据;

申请单元42,用于在字符设备中申请内存块,所述内存块大小为保存单帧数据对应的数据量所需的内存空间,所述单帧数据是所述液晶屏单次显示的数据;

保存单元43,用于所述应用软件将所述显示数据保存至所述内存块;

获取单元44,用于所述字符设备获取所述显示数据;

发送单元45,用于通过总线驱动发送所述显示数据,所述总线驱动为在Linux系统中的Platform驱动中,选取与总线参数相适应的总线驱动,所述总线参数包括总线编号、总线时钟和总线模式;

显示单元46,用于液晶屏接收并显示所述显示数据。

进一步地,如图5所示,所述转化单元41,包括:

拆分模块411,用于将所述初始数据拆分成数个单帧数据,所述初始数据的数据格式包括字符、图片、动画和视频;

转化模块412,用于按照所述预置数据格式,将所述单帧数据转化为显示数据。

进一步地,如图5所示,所述拆分模块411,包括:

获取子模块4111,用于获取所述初始数据的数据格式;

查找子模块4112,用于查找所述数据格式对应的拆分算法;

拆分子模块4113,用于根据所述拆分算法,拆分所述初始数据。

进一步地,所述申请单元42,用于:

为所述内存块配置I/O管理通道,所述I/O管理通道为ioctl接口。

进一步地,所述显示单元46,用于:

按照预置时间间隔,刷新所述液晶屏。

具体实现中,本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的嵌入式设备的液晶屏显示方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

以上所述的本发明实施方式并不构成对本发明保护范围的限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1