MIPI协议知识

MIPI协议知识转发路径:https://blog.csdn.net/weixin_41842559/article/details/109828013?spm=1001.2101.3001.6650.14&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-14.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_

大家好,又见面了,我是你们的朋友全栈君。

转发路径:https://blog.csdn.net/weixin_41842559/article/details/109828013?spm=1001.2101.3001.6650.14&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-14.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-14.pc_relevant_paycolumn_v3&utm_relevant_index=20

1.lcd MIPI DSI协议

MIPI-DSI是一种应用于显示技术的串行接口,兼容DPI(显示像素接口,Display Pixel Interface)、DBI(显示总线接口,Display Bus Interface)和DCS(显示命令集,Display Command Set),以串行的方式发送像素信息或指令给外围,而且从外围中读取状态信息或像素信息,而且在传输的过程中享有自己独立的通信协议,包括数据包格式和纠错检错机制。

MIPI-DSI具备高速模式和低速模式两种工作模式,全部数据通道都可以用于单向的高速传输,但只有第一个数据通道才可用于低速双向传输,从属端的状态信息、像素等式通过该数据通道返回。时钟通道专用于在高速传输数据的过程中传输同步时钟信号。此外,一个主机端可允许同时与多个从属端进行通信。

LCD mipi系统简单示意图如下:

1.1、mipi DSI协议分层
主要分为四个层:应用层、协议层、通道管理层、物理层

1.2、物理层
在接收到低速发送请求时,逻辑电路将待发送的指令或数据串行化,并控制输出高摆幅低功耗电平进行低功耗传送请求,随后将指令或数据串行地加载到通道,接收端则识别传送模式完成串行数据的并行转换。

当接收到高速请求后,电路发送高摆幅低功耗电平进行高速传送请求,然后将待发送数据经过串行转换之后驱动差分驱动模块以低摆幅信号在通道上传送,接收端则识别高速模式后正确地检测其同步信号将高速串行数据完成串并转换成功地接收。

除此之外,总线控制权可在主机端与从属端之间交换,发送端发送放弃总线请求,接收端接收请求之后控制总线发起应答,总的过程为TA(turn around)操作,在LCD中我们称之为BTA(Bus Turn-Around)。当主机端需要获取从属端接收数据的状况或者读取显示模块的参数或显示数据的时候,主机端发起TA操作,在从属端发送数据完毕之后自动发起TA操作,归还总线控制权。

信号两种工作状态,高速模式状态(LP)和低速模式状态(HS)。

物理层,就是要控制硬件信号的(时序),MIPI-DSI两种信号类型:

时钟lane,两根线一个Dp,Dn;

数据lane,两根线一个Dp,Dn;

数据lane根据需求有多个,最少一个lane(lane0),最多4个lane(lane0,lane1,lane2,lan3),其中只有lane0是双向的(低速模式双向,高速模式也只能是单向),其他的都只能是单向(高速模式单向)。

数据lane电平:

低速模式LP:0-1.2V,空闲电平(LP11)Dp,Dn是1.2V。

高速模式HS:100-300mV (200mV)
按照D-PHY协议,在整个协议的物理层中,在主机端和从属端之间采用的是同步连接,时钟通道用于传送高速时钟,一个或多个数据通道用于传送低功耗数据信号或高速数据信号每一个通道都是利用两根互连线实现主机端和从属端的连接,并且支持高速模式和低速ESCAPE模式。

在高速模式下,发送端同时驱动该通道仅有的两根互连线,输出低摆幅差分信号,例如200mV;

低速模式下,发送端分别驱动互连线,各自输出单端信号,但摆幅相对较大,例如1.2V,如下图所示:

差分发送模块(HS_TX)以差分信号驱动互连线,高速通道上呈现两种状态:differential-0和differential-1。低功耗单端发送模块(LP_TX)独立地驱动两根互连线,通道上则有四种不同的状态:LP00、LP01、LP10和LP11。协议针对线路电平作了具体的定义并设置了三种工作模式:高速模式、控制模式和ESCAPE模式,通道默认为控制模式,线路处于STOP状态。当通道需要进入高速模式或ESCAPE模式,发送模块则需驱动线路为LP01或LP10向接收端发送请求,发送完请求序列之后便进行相应工作模式,发送LP11
便可退出结束传送回到STOP控制状态。接收端需要时刻进行LP-RX接收,侦测线路电平明确通道的工作模式。

