CN114020659A - 一种基于应用层驱动液晶显示的能源控制器*** - Google Patents
一种基于应用层驱动液晶显示的能源控制器*** Download PDFInfo
- Publication number
- CN114020659A CN114020659A CN202111270506.0A CN202111270506A CN114020659A CN 114020659 A CN114020659 A CN 114020659A CN 202111270506 A CN202111270506 A CN 202111270506A CN 114020659 A CN114020659 A CN 114020659A
- Authority
- CN
- China
- Prior art keywords
- liquid crystal
- interface
- display
- crystal display
- application layer
- 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.)
- Pending
Links
- 239000004973 liquid crystal related substance Substances 0.000 title claims abstract description 89
- 230000007717 exclusion Effects 0.000 claims abstract description 15
- 238000013506 data mapping Methods 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 8
- 230000002093 peripheral effect Effects 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims description 2
- 238000012356 Product development Methods 0.000 abstract description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Control Of Indicators Other Than Cathode Ray Tubes (AREA)
Abstract
本发明涉及嵌入式技术领域,具体涉及一种基于应用层驱动液晶显示的能源控制器***;所述基于应用层驱动液晶显示的能源控制器***包括:总线驱动单元、液晶驱动单元、统一接口单元、数据映射单元和访问控制单元,为所有需要进行液晶显示的应用程序提供了统一的访问接口,无需考虑对液晶的互斥访问,本***通过动态库或者源代码方式提供给开发人员,简化编程逻辑,提高了产品开发效率。
Description
技术领域
本发明涉及嵌入式技术领域,尤其涉及一种基于应用层驱动液晶显示的能源控制器***。
背景技术
随着嵌入式技术的迅猛发展,人机交互界面也越来越显示出它的重要性,液晶显示屏也已经逐步成为了嵌入式设备的基本配置;
现有技术中,多将总线控制器驱动和设备驱动集成到Linux内核中成为Linux内核的一个模块,使其运行于内核态,但是嵌入式设备***器件由于受供货、价格的影响,存在更换的风险,或者硬件布局改变,为了适配硬件的变化,就需要重新编译整个Linux内核或者单独编译内核驱动模块,但是内核和驱动模块的编译常常由主控制器供应商控制,且驱动模块的编译还依赖于编译内核的软件环境,编译内核与驱动模块的软件环境不同,将导致驱动模块挂载失败。
发明内容
本发明的目的在于提供一种基于应用层驱动液晶显示的能源控制器***,以解决现有技术中存在的,液晶硬件变动时会对软件产生影响的问题。
为实现上述目的,本发明提供了一种基于应用层驱动液晶显示的能源控制器***,所述基于应用层驱动液晶显示的能源控制器***包括:
总线驱动单元,用于通过嵌入式Linux操作***提供的通用应用层接口调用嵌入式设备主处理器集成的硬件外设接口的驱动,以提供对挂接在总线接口上的硬件设备的访问能力,并下发对液晶面板的命令和数据;
液晶驱动单元,用于提供具体液晶面板所支持的硬件操作的操作接口,
统一接口单元,用于提供显示控制接口及获取液晶面板硬件参数信息的参数接口,且所述统一接口单元与硬件解耦,并再次封装所述操作接口;
数据映射单元,用以将不同应用程序通过所述统一接口单元传递的显示数据映射到显示缓冲区,通过所述显示缓冲区每个地址与液晶面板上像素点坐标相对应,使得所述显示缓冲区存储数据的变化最终表现为液晶面板上像素点颜色的变化;以及
访问控制单元,用以提供对所述数据映射单元中的所述显示缓冲区访问的互斥机制,使得不同应用程序对液晶显示面板的操作之间构成互斥关系,保证某一时刻只有一个应用程序在操作液晶。
将应用程序与具体的液晶面板解耦,将液晶硬件的变动造成的影响控制本***中,液晶型号或接口的变动无需重新编译Linux内核镜像或Linux驱动,为所有需要进行液晶显示的应用程序提供了统一的访问接口,无需考虑对液晶的互斥访问,通过该方法设计的***通过动态库或者源代码方式提供给开发人员,简化编程逻辑,提高了产品开发效率。
其中,所述显示控制接口由具备液晶显示功能的应用程序直接调用。
用以让具备液晶显示功能的应用程序根据需要调用所述显示控制接口,进而不受液晶面板硬件变动的影响。
其中,所述参数接口包括获取液晶面板分辨率的接口,控制背光状态的接口和使用指定数据刷新指定区域显示内容的接口。
利用所述统一接口单元与硬件解耦的方式,使得通过所述统一接口单元的所述参数接口直接获取液晶面板的各项参数信息。
其中,所述显示缓冲区为由Linux操作***分配的一块未使用的固定大小的物理内存空间,所述物理内存空间的大小与液晶面板的分辨率相关。
通过设定所述显示缓冲区,来实现各应用程序对所述数据映射单元的逐一访问操作,从而实现对液晶面板有序的显示控制。
其中,所述互斥机制包括信号量和文件锁。
对所述数据映射单元中的所述显示缓冲区的访问操作是一个临界区段,多个应用程序同时访问所述临界区段时,其中一个应用程序会获得访问权限,进行所述临界区段的访问操作,其他应用程序因获取不到所述临界区段的访问权限而阻塞,并被Linux操作***加入到所述临界区段的等待队列,等待所述临界区段被访问结束后,该等待队列中第一个应用程序会***作***唤醒,获取到所述临界区段的访问权限,程序的阻塞和唤醒由Linux操作***自动完成。
其中,所述操作接口包括初始化时序接口、读写接口、命令控制接口、设置显示区域的起始坐标值接口和刷新指定位置的像素点接口。
上述所述接口被上层的所述统一接口单元调用,该层调用所述总线驱动单元的接口将数据和命令发送到具体的液晶显示面板。
本发明的一种基于应用层驱动液晶显示的能源控制器***,在应用程序和嵌入式Linux操作***之间增加应用层驱动液晶单元,将应用程序与具体的液晶面板解耦,将液晶硬件的变动造成的影响控制在本申请的***中,液晶型号或接口的变动无需重新编译Linux内核镜像或Linux驱动,为所有需要进行液晶显示的应用程序提供了统一的访问接口,无需考虑对液晶的互斥访问,本***通过动态库或者源代码方式提供给开发人员,简化编程逻辑,提高了产品开发效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的一种基于应用层驱动液晶显示的能源控制器***的结构示意图。
图2是本发明提供的一种基于应用层驱动液晶显示的能源控制器***的应用程序驱动液晶面板的流程示意图。
10-统一接口单元、20-访问控制单元、30-液晶驱动单元、40-数据映射单元、50-总线驱动单元。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,术语“长度”、“宽度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
请参阅图1至图2,本发明提供一种基于应用层驱动液晶显示的能源控制器***,所述基于应用层驱动液晶显示的能源控制器***包括:
总线驱动单元50,用于通过嵌入式Linux操作***提供的通用应用层接口调用嵌入式设备主处理器集成的硬件外设接口的驱动,以提供对挂接在总线接口上的硬件设备的访问能力,并下发对液晶面板的命令和数据;
液晶驱动单元30,用于提供具体液晶面板所支持的硬件操作的操作接口,
统一接口单元10,用于提供显示控制接口及获取液晶面板硬件参数信息的参数接口,且所述统一接口单元10与硬件解耦,并再次封装所述操作接口;
数据映射单元40,用以将不同应用程序通过所述统一接口单元10传递的显示数据映射到显示缓冲区,通过所述显示缓冲区每个地址与液晶面板上像素点坐标相对应,使得所述显示缓冲区存储数据的变化最终表现为液晶面板上像素点颜色的变化;以及
访问控制单元20,用以提供对所述数据映射单元40中的所述显示缓冲区访问的互斥机制,使得不同应用程序对液晶显示面板的操作之间构成互斥关系,保证某一时刻只有一个应用程序在操作液晶。
在本实施方式中,所述总线驱动单元50用于通过嵌入式Linux操作***提供的通用应用层接口(open、read、write、ioctl等)调用嵌入式设备主处理器集成的硬件外设接口的驱动(SPI、IIC、GPIO等),这些驱动特定于嵌入式设备的主处理器硬件,随着主处理器的确定而固定下来,几乎不会变更,所述总线驱动单元50提供了对挂接在总线接口上的硬件设备的访问能力,对液晶面板的命令、数据等通过该层下发,液晶面板与嵌入式设备主处理器之间连接的接口类型决定所述总线驱动单元50的内部实现;
所述液晶驱动单元30用于提供具体液晶显示面板所支持的硬件操作的操作接口,包括初始化时序接口、读写接口、命令控制接口、设置显示区域的起始坐标值接口和刷新指定位置的像素点接口,上述接口被所述统一接口单元10调用,也即所述统一接口单元10调用总线驱动单元50的接口将数据和命令发送到具体的液晶显示面板;
所述统一接口单元10用于提供具备液晶显示功能的应用程序直接调用的显示控制接口及获取液晶显示面板硬件参数信息的参数接口,所述统一接口单元10与硬件解耦,不受液晶面板硬件变动的影响,对所述液晶驱动单元30提供的所述操作接口再次封装;
所述数据映射单元40中由Linux操作***分配一块未使用的固定大小的物理内存空间作为显示缓冲区,所述显示缓冲区的大小与液晶面板的分辨率相关,不同应用程序通过所述统一接口单元10传递的显示数据映射到所述显示缓冲区,所述显示缓冲区每个地址与液晶面板上像素点坐标相对应,所述显示缓冲区存储数据的变化最终表现为液晶面板上像素点颜色的变化;
所述访问控制单元20提供对所述数据映射单元40中的所述显示缓冲区访问的互斥手段,对所述数据映射单元40中的所述显示缓冲区的访问操作是一个临界区段,临界区段的特性是不应该同时被多个应用程序访问,否则会发生未知的硬件故障,多个应用程序需要竞争所述临界区段的访问权限,所述访问控制单元20通过对所述临界区段提供互斥机制,使得多个应用程序有条不紊地对临界区段进行访问,使不同应用程序对液晶显示面板的操作之间构成互斥关系,保证某一时刻只有一个应用程序在操作液晶面板,防止同时操作液晶面板时写入液晶的数据和命令序列混合在一起导致液晶接收时序异常面板显示未知状态,多个应用程序同时访问临界区段时,其中一个程序会获得访问权限,进行临界区段的访问操作,其他应用程序因获取不到临界区段的访问权限而阻塞,并被Linux操作***加入到该临界区段的等待队列,等待临界区段被访问结束后,该等待队列中第一个应用程序会***作***唤醒,获取到临界区段的访问权限,程序的阻塞和唤醒由Linux操作***自动完成。
进一步的,所述显示控制接口由具备液晶显示功能的应用程序直接调用。
进一步的,所述参数接口包括获取液晶面板分辨率的接口,控制背光状态的接口和使用指定数据刷新指定区域显示内容的接口。
进一步的,所述显示缓冲区为由Linux操作***分配的一块未使用的固定大小的物理内存空间,所述物理内存空间的大小与液晶面板的分辨率相关。
进一步的,所述互斥机制包括信号量和文件锁。
在本实施方式中,当所述显示缓冲区是一块Linux操作***申请的共享内存空间时,所述文件锁是指应用程序在访问共享内存空间时,使用***函数fcntl()判断共享内存空间是否已经加锁,如果已经加锁,则阻塞等待直到其他应用程序结束对共享内存的操作而释放锁,同时该应用程序成功给共享内存空间施加锁,可以进一步对对象内存空间进行操作,在该应用程序结束对共享内存空间的操作之前,如果其他应用程序尝试操作共享内存空间则会因为获取锁失败而阻塞,并不会对共享内存空间造成实际影响,也即保证了同一时刻只有一个应用程序在操作液晶,防止同时操作液晶面板时写入液晶的数据和命令序列混合在一起导致液晶接收时序异常面板显示未知状态。
进一步的,所述操作接口包括初始化时序接口、读写接口、命令控制接口、设置显示区域的起始坐标值接口和刷新指定位置的像素点接口。
进一步的,所述液晶驱动单元30还用以调用总线驱动单元50的接口将数据和命令发送到具体的液晶面板。
进一步的,所述显示缓冲区是一块Linux操作***申请的共享内存空间,通过***函数mmap()将所述显示缓冲区映射到不同的应用程序,使得多个应用程序访问的是同一块物理内存。
进一步的,所述互斥机制用以在多个程序同时对所述临界区段进行访问操作时,让其中一个程序获得访问权限,进行所述临界区段的访问操作,其他程序因获取不到所述临界区段的访问权限而阻塞,并被Linux操作***加入到所述临界区段的等待队列,等待所述临界区段被访问结束后,该等待队列中第一个程序会***作***唤醒,获取到所述临界区段的访问权限。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (6)
1.一种基于应用层驱动液晶显示的能源控制器***,其特征在于,所述基于应用层驱动液晶显示的能源控制器***包括:
总线驱动单元,用于通过嵌入式Linux操作***提供的通用应用层接口调用嵌入式设备主处理器集成的硬件外设接口的驱动,以提供对挂接在总线接口上的硬件设备的访问能力,并下发对液晶面板的命令和数据;
液晶驱动单元,用于提供具体液晶面板所支持的硬件操作的操作接口,
统一接口单元,用于提供显示控制接口及获取液晶面板硬件参数信息的参数接口,且所述统一接口单元与硬件解耦,并再次封装所述操作接口;
数据映射单元,用以将不同应用程序通过所述统一接口单元传递的显示数据映射到显示缓冲区,通过所述显示缓冲区每个地址与液晶面板上像素点坐标相对应,使得所述显示缓冲区存储数据的变化最终表现为液晶面板上像素点颜色的变化;以及
访问控制单元,用以提供对所述数据映射单元中的所述显示缓冲区访问的互斥机制,使得不同应用程序对液晶显示面板的操作之间构成互斥关系,保证某一时刻只有一个应用程序在操作液晶。
2.如权利要求1所述的一种基于应用层驱动液晶显示的能源控制器***,其特征在于,
所述显示控制接口由具备液晶显示功能的应用程序直接调用。
3.如权利要求1所述的一种基于应用层驱动液晶显示的能源控制器***,其特征在于,
所述参数接口包括获取液晶面板分辨率的接口,控制背光状态的接口和使用指定数据刷新指定区域显示内容的接口。
4.如权利要求1所述的一种基于应用层驱动液晶显示的能源控制器***,其特征在于,
所述显示缓冲区为由Linux操作***分配的一块未使用的固定大小的物理内存空间,所述物理内存空间的大小与液晶面板的分辨率相关。
5.如权利要求1所述的一种基于应用层驱动液晶显示的能源控制器***,其特征在于,
所述互斥机制包括信号量和文件锁。
6.如权利要求1所述的一种基于应用层驱动液晶显示的能源控制器***,其特征在于,
所述操作接口包括初始化时序接口、读写接口、命令控制接口、设置显示区域的起始坐标值接口和刷新指定位置的像素点接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111270506.0A CN114020659A (zh) | 2021-10-29 | 2021-10-29 | 一种基于应用层驱动液晶显示的能源控制器*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111270506.0A CN114020659A (zh) | 2021-10-29 | 2021-10-29 | 一种基于应用层驱动液晶显示的能源控制器*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114020659A true CN114020659A (zh) | 2022-02-08 |
Family
ID=80058701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111270506.0A Pending CN114020659A (zh) | 2021-10-29 | 2021-10-29 | 一种基于应用层驱动液晶显示的能源控制器*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114020659A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07175445A (ja) * | 1993-12-20 | 1995-07-14 | Hitachi Ltd | メモリ内蔵液晶ドライバと液晶ディスプレイ |
US20080065838A1 (en) * | 2005-03-10 | 2008-03-13 | Pope Steven L | Data processing system with memory access |
US20120036334A1 (en) * | 2010-08-05 | 2012-02-09 | Horman Neil R T | Access to shared memory segments by multiple application processes |
CN102866966A (zh) * | 2012-08-28 | 2013-01-09 | 大唐移动通信设备有限公司 | 一种Linux操作***的设备驱动控制方法和装置 |
CN103731328A (zh) * | 2014-01-02 | 2014-04-16 | 烽火通信科技股份有限公司 | 基于Linux共享内存实现家庭网关数据通信的***及方法 |
US20140281283A1 (en) * | 2013-03-13 | 2014-09-18 | Qualcomm Incorporated | Dual host embedded shared device controller |
CN109597595A (zh) * | 2018-10-29 | 2019-04-09 | 广州市中海达测绘仪器有限公司 | 液晶显示屏的控制方法、装置、计算机设备和存储介质 |
CN112612523A (zh) * | 2020-12-17 | 2021-04-06 | 威胜集团有限公司 | 一种嵌入式设备驱动***及方法 |
CN112631536A (zh) * | 2020-12-30 | 2021-04-09 | 南京能瑞自动化设备股份有限公司 | 一种能源控制器lcd液晶显示控制***及方法 |
-
2021
- 2021-10-29 CN CN202111270506.0A patent/CN114020659A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07175445A (ja) * | 1993-12-20 | 1995-07-14 | Hitachi Ltd | メモリ内蔵液晶ドライバと液晶ディスプレイ |
US20080065838A1 (en) * | 2005-03-10 | 2008-03-13 | Pope Steven L | Data processing system with memory access |
US20120036334A1 (en) * | 2010-08-05 | 2012-02-09 | Horman Neil R T | Access to shared memory segments by multiple application processes |
CN102866966A (zh) * | 2012-08-28 | 2013-01-09 | 大唐移动通信设备有限公司 | 一种Linux操作***的设备驱动控制方法和装置 |
US20140281283A1 (en) * | 2013-03-13 | 2014-09-18 | Qualcomm Incorporated | Dual host embedded shared device controller |
CN103731328A (zh) * | 2014-01-02 | 2014-04-16 | 烽火通信科技股份有限公司 | 基于Linux共享内存实现家庭网关数据通信的***及方法 |
CN109597595A (zh) * | 2018-10-29 | 2019-04-09 | 广州市中海达测绘仪器有限公司 | 液晶显示屏的控制方法、装置、计算机设备和存储介质 |
CN112612523A (zh) * | 2020-12-17 | 2021-04-06 | 威胜集团有限公司 | 一种嵌入式设备驱动***及方法 |
CN112631536A (zh) * | 2020-12-30 | 2021-04-09 | 南京能瑞自动化设备股份有限公司 | 一种能源控制器lcd液晶显示控制***及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7257650B2 (en) | Universal graphic adapter for interfacing with hardware and means for determining previous output ranges of other devices and current device intial ranges | |
US6457099B1 (en) | Programmable dedicated application card | |
US5245702A (en) | Method and apparatus for providing shared off-screen memory | |
US6230118B1 (en) | DOS based application supports for a controllerless modem | |
US5752032A (en) | Adaptive device driver using controller hardware sub-element identifier | |
US4920481A (en) | Emulation with display update trapping | |
CN104137056A (zh) | 在没有vmm介入的情况下对调用vmm配置的服务的指令集支持 | |
JPH11167544A (ja) | Pcmciaカード及びそのプログラミング方法 | |
JP5503126B2 (ja) | グラフィックカードのテスト方法 | |
CN104137074A (zh) | 多环境计算***中资源使用的优化 | |
CN114385426A (zh) | 存储器测试方法、装置、设备及存储介质 | |
US6907521B2 (en) | Enabling video BIOS and display drivers to leverage system BIOS platform abstract | |
CN112631536B (zh) | 一种能源控制器lcd液晶显示控制***及方法 | |
CN114020659A (zh) | 一种基于应用层驱动液晶显示的能源控制器*** | |
CN111341361A (zh) | 一种快速响应的中控屏显示方法及装置 | |
CN110750476A (zh) | 一种spi总线与并行总线的桥接方法、设备、***及介质 | |
CN102945658B (zh) | 一种tft-lcd控制器 | |
EP3480703B1 (en) | Hardware independent peripheral control system and method | |
CN101114230A (zh) | 自储存装置上读取选择只读存储器程序代码的方法 | |
CN112379875A (zh) | 一种td guie图形***和qt图形渲染库数据交互的方法 | |
EP0948769A1 (en) | Real time services in backwardly compatible operating systems | |
JP2010039644A (ja) | 周辺デバイスの動作検証方法、デバイスドライバ・プログラム及びアプリケーション・プログラム | |
JP2003030043A (ja) | メモリ管理方法 | |
CN113407250A (zh) | 一种微控制器的运行方法及终端 | |
KR20230133097A (ko) | 웨이랜드 프로토콜의 공용화를 위한 소프트웨어 아키텍쳐를 구현하기 위한 방법 |
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 |