本文主要从四个方面来介绍MIPI DSI协议

        1、MIPI协议简介、DSI简介

        2、DSI协议的D-PHY(物理层)简介

        3、DSI协议的DSI(传输接口层)简介

        4、DSI协议的DCS(DisplayCommandSet)(指令集)简介

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

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

常用的两个标准为csi(camera)与dsi(diaplay),这里主要介绍dsi标准(被用于智能设备LCD上)

MIPI联盟的MIPI DSI规范简介(按照下图DSI的功能分为三层)

• DCS:DCS是一个标准化的命令集,用于命令模式的显示模组。

• DSI :定义了一个位于处理器和显示模组之间的高速串行接口。

• D-PHY:提供DSI和CSI的物理层定义

2、DSI物理分层结构

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

D-PHY层

D-PHY描述了同步,高速,低功耗,低成本的物理层。主从双方的传送/接收速率可以是不对称的,不对称设计显著降低了链路的复杂性。

在D-PHY提供主机和从机之间的同步连接。D-PHY配置由一组时钟lane和一组或多组数据lane组成。时钟信号是单向的。数据信号是单向或双向取决于所选择的模式。

对D-PHY的分析分为两部分——物理分析、功能分析

1、D-PHY物理分析

左半部分为输入通道,包括clock、data和ctrl信号,通过logic转换到右边输出相应的配置。

右半部分为输出通道,包括HS功能, LP功能,LP-CD检测

HS用于高速传输/接收数据

LP用于低功耗传输/接收数据

LP-CD为低功耗竞争检测器,当传输状态改变时进行检测(用于双向数据的传输)

下图为D-PHY与上层控制器的连接图:

外部时钟单元提供了clock,PHY-Adapter进行适配控制(对每个lane通道进行配置)

2、D-PHY功能分析

主要有两种通信方式:双向通信(发送指令并接收)、单向通信(发送数据)

包括三种工作状态模式  High-Speed模式、Turnaround request模式、Low-Power Escape模式

High-Speed——高速数据传输模式

Turnaround request——控制模式

Low-Power Escape——提供escape状态,可以进入LPDT(低功耗数据传输), ULPS(超低功耗模式,不传输), reset-Trigger这三种状态

低功耗(Low-Power)信号模式(用于控制):10MHz (max)

高速(High-Speed)信号模式(用于高速数据传输):80Mbps ~ 1Gbps/Lane

LP :0-1.2V

HS:100-300mV (一般为200mV)

Escape mode是数据Lane在LP状态下的一种特殊操作,通过这种状态进入LPDT, ULPS, reset-Trigger这三种状态

High-Speedmode request  LP-11--->LP01--->LP00--->SOT码(11100001)

Turnaround request             LP-11--->LP10--->LP00---> LP10---> LP00(传输过程)      LP-00--->LP10--->LP11(接收过程)

Escapemode request          LP-11--->LP10--->LP00---> LP01---> LP00--->SOT码(根据SOT码的不同进入不同的模式)

具体的各种转换状态如下图:

完整的D-PHY层配置,配置如下:
•单个或多个数据lane通道
•双向或单向数据传输

•接收数据支持的类型(一般只有第一个lane0可以接收数据)

•是否支持escape模式
•数据传输——8位原始数据(默认)/使用8b9b编码的符号

                          DSI(协议层)简介

DSI指定了一个主处理器和外围器件(LCD)的接口。它基于DPI,DBI和DCS标准规定了像素格式和指令集。

下图显示了一个简化的DSI接口。一个DSI兼容DBI和DPI标准接口。它发送像素或命令到外设,并可以读回状态或像素信息

DSI传输有command和 Video两种模式

Command模式主要发送命令和数据到外围(双向传输),用于与外设双向通信

Video模式是指以实时象素流的形式把数据从主处理器传输到外设,是单方向的传输。Vedio在D-PHY使用的是HS传输模式

