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

转载于:https://www.cnblogs.com/zzb-Dream-90Time/p/6413333.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值