MIPI CSI-2协议 FPGA应用详解

一,前言

  本文主要阐述mipi phy layer 到csi2 lane managenment layer 到low level protocol layer的数据接收过程,更高层的byte to pixel以及医用层可按照csi2协议解包.

本文主要参考文献:

1.mipi D PHY specification version 1.2

2.mipi CSI-2 specification version 2.1

二,正文

1.mipi csi-2结构简介

mipi csi-2的结构类似于以太网的分层结构,如下图所示:

phy layer为物理层,通过控制时钟以及数据通道信号的电平值,实现低速模式(low power,或者说低功耗模式)与高速模式(high speed)的切换.

lane management layer 负责检测各通道(lane)低速模式到高速模式的跳变,并检测高速数据的同步头(HS ...00011101...序列),进一步将各通道的同步头对齐到字节,最终各通道的同步头实现对齐.

low level protocol layer,按照csi2协议,解析出帧起始(Frame Start,FS)短包,视频数据长包,以及帧结束(Frame End,FE)短包.输出图像数据,帧有效,数据有效.

byte to pixel unpack format层负责将基于字节的数据,按照协议,还原成各颜色空间/格式的像素数据,比如rgb565,raw10等格式.

2.csi-2采集整体结构

整体结构图如下:

首先运行摄像头配置模块,通过iic总线配置摄像头,是摄像头输出指定格式的视频流.

sensor输出视频流后,phy层接收模块会接收到4通道(或者2通道,可配置)串行双沿差分数据以及一个通道的差分时钟信号.phy层接收模块会调用fpga厂家提供的源语,对输入信号做串并转换以及差分到单端的转换.输出每个通道的两根差分线可输出l0,l1两bit低速信号(4通道就是l0[3:0]以及l1[3:0]),或者输出四路高速视频数据,rx_byte_clk的时钟频率是rx_clk_p/n的四分之一,内部源语的解串比是4:1,再双沿转单沿后,四个通道的数据共32bit数据输出给字节对齐模块.(四个字节之间还没对齐)

字节对齐模块检测各个通道低速模式到高速模式的跳变,并检测高速数据的同步头,先将各个通道的同步头对齐到字节,再将各个通道的同步头也对齐.

解包模块解析出帧起始短包,数据长包,以及帧结束短包.输出图像,后续按照协议将包数据恢复成各种格式的像素.

3.phy层设计

phy层接收模块示意图如下:

GTP_IOBUF_RX_MIPI源语完成差分转单端,逻辑电平转换(不完成双沿转单沿,iserdes以4:1的时钟比,将串行双沿数据转换成8bit单沿并行数据).高低电平转换指示为高时,该源语工作于高速模式,电压摆幅200mv,有利于高速传输数据.指示为低时,源语工作于低速模式,此时源语输出两根低速单端信号.

根据csi-2协议,低速信号LP11->LP01->LP00序列标志着主设备(摄像头)从低速模式进入高速模式.从设备(fpga)可设置一个状态机,先让源语工作在低速模式,实时监测LP11->LP01->LP00序列.监测到该序列后,向GTP_IOBUF_RX_MIPI源语发出转换到高速模式的指示.进入高速模式后,监测各个通道的rx_data_hs是否出现同步头(...00011101...),低位先传,即监测0xB8序列.

4.字节对齐模块设计

序列00011101有可能分布在两拍rx_data_hs[7:0]上,因此需将各个通道的同步头做相应的移位,使得B8位于一个字节之内,然后再对齐各个通道的B8,使得各通道的B8位于同一拍时钟之内.简单代码如下:

assign data_2byte = {rx_data_hs,rx_data_hs_d1};

for(i=0;i<8;i=i+1)

{

always@(*)

begin

if(c_state==LP00)

    begin

        if(data_2byte[(i+8):i]==8'hb8  && data_2byte[i:0]==8'b0)

            lane0[i]=1'b1

        else

            lane0[i]=1'b0;

    end

end

}

always@(posedge rx_byte_clk)

begin

if(lane0 != 8'b0 && sot_flag0==1'b0)

begin

    case(lane0)

        8'd1:reg <= 3'd0;

        8'd2:reg <= 3'd1;

        8'd4:reg <= 3'd2;

...

        8'd128 <= reg <= 3'd7;

    endcase

end

end

always@(posedge rx_byte_clk)

begin

    if(c_state==IDLE)

        sot_flag0 <=0;

    else if(lane0 != 0)

        sot_flag0<= 1;