DSI如果有多个lane通道,在command模式,数据lane 0应是双向的;其他的数据lane应是单向的,在vedio模式,数据lane0可以是双向或单向的;其他的数据通道必须是单向的。Master低功率传输仅采用lane0,外设接收在数据lane0只能使用低功耗模式。由于HS传输是任意数量,不是lane通道个数的整数倍,发送EOT一个周期(字节)补齐。(注意:每一组lane传输结束都需要EOT),效果如下图

DSI初始化状态,如图:

主设备上电需要一段时间(T-POR),然后保持LP-11(TX-Stop state),然后主设备初始化(T-INIT_SLAVE),然后有一段从设备初始化时间(T-INTERNAL_DELAY)。在主从设备初始化期间,D-PHY应该一直保持LP-11状态。因此初始化时间(INTER_MASTER)应该大于主/从设备初始化时间之和。

当DSI设置为多个数据lane时,传输过程大致如下(图为4个数据lane的情况):

DSI的传输可以为分隔传输和统一传输,下面是DSI传输的过程:

短包(4 bytes长度)——命令设置或参数配置或同步信号传输,组成如下

标识(DI)- 1个字节、帧数据- 2个字节、错误检测(ECC)1个字节

长包——长包用2个字节定义数据长度,最多传输数据为65535,组成如下

帧头部(4个字节):

标识(DI) 1个字节(数据传输类型与lane通道个数)

数据计数- 2个字节

错误检测(ECC) 1个字节

帧数据   0-65525不定数据

帧尾:校验和(2个字节)

因此长包长度为——帧头(4)+数据(0-65535)+帧尾(2) =6-65541个字节

数据标识(DI)是由8个字节组成,高两个bit定义了数据lane个数,后六个bit定义了执行类型(见附录1)

DCS(DisplayCommandSet)(指令集)简介

DCS支持以下的几种外设状态:

在正常模式下,显示模块显示全部的图像数据。

在局部模式下,显示模块显示部分的图像数据

在待机模式下,显示模块使用有限数量的颜色显示图像。

在睡眠模式下,显示模块不显示任何图像数据。显示接口将保持供电,维持在帧存储器和寄存器中的数据。其余的功能块被置于低功率模式。

其他:Gamma曲线:Gamma灰度校正补偿

DCS命令设置:DCS分为两个功能区:用户命令集和制造商命令集。每个命令是00h至AFH的8位码

所有的操作都由DCS指令集来实现(见附录2)

附录1

Data Type,hex       DataType,binary    Description                Packet Size

0x01                           000001              SyncEvent, V Sync Start          Short

0x11                           010001              SyncEvent, V Sync End       Short

0x21                          100001                    SyncEvent, H Sync Start        Short

0x31                          110001                    SyncEvent, H Sync End           Short

0x08                          001000                    Endof Transmission packet (EoTp)  Short

0x02                          000010                    ColorMode (CM) Off Command  Short

0x12                          010010                    ColorMode (CM) On Command  Short

0x22                          100010                    ShutDown Peripheral Command  Short

0x32                          110010                    TurnOn Peripheral Command  Short

0x03                          000011                    GenericShort WRITE, no parameters  Short

0x13                          010011                    GenericShort WRITE, 1 parameter  Short

0x23                          100011                    GenericShort WRITE, 2 parameters  Short

0x04                          000100                    GenericREAD, no parameters  Short

0x14                          010100                    GenericREAD, 1 parameter  Short

0x24                          100100                    GenericREAD, 2 parameters  Short

0x05                          000101                    DCSShort WRITE, no parameters  Short

0x15                          010101                    DCSShort WRITE, 1 parameter  Short

0x06                          000110                    DCSREAD, no parameters  Short

0x37                          110111                    SetMaximum Return Packet Size  Short

0x09                          001001                    NullPacket, no data  Long

0x19                          011001                    BlankingPacket, no data  Long

