显示接口之DBI

简介: 对于需要UI的产品来说,都会接触到各种各样的显示接口。接下来的几篇文章我们来整理一下常用的显示接口。

前言

对于需要UI的产品来说,都会接触到各种各样的显示接口。接下来的几篇文章我们来整理一下常用的显示接口。


DBI简介

DBI(Display Bus Interface),显示总线接口,因为经常用在MCU上,所以也称MCU接口,DBI接口最大的特点就是LCM自带framebuffer,保存Host端发过来的数据,并由内部的控制芯片不断刷新到LCD上, 也就是说其内部实现了自刷新,Host只要发送一次数据即可, 这帧数据会一直显示在屏幕上。由于不需要主控刷新,所以对主控的要求很低。

DBI是MIPI联盟发布的第一个显示标准,用来规定显示接口。DBI中定义了三类接口:

  • A类:基于Motorola 6800总线
  • B类:基于Intel 8080总线
  • C类:基于SPI/I2C协议



整体框架

640.png

DBI接口最大的特点就是LCM自带 framebuffer, 保存着Host端发过来的数据, 并由内部的驱动芯片不断的刷新到LCD上。


接口定义

  • A类接口:

640.png

符号

描述

CSX

片选信号

RESX

复位信号,拉低复位

TE

用作HSYNC和VSYNC信号,可选,有需要才使用

D/CX

指示当前发送的是数据还是命令,拉高表示数据,拉低表示命令

R/WX

指示当前是读还是写

E

E时钟,没进行读写时拉高;如果进行读写则为时钟信号,上升沿读取数据,下降沿写入数据

D[15:0]

数据信号,传输数据或命令


  • B类接口:

640.png

符号

描述

CSX

片选信号

RESX

复位信号,拉低复位

TE

用作HSYNC和VSYNC信号,可选,有需要才使用

D/CX

指示当前发送的是数据还是命令,拉高表示数据,拉低表示命令

WRX

下降沿写数据

RDX

上升沿读数据

D[15:0]

数据信号,传输数据或命令



  • C类接口:

640.png

符号

描述

CSX

片选信号

RESX

复位信号,拉低复位

D/CX

指示当前发送的是数据还是命令,拉高表示数据,拉低表示命令 。可选

SCL

串行时钟。在上升沿时进行读写

DOUT

输出数据信号(host)

DIN

输入数据信号(host)

SDA

双向数据信号

*总结:DBI可以有1, 2, 8, 9或16根数据信号线。从上面的接口图可以知道,C类接口可以配置为1或2根数据信号线,而A,B类接口可以配置为8,9,16根数据信号线。我们的像素数据就是在这些数据线上进行传输。


具体传输的时序,可以参阅下面的文档:

http://files.chinaaet.com/files/blog/2019/20171113/1000019445-6364618482802389294829448.pdf


总结

DBI接口在单片机上面用得比较多,因为这种接口主要是为内存资源少的主控准备的。


相关文章
|
6月前
|
JSON Linux API
一个C++版本的Sqlite3封装--SmartDb
一个C++版本的Sqlite3封装--SmartDb
67 0
|
关系型数据库 MySQL 数据库
Egg 项目怎么连接 MySQL 实现增删改查接口?
Egg 项目怎么连接 MySQL 实现增删改查接口?
237 0
Egg 项目怎么连接 MySQL 实现增删改查接口?
|
关系型数据库 PostgreSQL 存储
PostgreSQL 10.1 手册_部分 IV. 客户端接口_第 33 章 libpq - C 库_33.7. 快速路径接口
33.7. 快速路径接口 PostgreSQL提供一种快速路径接口来向服务器发送简单的函数调用。 提示 这个接口在某种程度上已被废弃,因为我们可以通过创建一个定义该函数调用的预备语句来达到类似或者更强大的功能。
1132 0
|
关系型数据库 PostgreSQL
PostgreSQL 10.1 手册_部分 IV. 客户端接口_第 33 章 libpq - C 库_33.17. 连接参数的 LDAP 查找
33.17. 连接参数的 LDAP 查找 如果libpq已经在编译时打开了 LDAP 支持(configure的选项--with-ldap),就可以通过 LDAP 从一个中央服务器检索host或dbname之类的连接参数。
1350 0
|
存储 算法 关系型数据库
PostgreSQL 10.1 手册_部分 IV. 客户端接口_第 33 章 libpq - C 库_33.11. 杂项函数
33.11. 杂项函数 一如往常,总有一些函数不适合放在任何其他地方。 PQfreemem 释放libpq分配的内存。 void PQfreemem(void *ptr); 释放libpq分配的内存,尤其是PQescapeByteaConn、PQescapeBytea、PQunescapeBytea和PQnotifies分配的内存。
2010 0
|
关系型数据库 PostgreSQL
PostgreSQL 10.1 手册_部分 IV. 客户端接口_第 33 章 libpq - C 库_33.20. 编译 libpq 程序
33.20. 编译 libpq 程序 要编译(即编译并且链接)一个使用libpq的程序,你需要做下列所有的事情: 包括libpq-fe.h头文件: #include <libpq-fe.h> 如果你无法这样做,那么你通常会从你的编译器得到像这样的错误消息: foo.
1445 0
|
关系型数据库 PostgreSQL Windows
PostgreSQL 10.1 手册_部分 IV. 客户端接口_第 33 章 libpq - C 库_33.10. 控制函数
33.10. 控制函数 这些函数控制libpq行为各种各样的细节。 PQclientEncoding 返回客户端编码。 int PQclientEncoding(const PGconn *conn); 请注意,它返回的是编码 ID,而不是一个符号串字符串,如EUC_JP。
1222 0
|
SQL 关系型数据库 PostgreSQL
PostgreSQL 10.1 手册_部分 IV. 客户端接口_第 33 章 libpq - C 库_33.9. COPY命令相关的函数
33.9. COPY命令相关的函数 33.9.1. 用于发送COPY数据的函数 33.9.2. 用于接收COPY数据的函数 33.9.3. 用于COPY的废弃函数 PostgreSQL中的COPY命令有用于libpq的对网络连接读出或者写入的选项。
1482 0
|
关系型数据库 Unix 网络安全
PostgreSQL 10.1 手册_部分 IV. 客户端接口_第 33 章 libpq - C 库_33.1. 数据库连接控制函数
33.1. 数据库连接控制函数 33.1.1. 连接字符串 33.1.2. 参数关键词 下列函数会建立到一个PostgreSQL后端服务器的连接。一个应用程序可以在一个时刻打开多个后端连接(原因之一就是为了访问多个数据库)。
1550 0
|
SQL 存储 关系型数据库
PostgreSQL 10.1 手册_部分 IV. 客户端接口_第 33 章 libpq - C 库_33.3. 命令执行函数
33.3. 命令执行函数 33.3.1. 主要函数 33.3.2. 检索查询结果信息 33.3.3. 检索其他结果信息 33.3.4. 用于包含在 SQL 命令中的转移字符串 一旦到一个数据库服务器的连接被成功建立,这里描述的函数可以被用来执行 SQL 查询和命令。
2044 0