LCD屏接口与模式详解:干货超多

前言

        随着时代的发展,现如今我们生活上已经随处可见的各种电子产品了,诸如手机、平板、电脑、一些其它智能单品上都有用到显示屏,它作为人机交互的重要桥梁之一,我认为它是生活中必不可少的存在,如果少了它,那么这个世界也就缺失了独有的那份色彩。

 那么此篇文章我们就好好讲讲TFT-LCD屏的“故事”,下文将以lcd屏信号类型和接口模式展开。

相关博文推荐

嵌入式LCD软件驱动流程与调试

1.LCD屏常用接口模式

1.1 RGB模式

RGB模式接口通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及三者组合来得到丰富多彩的颜色,它们三者之间的组合几乎包括了人类视觉感知的所有颜色,是最常用的颜色体系之一。

通常数据格式有rgb565、rgb666、rgb888等;拿rgb565举例,红色、绿色和蓝色的数据分别有5bit、6bit和5bit,那么它就可以有65536种组合色彩,在色彩要求不是特别高的应用场景中已经够用了。

RGB接口LCD 的显存是由系统内存充当的,因此其大小只受限于系统内存的大小,显示数据直接写到屏里,速度较快

1.2 MCU模式

MCU-LCD 接口的标准术语是 Intel 提出的 8080 总线标准(标准名称为I80),主要又可以分为 8080 模式和 6800 模式,这两者之间主要是时序的区别。

MCU 接口的 LCD 的 Driver IC 都带 GRAM,Driver IC 接收 MCU 发过来的画点Command/Data,使之在屏上显示出来,这个过程是不需要点、行、 帧时钟的。因为MCU接口屏是经过IC GRAM的,它的内存空间没这么大,所以很难做到大屏(大多4寸以下)。相比RGB接口屏,MCU屏的显示速率慢,需要通过控制命令来刷新显示,通常用于静态界面的显示

1.2.1  8080模式

由数据总线和控制总线两部分组成,控制引脚如下:

CS :片选信号,通常低电平有效;

RS :(置 1 为写数据,置 0 为写命令);

WR :写控制(为 0 使能) ;

RD :读控制(为 0 使能);

RESET: 复位信号;

DATA:数据位,支持8、9、16、18、24bit,通常默认8bit

1.2.2 6800模式

该模式和8080模式很类似,总线控制读写信号组合在一个引脚上(/WR),另外增加了一个锁存信号(E)

锁存信号(E)用于控制指令和数据的传输;MCU需要在E信号的上升沿将数据写入LCD屏的数据端口,当E信号为高电平时,LCD屏处于数据读取状态,可以接收来自MCU的数据,并在E信号的下降沿将数据锁存到LCD屏的内部寄存器中,这样可以避免数据的丢失或错位

CS :片选信号,通常低电平有效;

RS :(置 1 为写数据,置 0 为写命令);

WR :读写控制,0为写,1为读使能;

E:锁存信号

RESET: 复位信号;

DATA:数据位,支持8、9、16、18、24bit,通常默认8bit

1.3 VSYNC模式

VSYNC模式是在MCU模式基础上加了一个VSYNC信号,通过对MCU接口屏的最小改动,实现动画显示的解决方案,在这种模式下,内部的显示操作与外部VSYNC信号同步,。可以实现比内部操作更高的速率的动画显示。

该模式对速率有一个限制,就是对内部SRAM的写速率一定要大于显示读内部SRAM的速率,否则就会严重影响画面的流畅性和稳定性。

1.4 SPI模式

SPI模式在目前的嵌入式领域中不常用,它就是使用spi的标准接口,3 / 4线组成,传输速率不高。

另外还有DSI模式和MDDI模式,平时接触的不多,暂且忽略。

2. LCD信号类型

2.1 TTL(RGB)信号

TTL信号是一种数字信号,用于电路中传输逻辑信息,TTL信号的基本电平是0V和5V,其中0V表示逻辑0,5V表示逻辑1。具有高速度、低功耗等特性。

TTL 接口属于并行方式传输数据,由于 TTL 接口信号电压高、连线多、传输电缆长,因此电路的抗干扰能力比较差, 而且容易产生电磁干扰(EMI)

如下图所示,RGB数据是并行传输的,所以它占用的引脚会比较多,CLK为像素的时钟信号线,控制信号包括数据使能信号(或有效显示数据选通信号)DE、行同步信号 HS、场同步信号 VS;

另外通常还包括CS片选信号,RESET复位信号,还有配置lcd驱动寄存器的控制接口(i2c/spi)。

