嵌入式开发(S5PV210)——LCD显示器

2023-10-27

1、LCD介绍

1.LCD(Liquid Crystal Display)俗称液晶,这种材料的一大特点就是在电信号的驱动下液晶分子进行旋转,旋转会影响透光性,不同的透光性会透过不同的颜色的光,于是我们便看到显示屏上五颜六色的画面。
2.LCD是被动发光,LCD显示屏有一个背光板发出白光,液晶分子只是决定哪些波长的光透过去被人看到,但液晶本身并不会发光。这有点像月亮,本身不发光,被人们看到发光是反射太阳的光。
3.与之相对就有主动发光,比如CRT显示器和LED显示器。
4.应用领域:液晶显示器使用在电视机、手机、电脑等;户外大屏幕基本是使用LED,因为液晶是被动发光,背光强度有限,在户外光照这么强的境况下,根本看不清。

2、LCD显示的主要相关概念

2.1、像素(pixel)

像素是显示的最小单位,整个图像就是一个个像素组成的;

2.2、像素间距(pitch)

像素间距就是两个像素中心点之间的距离。一般的像素是方形的,所以横向pitch和纵向的pitch一样的,像素间距影响最佳观看距离,像素间距大的适合远距离观看,像素间距小的适合近距离观看。

2.3、分辨率(resolution)

分辨率是指屏幕在横向和纵向上像素的个数,比如1920x1080分辨率是指屏幕在横向上有1920个像素,在纵向上有1080个像素。注意和屏幕尺寸的区别,屏幕尺寸是指屏幕对角线的长度,比如7寸的屏幕,指的是屏幕的对角线长度是7寸。

2.4、清晰度

清晰度是主观概念,指人眼看到图像的清晰程度。一般来说,相同的屏幕尺寸分辨率越高图像越清晰;除此之外清晰度还和其他的因素有关。

2.5、像素深度(bits per pixel,简称bpp)

计算机中用二进制位来表示一个像素的数据,像素深度指的是一个像素在计算机中用多少个bit去描述,用来表示一个像素的bit位越多,则这个像素的颜色越丰富,但是图像所占的存储空间也越大。

2.6、显示内存

显示内存就是常说的显存,Soc在内存中挑选一段符合要求的内存,然后通过寄存器配置将LCD控制器和这一段内存连接起来构成映射,显存里存放将要在屏幕上显示的图像数据。

3、LCD的接口技术

3.1、接口分类

1.从电平角度来看其本质都是TTL电平,+5V表示逻辑1,0V表示逻辑0.这种就叫TTL电平,和CMOS电平相对比。SoC的LCD控制器硬件接口是TTL电平的,LCD这边硬件接口也是TTL电平的,理论上来说直接相连就可以通信,但是TTL电平有个缺点,不能长距离传输。所以日常我们连接主机和显示器都是通过VGA线或者HDMI线,其目的就是通过电平转换来进行长距离传输。转换方式:主机SoC(TTL) ->VGA-> LCD屏幕(TTL)。
2.根据通信协议分类:TTL、LVDS、EDP、MIPI、HDMI、VGA等,可以参考《LCD常用接口原理》

3.2、RGB接口详解

3.3、RGB接口时序图

在这里插入图片描述

3.4、RGB接口的重要时序

(1)VD[23:0]:24根数据线,用来传输图像信息。可见LCD是并行接口,速率才够快。
(2)HSYNC(水平同步信号) :控制行扫描的
(3)VSYNC(垂直同步信号):时序信号线,为了让LCD能够正常显示给的控制信号,控制一帧图像的显示
(4)VCLK(像素时钟):LCD工作时需要主板控制器给LCD模组一个工作时钟信号,就是VCLK。
(5)VDEN(数据有效标志):使能信号,和HSYNC、VSYNC结合使用。
(6)LEND(行结束标志,不是必须的):时序信号,非必须,譬如X210接口就没有。

3.5、为了向前兼容出现的六个时序参数