0x29                          101001                    GenericLong Write  Long

0x39                          111001                    DCSLong Write/write_LUT Command Packet  Long

0x0C                         001100          LooselyPacked Pixel Stream, 20-bit YCbCr, 4:2:2 Format Long

0x1C                         011100          PackedPixel Stream, 24-bit YCbCr, 4:2:2 Format Long

0x2C                         101100          PackedPixel Stream, 16-bit YCbCr, 4:2:2 Format Long

0x0D                         001101                    PackedPixel Stream, 30-bit RGB, 10-10-10 Format Long

0x1D                         011101                    PackedPixel Stream, 36-bit RGB, 12-12-12 Format Long

0x3D                         111101                    PackedPixel Stream, 12-bit YCbCr, 4:2:0 Format Long

0x0E                          001110                    PackedPixel Stream, 16-bit RGB, 5-6-5 Format Long

0x1E                          011110                    PackedPixel Stream, 18-bit RGB, 6-6-6 Format Long

0x2E                          101110          LooselyPacked Pixel Stream, 18-bit RGB, 6-6-6 Format Long

0x3E                          111110          PackedPixel Stream, 24-bit RGB, 8-8-8 Format Long

附录2

Command                  Hex Code         Description

enter_idle_mode         39h                  降低颜色深度

enter_invert_mode       21h                  图像色彩被反转

enter_normal_mode    13h                 显示全部的图片

enter_partial_mode      12h                  显示部分图片

enter_sleep_mode        10h                  不显示休眠

exit_idle_mode               38h

exit_invert_mode           20h

exit_sleep_mode           11h

get_address_mode       0Bh                  Get命令(获取数据)

get_blue_channel          08h                  Get blue组成<像素 (0, 0)>

get_diagnostic_result   0Fh                   Get外围设备检测结果

get_display_mode         0Dh                  Get当前显示模式

get_green_channel       07h                  Get green组成<像素 (0, 0)>

get_pixel_format             0Ch                  Get当前像素模式(调色板模式)

get_power_mode          0Ah                  Get power模式

get_red_channel           06h                    Get red组成<像素 (0, 0)>

get_scanline                    45h                  Get the current scanline.

get_signal_mode           0Eh                  Get显示模式

nop                                     00h                  NoOperation

read_DDB_continue      A8h                   从提供的位置读DDB信息

read_DDB_start              A1h                    从开始位置读DDB信息

read_memory_continue 3Eh                   从外设读取图像数据(指定位置)

read_memory_start      2Eh                  从外设读取图像数据(开始)

set_address_mode        36h                  Set指令

set_column_address     2Ah                   Set行范围

set_display_off               28h                  不显示关闭

set_display_on                29h                  显示

set_gamma_curve          26h            设置 gamma曲线参数

set_page_address         2Bh                 Set页范围

set_partial_columns       31h                  Set局部行和列

set_partial_rows               30h

set_pixel_format               3Ah                  Set像素格式

soft_reset                         01h                  SoftwareReset