它有单通道和双通道之分,双通道就是两组 RGB 数据,分为奇通道、偶通道,时钟有的也分为 OCLK/ECLK。

单通道RGB接口屏引脚
双通道RGB信号

2.2 LVDS信号

LVDS,即 Low Voltage Differential Signaling,是一种低压差分信号技术接口。

克服以 TTL 电平方式传输宽带高码率数据时功耗大、EMI 电磁干扰大等缺点而研制的一种数字视频信号传输方式。

LVDS输出接口利用非常低的电压摆幅(约 350mV)在两条 PCB 走线或一对平衡电缆上通过差分进行数据的传输,即低压差分信号传输。采用 LVDS 输出接口,可以使得信号在差分 PCB 线或平衡电缆上以几百Mbit/s 的速率传输,由于采用低压和低电流驱动方式,因此,实现了低噪声和低功耗

有些主控芯片是不支持输出LVDS信号的,那么此时就需要用到信号转换芯片,把主控输出的TTL信号通过转换IC输出LVDS信号到排线中,一般TFT-LCD是只支持TTL信号的,所以LVDS到接收端时会通过LVDS解码IC把LVDS信号解码成TTL信号,最终输出到屏幕

2.2.1  LVDS接口工作原理

通过将数据信号分成两路,分别以相反的电压(电压一正一负)传输,然后再通过接收端进行差分放大和解码,最终恢复为原始信号。这种方式可以大幅减小信号传输时的噪声和干扰,提高信号传输的可靠性和稳定性

其传输速率可以达到Gbps级别,因此被广泛应用于高分辨率、高色深、高刷新率的显示屏幕中。

2.2.2 LVDS接口通道

2.2.2.1 lvds每个通道的位数分类
  1. 单路6bit LVDS:每个基色信号采用6位数据,共18位RGB数据,也称18bit LVDS接口;

  2. 双路6bit LVDS:每个基色信号采用6位数据,其中奇路数据为18位,偶路数据为18位,共36位RGB数据,也称36bit LVDS接口;

  3. 单路8bit LVDS:每个基色信号采用8位数据,共24位RGB数据;

  4. 双路8bit LVDS:同理,每个基色信号采用8位数据,其中奇路数据为24位,偶路数据为24位,共48位RGB数据,也称48bit LVDS接口。

总结lvds接口的通道位数可以选择6bit、8bit、10bit或12bit,主要取决于应用场景和需求。

2.2.2.2 lvds发送芯片的通道数分类
  1. 四通道LVDS发送芯片:主要用于驱动6bit液晶面板,可以构成单路或者奇偶双路6bit LVDS接口电路。其包含三个数据信号(其中包括RGB数据、数据使能、行同步、场同步信号)通道和一个时钟发送通道。

  2. 五通道LVDS发送芯片:主要用于驱动8bit液晶面板,可以构成单路8bit LVDS接口电路和奇偶双路8bit LVDS接口电路。

  3. 十通道LVDS发送芯片:主要用于驱动8bit液晶面板,包含八个数据信号通道和两个时钟发送通道。

  4. 除了以上几种,还有更多通道的LVDS发送芯片,比如十二通道的,主要用于驱动更高位数的液晶面板。

总结:如下图所示,数TX + - 的对数总共有5对,所以为五通道LVDS发送芯片,其中有四对为数据通道,一对为像素时钟通道;主控端出来的rgb888信号,所以为五通道单路8bit LVDS电路

另外我们需要知道的点是,时钟通道只传输时钟信号,而数据通道传输RGB数据、使能信号、行同步信号和场同步信号,每个数据通道在一个时钟周期内只传输7bit的数据,这是固定不变的,这里划重点。

拿五通道单路8bit LVDS电路来举例,rgb各8bit数据加起来就有24bit数据,外加1bit使能信号数据、行同步信号和场同步信号数据,总共就27bit数据,我们知道五通道中有4个通道用来传输数据,每个通道一个时钟周期传7bit数据,4个通道一个周期内能传输28bit数据,所以五通道LVDS芯片通常用来驱动8bit液晶板,四通道的驱动6bit也是一样道理。

现在了解了单路LVDS,那么什么时候需要用到双路LVDS呢?当在高速数据传输的场景或高分辨率数据中就可以用到,LVDS的像素时钟范围通常为20MHz到85MHz,当像素时钟远超过这个阈值时就需要用到双路lvds,一路传输奇像素数据,一路传输偶像素数据,分别也对应奇偶时钟线。

五通道单路8bit框图

2.2.3  LVDS数据传输模式

DE模式:需要连接DE信号(data enable有效数据选通)。