1.2.1、时钟通道
时钟通道支持高速模式和ULPS(超低功耗模式)模式:

高速模式应用于整个接口工作于高速数据传送模式,用于传送高速时钟:

ULPS模式用于外围(如整个显示模块)要进入休眠模式时将时钟通道置于超低功耗状态,节省外围接口功耗。

1.2.2、数据通道
数据通道支持高速模式和ESCAPE模式,在此还包括另外一个重要的功能总线控制权交换——BTA模式。高速模式是以高速的低摆幅差分信号传送数据,速度快,最高可达
1Gps。在经过请求序列LP11->LP01->LP00之后,HS_TX开始发送串行高速数据,发送结束之后,LP_TX发送LP11回到正常的控制模式。

ESCAPE模式是由LP_TX直接驱动线路通道发送电平序列传送低功耗数据。其进入方式为LP11->LP10->LP00->LP01->LP00,退出方式为LP10->LP11。经过请求序列之后,LP_TX发送模式命令,包括trigger命令和低功耗数据传送(LPDT)等,如下如所示:

BTA模式用于交换总线控制权,在控制模式下完成。LP_TX发送请求序列LP11->LP10->LP00->LP10->LP00,经过BTA-GO之后停止驱动总线。相对于总线另一端来说,在接收到请求序列并且经过BTA-SURE之后,LP_TX开始驱动总线,发送确认信号,接管总线。

1.3、通道管理层
依据设计所设定最多为4个数据通道,该层在发送端将需要发送的数据按照通道次序分成N组输送到相应的数据通道,使其经数据通道同时发送至从属端。在接收端,该层需要做的是将接收到的N组数据组合在一起恢复成原始的数据序列。

数据分组与恢复如下图:

数据分组:

数据恢复:

数据操作过程:

1.4、协议层
信息传送采用数据包格式,包括长数据包和短数据包。发送数据的时候,将数据按照信息类型及内容进行压包,完成ECC码的生成和CRC码的添加。接收数据的时候,依据ECC码和CRC码就整个数据包进行检错纠错,完成对包头和数据内容的译码并合理输送到应用层中。

DSI协议是一个基于数据包传送的通信协议,主机端和显示模块之间传送的命令和数据基本上都以数据包格式进行。DSI所定义的数据包有两种:端数据包(short packet)
和长数据包(long packet),短数据包主要用于传输命令、读写寄存器,长数据包主要用用于传输大量图象数据或部分控制命令。

1.5、应用层
根据应用模块的需要,在发送端对发送的命令和数据进行初步编码转化为MIPI-DSI所规定的格式,而在接收端则将接收的数据还原为应用模块所支持的数据格式及时序要求。

应用层模块直接连接到显示模块,负责着与显示模块的通信。按照协议要求,接口电路支持命令模式和视频模式,命令模式则是经过接口转换之后主机端依然得以“命令+参数”格式对显示模块进行读写操作,而视频模式下,主机端可以直接将显示数据写入显示模块,无需命令操作,实时显示视频。该模块在设计的过程中应支持命令模式和视频模式。

根据协议所定义的数据类型的意义,其中一些数据类型是专门应用于video模式,如0x01指代的是场同步信号(Vsync)开始。所以在此模块电路的设计中,分成了视频模式应用电路和命令模式应用电路两个模块,视频模式应用电路模块仅接收视频模式相关的命令和数据并以DPI时序格式传送到驱动中。

cmd模式应用电路模块适用于非视频模式的控制命令和数据,对其进行译码并以DBI时序格式写入到显示模块中的寄存器或SRAM中。当需要读取数据的时候,命令模式应用电路模块通过DBI口可从显示模块中读取相关寄存器的信息等。

mipi总体框图:

2、MIPI DSI实践
2.1、mipi速率
mipi_clk = resX * resY * bps * 1.25 * fps / lane_num

注:bps = 3 * 8 = 24位

1.25为余量

如:

分辨率:2560*1440,fps = 65

MIPI lane:2条数据lane,1条时钟lane

mip_clk = 2560144060fps*(38) 1.25 * 65 / 2/8/104/1024 = 429Mhz

