MIPI协议DSI分析
本文主要从四个方面来介绍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分析相关推荐
- mipi协议csi和dsi
MIPI是一个比较新的标准,其规范也在不断修改和改进,目前比较成熟的接口应用有DSI(显示接口)和CSI(摄像头接口).CSI/DSI分别是指其承载的是针对Camera或Display应用,都有复杂的 ...
- 液晶接口系列——MIPI之DSI时钟的计算和常见概念区分
文章目录 总述 时钟计算 液晶基础时钟概念 DSI时钟计算 DSI的"模式"概念区分 液晶屏的模式 COMMAND模式和VIDEO模式 VIDEO屏的三种模式 数据传输HS MOD ...
- MIPI信号的分析--结合示波器实际测试波形
如果排查的思路对你有帮助,请记住 消雨匆匆 . 码字和排查很累,仅此而已 ,硬件不是抄电路,拿烙铁,懂点软件,细致分析,找问题和破案搜集线索是一样的. PS:硬件知识也可以性感 部分内容来自于此博客的 ...
- mipi协议_MIPI物理层一致性测试:D-PHY一致性测试
MIPI的物理层有D-PHY.C-PHY.M-PHY. 接下来我们来看D-PHY的基础知识. 手机的显示.摄像的数据都依赖于MIPI进行传输 D-PHY的最初版本的设计目标是500Mbits/s,而D ...
- LCD之MIPI协议的一些说明
MIPI:LCD液晶屏的MIPI接口是Mobile Industry Processor Interface的缩写.MIPI(移动行业处理器接口)是MIPI联盟发起的为移动应用处理器制定的开放标准.M ...
- Linux内核网络数据包发送(三)——IP协议层分析
Linux内核网络数据包发送(三)--IP协议层分析 1. 前言 2. `ip_send_skb` 3. `ip_local_out` and `__ip_local_out` 3.1 netfilt ...
- Linux内核网络数据包发送(二)——UDP协议层分析
Linux内核网络数据包发送(二)--UDP协议层分析 1. 前言 2. `udp_sendmsg` 2.1 UDP corking 2.2 获取目的 IP 地址和端口 2.3 Socket 发送:b ...
- HTTPS协议原理分析
HTTPS协议原理分析 HTTPS协议需要解决的问题 HTTPS作为安全协议而诞生,那么就不得不面对以下两大安全问题: 身份验证 确保通信双方身份的真实性.直白一些,A希望与B通信,A如何确认B的身份 ...
- UDT协议实现分析——连接的建立
UDT Server在执行UDT::listen()之后,就可以接受其它节点的连接请求了.这里我们研究一下UDT连接建立的过程. 连接的发起 来看连接的发起方.如前面我们看到的那样,UDT Clien ...
最新文章
- jqgrid 让隐藏的列在编辑状态时出现且可编辑
- stl set求交集 并集 差集
- TensorFlow patch块划分(transpose and reshape)
- VS2012 发布网站步骤
- linux下chkConfig的用法,mysqld开机自启动
- 数据结构算法题整理5
- spring aop 切面执行顺序和常见问题
- 大数据---Hadoop的各种版本
- 一篇文带你零基础玩转mysql触发器 | 超级干货,建议收藏
- 【无标题】对于_, predicted = torch.max(outputs.data, 1)的理解
- 8、实战项目-性能优化实战
- OPPO Pad 2 参数 OPPOPad 2评测怎么样
- ZYNQ C++ 访问PL物理地址
- NOIP2016(bao)游(zha)记
- 剑指offer算法题,输入一个链表,反转链表后,输出新链表的表头。
- 蔚来汽车提前批智能座舱C++开发笔试复盘
- Scala 的安装教程
- OSChina 周二乱弹 —— 以后我偷小鱼干养你
- 滴滴出行,能否引入大数据风控技术保障乘客安全?
- 【tk制作一个登陆界面】
热门文章
- 华为鸿蒙os系统转正,华为鸿蒙OS系统即将转正!谷歌也霸气官宣:将放弃安卓启用新系统...
- 滚动截屏苹果_苹果为iPhone添加了“秘密”按钮,你学会使用了吗?
- iOS 判断屏幕是否锁屏
- 闺蜜测试卷软件,2020闺蜜测试卷-抖音2020闺蜜测试卷官方版预约 v1.0-优盘手机站...
- 南方都市报评论:我们为什么一定要学外语?
- JAVA初级工程师面试36问(完结)
- 计算机英语总结250字,英语的作文250字
- WordPress 网站设置发表评论,取消电子邮件,只需输入评论者名称的方法
- 笔记本电脑上部署TensorFlow-gpu-2.1.0(Win10_x64,16G RAM,GeForce GTX 960M(2G),Anaconda3.4.2,Python3.6)
- 自做贪吃蛇游戏的android实现