MIPI DSI协议介绍

转载请注明出处玮璘博客:http://www.wangweilin.name/qrx_448.html

此文根据网上的资料翻译和整理而来

 

一、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、帧数据类型

 

五、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,只是没有必要这么做
已标记关键词 清除标记
相关推荐
Index The Python Tutorial 1 1. Whetting Your Appetite 4 2. Using the Python Interpreter 6 2.1. Invoking the Interpreter 7 2.1.1. Argument Passing 8 2.1.2. Interactive Mode 8 2.2. The Interpreter and Its Environment 9 2.2.1. Source Code Encoding 9 3. An Informal Introduction to Python 10 3.1. Using Python as a Calculator 11 3.1.1. Numbers 11 3.1.2. Strings 13 3.1.3. Lists 19 3.2. First Steps Towards Programming 21 4. More Control Flow Tools 24 4.1. if Statements 24 4.2. for Statements 24 4.3. The range() Function 25 4.4. break and continue Statements, and else Clauses on Loops 27 4.5. pass Statements 28 4.6. Defining Functions 29 4.7. More on Defining Functions 31 4.7.1. Default Argument Values 31 4.7.2. Keyword Arguments 33 4.7.3. Arbitrary Argument Lists 35 4.7.4. Unpacking Argument Lists 36 4.7.5. Lambda Expressions 37 4.7.6. Documentation Strings 38 4.7.7. Function Annotations 39 4.8. Intermezzo: Coding Style 39 5. Data Structures 40 5.1. More on Lists 41 5.1.1. Using Lists as Stacks 43 5.1.2. Using Lists as Queues 43 5.1.3. List Comprehensions 44 5.1.4. Nested List Comprehensions 46 5.2. The del statement 47 5.3. Tuples and Sequences 48 5.4. Sets 50 5.5. Dictionaries 51 5.6. Looping Techniques 53 5.7. More on Conditions 55 5.8. Comparing Sequences and Other Types 56 6. Modules 57 6.1. More on Modules 58 6.1.1. Executing modules as scripts 60 6.1.2. The Module Search Path 61 6.1.3. “Compiled” Python files 61 6.2. Standard Modules 62 6.3. The dir() Function 63 6.4. Packages 66 6.4.1. Importing * From a Package 68 6.4.2. Intra-package References 69 6.4.3. Packages in Multiple Directories 70 7. Input and Output 70 7.1. Fancier Output Formatting 70 7.1.1. Old string formatting 75 7.2. Reading and Writing Files 76 7.2.1. Methods of File Objects 77 7.2.2. Saving structured data with json 79 8. Errors and Exceptions 81 8.1. Syntax Errors 81 8.2. Exceptions 81 8.3. Handling Exceptions 82 8.4. Raising Exceptions 86 8.5. User-defined Exceptions 87 8.6. Defining Clean-up Actions 88 8.7. Predefined Clean-up Actions 89 9. Classes 90 9.1. A Word About Names and Objects 91 9.2. Python Scopes and Namespaces 91 9.2.1. Scopes and Namespaces Example 94 9.3. A First Look at Classes 95 9.3.1. Class Definition Syntax 95 9.3.2. Class Objects 96 9.3.3. Instance Objects 97 9.3.4. Method Objects 98 9.3.5. Class and Instance Variables 99 9.4. Random Remarks 100 9.5. Inheritance 102 9.5.1. Multiple Inheritance 104 9.6. Private Variables 105 9.7. Odds and Ends 106 9.8. Iterators 106 9.9. Generators 108 9.10. Generator Expressions 109 10. Brief Tour of the Standard Library 110 10.1. Operating System Interface 110 10.2. File Wildcards 111 10.3. Command Line Arguments 111 10.4. Error Output Redirection and Program Termination 112 10.5. String Pattern Matching 112 10.6. Mathematics 113 10.7. Internet Access 114 10.8. Dates and Times 114 10.9. Data Compression 115 10.10. Performance Measurement 115 10.11. Quality Control 116 10.12. Batteries Included 117 11. Brief Tour of the Standard Library — Part II 117 11.1. Output Formatting 118 11.2. Templating 119 11.3. Working with Binary Data Record Layouts 121 11.4. Multi-threading 121 11.5. Logging 122 11.6. Weak References 123 11.7. Tools for Working with Lists 124 11.8. Decimal Floating Point Arithmetic 126 12. Virtual Environments and Packages 127 12.1. Introduction 127 12.2. Creating Virtual Environments 128 12.3. Managing Packages with pip 129 13. What Now? 131 14. Interactive Input Editing and History Substitution 133 14.1. Tab Completion and History Editing 133 14.2. Alternatives to the Interactive Interpreter 133 15. Floating Point Arithmetic: Issues and Limitations 134 15.1. Representation Error 139 16. Appendix 141 16.1. Interactive Mode 141 16.1.1. Error Handling 141 16.1.2. Executable Python Scripts 142 16.1.3. The Interactive Startup File 142 16.1.4. The Customization Modules 143
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页