mipi dsi协议DBI/DPI接口

news/2024/10/26 9:28:55/

MIPI dsi协议中的DBI/DPI接口主要用于主机和display设备之间的数据传输,说的更通俗一点就是DSI RX控制器和实际的显示面板之间的接口;dsi 协议spec中对DBI/DPI有描述:

DSI协议中对DBI 接口模式命名为command mode operation,对DPI接口模式命名为video mode operation;

DBI接口:

DBI接口用于和display module本身具有显示控制和frame buffer之间,这有什么用呢?DBI接口最大的特点就是LCM自带framebuffer, 存储Host端发过来的数据, 并由内部的控制IC不断重复的刷到LCD上, 也就是说其内部实现了自刷新, Host只要发送一次数据即可, 这帧数据会一直显示在屏幕上。那没有显示控制和frame buffer的display module呢,我们下面会说。

再来看看DBI接口的信号分别表示的意思:

除了typeA,协议还规定了typeB,typeC接口,具体的DBI type接口之间差异,大家感兴趣的可以查阅 MIPI Alliance Standard for Display Bus Interface spec;

以RGB565为例,实际的数据传输如下图示,((2Ch): Memory Write, 写命令0x2c, 接着开始写帧数据 ):

为啥要先通过DBI接口发出一个2ch的命令呢?通过查询dsi dcs spec可以得知,2ch是写mem start的指令,就是写display 的mem指令:

typeA的引脚中有一个比较重要的引脚TE引脚,它是一个host的输入引脚,display 屏幕可以通过这个引脚发出一帧数据是否刷完的信号;

上述截图是DBI spec中对TE引脚的时序描述,很明了的可以看出可以配置vsync或者vsync+hsync输出。

DSI 协议spec中对Tearing effect也有更为详细的描述:

specification for Display Serial Interface 2 (DSI-2SM) 8.12小节

DPI接口:

DPI接口,display pixel interface,也是用于主机和display设备之间的数据传输,与DBI不同的是,使用DPI接口的display 设备没有显示控制和frame buffer,主机为了维持画面能够持续的在屏幕上,要持续的发送数据过去,并且为保证数据的同步,引入vsync和hsync等功能;

但是dsi spec中在DPI接口描述的小节也说到了一些使用DPI接口的显示设备为了能在低功耗时对屏幕进行刷新也有使用一个小的frame buffer来做屏幕刷新的操作。

接下来我们来看一下DPI接口的信号:

 看起来似乎很熟悉,没错DPI和VGA以及LCP都是一致的。那我们把DPI的时序贴上来:

除了时序,还有一点需要注意的是,Color Coding,也就是当在使用 16 bit、18 bit、24 bit 来传输像素 RGB 数据的时候,几根线上的 RGB 通道是如何进行排列的: 

这里引出了 16bit 的 CFG1、CFG2、CFG3,以及 18bit 的 CFG1、CFG2;的配置;

参考文献:

MIPI Alliance Standard for Display Bus Interface
MIPI Alliance Standard for Display Pixel Interface

specification for Display Serial Interface 2 (DSI-2SM)

MIPI DSI之DBI DPI含义和区别(3-1) - Vedic - 博客园 (cnblogs.com)


http://www.ppmy.cn/news/1273290.html

相关文章

Python tkinter 初探Toplevel控件搭建父子窗口

目录 Toplevel控件搭建父子窗口 最简明的父子窗口框架 改进一:屏蔽和开放按钮 改进二:子窗口始终在主窗口之上 改进三:增加子窗口的关闭协议 改进四:使子窗口长获焦点 总结 Toplevel控件搭建父子窗口 最近,用P…

vue-cli创建一个vue3项目

通过命令创建VUE脚手架: npm install -g vue/cli 创建VUE项目: vue create npg***b 剩下的就是一路回车 npm install element-plus --save 入口文件main.ts import { createApp } from vue import App from ./App.vue import router from ./router…

探索灵活性与可维护性的利器:策略(Strategy)模式详解

目录 ​编辑 1. 策略模式概述: 2. 主要角色: 3. 实例场景: 4. 具体实现步骤: 步骤一:定义策略接口 5. 使用策略模式的客户端代码: 总结: 我的其他博客 1. 策略模式概述: 策…

android 13.0 Launcher3定制folder文件夹16宫格实现一

1. 概述 在13.0的系统产品rom定制化开发中,对于Launcher3的定制功能也是不少的,比如在Launcher3中添加默认文件夹,把默认的app添加的文件夹里面,其他的app 然后按顺序排序。在文件夹布局就是默认的16宫格布局,接下来分析下相关源码来实现功能 2.Launcher3定制化之修改添…

Linux---获取管理员权限的相关命令

1. sudo命令的使用 命令说明sudo -s切换到root用户,获取管理员权限sudo某个命令的执行需要获取管理员权限可以在执行命令前面加上sudo sudo -s效果图: sudo 命令效果图: 说明: 如果只是某次操作需要使用管理员权限建议使用 sudo , 也就是说临时使用管理器权限。…

[Excel] vlookup函数

VLOOKUP用法 VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])其中: lookup_value是你要查找的值table_array是你要在其中进行查找的表格区域col_index_num是你要返回的在table_array中列索引号range_lookup是一个可选参数,用于指定…

http状态码(一)400报错

一 400报错汇总 ① 综述 一、4xx状态码报错说明: 客户端行为导致的报错二、通用的4xxHTTP报错1) 4002) 4013) 4034) 4045) 405 --> 不允许方法,可能跨域或者nginx限制请求方法6) 4087) 4138) 419三、ngin自身定义的4xx报错495、496、497、498、4…

TDsql中联合主键怎么创建,Hibernate注解映射联合主键

两种方式: 1,建表时创建 2,建表后再添加主键 一,建表时创建 CREATE TABLE 表名 (列名1 数据类型,列名2 数据类型,...PRIMARY KEY (列名1, 列名2) );如果想给主键起个名字,可以这么写&#xff…