MIPI学习记录——(1)CSI-2数据流模型

博客系列

MIPI学习记录——(1)CSI-2数据流模型
MIPI学习记录——(2)CCI数据流模型
MIPI学习记录——(3)mipi状态机
MIPI学习记录——(4)mipi数据流实现

1.CSI-2框架

CSI,Camera Serial Interface,摄像头串行接口。
根据CSI-2协议,可将CSI划分为五层,如下图所示。
在这里插入图片描述
应用层(Application Layer)
主要描述了上层数据流中的数据编码和解析。CSI-2 规范中规定了像素数据到字节的映射(Mappingof pixel values to bytes)。

组包/打包层(Pixel to Byte Packing Formats)
负责将数据按照一定的次序,切割成8比特数据。

底层协议层(Low Level Protocol Layer)
为新生成的数据加上包头包尾,形成符合协议要求的数据流。

通道管理层(Lane Management Layer)
将生成的数据流按照一定次序和要求,进行读写管理,输出数据流。

物理层(PHYLayer)
定义了传输介质 (electrical conductors,导体),输入/输出电路信号的电气特性(electricalparameters)和时钟机制(时序)。即如何从串行位流(Bit Stream)中获取“0”和“1”信号。规范中的这一部分记录了传输介质的特性,并依据时钟和数据通道之间发信号和产生时钟的关系规定了电学参数。生成 MIPI 最后的信号波形。
采用LSB fisrt,MSB last的传输方式。而对于字节,也是低位先出,高位后出。

2.PHY Layer

2.1 版本介绍

在这里插入图片描述
目前市场上大部分厂商使用的D-PHY版本还是v1.1,甚至是v1.0。
CSI-2协议所关联的D-PHY标准为v1.0版本。

在这里插入图片描述
D-PHY协议最多支持5个Lane(一个时钟Lane,4个数据Lane),最少需要两个Lane(一个时钟Lane,一个数据Lane),即1≤N≤4。
data lane越多,则数据传输速度越快。(80Mbps ~ 1Gbps/Lane )

2.2 电气特性

D- PHY的物理层支持HS(High Speed)和LP(Low Power)两种工作模式。
在这里插入图片描述
通过切换LP-TX、HS-TX的function,来实现HS、LP工作模式的切换。
在这里插入图片描述

High Speed Mode
HS模式下采用低压差分信号,功耗较大,但是可以传输很高的数据速率(数据速率为80M~1Gbps)。

Low Power Mode
LP模式下采用单端信号,数据速率很低(<10Mbps),但是相应的功耗也很低。

两种模式的结合保证了MIPI总线在需要传输大量数据(如图像)时可以高速传输,而在不需要大数据量传输时又能够减少功耗。

2.2.1 HS

用于传输突发数据,同步传输(clock与data同步),信号为差分信号,电平范围为100mv-300mv,传输速度范围是80-1000Mbps。
在该模式下传输时,当正端接收到300m V,负端接收到100m V 时,接收端识别为1。反之则识别为0。
在这里插入图片描述
Clock——DDR源同步时钟
在这里插入图片描述
D-PHY使用的是DDR源同步时钟,即DDR采样,在时钟的上升和下降沿均采集数据,保证高速传输又可以有效降低时钟频率,要求时钟和数据相位为正交关系。

2.2.2LP

用于传输控制指令,异步传输,信号线为单端,电平范围是0-1.2v,没有用时钟线,时钟是通过两个数据线异或而来的,频率为10MHz (max)。

异或
a eor b = (¬a & b) | (a & ¬b)
如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。(不同为1,相同为0)

在该模式下传输时,当接收端收到1.2V 信号,识别为1。收到0V信号时,识别为0。

在这里插入图片描述

在正常操作时,data lane要么在 Control 模式要么在High-speed模式。在进行数据突发传输时,data lane就进入高速数据传输模式,其从 Stop State(LP-11)开始高速数据传输,同样结束高速数据传输后又进入Stop State(LP-11),Stop State是在Control 模式下定义的一个状态。data lane 只有在进行突发数据传输时才进入High-speed 模式,

进入LP模式时序:LP-11->LP-10->LP-00

退出LP模式时序:LP-00->LP-10->LP-11

当系统进入LP模式时,Clock Lane上的差分时钟可以设置为关闭,或者继续运行。(是否关闭clock lane,取决于D-PHY的实现)
在两次HS模式之间,差分时钟信号仍然有效的系统,称之为持续时钟行为(Continuous Clock Behavior)。
而将差分时钟信号切断的系统,则称之为非持续时钟行为(Non-Continuous Clock Behavior)。

