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可达,就可以建 ...
随机推荐
- 从外部访问 Template (模板)的控件、获取它的属性值
DataTemplate 和 ControlTemplate 两个类均派生自 FrameWorkTemplate类.这个类有个 FindName方法 供我们查询内部控件. ControlTempla ...
- SpringAOP和AspectJ
SpringAOP和AspectJ的关系 问题:之前对 SpringAOP和AspectJ的关系感到疑惑,因为曾经在书上看过SpringAOP集成了AspectJ,那么SpringAOP是直接使用了A ...
- Android 百度语音合成集成
一.环境配置: 下载资料:http://ai.baidu.com/sdk 官方视频讲解:http://ai.baidu.com/support/video 接入指南:http://ai.baidu.c ...
- shell编程实战总结
最近复习一下shell,顺便高级进阶一下,之前写脚本能简单尽量简单来,发现好多高深的东西还是没有理解,因此在这里记录一下整个过程并做相应的总结. 通过上代码的方式来介绍,后续可能会调整相应的排版 1. ...
- FastExcel遇到的问题
第一次使用FastExcel发现在创建excel文件的时候不成功,一直报这个问题: org.apache.poi.EmptyFileException: The supplied file was e ...
- 项目中调用ExcelCom组件时的配置流程
异常提示如下: Microsoft Office Excel 不能访问文件“*.xls”. 可能的原因有: 1 文件名称或路径不存在. 2 文件正被其他程序使 ...
- pycharm 调试django 服务端断点调试
django runserver 服务端断电调试 D:\model\gitlab\eebo.ehr.analysis\venv\Scripts\python.exe "C:\Program ...
- 任务04——对四则运算小程序的进一步改进,并学习 Git 中 Branch 的用法
https://github.com/jinxiaohang/Operation/tree/test01 对于任务2的代码进行优化修改感觉很麻烦,所以直接选择重写代码完成任务四, 任务四很早就发布了, ...
- 如何将大数据保存到 MySql 数据库
1. 什么是大数据 1. 所谓大数据, 就是大的字节数据,或大的字符数据. 2. 标准 SQL 中提供了如下类型来保存大数据类型: 字节数据类型: tinyblob(256B), blob(64K), ...
- MySQL中InnoDB脏页刷新机制Checkpoint
我们知道InnoDB采用Write Ahead Log策略来防止宕机数据丢失,即事务提交时,先写重做日志,再修改内存数据页,这样就产生了脏页.既然有重做日志保证数据持久性,查询时也可以直接从缓冲池页中 ...