当前位置: 首页 > 编程日记 > 正文

mipi和dsi

转自: http://blog.csdn.net/longxiaowu/article/details/24410021

一、MIPI

MIPI移动行业处理器接口)是Mobile Industry Processor Interface的缩写。MIPI(移动行业处理器接口)是MIPI联盟发起的为移动应用处理器制定的开放标准。

已经完成和正在计划中的规范如下:

二、MIPI联盟的MIPI DSI规范

1、名词解释

• DCS (DisplayCommandSet):DCS是一个标准化的命令集,用于命令模式的显示模组。
• DSI, CSI (DisplaySerialInterface, CameraSerialInterface
• DSI 定义了一个位于处理器和显示模组之间的高速串行接口。
• CSI 定义了一个位于处理器和摄像模组之间的高速串行接口。
• D-PHY:提供DSI和CSI的物理层定义
2、DSI分层结构

DSI分四层,对应D-PHY、DSI、DCS规范、分层结构图如下:
• PHY 定义了传输媒介,输入/输出电路和和时钟和信号机制。
• Lane Management层:发送和收集数据流到每条lane。
• Low Level Protocol层:定义了如何组帧和解析以及错误检测等。
• Application层:描述高层编码和解析数据流。

3、Command和Video模式
• DSI兼容的外设支持Command或Video操作模式,用哪个模式由外设的构架决定
• Command模式是指采用发送命令和数据到具有显示缓存的控制器。主机通过命令间接的控制外设。Command模式采用双向接口
• Video模式是指从主机传输到外设采用时实象素流。这种模式只能以高速传输。为减少复杂性和节约成本,只采用Video模式的系统可能只有一个单向数据路径

三、D-PHY介绍

1、 D-PHY 描述了一同步、高速、低功耗、低代价的PHY。

• 一个 PHY配置包括
•  一个时钟lane
•  一个或多个数据lane
• 两个Lane的 PHY配置如下图
• 三个主要的lane的类型
• 单向时钟Lane
• 单向数据Lane
• 双向数据Lane
• D-PHY的传输模式
• 低功耗(Low-Power)信号模式(用于控制):10MHz (max)
• 高速(High-Speed)信号模式(用于高速数据传输):80Mbps ~ 1Gbps/Lane
• D-PHY低层协议规定最小数据单位是一个字节
• 发送数据时必须低位在前,高位在后.
• D-PHY适用于移动应用
• DSI:显示串行接口
• 一个时钟lane,一个或多个数据lane
• CSI:摄像串行接口
2、Lane模块
• PHY由D-PHY(Lane模块)组成
• D-PHY可能包含:
• 低功耗发送器(LP-TX)
• 低功耗接收器(LP-RX)
• 高速发送器(HS-TX)
• 高速接收器(HS-RX)
• 低功耗竞争检测器(LP-CD)
• 三个主要lane类型
• 单向时钟Lane
• Master:HS-TX, LP-TX
• Slave:HS-RX, LP-RX
• 单向数据Lane
• Master:HS-TX, LP-TX
• Slave:HS-RX, LP-RX
• 双向数据Lane
• Master, Slave:HS-TX, LP-TX, HS-RX, LP-RX, LP-CD
3、Lane状态和电压
• Lane状态
• LP-00, LP-01, LP-10, LP-11 (单端)
• HS-0, HS-1 (差分)
• Lane电压(典型)
• LP:0-1.2V
• HS:100-300mV (200mV)
4、操作模式
• 数据Lane的三种操作模式
• Escape mode, High-Speed(Burst) mode, Control mode
•从控制模式的停止状态开始的可能事件有:
• Escape mode request (LP-11→LP-10→LP-00→LP-01→LP-00)
• High-Speed mode request (LP-11→LP-01→LP-00)
• Turnaround request (LP-11→LP-10→LP-00→LP-10→LP-00)
 Escape mode是数据Lane在LP状态下的一种特殊操作
•在这种模式下,可以进入一些额外的功能:LPDT, ULPS, Trigger
•数据Lane进入Escape mode模式通过LP-11→LP-10→LP-00→LP-01→LP-00
•一旦进入Escape mode模式,发送端必须发送1个8-bit的命令来响应请求的动作
• Escape mode 使用Spaced-One-Hot Encoding
•超低功耗状态(Ultra-Low Power State)
    •这个状态下,lines处于空状态 (LP-00)
  • 时钟Lane的超低功耗状态
    •时钟Lane通过LP-11→LP-10→LP-00进入ULPS状态
    •通过LP-10 → TWAKEUP →LP-11退出这种状态,最小TWAKEUP时间为1ms
• 高速数据传输
    •发送高速串行数据的行为称为高速数据传输或触发(burst)
•全部Lanes门同步开始,结束的时间可能不同。
    •时钟应该处于高速模式
  • 各模操作式下的传输过程
•进入Escape模式的过程 :LP-11→LP-10→LP-00→LP-01→LP-00→Entry Code → LPD (10MHz)
    •退出Escape模式的过程:LP-10→LP-11
    •进入高速模式的过程:LP-11→LP-01→LP-00→SoT(00011101) → HSD (80Mbps ~ 1Gbps)
    •退出高速模式的过程:EoT→LP-11
    •控制模式 - BTA 传输过程:LP-11→LP-10→LP-00→LP-10→LP-00
    •控制模式 - BTA 接收过程:LP-00→LP-10→LP-11
  • 状态转换关系图

四、DSI介绍
1、DSI是一种Lane可扩展的接口,1个时钟Lane/1-4个数据Lane
  • DSI兼容的外设支持1个或2个基本的操作模式:
    • Command Mode(类似于MPU接口)
    • Video Mode(类似于RGB接口)- 必须用高速模式传输数据,支持3种格式的数据传输
    •  Non-Burst 同步脉冲模式
     • Non-Burst 同步事件模式
     • Burst模式
  • 传输模式:
    • 高速信号模式(High-Speed signaling mode)
    • 低功耗信号模式(Low-Power signaling mode) - 只使用数据lane 0(时钟是由DP,DN异或而来)。
  • 帧类型
    • 短帧:4 bytes (固定)
    • 长帧:6~65541 bytes (可变)

• 两个数据Lane高速传输示例

2、短帧结构
  • 帧头部(4个字节)
    • 数据标识(DI) 1个字节
    • 帧数据- 2个字节 (长度固定为2个字节)
    • 错误检测(ECC) 1个字节
  • 帧大小
    • 长度固定为4个字节
3、长帧结构
  • 帧头部(4个字节)
    • 数据标识(DI) 1个字节
    • 数据计数- 2个字节 (数据填充的个数)
    • 错误检测(ECC) 1个字节
  •数据填充(0~65535 字节)
    • 长度=WC*字节
  • 帧尾:校验和(2个字节)
  • 帧大小:
    • 4 + (0~65535) + 2 = 6 ~ 65541 字节

4、帧数据类型

具体代码在drivers/video/msm/Mipi_dsi.h中

[cpp] view plaincopy
在CODE上查看代码片派生到我的代码片
  1. /* dcs read/write */  
  2. #define DTYPE_DCS_WRITE     0x05    /* short write, 0 parameter */  
  3. #define DTYPE_DCS_WRITE1    0x15    /* short write, 1 parameter */  
  4. #define DTYPE_DCS_READ      0x06    /* read */  
  5. #define DTYPE_DCS_LWRITE    0x39    /* long write */  
  6. /* generic read/write */  
  7. #define DTYPE_GEN_WRITE     0x03    /* short write, 0 parameter */  
  8. #define DTYPE_GEN_WRITE1    0x13    /* short write, 1 parameter */  
  9. #define DTYPE_GEN_WRITE2    0x23    /* short write, 2 parameter */  
  10. #define DTYPE_GEN_LWRITE    0x29    /* long write */  
  11. #define DTYPE_GEN_READ      0x04    /* long read, 0 parameter */  
  12. #define DTYPE_GEN_READ1     0x14    /* long read, 1 parameter */  
  13. #define DTYPE_GEN_READ2     0x24    /* long read, 2 parameter */  
  14. #define DTYPE_TEAR_ON       0x35    /* set tear on */  
  15. #define DTYPE_MAX_PKTSIZE   0x37    /* set max packet size */  
  16. #define DTYPE_NULL_PKT      0x09    /* null packet, no data */  
  17. #define DTYPE_BLANK_PKT     0x19    /* blankiing packet, no data */  
  18. #define DTYPE_CM_ON     0x02    /* color mode off */  
  19. #define DTYPE_CM_OFF        0x12    /* color mode on */  
  20. #define DTYPE_PERIPHERAL_OFF    0x22  
  21. #define DTYPE_PERIPHERAL_ON 0x32  
  22. /* 
  23.  * dcs response 
  24.  */  
  25. #define DTYPE_ACK_ERR_RESP      0x02  
  26. #define DTYPE_EOT_RESP          0x08    /* end of tx */  
  27. #define DTYPE_GEN_READ1_RESP    0x11    /* 1 parameter, short */  
  28. #define DTYPE_GEN_READ2_RESP    0x12    /* 2 parameter, short */  
  29. #define DTYPE_GEN_LREAD_RESP    0x1a  
  30. #define DTYPE_DCS_LREAD_RESP    0x1c  
  31. #define DTYPE_DCS_READ1_RESP    0x21    /* 1 parameter, short */  
  32. #define DTYPE_DCS_READ2_RESP    0x22    /* 2 parameter, short */  
五、MIPI DSI信号测量实例

1、MIPI DSI在Low Power模式下的信号测量图

2、MIPI的D-PHY和DSI的传输方式和操作模式

 • D-PHY和DSI的传输模式
• 低功耗(Low-Power)信号模式(用于控制):10MHz (max)
• 高速(High-Speed)信号模式(用于高速数据传输):80Mbps ~ 1Gbps/Lane
 • D-PHY的操作模式
   • Escape mode, High-Speed(Burst) mode, Control mode
 • DSI的操作模式
   • Command Mode(类似于MPU接口)
   • Video Mode(类似于RGB接口)- 必须用高速模式传输数据
3、小结论
• 传输模式和操作模式是不同的概念
• Video Mode操作模式下必须使用High-Speed的传输模式
• Command Mode操作模式并没有规定使用High-Speed或Low Power的传输模式,或者说
• 即使外部LCD模组为Video Mode,但通常在LCD模组初始化时还是使用Command Mode模式来读写寄存器,因为在低速下数据不容易出错并且容易测量。
• Video Mode当然也可以用High-Speed的方式来发送指令,Command Mode操作模式也可以使用High-Speed,只是没有必要这么做

转载于:https://www.cnblogs.com/dirt2/p/5848979.html

相关文章:

在asp.net中调用Office来制作各种(3D)统计图

作者:未知 由于本文网上多处见到 对于谁是作者 无法肯定1、下载owc11 COM组件 http://www.microsoft.com/downloads/details.aspx?FamilyID7287252c-402e-4f72-97a5-e0fd290d4b76&displaylangen 2、注册owc11 在工程中添加 C:/Program Files/Common File…

个人谈谈seo

为什么80%的码农都做不了架构师?>>> 我不知道大家有没有做过seo的工作。以前我是一各技术人员。纯技术开发或技术管理人员。基本上也没有接触过seo的相关工作,整天在写代码或看别人的代码 。干了六年只见他们都在谈友情链接。做推广&#xf…

“编程能力差的程序员,90%输在这事上!”谷歌AI专家:都是瞎努力!

Google 人工智能开发者专家彭靖田老师说——超90%的程序员在初学Python 人工智能时,都会遇到下面3个问题:1.想学人工智能,但不知从何学起,也不知道该选择什么方向...2.Python语法、机器学习/深度学习框架、算法都能看懂&#xff0…

[译]JavaScript中,{}+{}等于多少?

最近,Gary Bernhardt在一个简短的演讲视频“Wat”中指出了一个有趣的JavaScript怪癖:在把对象和数组混合相加时,会得到一些你意想不到的结果.本篇文章会依次讲解这些计算结果是如何得出的. 在JavaScript中,加法的规则其实很简单,只有两种情况:你只能把数字和数字相加,或者字符串…

大数量查询分页显示

微软的解决办法 using System; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Windows.Forms; public class PagingSample: Form { // Form controls. Button prevBtn new Button(); Button nextBtn new Button(); static DataGrid …

Sep 26 09:22:41 ck01 kernel: Buffer I/O error on device sda2, logical block 2

错误 kernel: sd 0:2:0:0: SCSI error: return code kernel: end_request: I/O error, dev sda, sector 2308509 kernel: Buffer I/O error on device sda2, logical block 2 kernel: Buffer I/O error on device sda2, logical block 2 硬盘扇区问题? 更换一块硬盘…

启信宝CEO陈青山:AI+大数据驱动下的金融新生态

人工智能怎样潜移默化影响金融业务?合合信息联合创始人、启信宝CEO陈青山在2020世界人工智能大会云端峰会.未来金融论坛上做了“AI大数据,共创金融新生态”的主题演讲,讲述了如何通过数字化构建一个虚拟世界,协助金融类企业建立新…

新手安装ruby on rails(ror)的成功必备手册

2019独角兽企业重金招聘Python工程师标准>>> 如何快速正确的安装 Ruby, Rails 运行环境 每一位使用windows系统来进行ROR开发项目的都是这个世界上折翼的天使。对于新入门的开发者,如何在windows系统上安装 Ruby, Ruby Gems 和 Rails 的运行环境可能会是…

Logback学习笔记1

Logback介绍 Logback 分为三个模块:Core、Classic 和 Access。Core模块是其他两个模块的基础。 Classic模块扩展了core模块。 Classic模块相当于log4j的显著改进版。Logback-classic 直接实现了 SLF4J API。 要引入logback,由于Logback-classic依赖slf4j…

微软亚洲研究院副院长刘铁岩:AI如何助力节能减排?

7月10日,在微软举办的WAIC●2020人工智能予力永续未来论坛,微软亚洲研究院副院长刘铁岩围绕 AI 在节能减排领域的应用,探讨了如何推进整个社会的可持续发展。 刘铁岩指出,人工智能在助力节能环保方面具有巨大潜力。例如&#xff…

如何在域控制器上安装asp.net?

作者:网际浪子专栏(曾用名littlehb) http://blog.csdn.net/littlehb/在域控制器或备份域控制器上安装 Microsoft Visual Studio .NET 或 Microsoft .NET 框架后,如果您尝试运行 ASP.NET 应用程序,则浏览器…

前端思想实现:面向UI编程_____前端框架设计开发

引子,我去小说看多了,写博客竟然写引子了!!!不过,没引子不知道怎么写了。言归正传吧,前端这个职业,也就这几年刚刚火起来的职业,以前那个混乱的年代,前端要么…

如何检查当TextBox设置为多行时是不是超长了?

<asp:RegularExpressionValidator id"revTextBox1" runat"server" ForeColor"Red" Display"Dynamic" ControlToValidate"textBox1" ValidationExpression"(/w|/W){1,100}">格式错误-只能输入不超过100个字符…

仅用2年过渡到自研ARM芯片,苹果的底气从何而来?

作者 | Steven Sinofsky译者 | 弯月&#xff0c;责编 | 屠敏题图 | 东方 IC出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;今年 WWDC 2020 上&#xff0c;苹果宣布自研 ARM 芯片——Apple Silicon&#xff0c;对于苹果而言&#xff0c;Apple Silicon很重要&#…

从“创业输家”到“创智赢家”

年轻就是创业的资本&#xff0c;但同时还要不怕失败&#xff0c;经得起挫折&#xff01;”在上海财经大学的演讲厅内&#xff0c;彭震以自己亲身的经历&#xff0c;向在场的学生们介绍了自己创业背后的艰辛。彭震&#xff0c;现任项丰投资公司董事长&#xff0c;作为首届“ 创智…

2.正则表达式

在计算机科学中&#xff0c;正则表达式是这样解释的&#xff1a;它是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里&#xff0c;正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用…

基于监督学习+自监督学习的智能抠图,精确到发丝 | CVPR 2020

来源 | AI算法与图像处理&#xff08;ID:AI_study&#xff09;华盛顿大学的研究者最近发表的论文在CVPR 2020提供了一个新的和简单的智能抠图方法。你可以在家里做这些日常设置&#xff0c;使用固定或手持相机。我们的方法也是最先进的&#xff0c;给出的输出可比专业的结果。在…

安装Jpype

1、下载JPype-0.5.4.2 2、 python setup.py install error: gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE2 -fexceptions -fstack-protector --paramssp-buffer-size4 -m64 -mtunegeneric -D_GNU_SOURCE -fPIC -fPIC -I/usr/lib/jvm…

SQL SERVER中带参数的返回

作者&#xff1a;网际浪子专栏&#xff08;曾用名littlehb&#xff09; http://blog.csdn.net/littlehb/ CREATE PROCEDURE LoginUser loginUN char(50) OUTPUT, loginPW char(40)ASif loginPW (select [password] from users where usernameloginUN) return 0;else ret…

Android Studio 编译单个module

前期自己要把gradle环境变量配置好 在Terminal中gradle命令行编译apk 输入gradle assembleRelease 会编译全部module编译单个modulecd ./xiruan //xiruan是module的名字 //意思是进入module目录gradle assembleRelease //编译出自己签名的apk //签名环境也要配置好gradle ass…

linux下文件字符集转化实战篇

linux下文件字符集转化实战篇------------------------------------------为什么转换编码&#xff0c;起因&#xff1a;分析应用程序日志&#xff0c;文件编码格式gb2312&#xff08;含中文字符&#xff09;&#xff0c;通过linux shell脚本从日志中提取出需要的字段并生成有固…

如何得到数据库中所有表字段及字段中文描述

如何得到数据库中所有表字段及字段中文描述以下资料,通过csdn的一位师兄从SQL版主那得到:sql中SELECT (case when a.colorder1 then d.name else end) N表名, a.colorder N字段序号, a.name N字段名, (case when COLUMNPROPERTY( a.id,a.name,IsIdentity)1 then √else end)…

它估值25亿!被马云领投,是华为“老战友”,网友:也许股价能超茅台!

最近一条新闻被炒的沸沸扬扬&#xff1a;十年以来中国最大IPO&#xff0c;中芯国际将融资532亿元&#xff01;何为IPO&#xff1f;翻译即为一家公司第一次向全社会公开售出它的股份。买的人越多&#xff0c;代表着社会对其信心越大。为什么2020年&#xff0c;能爆发这样1场最大…

改變人生的21種好習慣

當一個人生活枯燥的時候&#xff0c; 他忘了用心體會是一種習慣。 當一個人覺得人生乏味的時候&#xff0c; 他忘了培養幽默是一種習慣。 當一個人體力日差的時候&#xff0c; 他忘了運動建身是一種習慣。 當一個人工作疲憊的時候&#xff0c; 他忘了認真休息是一種習慣。 當一…

Python 编程语言的核心是什么?

作者 | Brett Cannon译者 | 弯月&#xff0c;责编 | 王晓曼头图 | CSDN下载自视觉中国出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;为什么要问这个问题&#xff1f;我想要用Python实现WebAssembly&#xff0c;这并不是什么秘密。这不仅可以让Python进入浏览器&a…

关闭页面不用提示的方法

Response.Write("<script>window.openernull;window.close();</script>") ;

VIM 必知必会12大类型操作

2019独角兽企业重金招聘Python工程师标准>>> VIM是在unix/linux系统下最常用的文本编辑器,呵呵……这就不用我再强调了&#xff0c;现在直接贴上vim的最常用的操作&#xff0c;方便日后温习及查阅&#xff01; 1、插入 i 在光标前插入 I 在行首插入 a 在光标后插入 …

前后端分离的思考与实践(三)

Midway-ModelProxy — 轻量级的接口配置建模框架前言使用Node做前后端分离的开发模式带来了一些性能及开发流程上的优势(见《前后端分离的思考与实践 一》), 但同时也面临不少挑战。在淘宝复杂的业务及技术架构下&#xff0c;后端必须依赖Java搭建基础架构&#xff0c;同时提供…

替换HTML代码

将一些HTML替换掉 eg:strContentstrContent.Replace("&","&amp");strContentstrContent.Replace("","");strContentstrContent.Replace("<","&lt");strContentstrContent.Replace(">&quo…

什么是线程安全?

http://baike.baidu.com/view/1298606.htm 线程安全 目录 什么是线程安全&#xff1f;举例线程安全性线程安全程度不可变线程安全有条件的线程安全线程兼容线程对立什么是线程安全&#xff1f;举例线程安全性线程安全程度不可变线程安全有条件的线程安全线程兼容线程对立展开编…