MIPI DSI协议学习【转】
本文转载自:http://www.voidcn.com/blog/LoongEmbedded/article/p-6109759.html
1. MIPI DSI
DSI:displayserial interface,显示串行接口。一个时钟lane,一个或多个数据lane
DSI分层结构:
图1
2. MIPI DSI协议介绍的数据包格式
分为短包和长包,短包4个字节,长包6~65541个字节,不管短包还是长包,DI(data identifer数据标识符)都是第1个字节。
2.1 长包格式
图2
长包由几部分组成
(1) 一个32位的包头(PH:packet Header)
由一个8位的DI、一个16位的字数(WC:word count)和一个8位的ECC。其中DI由数据的VC(virtualchannel)和具体应用的负荷数据DT(data type数据累类型)组成。WC指定datapayload中在包头和包尾之间的字节数,不包括包头也不包含包尾。ECC(错误校验码Error Correction Code)可以校验包头中DI与WC一个位错误的情况和可以发现2位错位的情况。
在包头的结尾,接收器接着读取data payload block中data payload(WC个字节数的数据)。
(2) an application-specific datapayload with a variable number of bytes一个字节数可变的,且与具体应用工相关的数据负
(3) 一个16位的包尾(packet footer)
包脚只有一个16位的校验和(checksum)
接收器读了Data Payload后,会接着读取在包尾中的Checksum。Checksum
由主处理器(host processor)计算和传输。需要注意的是如果Data Payload为0字节,那么计算出来的Checksum为0xFFFF,如果不计算Checksum,那么包尾由0x0000(2个字节)组成。
2.2 短包格式
图3
短包由3部分组成:
(1) 一个8位的Data ID
(2) 两个(命令或是数据)字节
(3) 一个8位的ECC
没有包尾,短包固定是4个字节长度。
2.3 共同的包元素
2.3.1 数据标识符字节(data identifierbyte)
任何包的第1个字节是DI字节,它由VC和DT组成,如下图:
图4
(1) VC对应DI[7:6]
VC指定虚拟数据通道,最多表示4个。一个处理器最大可为4个外设(这里指显示屏IC)服务,使用VC,可定位到不同的外设。虽然这个MIPI DSI协议允许和多个外设通讯,但此协议只能用于一个主处理器到一个外设的通讯。
(2) DT对应DI[5:0]
指定数据类型,比如0x06,是指DCS READ, no parameters。指定这个包是长包还是短包和包格式,DT结合WC高通接受器这是个多少字节的长包。这是必要的,因为没有具体包开始和结束的同步码来指示包的开始和结束,这允许包传输任意数据,但还是需要包头来显示指定包的长度。
当接收逻辑倒计时到包尾时,接收器假设下个数据是一个新包的包头或是传输结束。
(3) 指定数据类型
2.3.2 ECC(Error Correction code)
ECC可以校验包头中DI与WC一个位错误的情况和可以发现2位错位的情况,主处理器负责计算和传输一个ECC字节,外设支持正向和方向通讯的ECC。
(1) ECC的规则
图5
第一个24数据位D0~D23包含了完整的DSI包头,所以校验位计算可优化为:
图6
(2) 发送器的ECC产生
图7
(3) 接收器的ECC产生
图8
2.3.3
2.4 长包Payload的checksum产生
长包的包头由一个字节的ECC保护,为了检测长包传输的错误,checksum基于数据包的payload部分来计算,需要注意,一个零字节长度payload的长包,其checksuam为0xFFFF。
Checksuam只能指示payload一个或多个错误的出现,不像ECC,checksum不能修复错误。所以,checksum计算对单方向的DSI实现没有作用,因为外设没办法报告错误给主处理器。
主处理器强制产生和发送checksum
(1) Checksum的发送
图9
(2) Checksum的产生
图10
(3) Checksum产生的例子
图11
图12
MIPI DSI协议学习【转】的更多相关文章
- MIPI DSI协议介绍
此文根据网上的资料翻译和整理而来 一.MIPI MIPI(移动行业处理器接口)是Mobile Industry Processor Interface的缩写.MIPI(移动行业处理器接口)是MIPI联 ...
- LCD之mipi DSI接口驱动调试流程【转】
转自:http://blog.csdn.net/liwei16611/article/details/68146912 1.LCD MIPI DSI协议 MIPI-DSI是一种应用于显示技术的串行接口 ...
- MIPI协议学习总结(一)【转】
转自:https://www.cnblogs.com/EaIE099/p/5200341.html 一.MIPI 简介: MIPI(移动行业处理器接口)是Mobile Industry Process ...
- MIPI协议学习总结(一)
一.MIPI 简介: MIPI(移动行业处理器接口)是Mobile Industry Processor Interface的缩写.MIPI是MIPI联盟发起的为移动应用处理器制定的开放标准. 已经完 ...
- MIPI DSI之DBI DPI含义和区别(3-1)
一.MIPI MIPI(Mobile Industry Processor Interface/移动工业处理器接口)是2003年由ARM.Nokia.ST 等公司成立联盟并为移动应用处理器制定的一个开 ...
- TCP/IP协议学习(五) 基于C# Socket的C/S模型
TCP/IP协议作为现代网络通讯的基石,内容包罗万象,直接去理解理论是比较困难的:然而通过实践先理解网络通讯的理解,在反过来理解学习TCP/IP协议栈就相对简单很多.C#通过提供的Socket API ...
- http协议学习系列
深入理解HTTP协议(转) http://www.blogjava.net/zjusuyong/articles/304788.html http协议学习系列 1. 基础概念篇 1.1 介绍 H ...
- MIPI DSI 和 D-PHY 初始化序列
MIPI DSI 和 D-PHY 初始化序列 -- 深圳 南山平山村 曾剑锋 参考文档: i.MX 6Dual/6Quad Multimedia Applications Processor Refe ...
- BGP协议学习总结
BGP学习总结 BGP是目前使用的唯一的自治系统间的路由协议,它是一种矢量路由协议,基于TCP的179号端口,它采用单播增量更新的方式更新路由,与其他的路由协议不同的是,BGP只要TCP可达,就可以建 ...
随机推荐
- WPF绑定Binding及模式
绑定,就是把一个对象属性的值绑定在别的对象的属性上 1. 默认绑定 public class Company { public string Name { get; set; } } XAML代码 1 ...
- Windows下使用Visual Studio 2010 编译ffmpeg全过程
(注意:请务必先阅读:七,后记补充:) ffmpeg是一个开源的多媒体库,使用非常广泛. 在linux下编译ffmpeg非常简单,而在windows下编译就不是那么容易了.一般在windows下使用M ...
- JavaScript 初步认识
首先呢 要成为WEB全栈工程师呢 JavaScript 是必须要会的 高级技术看自身兴趣爱好,但是基础必须掌握 因为有良好的基础学习jQuery会比较轻松. js是一门轻量的脚本语言 我学它主要目的是 ...
- eclipse4.2+安装modelgoon插件,该插件支持在eclipse直接依据java文件生产类图
安装条件: 1. 确保JDK环境OK 2.该插件安装是基于eclipse kepler(4.2) (并非表示其它版本号不能安装,仅仅是博主仅仅在4.2版本号上測试了.预计4.3版本号还是支持的,可是3 ...
- 【BZOJ2298】[HAOI2011]problem a DP
[BZOJ2298][HAOI2011]problem a Description 一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低.”问最少有几个人没有说真话(可能有相 ...
- 【BZOJ1731】[Usaco2005 dec]Layout 排队布局 差分约束
[BZOJ1731][Usaco2005 dec]Layout 排队布局 Description Like everyone else, cows like to stand close to the ...
- 《从零开始学Swift》学习笔记(Day 9)——离开表达式你试试!
原创文章,欢迎转载.转载请注明:关东升的博客 表达式啊是很重要地. 在Swift中,表达式有3种形式. 不指定数据类型 var a1 = 10 指定数据类型 var a1:Int = 10 使用分号 ...
- 华盟网公开课 office 宏 主讲Alex
powershell github: veil-evasion macroshop unicorn https://github.com/trustedsec/unicorn metasploit ...
- JLable设置复制粘贴
final JLabel keyLable = new JLabel(key); keyLable.addMouseListener(new MouseAdapter() { @Override pu ...
- Python3 面向对象(1)
面向.概述 面向过程: 根据业务逻辑从上到下写垒代码面向过程的设计的核心是过程,过程即解决问题的步骤, 面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西 优点: 极大降低了程序的 ...