3.底层协议(low level protocol)

low level protocol(LLP)是一种面向字节、基于包的协议,它支持使用短包、长包格式

特性
•任意数据传输(有效载荷独立)
•8位字大小
•在同一链路上支持最多4个交错虚拟信道
•用于帧开始、帧结束、行开始和行结束信息的特殊数据包
•描述符的类型,像素深度和格式的应用程序特定负载数据
•用于错误检测的16位校验码

一个有效数据负载的长包,传输一帧图像数据的一行数据。
例如,需要传输一张WH pixel的图片,则需要H个长包。(W:宽 H:高)
每一个长包可以用来做行同步,每一帧图像也需要同步。即需要有字节标识,帧头和帧尾。
在这里插入图片描述
在W
2 < 65536的情况下(即W < 32768),行数N=图像数据的高H。
通常一个pixel,用2个byte表示,即16 bit。

3.1 数据包模型

在这里插入图片描述
LPS – Low Power State ,低功耗状态
PH – Packet Header,包头
ST – Start of Transmission ,开始传输包标志
PF – Packet Footer,包尾
ET – End of Transmission,结束传输包标志
SP – Short Packet,短包
DATA – 有效数据

通常,一个完整的长包数据传输一般包含了ST、PH、DATA、PF、ET。短包传输比较特殊,仅包含ST、PH、ET。
LLP(Low Level Protocol)包有两种:长包和短包。
每个包的传输以ST(start of transmission)开始,ET(end of transmission)结束,中间间隙是LPS(Low Power State低功耗状态)。

3.1.1 LPS

LPS,Low Power State,低功耗状态。
作为两个数据包之间的中间间隙。(line blanking、frame blanking)

在物理线缆上,表现为一串LP(Low Power)时序信号。
LP-11→LP-10→LP-00
该时序信号由硬件自动发出,无需软件参与。(软件可通过配置寄存器调整LPS时序的时长,一版使用默认配置)

3.1.2 ST

ST,Start of transmission,开始传输。用于作为开始一次数据传输过程的标志。
在这里插入图片描述
注意:T-lpx、T-hs_prespare、T-hs_zero可通过寄存器配置。

TX
在发送一个传输数据请求后,data lane 离开stop 状态,通过一个启动数据发送流程(Sot)为进入HS Mode 做准备。

启动高速传输的SOT指令:
LP-11=>LP-01(持续T-lpx时间)=>LP-00=>HS-0[持续T-hs_zero时间]=>发送HS同步序列“00011101”

然后,开始传输有效数据。

RX
初始时处于stop state,即LP-11。
从LP-11过渡到LP-01,在T-d_termen时间后使能链路。
使能HS-RX模块,并等待至少T-hs_settle时间,为了消除LP转换到HS带来的影响。
开始等待序列到来。
一旦识别到“011101”序列后就开始同步。
接收有效数据。

3.1.3ET

ET,End of transmission,结束传输。用于作为结束一次数据传输过程的标志。
在这里插入图片描述
TX
发送完有效数据后,在最后一个有效负载数据位之后立即切换到差异状态,并将该状态保持一段时间T-hs_trail。
关闭HS-TX模块,使能LP-TX模块,并且维持停止状态(LP-11)持续一段时间T-hs_exit。

RX
接收完有效数据后,检测到lane上从退出LP-00状态到进入LP-11状态,关闭终端。
忽略最后一个周期T-hs_skip的bit来规避转换带来的影响。
检测有效数据中的最后一个转换,确定最后一个有效数据字节并跳过预告序列。

3.2 PH
3.2.1 数据标志(DI)

DI:Data Identifier,数据标识符。
Size:1byte,含虚拟数据通道[7:6]和数据类型[5:0]。

3.2.1.1 虚拟通道(VC)

VC,Virtual Channel Identifier,虚拟通道标志符。
在这里插入图片描述
虚拟通道标识符的目的是为交错在数据流中的不同数据流提供单独的通道。
虚拟通道标识符号位于数据标识符字节的前两位。接收端将监视虚拟通道标识符,并将交错视频流解复用到其适当的通道。最多支持4个数据流;有效的通道标识符为0到3。外围设备中的虚拟通道标识符应该是可编程的,以允许主处理器控制如何将数据流解复用。

注意:这里所说的4种数据流,指的是有效传输数据流,与DT并不一一对应。(一个VC不是只对应一种DT)
虚拟通道区别于物理通道。

3.2.1.2数据包类型(DT)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2.2 WC