MIPI协议DSI分析相关推荐

  1. mipi协议csi和dsi

    MIPI是一个比较新的标准,其规范也在不断修改和改进,目前比较成熟的接口应用有DSI(显示接口)和CSI(摄像头接口).CSI/DSI分别是指其承载的是针对Camera或Display应用,都有复杂的 ...

  2. 液晶接口系列——MIPI之DSI时钟的计算和常见概念区分

    文章目录 总述 时钟计算 液晶基础时钟概念 DSI时钟计算 DSI的"模式"概念区分 液晶屏的模式 COMMAND模式和VIDEO模式 VIDEO屏的三种模式 数据传输HS MOD ...

  3. MIPI信号的分析--结合示波器实际测试波形

    如果排查的思路对你有帮助,请记住 消雨匆匆 . 码字和排查很累,仅此而已 ,硬件不是抄电路,拿烙铁,懂点软件,细致分析,找问题和破案搜集线索是一样的. PS:硬件知识也可以性感 部分内容来自于此博客的 ...

  4. mipi协议_MIPI物理层一致性测试:D-PHY一致性测试

    MIPI的物理层有D-PHY.C-PHY.M-PHY. 接下来我们来看D-PHY的基础知识. 手机的显示.摄像的数据都依赖于MIPI进行传输 D-PHY的最初版本的设计目标是500Mbits/s,而D ...

  5. LCD之MIPI协议的一些说明

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

  6. Linux内核网络数据包发送(三)——IP协议层分析

    Linux内核网络数据包发送(三)--IP协议层分析 1. 前言 2. `ip_send_skb` 3. `ip_local_out` and `__ip_local_out` 3.1 netfilt ...

  7. Linux内核网络数据包发送(二)——UDP协议层分析

    Linux内核网络数据包发送(二)--UDP协议层分析 1. 前言 2. `udp_sendmsg` 2.1 UDP corking 2.2 获取目的 IP 地址和端口 2.3 Socket 发送:b ...

  8. HTTPS协议原理分析

    HTTPS协议原理分析 HTTPS协议需要解决的问题 HTTPS作为安全协议而诞生,那么就不得不面对以下两大安全问题: 身份验证 确保通信双方身份的真实性.直白一些,A希望与B通信,A如何确认B的身份 ...

  9. UDT协议实现分析——连接的建立

    UDT Server在执行UDT::listen()之后,就可以接受其它节点的连接请求了.这里我们研究一下UDT连接建立的过程. 连接的发起 来看连接的发起方.如前面我们看到的那样,UDT Clien ...

最新文章

  1. jqgrid 让隐藏的列在编辑状态时出现且可编辑
  2. stl set求交集 并集 差集
  3. TensorFlow patch块划分(transpose and reshape)
  4. VS2012 发布网站步骤
  5. linux下chkConfig的用法,mysqld开机自启动
  6. 数据结构算法题整理5
  7. spring aop 切面执行顺序和常见问题
  8. 大数据---Hadoop的各种版本
  9. 一篇文带你零基础玩转mysql触发器 | 超级干货,建议收藏
  10. 【无标题】对于_, predicted = torch.max(outputs.data, 1)的理解
  11. 8、实战项目-性能优化实战
  12. OPPO Pad 2 参数 OPPOPad 2评测怎么样
  13. ZYNQ C++ 访问PL物理地址
  14. NOIP2016(bao)游(zha)记
  15. 剑指offer算法题,输入一个链表,反转链表后,输出新链表的表头。
  16. 蔚来汽车提前批智能座舱C++开发笔试复盘
  17. Scala 的安装教程
  18. OSChina 周二乱弹 —— 以后我偷小鱼干养你
  19. 滴滴出行,能否引入大数据风控技术保障乘客安全?
  20. 【tk制作一个登陆界面】

热门文章

  1. 华为鸿蒙os系统转正,华为鸿蒙OS系统即将转正!谷歌也霸气官宣:将放弃安卓启用新系统...
  2. 滚动截屏苹果_苹果为iPhone添加了“秘密”按钮,你学会使用了吗?
  3. iOS 判断屏幕是否锁屏
  4. 闺蜜测试卷软件,2020闺蜜测试卷-抖音2020闺蜜测试卷官方版预约 v1.0-优盘手机站...
  5. 南方都市报评论:我们为什么一定要学外语?
  6. JAVA初级工程师面试36问(完结)
  7. 计算机英语总结250字,英语的作文250字
  8. WordPress 网站设置发表评论,取消电子邮件,只需输入评论者名称的方法
  9. 笔记本电脑上部署TensorFlow-gpu-2.1.0(Win10_x64,16G RAM,GeForce GTX 960M(2G),Anaconda3.4.2,Python3.6)
  10. 自做贪吃蛇游戏的android实现