液晶屏接口介绍:8080接口详述,其他常用接口简介

2023-05-16

序言

本文的标题虽说是液晶屏的接口介绍,但液晶屏的种类繁多,种类大小尺寸不同,液晶屏所用的接口也不同。 恕本文实在无法把所有接口种类包含全面。

比如说,按尺寸大小来区分液晶屏的话,有7寸8寸以下的嵌入式设备常用的中小尺寸液晶屏,还有10寸及以上的 电脑、电视、广告屏等常用的大尺寸液晶屏。大尺寸液晶屏和小尺寸的肯定不同,大尺寸屏幕的接口比如HDMI这些,一般都需要外接线缆的。而小尺寸的屏幕一般都是板级接口连接,物理上的形式差别就很大。本文把重点放在中小尺寸屏幕的接口上。

SPI接口

不论是搞硬件的还是搞嵌入式软件的,都应该对SPI接口很熟悉了,本文就不对SPI接口协议废话了。

由于SPI是串行传输,传输带宽有限,来做液晶屏接口,只能用于小屏幕,一般是2寸以下的屏幕使用。

8080并行接口

这种接口的别称很多,又叫 DBI(Data Bus interface)据总线接口, 微处理器MPU接口MCU接口CPU接口的,实际上都是一回事。

并行接口又分为 8位/16位/24位 三种, 顾名思义,就是数据总线的位宽。

信号线接口定义如下:

  • DB[23:0](or DB[15:0] or DB[7:0]) 并行总线
  • CSX 片选信号
  • RESX reset复位信号
  • WRX Write写信号
  • RDX Read读信号
  • D/CX 数据Data/命令Command 选择信号,(0: 表示DB总线正在传输命令, 1: 表示DB正传数据)

(以上信号并不一定在具体的电路应用中全部使用,比如,有的电路应用为了节省IO口,把片选和复位信号直接连接固定电平,RDX读信号也不做处理,也是可以的。)

从上面的描述可以看出,值得注意的一点:向液晶屏传输的不仅有Data数据,还有命令Command。

乍一看,觉得向屏幕只需传输像素颜色数据就行了,不熟练的新手往往会忽略了命令传输需求。

因为所谓与液晶屏通信,实际上还是与液晶屏驱动控制芯片在通信,而数字芯片往往都会有各种配置寄存器(除非功能很简单的芯片比如74系列,555等),也就有了向芯片发送配置命令的需要,如果设计过数字芯片或FPGA就会更明了。

另外需要注意的一点是:使用8080并行接口的LCD驱动芯片,都需要内置GRAM(Graphics RAM), 至少能存储一个屏幕的数据

这是导致使用此接口的屏幕模组一般比使用下一节提到的 RGB接口的屏幕模组 要贵的原因,RAM还是要成本的。

总的来说:8080接口通过并行总线传输控制命令和数据,并通过往LCM液晶模组自带的GRAM更新数据实现屏幕的刷新

8080并行接口线时序

以下图表来自 LCD驱动芯片OTM8009A的数据手册

写时序

8080-series wrx protocol
8080-series write to register

读时序

8080-series RDS protocol
8080-series read data from register

8080接口的RGB颜色数据编码

大家都知道像素信息用RGB三原色表示,所以向液晶屏传输的数据帧主要也就是传输的RGB颜色数据,那么这3种颜色数据是如何组织编码的呢?当总线位宽是24bits时,很自然地就能想到 8位R + 8位G + 8位B。那当位宽是16bits或8bits时呢?

另外,像素的颜色数据并不总是用 8R8G8B的24位真彩色 表示,共有下面几种表示情况:

  • 12-bits/pixel (R 4-bit, G 4-bit, B 4-bit), 4,096 Colors, 简称444;
  • 16-bits/pixel (R 5-bit, G 6-bit, B 5-bit), 65,536 Colors, 简称565;
  • 18-bits/pixel (R 6-bit, G 6-bit, B 6-bit), 262,144 Colors, 简称666;
  • 24-bits/pixel (R 8-bit, G 8-bit, B 8-bit), 16,777,216 Colors, 简称888;
    这不同的 颜色表示方法 和 不同的总线位宽 相组合,就会组合成多种 RGB颜色数据编码。