HSPW 水平同步信号脉宽
HBPD 水平同步信号前肩
HFPD 水平同步信号后肩
VSPW 垂直同步信号脉宽
VBPD 垂直同步信号前肩
VFPD 垂直同步信号后肩
补充:这6个参数对于LCD显示器其实本来是没用的,这些信号其实是老式的CRT显示器才需要的,LCD本身不需要,但是出于历史兼容性要求,LCD选择了兼容CRT显示器。CRT显示器是靠电子偏转轰击荧幕来发光的,扫描完一行后切换到下一行的行首开始扫描需要时间,所以每扫描一行的前后都需要等待一段时间,也就是HBPD和HFPD;扫描完一帧切换到下一帧的扫描也需要等待,每扫描一帧的前后都需要等待一段时间,也就是VBPD和VFPD。

3.6、时序分析

3.6.1、时序图的整体分析

整个时序图分为上下两大部分,上半部分是一帧图像的显示过程,下半部分是一行图像的扫描过程,下半部分时序是对上半部分时序局部的详细介绍。

3.6.2、行扫描

(1)HSYNC(行同步信号)先给一个高脉冲,脉冲宽度是HSPW+1,表示接下来要扫描一行图像;
(2)经过脉冲宽度为HBPD+1的等待,VDEN由低变高,VDEN是数据传输的使能信号;
(3)VDEN变为高电平期间是传输真正的一行图像数据,VD就是代表的24根数据线;
(4)图像数据传输完毕,要经过HFPD+1的等待,一行图像的扫描才算结束。

3.6.3、一帧图像的显示

(1)VSYNC(帧同步信号)给一个宽度为VSPW+1的高脉冲,表示即将要刷新一帧图像;
(2)经过经过脉冲宽度为VBPD+1的等待,开始一行的扫描;
(3)每行都扫描结束后,经过VFPD+1的等待,一帧图像的扫描结束;

4、LCD的驱动器&控制器

(1)驱动器:严格意义上LCD是指的液晶显示面板,液晶面板要工作就需要不同的电压,而驱动器就是向液晶分子提供不同的模拟电信号,从而让液晶面板有不同的透光性。LCD的驱动器一般都是和液晶面板集成在一起的,嵌入式开发基本不会直接用裸的液晶面板。
(2)控制器:LCD控制器一般集成在SoC内部,他负责通过数字接口向远端的LCD驱动器提供控制像素显示的数字信号。LCD控制器的关键在于时序,它必须按照一定的时序和LCD驱动器通信;LCD控制器受SoC控制,SoC会从内存中拿像素数据给LCD控制器并最终传给LCD驱动器。

5、LCD如何显示图像

5.1、显示图像的两个阶段

第一阶段:初始化LCD控制器,建立屏幕和显存的映射。初始化LCD控制器包括时钟配置、显存配置、GPIO引脚配置、时序配置等。
第二阶段:屏幕和显存的映射建立好后,只需要将要显示的图像数据拷贝到显存,LCD控制器会自动刷新到屏幕上显示。

5.2、虚拟屏幕叠加

在这里插入图片描述

虚拟屏幕介绍:虚拟屏幕不是真实存在的屏幕,是用内存来模拟一块屏幕。上面的显示阶段已经介绍过,LCD控制器不断将显存的图像数据刷新到屏幕显示,一般来说一块屏幕对应一块显存即可,但是我们也可以在内存中多开辟几块显存,将几块显存的图像数据按照一定配置进行叠加,将最终叠加的数据再屏幕上显示。
虚拟屏幕应用:上图展示的就是两块虚拟屏幕叠加到一起,其中需要注意两个虚拟屏幕的覆盖关系,到底谁在前谁在后;还有图像的色度、透明度等设置,这些在Soc的相关寄存器都有说明。常见的虚拟屏幕叠加应用就是电视节目里的台标、字幕等。
虚拟屏幕的好处第一:不会污染原图像数据。因为显示的是叠加的图像数据,并不是在原图像数据上修改,所以原图像数据是没有被污染的。同一个视频,可以在播放的时候叠加不同的图标或者字幕,播放完后原视频仍然没有被修改。第二:可以减少屏幕刷新,提高显示效率,减少CPU工作量。比如你要在视频上叠加一个图标,因为图标是固定每帧都有的,所以你只需要在其中一块虚拟屏幕对应的显存上放上图标的图像数据;虽然之后屏幕上显示的每一帧图像都会有图标,但是不用再去刷新显存。

5.3、虚拟显示

在这里插入图片描述

日常生活中的应用:当用手机游览某些网站或者图片时,可能出现手机屏幕不能一次性显示全部图像,需要我们滑动手机屏幕来看到图像不同的位置,这就是虚拟显示的应用。
虚拟显示的作用:小分辨率的屏幕显示大分辨率的图像时,减少CPU对显存的刷新,提升效率。

