目录篇地址:http://blog./justlxy/p/5100052503 MIPI CSI-2的Low Level Protocol主要有一下特征:
CSI-2的Data Lane的Low Level Protocol数据包的一般形式为: 如上图所示,也就是说,CSI-2的数据包有两种:长包和短包。无论是长包还是短包,包的开头都是SoT(Start of Transmission),包的结尾都是EoT(End of Transmission)。此外,长包的SoT之后还有包头(PH,Packet Header),EoT之前还有包尾PF(Packet Footer)。在两次HS传输过程之间,插入的是LP状态(一般是LP11等Control状态,当然也可以进入Escape状态进行LPDT或者进入UPLS)。 一个长包的基本结构如下图所示:
其中,ECC采用的是Hamming Code的方式,可以纠正PH(包头)中一位的错误或者发现两位的错误,具体可以看一下我之前转发的博文:http://blog./justlxy/p/5100052453 而CHECKSUM采用的则是CCITT的16-bit的CRC校检,即x^16+x^12+x^5+x^0。CRC只能检测数传输发生的一个或者多个错误,但是并不能纠正错误。具体可以参考这篇文章:http://blog./justlxy/p/5100052477 需要注意的是,无论是WC,还是PACKET DATA,或者CHECKSUM,都是先发低字节(LSB),再发高字节(MSB)!!!!对于一个具体的字节来说,也是先发低位,再发高位,如下图: 短包的结构比较简单,具体如下图所示: 短包只是将长包中的WC的位置作为包的数据域,也就是说,短包每次最多只能发两个字节的数据。和长包一致,同样需要先发LSB,再发MSB。应当注意的是,短包一般是用来发送同步控制信号的,一般不建议使用短包来发送用户数据(当然你可以这样做)。 同步信号的类型如下: 而当Data Type为0x08到0x0F时,则为Generic Short Packet Code,即可发送用户自定义数据。 其中,DI的高两位表示虚拟通道号,低六位表示Data Type,如下图所示: 虚拟通道(VC,Virtual Channel)技术使得CSI-2可以在同一个Lane发送不同类型的数据,然后在接收端在进行恢复,如下图所示: 举例如下: 前面说到过,短包用来发同步控制信号,长包用来发数据,比如下面的例子,短包发帧同步信号,长包发数据: |
|
来自: dwlinux_gs > 《MIPI扫盲》