Size:2 byte。
Word Count(WC):有效传送数据的长度,单位为byte。
字节计数,定义了数据有效载荷中包头结束和包脚开始之间的8位数据字节的数量。包头和包脚都不应包括在字节数统计中。

3.2.3 ECC

误差校正码(ECC,Error Correction Code):1byte,可以把一个位的错误纠正。纠正的对象为DT和WC。
数据标识符和字计数值的正确解释对数据包结构是至关重要的。包头纠错码字节允许纠正数据标识符和字计数中的单位错误,并检测两位错误。
ECC的第7位和第6位应为零。
接收端应用层应具有基于ECC解码的错误状态。
在这里插入图片描述
数据标识符字段DI[7:0]将映射到ECC输入的D[7:0],字数LS字节(WC[7:0])映射到D[15:8],字数MS字节(WC[15:8])映射到D[23:1]

3.2 DATA

DATA(Packet Data,有效数据)
有效传输数据:0~65535 byte。(2^16)

3.4 PF
3.4.1 Checksum

在这里插入图片描述
数据包尾(2 byte),对有效数据的校验。
为了检测传输中可能出现的错误,对每个数据包计算校验和。校验和实现为16位CRC。
计算多项式为:X16+X12+X^5+ X^0

3.3 短包

短包只是将长包中的WC的位置作为包的数据域,也就是说,短包每次最多只能发两个字节的数据。应当注意的是,短包一般是用来发送同步控制信号的,一般不建议使用短包来发送用户数据。。

3.3.1 帧同步包

FS,frame start short packet,帧开始包。(DT:0x00)
FE,frame end short packet,帧结束包。(DT:0x01)
每个图像帧应以包含帧开始代码的帧开始(FS)包开始。FS包之后应跟随包含图像数据的一个或多个长包和包含同步代码的零或多个短包。每个图像帧末端应包含一个包含帧端代码的帧端(FE)包。

3.3.2 行同步包

LS,line start short packet,行起始短包。(DT:0x02)
LE,line end short packet,行结束短包。(DT:0x03)
对于行起始点(LS)和行结束(LE)同步数据包,短数据包数据字段应包含一个16位的行号。对于给定行的LS和LE包,该行号应相同。行号是逻辑行号,并不一定等于物理行号。
16位的行号,当使用时,必须是非零的,以区别于行号无效并保持为零的情况。

3.4 长包

在这里插入图片描述

包长:6~65541 bytes。(之所以是6~65541,其中的6个byte是指:PH(4byte)+ PE(2byte))

对于YUV、RGB或RAW数据类型,一个长数据包应包含一行图像数据。当数据包在同一虚拟通道内或在同一帧内时,相同数据类型的每个长数据包应具有相同的长度。
对于基于用户定义的字节的数据类型,长数据包可以具有任意长度。数据包之间的间距也可以发生变化
所有数据类型的长数据包中数据的总大小应为8位的倍数。然而,数据类型的有效载荷数据传输格式也可能对有效载荷大小施加额外的约束。为了满足这些约束可能有时需要添加一些“填充”像素数量的负载,如当一个数据包RAW10数据类型包含一个图像像素行的长度不是4的倍数时。这种填充像素的值没有指定。

4.Lane Management Layer

Lane Management Layer,链路管理层。
从概念上讲,在PHY和更高的功能层之间是一个处理多通道配置的层。
目的是为交错在数据流中的不同数据流提供单独的通道。
一个物理data lane可配置4个虚拟通道,即传输4种不同类型的数据流。
在这里插入图片描述

在这里插入图片描述
N个物理data lane最多有4个虚拟通道,每个虚拟通道映射到对应的N个物理通道,多个物理通道配合共同传输一种有效数据类型的数据流。
(FS、FE、LS、LE等短包并不单独占据一个虚拟通道)

4.1 TX

在TX端,该层在N个通道中分配数据包字节序列,其中每个通道都是物理层逻辑和传输电路的独立单元。

在这里插入图片描述

4.2 RX

在RX端,它从N lane收集传入的字节,并将它们合并为完整的数据包,传递给数据包分解程序。
在这里插入图片描述

4.3 传输行为

显然CSI-2每个Data Lane的最小传输内容为一个字节。同时,这会带来一个问题(以2个Data Lane)为例,当所传送字节数为偶数时,Lane1和Lane2可以同时结束,当所传送的字节数为奇数时,Lane1和Lane2将不再是同时结束了!
在这里插入图片描述
不管是何种情况(Lane的配置方式),每个Lane都同时开始SoT,并开始发送第一个字节,但是每个Lane的结束时间可能会相差一个字节的传输时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值