end

always@(*)

begin

    case(reg)

        3'd0:lane_byte = date_2byte_d1[8:1];

        3'd1:lane_byte = date_2byte_d1[9:2];

...

        3'd7:ane_byte = date_2byte_d1[15:8];

    endcase

end

lane_byte就是某一通道对齐到字节的同步头.

一般各通道对齐后的同步头,会位于同一时钟周期内.四个通道的b8下一拍就是数据包的内容,可以按照csi2协议解包

5.解包模块

mipi的数据包分为长包和短包两大类.长包用于传输视频数据,一个长包传输一行视频数据.短包用于传输帧头帧尾,行头行尾(可选)

长包格式如下图:

上图中SOT即前文所述的B8同步头.SOT后的首字节为包类型信息

CS后,LP信息由LP00跳转到LP11,表明lane由高速转入低速模式.

解包模块的接口信号如下:

input rx_byte_clk,

input rst_n,

input dpckt_en,

input [31:0] shift_data,

output [31:0] csi_data,

output csi_fv,

output csi_data_vld

解包模块的整体思路是,在字节对齐模块对齐B8后,拉高depkt_en,以状态机检测帧起始短包,检测到短包以后拉高帧有效信号csi_fv,检测到长包以后拉高csi_data_vld.输出数据csi_data,则是将shift_data延迟若干拍.该输出数据信号尚未对齐到像素.

将对齐到字节的数据转换成各种格式的视频像素(raw10,rgb565,yuv422等),可按照协议进一步解析.难度不大.

 

 

 

 

  • 8
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: MIPI CSI-2协议是一种用于连接相机或其他图像传感器与主处理器之间的串行接口协议。它提供了一种高速数据传输和控制信号传输的标准化方法。 MIPI CSI-2协议的下载可以通过以下步骤进行: 1. 在主处理器上安装MIPI CSI-2驱动程序或软件库。这些驱动程序或软件库可以从相应的供应商或开源项目中获取。 2. 连接相机或图像传感器的CSI-2输出接口与主处理器的CSI-2输入接口。确保插好连接线,并根据相应的接口标准连接。 3. 在主处理器上配置CSI-2接口。根据具体的处理器和操作系统,可能需要进行一些配置设置,以确保CSI-2接口正常工作。 4. 运行相应的应用程序或软件,以读取和处理来自相机或图像传感器的数据。根据具体的应用需求,可能需要开发相应的软件逻辑或算法来处理图像数据。 总的来说,MIPI CSI-2协议的下载分为驱动程序或软件库的安装、接口连接的设置和相应应用程序的运行阶段。根据具体的硬件平台和应用需求,可能需要进行一些额外的配置和开发工作。 ### 回答2: MIPI CSI-2(移动设备图像接口)是用于移动设备的一种高速串行接口协议。它用于在图像传感器和处理器之间传输图像和控制数据。MIPI CSI-2协议使用差分信号传输,具有较高的带宽和较低的功耗,非常适合用于移动设备中的摄像头接口。 要进行MIPI CSI-2协议下载,首先需要确保硬件支持MIPI CSI-2接口,包括图像传感器和处理器。其次,下载的过程通常涉及以下步骤: 1. 确定所需的MIPI CSI-2版本:MIPI CSI-2协议有不同的版本,如MIPI CSI-2 v1.0、v1.1、v2.0等。根据实际需要选择合适的版本。 2. 下载相应的规范文档:MIPI CSI-2协议的规范文档详细描述了接口的电气特性、数据格式、传输协议等信息。可在MIPI联盟的官方网站上找到相关的规范文档。 3. 开发或获取驱动程序:为了在处理器端实现MIPI CSI-2接口的功能,需要开发或获取相应的驱动程序。根据所使用的处理器平台,可在相关的开发者社区或供应商网站上获取相关的驱动程序。 4. 进行硬件设计:根据MIPI CSI-2规范,设计相应的硬件电路,包括传感器接口和处理器接口。确保电路符合规范要求,并进行必要的信号调制和匹配。 5. 软件集成与调试:将驱动程序与硬件连接并进行软件集成。通过调试和测试确保MIPI CSI-2接口正常工作。可以使用相应的开发工具和测试设备进行验证和验证。 总之,进行MIPI CSI-2协议下载需要对相关规范进行研究和了解,确保硬件和驱动程序的兼容性,并进行相关的硬件设计和软件集成与调试工作,最终实现MIPI CSI-2接口的功能。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值