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可达,就可以建 ...
随机推荐
- zxing 二维码扫描 配置和使用
本文转载至 http://blog.csdn.net/a6472953/article/details/8796501 二维码扫描使用最多的主要有两个库:zbarSDK 和zxing 关于zbar ...
- JPA概述以及它和Hibernate之间的关系
http://www.cnblogs.com/Kevin-ZhangCG/p/8996491.html 一.JPA概述以及它和Hibernate之间的关系 1.1.Hibernate 概述 JPA J ...
- JavaScript严格模式为何要禁用With语句
看了很多遍JavaScript严格模式,其中有说“禁用With语句”,以前看到这都是骑马观花,一带而过,因为平时就很少用到这个语句,禁不禁用对自己关系都不是很大.今天禁不住想知道为何“严格模式”就容不 ...
- 《从零开始学Swift》学习笔记(Day 20)——函数中参数的传递引用
原创文章,欢迎转载.转载请注明:关东升的博客 参数的传递引用 类是引用类型,其他的数据类型如整型.浮点型.布尔型.字符.字符串.元组.集合.枚举和结构体全部是值类型. 有的时候就是要将一个值类型参数以 ...
- 类与类之间关系,用C#和JavaScript体现
前言 在面向对象中,类之间的关系有六种,分别是: 关联关系(Association) 泛化关系(Generalization) 依赖(Dependency) 聚合(Aggregation) 组合(Co ...
- coursera 《现代操作系统》 -- 第五周 同步机制(2)
分清紧急等待队列与条件等待队列(c 链) 条件等待队列:但是进入管程的这个进程可能由于对资源的操作的过程中发现条件不成熟, 那么它就不能够继续对资源进行相应的操作. 我们以生产者. 消费者为例. 如果 ...
- jQuery方法find()与children()区别
一.find() 1.1 说明 find()方法返回被选元素的后代元素,一路向下直到最后一个后代. 1.2 示例 <div> <p> <span>1</spa ...
- Java你不知道的那些事儿—Java隐藏特性
转载自:http://www.cnblogs.com/lanxuezaipiao/p/3460373.html 每 种语言都很强大,不管你是像我一样的初学者还是有过N年项目经验的大神,总会有你不知道的 ...
- 我的Android进阶之旅------>解决Bug:打开eclipse报错,发现了以元素 'd:skin' 开头的无效内容。此处不应含有子元素。
今天来打开Eclipse 报错了,错误信息如下: [2015-08-01 09:07:43 - Android SDK] Error when loading the SDK: Error: Erro ...
- Android系统移植与调试之------->build.prop文件详细赏析
小知识:什么是build.prop? /system/build.prop 是一个属性文件,在Android系统中.prop文件很重要,记录了系统的设置和改变,类似於/etc中的文件.这个文件是如 ...