zhouzhiping849的个人空间 https://blog.eetop.cn/?164433 [收藏] [复制] [分享] [RSS]

日志

mipi csi package详解

已有 19 次阅读| 2025-12-17 11:21 |个人分类:设计理解|系统分类:芯片设计| mipi

HS模式时序

HS模式时序参照下图,流程为:LP11-LP01-LP00-HS数据-LP11,时序图中蓝色为LP-TX驱动,红色为HS-TX驱动。


包结构

时序图中红色HS部分,又分为短包和长包:
a)短包:SoT+SP(32bit)+EoT
b)长包:SoT+PH(32bit)+DATA+PF(16bit)+EoT
包之间必须通过LPS间隔,具体为上一包恢复LP11,再LP11-LP01-LP00进入下一包。

SoT EoT

a)SoT:Start-of-Transmission,传输起始,8bit序列00011101。

b)EoT:End-of-Transmission,传输结束,为最后一个数值bit的取反。


PH SP

a)PH:packet head,长包的包头,32bit。

具体包括:DI 8bit(2bit虚拟通道+6bit数据类型);WC 16bit,指示后续数据byte数;ECC 8bit(实际6bit,高2bit补0)为DI+WC 24bit的校验值。

b)SP:short packet,短包32bit,结构和PH基本一样,区别在短包不接数据,所以中间16bit不是byte数而是附带信息,例如FS/LS包附带信息可以是帧号/行号(后文会介绍FS/LS),不过协议没有硬性要求,也可以保持为0不带信息。

DI中虚拟通道就是通道号,即最多4通道信号可以分时通过1套接口传输。



DATA PF

长包形式为PH+DATA+PF,其中:
a)DATA:packet data数据,以Byte为单位。
b)PF:packet footer包尾,内容为checksum ,即packet data部分的CRC校验值。


数据类型和校验

数据类型 (DI)

上节PH和SP均包含DI,其低6bit为数据类型编码,0x0~0xF为短包专用数据类型,其余为长包专用数据类型。


Data Type Description

0x00 to 0x07 Synchronization Short Packet Data Types

0x08 to 0x0F Generic Short Packet Data Types

0x10 to 0x17 Generic Long Packet Data Types

0x18 to 0x1F YUV Data

0x20 to 0x27 RGB Data

0x28 to 0x2F RAW Data

0x30 to 0x37 User Defined Byte-based Data

0x38 to 0x3F Reserved

a)列举短包常用数据类型,帧起始FS、帧结束FE、行起始LS、行结束LE,协议要求必须有帧标识包,可以没有行标识包。


Data Type Description

0x00 Frame Start Code

0x01 Frame End Code

0x02 Line Start Code (Optional)

0x03 Line End Code (Optional)

b)长包数据类型主要包括RGB、YUV、RAW类型,以RAW灰度为例列举,RAW后数字指每个像素点的bit数,其他可以参照手册。


Data Type Description

0x28 RAW6

0x29 RAW7

0x2A RAW8

0x2B RAW10

0x2C RAW12

0x2D RAW14

包头校验 ECC

PH、SP中均包含8bit ECC,ECC为前24bit的校验值,24bit中DI为高8bit,WC为低16bit(假如是短包那就是data field)。ECC结果为6bit,高2bit固定为0。后续版本中高2bit改成了虚拟通道高位,即扩展为最高支持16虚拟通道。

ECC通过对24bit中指定位进行异或运算得到,具体计算方式如下,其中da[23:0]即为24bit数据。


ecc[5] = da[10]^da[11]^da[12]^da[13]^da[14]^da[15]^da[16]^da[17]^da[18]^da[19]^da[21]^da[22]^da[23]  

ecc[4] = da[4]^da[5]^da[6]^da[7]^da[8]^da[9]^da[16]^da[17]^da[18]^da[19]^da[20]^da[22]^da[23]  