2.2、LCD dsi简图
今天以LCD MIPI为例做简要讨论。Display对应MIPI DSI,Camera对应MIPI CSI。和Display相关的就是MIPI DSI,DPI,DBI等,规范了host display controller到panel之间通信时从物理层,链路层到应用层的协议。
DPI:Video-mode displays

DBI:Command-mode displays

2.3、mipi导致花屏问题
2.3.1、切换屏幕画面,中间闪一条竖线
原因:mipi clk_post偏低

分析:data lane在传输完成最后一帧数据后进入lp模式,clklane继续传输时钟信号的时间过短导致datalane未完全进入lp11,状态不稳定。

解决:

1、增大clk_post

2、时钟改为continue模式,功耗大

2.3.2、LCD右半边闪屏
原因:mipi clk偏低,lk阶段clk偏低,kernel阶段clk正常

分析:数据包长短不一致会导致进入lp11时间点不一致,属于正常现象 — 排除 lk频率偏低导致问题

解决:修整频率

2.3.3、panel电荷无法释放导致闪屏 — 硬件设计
2.4、时序异常
2.4.1、IOVCC上电瞬间,mipi异常脉冲
此时mipi接口还没准备好,lp-tx被打开,输出异常脉冲

2.4.2、reset低电平时,mipi信号被拉低
器件由于低功耗考虑,reset为低时,进入深度待机模式,regulator关闭,保护二极管分流,拉低信号。

2.5、mipi测试
需要引出clkp、clkn、data0p,data0n

参考:
1、mipi DSI
http://blog.csdn.net/redredbird/article/details/12648847

http://blog.csdn.net/eZiMu/article/details/56279847?locationNum=14&fps=1
2、LCD调试流程
http://blog.csdn.net/dearsq/article/details/52354593?locationNum=9&fps=1

3、lcd DSI论文

http://www.doc88.com/p-0877384948107.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/136882.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • android开发之android:process属性_application中onCreate执行多次「建议收藏」

    应用做的匆忙,很多地方只顾实现功能,没有兼顾好性能,所以停下来重构代码优化性能,结果在打log看启动时间的时候,发现Application的onCreate执行了多次,这样导致重复初始化资源,初始化了3次导致接近1s时间。发现这个是由独立进程引起的。即:process这个属性。android:process        服务所在进程的名字。通常,一个应用的所有组件都运行在系统为这个应用所创建的默

  • fastjson List String JSONArray 转换

    fastjson List String JSONArray 转换imgCode//ListList<Course>courseTable=newLinkedList<>();courseTable.add(newCourse(“1″,”Java”,30,3.0));courseTable.add(newCourse(“2″,”JavaScript”,25,2.5));System.out.pri…

  • mysql phpmyadmin配置_phpmyadmin 配置方法与安装教程[通俗易懂]

    mysql phpmyadmin配置_phpmyadmin 配置方法与安装教程[通俗易懂]今天我们来看看phpmyadmin配置教程吧,也可以叫做phpmyadmin安装吧,安装我就不说了,你直接到网上下载一个phpmyadmin包解压到你的站点目录,就行了.下面我们来看个简单的例子吧.安装目录:/admin/好了我们现在打开我们刚才解压的文件夹找到config.sample.inc.php把它改名为config.inc.php下面我们就打开这个文件.找到$cfg[‘PmaAbs…

  • golang激活码2022.01.13【2022.01最新】

    (golang激活码2022.01.13)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1M2OME2TZY-eyJsaWNlb…

  • java.util.scanner sc_Java的Scanner sc=new Scanner(System.in)是什么意思「建议收藏」

    java.util.scanner sc_Java的Scanner sc=new Scanner(System.in)是什么意思「建议收藏」展开全部当通过newScanner(System.in)创建一个Scanner,控制台会一直等待输入,62616964757a686964616fe58685e5aeb931333433653935直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象。如果要获取输入的内容,则只需要调用Scanner的nextLine()方法即可。例:importjava.util.Scanner;…

  • android签名命令行,Android系统签名位置及命令

    android签名命令行,Android系统签名位置及命令app需要使用系统的权限在AndroidManifest.xml中声明了系统全下申明了系统权限android:sharedUserId=”android.uid.system”1.找到平台签名文件“platform.pk8”和“platform.x509.pem”文件位置android/build/target/product/security/2.签名工具“signapk.jar”位置…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号