SYNC模式:需要连接HS(HSYNC行同步)和VS(VSYNC场同步)。

有些屏差分信号拆开后只有DE位,没有HS和VS位,此时只能工作在DE模式下。然而,如果差分信号拆开后既有DE也有HS和VS位,那么可以选择工作在SYNC模式。

2.2.4 LVDS数据格式标准

如果JEIDA标准LVDS信号输入到VESA格式的屏时,将出现图像噪波点大或花屏,反之亦然

2.2.4.1 VESA标准

VESA标准是由视频电子标准协会(Video Electronics Standards Association)制定的

6位屏
DATA0:R0,R1,R2,R3,R4,R5,G0
DATA1:G1,G2,G3,G4,G5,B0,B1
DATA2:B2,B3,B4,B5,HS,VS,DE
8位屏
DATA0:R0,R1,R2,R3,R4,R5,G0
DATA1:G1,G2,G3,G4,G5,B0,B1
DATA2:B2,B3,B4,B5,HS,VS,DE
DATA3:R6,R7,G6,G7,B6,B7,0
10位屏
DATA0:R0,R1,R2,R3,R4,R5,G0
DATA1:G1,G2,G3,G4,G5,B0,B1
DATA2:B2,B3,B4,B5,HS,VS,DE
DATA3:R6,R7,G6,G7,B6,B7,0
DATA4:R8,R9,G8,G9,B8,B9,0
8bit VESA数据格式
2.2.4.2 JEIDA标准

JEIDA是由日本电子工业发展协会(Japan Electronic Industry Development Association)制定。

在JEIDA标准中,单通道的数据格式如下:
DATA0:G2->R7->R2
DATA1: B3->B2->G7->G3
DATA2: DE->VS->HS->B7->B4
DATA3: XX->B1->B0->G1->G0->R1->R0

8bit JEIDA数据格式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/181816.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Electron】上下键切换消息