ecc[3] = da[1]^da[2]^da[3]^da[7]^da[8]^da[9]^da[13]^da[14]^da[15]^da[19]^da[20]^da[21]^da[23]  

ecc[2] = da[0]^da[2]^da[3]^da[5]^da[6]^da[9]^da[11]^da[12]^da[15]^da[18]^da[20]^da[21]^da[22]  

ecc[1] = da[0]^da[1]^da[3]^da[4]^da[6]^da[8]^da[10]^da[12]^da[14]^da[17]^da[20]^da[21]^da[22]^da[23]  

ecc[0] = da[0]^da[1]^da[2]^da[4]^da[5]^da[7]^da[10]^da[11]^da[13]^da[16]^da[20]^da[21]^da[22]^da[23]


数据校验 CRC

数据校验checksum通过16bit CRC实现,多项式为x16+x12+x5+x0。

校验范围为数据段,不包括包头PH,假如数据长度WC为0,那CRC应为0xffff(长包数据长度为0也不是短包,短包没CRC,数据类型DI也不一样)。


协议还给了CRC运算的示例代码

#define POLY 0x8408 /* 1021H bit reversed */  

unsigned short crc16(char *data_p, unsigned short length)  

{  

unsigned char i;  

unsigned int data;  

unsigned int crc = 0xffff;  

if (length == 0)  

return (unsigned short)(crc);  

do  

{  

for (i=0,data=(unsigned int)0xff&*data_p++;i<8;i++,data>>=1) 

{  

if ((crc & 0x0001) ^ (data & 0x0001))  

crc = (crc >> 1) ^ POLY;  

else  

crc >>= 1;  

}  

} while (--length);  

// Uncomment to change from little to big Endian  

// crc = ((crc & 0xff) << 8) | ((crc & 0xff00) >> 8);  

return (unsigned short)(crc);  

}


时钟间断

HS传输模式下允许包之间时钟间断,具体形式为时钟lane进入LP11态,需要注意必须和数据lane前后错开clk-tail和clk-settle时间。

a)停止流程:HS翻转-LP11。

b)恢复流程:LP11-LP01-LP00-HS翻转(其实和数据lane开始HS传输一样)。


波形示例

示例为3包连续传输,分别为FS、数据、FE包。数据包的数据类型为RAW8,虚拟通道0,数据4Byte为0x04030201。


接口形式为4lane,可以在波形中看到3包传输,下面详细说明。



短包

波形中可以看到完整流程,白色标注为具体时序阶段。


11.png


重点关注下图中HS驱动部分,数据lane双边沿输出,时钟和数据lane错半个相位。第1个红框为SoT序列00011101,第2个红框为数据,然后EoT是前最后1bit的反转。



数据先发低位,可以看到4lane数据为0x0、0x1、0x0、0x1a,其中:

[7:0]=0,指示虚拟通道0,数据类型为FS,帧开始。

[23:8]=1,指示帧号为1。

[31:24]=0x1a,为ECC校验值。


长包

长包的完整流程和短包相似,主要区别在HS部分,第1个红框为SoT序列先不看,后面可以看到lane0、1传输3Byte,lane2、3传输2Byte,共计10Byte,构成是包头4Byte+数据4byte+校验2Byte。




包头4Byte,第2红框列,0x2a对应数据类型RAW8,0x0004对应数据长度4Byte,0x33对应ECC。

数据4Byte,第3红框列,对应数据4Byte分别为0x1、0x2、0x3、0x4。

校验2Byte,第4红框列,组合起来是0xc66e,为0x04030201的CRC值。




点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 12

    获赞
  • 19

    评论
  • 781

    访问数
关闭

站长推荐 上一条 /1 下一条


手机版| 小黑屋| 关于我们| 联系我们| 用户协议&隐私声明| 版权投诉通道| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 ) |网站地图

GMT+8, 2025-12-18 10:59 , Processed in 0.205026 second(s), 15 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部