8bit位宽时RGB颜色数据编码

编码表:
8bit width rgb data coding
时序图(包含多种编码类型):
444RGB编码数据传输时序图
444 coding timing diagram
565RGB编码数据传输时序图
565 coding timing diagram
666RGB编码数据传输时序图
666 coding timing diagram
888编码数据传输时序图
888 coding timing diagram

16bit位宽时RGB颜色数据编码

编码表:
16bit width rgb data coding

24bit位宽时RGB颜色数据编码

编码表:
24bit width rgb data coding

RGB接口

RGB接口又称DPI(Display Pixel Interface)接口,也是一种并行接口,采用普通的同步、时钟、信号线来传输数据,需搭配SPI或IIC串行总线来传输控制命令使用

某种程度上,它与8080接口的最大差别就是,RGB接口的数据线与控制线分离,而8080接口是复用的。

另一个不同点是,由于RGB接口是连续传输整屏的像素数据,本身可实现显示数据的刷新,就不再需要GRAM了,这大大的减少了LCM的成本。一般厂家同样尺寸分辨率的LCD模组,RGB接口的相比8080接口的要便宜不少。

模型如下:
DPI interface LCM
由于本文是简单介绍,就不再讲RGB接口的DE模式和SYNC模式了。

RGB信号线介绍

the interface signals of rgb interface
其中有数据线,时钟线,和 水平/垂直 同步信号线。

(HS, VS这2个信号,笔者多年前搞过模拟视频传输,对这2个行场同步信号好熟悉的感觉。)

Vsync(VS)指示一整屏像素帧的开始

Hsync(HS)指示一个水平行像素数据的开始

RGB信号时序简单说明

在PCLK时钟信号的驱动下,像素数据连续地,源源不断地 从主处理器 送往 液晶模组。

单个像素数据传输周期的时序如下图:

pixel data transmission cycle order
整个屏幕像素帧的时序如下:
whole screen data transmission order

MIPI接口

MIPI(Mobile Industry Processor Interface) 是2003年由ARM, Nokia, ST ,TI等公司成立的一个联盟,目的是把手机内部的接口如摄像头、显示屏接口、射频/基带接口等标准化,从而减少手机设计的复杂程度和增加设计灵活性。MIPI联盟下面有不同的WorkGroup,分别定义了一系列的手机内部接口标准,比如摄像头接口CSI、显示接口DSI、射频接口DigRF、麦克风/喇叭接口SLIMbus等。统一接口标准的好处是手机厂商根据需要可以从市面上灵活选择不同的芯片和模组,更改设计和功能时更加快捷方便。

用于液晶屏的MIPI接口全称应该是MIPI-DSI接口,有些文档就干脆称之为DSI(Display Serial Interface)接口。

DSI兼容的外设都支持2种基本的操作模式,一是命令模式,二是Video模式。

由此可看出,MIPI-DSI接口也是同时有命令和数据通信能力的,不需要SPI等接口帮忙传输控制命令。

而MIPI-DSI接口协议还是挺复杂的,我这里就不详细描述了😄

MDDI接口

高通公司于2004年提出的接口MDDI(Mobile Display Digital Interface),通过减少连线可提高移动电话的可靠性并降低功耗。依托当年高通在移动芯片领域的占有率,和上面的MIPI接口实际上是竞争关系。

MDDI接口基于LVDS差分传输技术,最高支持3.2Gbps的传输速率。可将信号线缩减到6条,这还是很有优势的。

模型如下:
MDDI model
可看出,MDDI接口还是需要借助SPI或IIC来传输控制命令,它自身只管传输数据。

转载出处

  • 液晶屏小知识:8080接口详述,其他常用接口简介
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