5.3.1、虚拟显示的原理:

1.显存存放的是将要显示的图像数据,当屏幕分辨率固定,那么屏幕显示所需的一帧图像的大小也就固定,存放一帧图像数据需要的显存大小也固定。现在有两种方案去申请显存,第一种是显存刚好等于屏幕所需一帧图像的大小,第二种是显存大于屏幕所需一帧图像的大小。(上图中是第二种)
2.假设现在屏幕分辨率是800x480,要显示分辨率是1920x1080的图片,来看看两种显存方案的差异:
第一种:因为显存刚好只够放一帧图像的数据,也就是800x480,所以要看到1080p分辨率图像的不同局部,需要将1080p图像的不同部分的图像数据刷新到显存中,需要频繁的刷新显存。
第二种:显存足够大可以将1080p的图像数据一次性加载到显存中,结合上面的图进行分析,大框代表实际申请的显存,小框代表的是真实屏幕大小对应的显存,屏幕上只能显示小框里的图像数据。当我们滑动屏幕查看图像不同的区域时,我们不用重新刷新显存,只需要配置LCD控制器显存的起始地址,就可以将不同区域的数据刷新到屏幕中显示。
总结:虚拟显示的思路是用空间换取时间,消耗更多的内存空间来减少内存的刷新次数,降低操作的响应时间,提升用户的使用体验。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

嵌入式开发(S5PV210)——LCD显示器 的相关文章

  • github 中使用 ssh

    从去年开始 github 对于 https 方式下载的仓库已经不支持直接 commit push 等操作 由于 https 方式简单快捷 对于大部分只是对 git 初步熟悉的用户来说是非常合适的 因为不需要做任何配置 只需要一个 githu