需求: 如图,需要监听上下键切换消息 Electron 注册 全局快捷键【globalShortcut】监听 在focus注册 在blur 注销 如苹果系统在使用某个软件(focus)时 右上角会有应用标题 Electron 代码: win.on(focus, ()>{globalShortcut.register(U…

物联网边缘计算是什么?如何实现物联网边缘计算?

物联网边缘计算是一种在物联网设备和网络中实施计算和数据处理的技术。它允许在物联网设备或网络边缘进行数据分析和处理,而不需要将所有数据传输到远程数据中心或云端进行处理。物联网边缘计算将计算和数据处理的能力迁移到物联网设备的边缘,使得设备能…

如何群发发票邮件内容

群发发票邮件内容需要仔细考虑邮件的主题、正文和附件内容,以确保邮件的准确性和完整性。以 一、明确邮件目的 在群发发票邮件时,首先需要明确邮件的目的。一般来说,发票邮件的目的是向客户或供应商提供交易的详细记录和证明。因此&#xf…

啊哒-MISC-bugku-解题步骤

——CTF解题专栏—— 题目信息: 题目:啊哒 作者:第七届山东省大学生网络安全技能大赛 提示:无 解题附件: 解题思路: 图片的话还是老三样斧winwalk、010Editor、Stegsolve。ok直接开搞! 解题…

基于UDP的TFTP文件传输

代码&#xff1a; #include <myhead.h>//实现下载功能 int download(int cfd,struct sockaddr_in sin) {char buf[516] ""; //定义资源包char fileName[128] ""; //定义文件名printf("请输入文件名:");scanf("%s",fileName…

Re0: 从零实现一个置顶任意窗口的小工具

前言 话不多说&#xff0c;先上效果&#xff1a; 这里展示的是通过下拉框选择窗口&#xff0c;让窗口显示并置顶&#xff0c;其实还可以直接通过快捷键&#xff08;先鼠标点击要置顶的窗口&#xff0c;再使用CTRLSHIFTT&#xff09;&#xff0c;本文涉及到的完整代码已上传到G…

【JavaEE初阶】 HTTP 请求 (Request)详解

文章目录 &#x1f340;序言&#x1f384;认识URL&#x1f6a9;URL 基本格式&#x1f6a9;query string&#x1f6a9;关于 URL encode &#x1f334;认识 "方法" (method)&#x1f6a9;GET方法&#x1f6a9;POST 方法&#x1f6a9; GET 和 POST 的区别 &#x1f38b;…

Java后端开发——JDBC(万字详解)

Java后端开发——JDBC&#xff08;万字详解&#xff09; 今日目标 掌握JDBC的的CRUD理解JDBC中各个对象的作用掌握Druid的使用 1&#xff0c;JDBC概述 在开发中我们使用的是java语言&#xff0c;那么势必要通过java语言操作数据库中的数据。这就是接下来要学习的JDBC。 1.1 …

【Axure高保真原型】区间评分条

今天和大家分享区间评分条的原型模板&#xff0c;我们可以左右拖动移动滑块到指定位置&#xff0c;评分条上方会根据两个滑块所在的位置&#xff0c;自动计算出对应的区间范围&#xff1b;这个原型模板使用也很简单&#xff0c;只需要在里面填写区间的最大值&#xff0c;即可自…

纯前端实现导入excel数据

准备工作 - 下载 xlsx npm install xlsx下面直接上代码&#x1f447; <template><div><input type"file" accept".xlsx, .xls" change"handleClick"></div> </template><script langts setup> import * a…

24.有哪些生命周期回调方法?有哪几种实现方式?

有哪些生命周期回调方法?有哪几种实现方式? 有两个重要的bean 生命周期方法, 第一个是init , 它是在容器加载bean的时候被调用。第二个方法是 destroy 它是在容器卸载类的时候被调用。bean 标签有两个重要的属性(init-method和destroy-method)。用它们你可以自己定制初始…

盛最多水的容器-中等

leetcode链接 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不能倾…

JS之Object.defineProperty方法

给对象添加属性的方法有许多&#xff0c;这次让我为大家介绍一种给对象添加属性的静态方法吧&#xff01; 语法&#xff1a;Objcet.defineProperty(对象的名称&#xff0c;“添加的键名”&#xff0c;{value&#xff1a;键值}) const obj {name:"张三",age:18}// 我…

Typora .MD笔记中本地图片批量上传到csdn (.PNG格式)(无需其他任何图床软件)

Typora .MD笔记中本地图片批量上传到csdn &#xff08;.PNG格式&#xff09;(无需其他任何图床软件) 截图软件推荐 qq 截图 快捷键 ctrlshiftA. 步骤一 设置Typora 的图片 点击文件. 点击偏好设置 ->图像 我们可以选择将图片复制到我们的文件夹中。 建议刚写好文件标题就…

C#键盘钩子(Hook)拦截器的使用

引言 键盘钩子(Hook)是一种机制&#xff0c;允许程序捕获和处理操作系统中的键盘输入。在C#中&#xff0c;我们可以使用键盘钩子来创建一个拦截器&#xff0c;用于拦截特定的键盘事件并执行自定义操作。本文将介绍如何使用C#开发一个键盘钩子拦截器&#xff0c;并给出一些示例代…

算法中的时间复杂度,空间复杂度

一、前言 算法&#xff08;Algorithm&#xff09;是指用来操作数据、解决程序问题的一组方法。对于同一个问题&#xff0c;使用不同的算法&#xff0c;也许最终得到的结果是一样的&#xff0c;但在过程中消耗的资源和时间却会有很大的区别 衡量不同算法之间的优劣主要是通过时…

离线环境下使用百度地图(展示自己的地图瓦片)3.0版本api

案例: 设置覆盖物标注提示文字: <script>// 百度地图API功能var map new BMap.Map("map",{ mapType: BMAP_HYBRID_MAP }); var point new BMap.Point(120.55294, 41.665515); // 创建Map实例map.centerAndZoom(point, 18); // 初始化地图,设置中心点坐标…

Java-多线程基本知识学习总结

多线程 前言一、线程的创建1、继承Thread类2、实现Runnable接口 二、线程的生命周期三、操作线程的方法1、线程的休眠2、线程的加入3、线程的礼让4、线程的优先级 四、线程同步End 前言 Java是支持多线程的编程语言&#xff0c;所谓多线程就是程序能够同时完成多种操作。 计算…

Windows挂载NFS

ubuntu开启nfs 安装 sudo apt install nfs-kernel-server编辑 /etc/exports /data/share *(rw,no_root_squash)重启服务 sudo systemctl restart nfs-server.service验证 showmount -e localhostwindows连接NFS 选择控制面板 > 程序 > 启用或关闭 Windows 功能 添加…

C++,请问为什么力扣题704中,取数组的长度,使用sizeof()/4在运行时候没有报错,但是提交之后报数组越界的错误呢?使用size又可以了

C,请问为什么力扣题704中&#xff0c;取数组的长度&#xff0c;使用sizeof()/4在运行时候没有报错&#xff0c;但是提交之后报数组越界的错误呢&#xff1f;使用size又可以了 在C中&#xff0c; sizeof() 运算符用于获取一个对象或类型的字节大小。在使用 sizeof() 时&#xf…