液晶屏接口介绍:8080接口详述,其他常用接口简介 的相关文章

  • http authorization 基本认证

    最近做的一个项目需要与其它系统对接接口 xff0c 对方提供的是webservice的接口 xff0c 并且需要Basic Authorization基本认证 xff0c 一开始都是用postman请求 xff0c 用户名和密码需要填在Ba
  • 终端命令安装 chrome for linux

    终端里安装chrome for linux 备注 xff1a 我是在Linux Mint 17 1 64位系统下安装的chrome for linux xff0c 其它Debian衍生版应该也是一样的 1 在终端里输入下载命令 xff1a
  • Arduino串口函数详解

    本文总结了Arduino常用串口操作函数 xff0c 函数说明部分来源于Arduino 官网串口使用指南 xff0c 示例与实验部分为自编 本文是对Arduino串口操作函数的较全面总结 xff0c 可作为工具贴查找使用 1 串口设置 xf
  • STM32CubeMX——霍尔编码器、L298N驱动电机

    前言 人生如逆旅 xff0c 我亦是行人 苏轼 临江仙 送钱穆父 目录 xff1a L298N电机驱动介绍编码器介绍电机介绍新建工程编写代码实验结果 一 L298N电机驱动介绍 B站 视频讲解 xff1a l298n电机驱动模块 电机正反转
  • AT命令拨电话,如何判断手机的状态?

    我使用AT命令拨电话 xff0c 如 xff1a ATD10086 我怎么知道我拨打的电话是否成功了呢 xff1f 比如SIM卡欠费了 xff0c 那么肯定算是没有拨通 xff1b 再比如网络有问题 xff0c 被叫方没有收到来电 xff0
  • GPS模块(GPS-NEO-6M)

    ATK NEO 6M GPS 模块简介 ATK NEO 6M V23 模块 xff0c 是 ALIENTEK 生产的一款高性能 GPS 模块 xff0c 模块核心采用 UBLOX公司的 NEO 6M 模组 xff0c 具有 50 个 通道
  • toCharArray()

    toCharArray 是将一个字符串内容转换为字符数组 xff0c 例如 String str 61 34 abc 34 System out println str toCharArray 43 34 34 将输出a b c 转载于 h
  • 基于Arduino的GPS数据解析程序

    这篇博客讲了我利用arduino来解析和转发原始nema 0813数据的思想和实现方法 因为arduino比较简单 xff0c 无法实现串口数据接收中断 xff0c 所以都写在主循环里面了 不知道代码存在何种缺陷和漏洞 xff0c 欢迎大家
  • VsCode安装和配置c/c++环境(超完整,小白专用)

    文章目录 1 vsCode配置C C 43 43 环境 1 vsCode下载和安装 1 下载Microsoft vsCode2 安装vsCode3 下载中文插件2 MinGW编译器下载和配置 1 下载MinGW2 下载后放到自己方便的目录
  • 各版本esp32和esp8266开发板引脚图(附各开发板特殊通信接口如IIC、SPI接口等默认引脚查看方法)

    目录 esp32 GPIO可用资源 1 esp32开发板 2 esp32开发板 查看特殊通信接口的方法 esp8266 esp32 GPIO可用资源 GPIO 6 11 连接到SPI Flash GPIO 34 39 只能作为输入且没有内部
  • GPS数据解析、可视化及经纬度距离计算

    一 GPS数据解析 根据NMEA协议 xff0c 我们从传感器上接收到的GPS经纬度数据格式如下 xff1a 例 xff1a GPRMC 024813 640 A 3158 4608 N 11848 3737 E 10 05 324 27
  • C语言知识点小结 | 指针 数组 结构体 堆栈 内存分配

    不掌握指针就是没有掌握C的精华 地址指向该变量单元 xff0c 地址即指针 在C C 43 43 语言中定义一个指针 xff0c 就是在栈区开辟一个内存空间用来存放它指向的内存地址 xff0c 然后给指针赋值 xff0c 就是把地址值赋值给
  • 西门子PLC S7-200SMART Modbus TCP通讯的步骤和要点

    Modbus TCP是一个非常传统 xff0c 应用广泛的通讯协议 xff0c 很多智能设备都支持该协议 西门子S7 200SMART及1200 1500系列都免费支持 xff08 300和400还是要高昂收费 xff09 xff0c 并且
  • GPRM/GNRMC定位信息的读取与解析

    GPRM GNRMC定位信息的读取与解析 参考网址 xff1a http www cnblogs com 88223100 p GPRM GNRMC Transform html 帧头 UTC时间 状态 纬度 北纬 南纬 经度 东经 西经
  • 基于Arduino 开发 MAX30102 LM35 SSD1306 观察血氧、心率和温度血氧仪

    本项目第一版本实现在arduino框架下通过MAX30102 对血氧和心率 进行实时监控 xff0c 通过LM35 对温度进行监控 所有数值在 ssd 1306 上进行显示 在血氧低过一定数值的时 xff0c 设备会通过蜂鸣器发出警报 第二
  • Python中max函数key的用法详解

    一 背景 起源于一个问题 xff1a 怎样找到字符串中出现次数最多的字符 其实使用max函数就能很轻松的解决这个问题 xff1a 代码 xff1a str1 61 34 AAAaaa8888899sssss 34
  • 查询选修了全部课程的学生姓名

    SELECT SN FROM S WHERE NOT EXISTS SELECT FROM C WHERE NOT EXISTS SELECT FROM SC WHERE SNO 61 S SNO AND CNO 61 C CNO 今天在看
  • Android11小黄鸟安装CA证书以及解决抓包没网问题

    目录 安装CA证书解决没网解决没有system读写权限 安装CA证书 首先没有CA证书是这个样子的 1 准备一个MT管理器 2 进入到 data data com guoshi httpcanary premium cache 目录找到Ht
  • libcurl异步方式使用总结

    原文链接 xff1a https www cnblogs com Newdawn p 10051231 html libcurl这个库的同步方式很简单 xff0c 不做介绍 xff0c 而异步方式很难理解 xff0c 本博客参考官网的dem
  • 开源项目中的法律风险

    引言 写这篇博客的契机是我厂刚好开了一次这样的培训 xff0c 听了以后觉得很有收获 碰巧自己最近也在写开源项目 xff0c 因此觉得还是有必要写一下 有小伙伴提到 xff0c 这种问题 xff0c 去网上找那个指导你如何选择 LICENS