随机推荐

  • js之DOM0级和DOM2级绑定事件

    js原生注册事件分别为DOM0级 DOM2级 DOM0级事件 简单理解就是直接绑定 可以是直接在标签中绑定事件
  • LVGL笔记8--lv_style样式

    LVGL笔记8 lv style样式 样式是用来修饰UI美观性 使用lv style对UI界面进行重绘和重用 利用多个不同的样式来形成Theme对象 对于vl obj基础对象而言 每个对象都有一个lv style样式 但对于其他的控件 比如
  • 基于Java+SpringBoot+vue的社区报修维修平台(含源码和数据库)

    文章目录 简介 环境需要 住户前台功能模块 管理员功能模块 住户后台功能模块 维修员后台功能模块 简介 系统管理也都将通过计算机进行整体智能化操作 对于社区维修平台所牵扯的管理及数据保存都是非常多的 例如住户管理 社区公告管理 维修工管理
  • 目标检测笔记(十三): 使用YOLOv5-7.0版本对图像进行目标检测完整版(从自定义数据集到测试验证的完整流程))

    文章目录 一 目标检测介绍 二 YOLOv5介绍 2 1 和以往版本的区别 三 代码获取 3 1 视频代码介绍 四 环境搭建 五 数据集准备 5 1 数据集转换 5 2 数据集验证 六 模型训练 七 模型验证 八 模型测试 九 评价指标 一
  • Jupyter Notebook 添加代码自动补全功能

    自己记录以便后期参考与查询 转载参考 https www jianshu com p 0ab80f63af8a 安装 如果之前安装过显示目录功能的话 这一步骤可以跳过 pip install jupyter contrib nbextens
  • 【测试 2】二、软件质量与软件测试过程

    2 软件质量 2020年10月29日01 16 39 质量三要素 实体 特性 需求 软件质量6大特性 27个子特性 参考 https www cnblogs com jodyccf p 12200325 html 软件质量活动 保证软件质量
  • 认识RAID磁盘阵列

    认识RAID磁盘阵列 前几天在公司整理办公桌时找到了一份关于RAID的文档 对RAID介绍的很详细 这几天我利用空闲时间把这份文档录入到了电脑里 现分享给大家 认识RAID磁盘阵列 廉价冗磁盘阵列 Redundant Array of In
  • 运放使用总结篇(1) 运算放大器基本概念简介

    文章目录 前言 一 运算放大器是什么 二 运放的开环增益 三 运放的输入阻抗 输出阻抗 四 运算放大器的基本结构 五 运放的开环和闭环使用 总结 前言 作为硬件设计中最常用的运算放大器 有必要了解和掌握 单个三极管放大倍数离散度很大 虽然硬
  • IOS object-c基础

    第一讲 OC简介及基本语法 Objective C简称OC是在C语言的基础上 增加了一层最小的面向对象语法 完全兼容C语言 也就是可以在OC代码中混入C语言代码 甚至是C 代码 可以使用OC开发Mac OS X平台和IOS平台的应用程序 简
  • CAD动态块制作

    CAD动态块制作 拉伸动态块 柜体A拉伸动态块制作 第一步 制作柜体A 第二步 进入块编辑器编辑 第三步 关闭块编辑器 柜体B拉伸动态块制作 第一步 制作柜体B 第二步 进入块编辑器 第三步 关闭块编辑器 可见性动态块 第一步 找到动态块图
  • 计算机视觉基础之数字图像(2)

    目录 一 直方图 1 什么是直方图 2 直方图的性质 3 直方图均衡化 4 相关示例代码 二 滤波 1 定义 2 线性滤波 三 卷积 1 定义 2 卷积 过滤器 卷积核 Kernel 3 卷积的应用 4 卷积 步长 5 卷积 填充 一 直方
  • Web服务器如何确定哪个Servlet处理请求

    一 Web服务器 Web服务器概念较为广泛 我们最常说的Web服务器指的是网站服务器 它是建立在Internet之上并且驻留在某种计算机上的程序 Web服务器可以向Web客户端 如浏览器 提供文档或其他服务 只要是遵循HTTP协议而设计的网
  • C++——模板特化和偏特化

    1 引言C 中的模板分为类模板和函数模板 虽然它引进到C 标准中的时间不是很长 但是却得到了广泛的应用 这一点在STL中有着充分的体现 目前 STL在C 社区中得到了广泛的关注 应用和研究 理解和掌握模板是学习 应用和研究以及扩充STL的基
  • VSCode搭建Java环境教程

    前言 本文提供给那些无经济实力购买IntelliJ IDEA 并且担心网上的破解版有安全风险的小伙伴们 替代工具可以使用开源的VSCode进行开发 JDK安装 OpenJDK 以windows为例 下载 msi包安装时会默认配置好java环
  • Sublime 全选后光标在每一行、全局替换、全局换行

    Sublime 全选后光标在每一行 全局替换 全局换行 做个记录 多行汇总成一行 以逗号标识分隔 全选后 使用快捷键Ctrl Shift L 即可在每一行的后面显示光标 再使用End或Home键进行前后移动 输入逗号再按回车键即可 将逗号分
  • css实现盒子背景颜色渐变(一文读懂背景颜色渐变)

    要实现盒子背景颜色的渐变效果 常见的一般有三种 线性渐变 linear gradient 重复线性渐变 repeating linear gradient 径向渐变 radial gradient 下面是三种场景示例 一 线性渐变 线性渐变
  • ue4 加载材质_Houdini Terrian & UE4 (六)制作Flowmap

    导言 对于游戏场景来说 水流是动景很重要的一环 传统的水面制作中 一般是做2 3个方向的波叠加 或者制作一个随机的flowmap 这样做出来的水面自然是没有灵魂的 手动滑稽 所以 这里我们用houdini来制作一个基于地形的flowmap
  • 【ElM分类】基于秃鹰算法优化极限学习机BES-ElM实现数据分类附matlab代码

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 matlab项目合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab完整代码及仿真定制内容点击 智能优化算法 神经网络预测 雷达通信 无线传感器
  • 如何在局域网中免费搭建视频服务器

    在局域网里面建一个视频服务器 架设一个视频服务器 局域网内的其他的电脑直接访问这台web服务器 就能看这台服务器里边儿的视频课堂实录 安装一个视频服务器软件 比如 VLC MMServer等 将视频文件上传到视频服务器软件中 在视频服务器软
  • 嵌入式开发(S5PV210)——LCD显示器

    1 LCD介绍 1 LCD Liquid Crystal Display 俗称液晶 这种材料的一大特点就是在电信号的驱动下液晶分子进行旋转 旋转会影响透光性 不同的透光性会透过不同的颜色的光 于是我们便看到显示屏上五颜六色的画面 2 LCD