尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

MIPI协议介绍

MIPI协议介绍 MIPI协议介绍mipi 协议分为 CSI 和DSI,两者的区别在于CSI用于接收sensor数据流DSI用于连接显示屏csi分类csi 分为 csi2 和 csi3csi2根据物理层分为 c-phy 和 d-phy,csi-3采用的是m-phy一般采用csi2c-phy 和 d-phy的区别d-phy的时钟线和数据线是分开的,2根线一对一对每个channe最大2.5Gbps,c-phy的时钟线会嵌入到数据线中有3跟线每个channe最大5.7Gbps,csi2 每层的定义PHY层主要规定了物理传输的各种电气特性传输介质序等比如C-PHY就是需要三根线来进行传输而D-PHY是数据和时钟分开进行传输协议层主要负责像素层次的打包和解包Lane层次的打包和解包还有各种控制信息的组合应用层就是我们自己想怎么用就怎么用了比如拿到像素数据之后做各种图像处理算法PHY层PHY最外面对外的接口是有两种形式的HS 高速模式LP 低功耗模式这两种形式的接口在MIPI里面被组合成了一个接口其实就是两种工作模式其中HS模式主要用于高速所数据传输功耗较大LP模式主要用于低速的一些控制信号功耗较低但是在xilinx的7系列FPGA中是不支持这种传输特性的所以在7系列的FPGA里面一般会采用以下两种方索来做MIPI接口1 电阻网路2 专用的电平转换芯片协议层协议层主要分为以下三个部分Lane Management LayerLow Level ProtocolPixel to Byte Packing Formats先来看Lane层MIPI协议支持多lane的传输MIPI D-PHY中每条lane最多传输2.55bps那么如果需要传输更快的速率的时候就需要有多条lane来并行进行传输。这样必然要涉及一个问题那就是lane与lane之间怎么配合的问题.lane 传输过程两lane的传输过程如下图所示以SoT为起始中间数据是交错排列的最后以EoT作为结束再来看Low Level Protocol层low level层要传轮的数据分为两种短包长包其中短保主要负责一些控制信息的传输长包里面就是主要在传输图像数据了短包的结构如下所示,分为IDWC和ECC三个字段长包和短包的结构很相似可以看到它的包头部分和短包一致然后后面跟了数据部分那么怎么区分长包和短包呢其实就是靠DATA ID这个字段中的Data type来区分的比如短包的DATA ID如下图所示Data type 为 00 - 07代表的是短包其中DATA ID这8bit中还有两Bit表示VC也就是虚拟通道剩下的6bit才表示Data Type。WC这个字段这个字段表示接下来的传输有多少字的数据ECC是给做校验用的毕竟传输的过程中可能会出现错误这边就增加了校验后面要传输的数据也会有很多类型比如YUV格式的RAW格式的在MIPI里面也是通过DATA Type来区分的RAW10里面一个像素是10bitRAW12里面一个像素是12bit那么MIPI协议里面是怎么将他们进行统一的呢其实这里MIPI协议规定了每种数据的排布方式比如RAW10的数据是按如下形式进行排布的以40 bit 为一个单位传输先传输每个像素的高8bit, 再把4个像素的抵2bit 拼在一起传输。而RAW12的排布方式又变成了如下图在写代码的时候只需要根据data type来做对应的解码就行了要完成一个MIPI CSI-2的 D-PHY接受数据的话只需要做以下步骤字节对齐lane对齐数据解包像素解包MIPI主要有两种数据包Short Packet短包Long Packet长包Short Packet短包短包主要用于帧同步。例如FSFrame Start帧开始。FEFrame End帧结束。短包固定为 4 Byte2. Long Packet长包长包负责传输真正的图像像素。它的格式MIPI CSI-2 一帧图像主要由两类数据包组成短包Short Packet负责帧、行等同步控制。长包Long Packet负责传输真正的图像像素数据。完整的数据包结构以你的 1080P RGB888 为例一帧图像开始|┌────────────────┐ │ FS Short Packet│ 帧开始 └────────────────┘|┌────────────────┐ │ LS Short Packet│ 行开始可选 └────────────────┘|┌────────────────┐ │ Line0Long │ 第0行像素数据 │ Packet │ └────────────────┘|┌────────────────┐ │ LE Short Packet│ 行结束可选 └────────────────┘|┌────────────────┐ │ LS Short Packet│ 行开始可选 └────────────────┘|┌────────────────┐ │ Line1Long │ 第1行像素数据 │ Packet │ └────────────────┘|┌────────────────┐ │ LE Short Packet│ 行结束可选 └────────────────┘|...|┌────────────────┐ │ Line1079Long │ 第1079行像素数据 │ Packet │ └────────────────┘|┌────────────────┐ │ FE Short Packet│ 帧结束 └────────────────┘|帧结束这里需要注意FSFrame Start帧开始短包。FEFrame End帧结束短包。LSLine Start行开始短包。LELine End行结束短包。LS、LE 短包可以根据 CSI-2 版本和接收端要求省略。FS、FE 则用于帧同步从 RGB888 像素到 CSI-2 数据包pixel_data24’h123456这里先记住FPGA 内部的数据排列是 {R,G,B}但 CSI-2 标准的 RGB888 线上传输顺序是 B、G、RCSI-2 是按 Byte 分配 Lane而 D-PHY 是把每个 Byte 串行发送。而且每个 Byte 都是 LSB First
返回列表