随机推荐

  • UTF8中文编码范围

    简介 UTF 8有点类似于Haffman编码 xff0c 它将Unicode编码为 xff1a 00000000 0000007F的字符 xff0c 用单个字节来表示 xff1b 00000080 000007FF的字符用两个字节表示 xf
  • MLO/uboot-spl.bin和uboot.img/uboot.bin

    前段时间使用TI的am4378芯片 xff0c 发现系统在SD卡启动的时候 xff0c 启动文件使用的是MLO和uboot img xff1b 而Norflash和eMMC启动的时候使用的是 uboot spl bin和uboot bin
  • 身份证校验码规则

    背景 项目中有部分功能需要验证用户身份 为了防止用户随便输入身份信息 因此要对输入数据进行验证 于是参照百科提供的规则进行了实现 公民身份号码是特征组合码 xff0c 由十七位数字本体码和一位数字校验码组成 排列顺序从左至右依次为 xff1
  • 【C语言】代码分析--条件编译及编译预处理阶段

    来自博客园 Rusty 39 s code 一 C语言由源代码生成的各阶段如下 xff1a C源程序 xff0d gt 编译预处理 xff0d gt 编译 xff0d gt 优化程序 xff0d gt 汇编程序 xff0d gt 链接程序
  • GB2132转UTF-8

    背景 单片机端常用的中文显示字符集是GB2312 相对于UTF 8表示中文时更节省空间 但是Linux端为了通用及兼容性常采用UTF 8作为字符编码 为了保持编码的的统一 网络通信时单片机内部将GB2312转为UTF 8发送给Linux 于
  • 操作系统中C程序内存分布

    memory management is one of the most important topics for a Programmer and so understanding the Memory Layout of a C Pro
  • win下使用Python获取串口列表

    背景 一个工具需要使用串口 可是计算机中有时候又不仅有一个串口接口 因此需要获取串口列表并且区分那个是串口接口 代码 span class token comment coding utf 8 span span class token k
  • Vim快捷键-键位图

    背景 嵌入式linux开发中 经常接触linux环境 最方便的莫过于使用vi 功能强大 适用范围广 因此了解一些vim中常见的命令对于日常工作学习大有裨益 针对于不同阶段 可以参考学习一下vim中的快捷键 提升工作效率 版本一 版本二 版本
  • P通道MOSFET简介

    A P Channel MOSFET is a type of MOSFET in which the channel of the MOSFET is composed of a majority of holes as current
  • Gcc编译优化等级介绍

    Gcc 编译优化简介 gcc 提供了为了满足用户不同程度的的优化需要 xff0c 提供了近百种优化选项 xff0c 用来对 编译时间 xff0c 目标文件长度 xff0c 执行效率 这个三维模型进行不同的取舍和平衡 优化的方法不一而足 xf
  • inline关键字的用法

    C代码可以在代码大小和执行时间两个方便优化 inline函数 gcc gnu org 这样描述 By declaring a function inline you can direct GCC to make calls to that
  • printf使用占位符控制输出格式

    printf 函数提供丰富的占位符参数以便精细地控制输出格式 xff0c 再进行字符操作的时候我们可能会使用到sprintf类函数进行处理 xff0c 因此这里对printf 函数的格式化输出控制进行较为 详细 讨论 简单的printf 语
  • 单片机main函数在中断函数里执行?

    引言 为什么复位中断服务程序里面直接调用的main函数 xff0c 难道所有程序都在复位中断里面执行的 xff1f 首先 xff0c Reset Handler 是单片机的一个中断 xff0c 其次 xff0c main 函数也确实被 Re
  • linux应用移植问题

    背景 公司设备降成本 xff0c 设备运行平台从armv7架构mpu换成了armv5架构的mpu xff0c 应用移植过程都挺顺利的 xff0c 只是牵涉到一个引用外部库的应用时 xff0c 运行该应用到引用库中的函数时 xff0c 应用抛
  • VSCode中格式化代码快捷键

    Shift 43 Alt 43 F
  • openwrt 时区设置无效问题

    最近在使用 openwrt 时发现在 web 控制台设置好时区后 xff0c 系统日志依然显示的是 UTC 时间 xff0c 慢了 8 小时 查了下原来是 openwrt 默认没有安装 zoneinfo xff0c 安装后即可 首先在 we
  • 修改weston桌面背景

    背景 linux开发板采用weston桌面系统 xff0c 希望修改默认桌面图片 xff1b 结果 在 etc xdg weston weston ini中新增 xff1a span class token punctuation span
  • 交叉编译构建GDB和GDBServer

    1 Problem statement I have a ARM GNU Linux board and I want to be able to debug programs running in it from the comfort
  • Linux获取库文件中的函数列表

    背景 函数库有些功能是可选的 xff0c 如果编译时没有开启特定选项 xff0c 编译生成函数库中就没有对应的接口函数 xff0c 一些依赖这些接口函数的应用执行时就会出现异常 xff0c 因此为了排查函数库是否包括特定函数 xff0c 我
  • 液晶屏接口介绍:8080接口详述,其他常用接口简介

    序言 本文的标题虽说是液晶屏的接口介绍 xff0c 但液晶屏的种类繁多 xff0c 种类大小尺寸不同 xff0c 液晶屏所用的接口也不同 恕本文实在无法把所有接口种类包含全面 比如说 xff0c 按尺寸大小来区分液晶屏的话 xff0c 有7