MIPI-CSI-2协议

  • 整体结构

CSI-2为发送者和接收者数据传输和控制提供了规范,从物理上看包含了控制部分和数据传输部分。发送者作为从设备而接收者作为主设备。协议包含了三个层次:物理层、协议层和应用层。其作用为:

  1. 物理层:定义了物理链路的连接方式。
  2. 协议层:又分为三层(像素打包解包格式,低水平协议,链路管理),主要关于图像数据打包方式,以及处理多通路图像数据的方式等。
  3. 应用层:协议的最上层,和图像数据编解码等处理相关。

  • 控制端(CCI)

控制端有2根双向线连接,兼容I2C,可以支持400KHz的数据传输。其读写都遵循I2C协议。包括单数据读写以及连续数据读写。最大支持16bit寄存器寻址,能够支持8bit,16bit,32bit,64bit数据宽度。寄存器数据发送顺序是由高到低。

  • 物理层

物理层可以支持1到4条差分数据链路,以及一条时钟差分通路。为了适配不同链路数量的传输,其可以实现数据的多路转换。比如物理层有4路,而更上一层只有一个通路,那么由上层过来的数据可以被间隔的分配到每个物理通路上。

  • 低水平协议(low level protocol)

低水平协议层定义了两种报文结构:长报文和短报文。两种报文都有开始和结束标志,之间是有效信息,之外是低能状态。

4.1 长报文

长报文包含报文头(数据类型ID、数据数量、ECC校验位),数据和16bit的checksum。数据数量是按照字节计算,最大可以到216-1个数据。ECC校验可以纠正1bit数据错误以及检测2bit数据错误。其中的有效图像数据长度可以任意,报文之间间隔距离也任意。对于YUV,RGB,RAW格式的数据,一个长报文中应该含有1行图像数据。对于在同一个通道内的同一帧数据中,每个长报文包含的数据应该相同。

4.2 短报文

短报文包含数据少,其没有checksum,报文头中的数据类型是从0x00-0x0F。短报文用于帧同步和行场同步,其数据区用于记录帧号和行号。记录帧号和行号的数据为16bit,不能为0。对于相同的虚拟通道中编码每次增加1。如果编号为0,表示帧和行编码没有使用。每次开始一帧,需要将行号复位到一个初始值。短报文的帧和行场用于同步有效图像数据。

 

4.3 数据标识(DI)

高2bit用于虚拟通道,低6bit是数据类型。虚拟通道支持4个,其和物理上支持的4个数据链路没有对应关系,虚拟通道可以方便不同通道处理不同类型的数据。数据类型可以支持64种,包括长短报文数据类型,图像数据类型,以及用户自定义类型。

4.4 ECC校验

由于报文头信息包含了重要的信息,所以使用了ECC校验可以用于纠正1bit错误,以及检测2bit错误,保证报文信息的正确率。ECC校验采用Hamming编码方式。汉明码的实现原则是在原来的数据插入k位数据作为校验位,把原来的N为数据变为m(m = n +k)位编码。其中编码时要满足以下原则:

Hamming码编码规则如下:

在新的编码的2^(k - 1)( k >= 0)位上填入0(即校验位),把新的编码的其余位把源码按原顺序填入。

校验位的编码方式为:第k位校验码从则从新的编码的第2^(k - 1)位开始,每计算2^(k - 1)位的异或,跳2^(k - 1)位,再计算下一组2^(k - 1)位的异或,填入2^(k - 1)位,比如:
(1)第1位校验码位于新的编码的第1位(2 ^(1-1) == 1)(汉明码从1位开始),计算1,3,5,7,9,11,13,15,...位的异或,填入新的编码的第1位。
(2)第2位校验码位于新的编码的第2位(2 ^(2-1) == 2),计算2,3,6,7,10,11,14,15,...位的异或,填入新的编码的第2位。

数据检测是通过一个校验矩阵H来完成的,S=HP,P是接收到的数据,S被称作syndrome,其对应着数据中出错的位置。编码数据是通过生成矩阵G来产生的,即P=aG。
报文中使用了Hamming-modified编码((72, 64))中的(30,24),而为了能同时纠正1bit错误和检测2bit错误,又额外增加了1bit校验位。Syndrome和数据出错位置的关系是:

表是(72,64)编码,报文中仅仅使用了前24个实际数据,为(30,24)编码格式。

4.5 checksum

用于检测数据中的错误,采用CRC校验方式,校验多项式为x16+x12+x5+1。即将所有数据表示成一个多项式,比如10001可以表示为x4+1,然后乘以x16,再除以检验多项式,得到余数,这样余数就成为了校验位。

4.6 帧格式

只要保证有效数据具有报文结构就行,非有效数据可以包含报文也可以不包含。

4.7 数据交叉

数据交叉时可以通过数据类型(DI)或者虚拟通道来进行区分。只要不同的数据位于不同的数据类型区或者虚拟通道中,接受者就可以从交叉的数据中提取出来。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 9
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值