自动驾驶中camera方案(二)MIPI-CSI2详解

前言:

为了深入的理解MIPI-CSI2接口,强烈建议阅读协议原文,我重点参考的就是协议原文:2019-09-17_19.05.53_mipi_CSI-2_specification_v3-0.pdf

1.MIPI概述

MIPI联盟是一个开放的会员制组织,CSI(Camera Serial Interface)是由MIPI联盟下Camera工作组指定的接口标准,DSI为display相关的接口标准。本文我们重点关注MIPI-CSI2协议

典型图例(D-PHY):

MIPI-CSI2:

CSI-2是MIPI CSI第二版,主要由应用层、协议层、物理层组成,最大支持4通道数据传输、单线传输速度理论高达9Gb/s(不同器件最大值不一致,IMX8系列最高1.5Gb/s per lane)

定义了摄像头外设与主机控制器之间的接口,旨在确定摄像头与主机控制器在移动应用中的标准,CSI-2定义了摄像头应用中发送方(camera)与接收方(soc)之间的数据与控制传输标准,其物理层支持DPHY与CPHY两种,我们主要以DPHY为例

D-PHY:物理层的CSI-2相机接口由一个时钟线和一个或多个数据线组成

C-PHY:物理层的CSI-2相机接口由一个或多个通道组成,每个通道同时传输时钟和数据信息

MODE:     Control/High-Speed/Escape/Ultra-Low Power State

D-PHY MIPI-CSI/MIPI-DSI的4通道框图 : 本文重点关注D-PHY

重点名词解释:

Lane:一种单向、点对点、2线或3线接口,用于高速串行时钟或数据传输,使用D-PHY物理层的CSI-2摄像头接口由1个时钟Lane和1/2/4个数据Lane通道

Packet:以特定方式组织起来的一组字节,用于在接口上传输数据。所有数据包都有个最少字节大小的数据。字节是数据包的基本数据单位。

Payload:仅应用程序数据,所有同步,报头,ECC和校验和和其他协议相关信息除外。这是应用程序处理器和外设之间传输的“核心”

Virtual Channel:支持多达32个外设(camera)的多个独立数据流的规范。每个外设(camera)的数据流可以是一个虚拟通道。这些数据流可能是作为连续的包进行交叉传输,每个包专用于一个特定的外设(camera)或通道。包协议包括将每个包连接到它预定的外围设备的信息(后续讲解包协议时会说明每个包header中包含相应的virtual id,和具体数据类型)

2.CSI-2分层协议

框图:

Application Layer:
该层主要用于不同场景对数据的处理过程,对于发送方,多为camera生成数据,对于接收方,多为SOC对数据进行处理

Protocol Layer:              organized as packets

1.Pixel/Byte Packing/Unpacking Layer:

像素/字节封装/解封装层,CSI-2规范支持不同像素格式的图像应用程序,每像素6到24位。发送方向时:在将数据发送到低层协议层之前,该层将应用层的像素打包成字节,接收方向时:在将数据发送到应用层之前,该层将来自低层协议层的字节解析为像素

2.Low Level Protocol (LLP):

低级别协议层,为串行数据传输在传输开始(SoT)和传输结束(EoT)事件之间建立位、字节级别同步以及将数据传递到下一层,最小数据大小为1个字节,详情见章节4

3.Lane Management:

lane通道管理,为了适应不同场景下对带宽的要求,CSI-2规定了Lane的数量是可拓展的。因此,在面临多Lane同时传输时,发送方需要对字节流进行公平分发(distributor),接收方则需要对多Lane数据进行合并(merger)详情见章节3

note:下面3/4/5章节会分别详细说明Lane Management/Low Level Protocol/Pixel Byte Packing Unpacking Layer

PHY Layer:

PHY层指定了传输媒介,在电气层面从串行bit流中捕捉“0”与“1”,同时生成、捕获SoT与EoT等信号

3.Multi-Lane Distribution and Merging

Distribution框图:忽略,目前不重点关注

merging框图:

4 lane的接收顺序:

note:

从上图可见,当4 Lane的时候 SoT开始信号后,csi2协议会分别等到每个lane通道8bit组成一个BYTE后,按照顺序来把每个通道上的byte按照顺序组装到packet中,后续LLP会解析相应的包 (包中的数据不是4的正式倍也不影响该协议)

4.Low Level Protocol

低级别协议(LLP)是一个基于字节数据包的协议,支持传输使用短包/长包格式的任意数据(short packet/long packet

  • 任意数据传输(负载独立)
  • 8位字节数据大小
  • 支持16个交叉的虚拟通道在相同的D-PHY link上
  • 帧开始、帧结束、行开始和行结束信息的特殊包
  • 描述应用程序特定负载数据的类型、像素深度和格式的描述数据
  • 错误检测16位校验和代码
  • 误差检测和校正的6位误差校正码(D-PHY物理层)

packet overview:

包协议格式:

 Long Packet Structure for D-PHY:                        data type : 0x10 - 0x17

note:

如上图可见Data ID中的CV(bits 7:6)和NVX(bits 7:6)用来组成4位表示16个虚拟通道,不同虚拟通道的数据包会被送到相应的通道

Short Packet Structure for D-PHY:                        data type : 0x00 - 0x0f

note:

如果短包用来指示帧同步信号,Data Field里面的数据是帧号

如果短包用来指示行同步信号,Data Field里面的数据是行号

虚拟通道处理:

 虚拟通道不同数据格式例子:

 Data types:

Packet Data Payload Size Rules:

YUV/RGB/RAW数据类型,一个long packet应该包含one line 的数据大小,所以如果是同一个虚拟通道的同一个数据类型的long packet数据应该每次都是一样的大小(某些情况下一个line的数据为了满足一些要求可能带上一些pading空白数据)

Frame Format example:

5.数据包细节

CSI-2 supported fromats packet data size:

带宽计算:

HTOT(1920) * VTOT(1080) * FPS(30) * Bits Per Pixel(16) / number of data lanes(4) = 1920*1080*30*16/4=248832000

因为MIPI接口是双date rate所以要除以2,248832000/2=124,416,000(HZ)

  • 15
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: i.MXRT1176是一款高性能的处理器,支持多种外设接口,其包括Mipi-CSI2接口和UVC功能。 Mipi-CSI2是一种用于传输摄像头数据的串行接口标准。它可以实现高速、低功耗的数据传输,广泛应用于移动设备和嵌入式系统。i.MXRT1176的Mipi-CSI2接口可以与兼容的摄像头模块进行连接,以便从摄像头获取图像数据。 UVC(USB Video Class)是一种用于通过USB接口传输视频数据的标准。它可以让USB设备(例如计算机或其他支持UVC的设备)直接识别和使用摄像头,简化了设备之间的连接和通信。i.MXRT1176的UVC功能可以将通过Mipi-CSI2接口获取的摄像头数据转换为符合UVC标准的视频流,以便被连接的设备进行识别和使用。 通过i.MXRT1176的Mipi-CSI2 to UVC功能,我们可以方便地将摄像头模块的图像数据转换为USB视频流,实现将摄像头接口扩展到支持UVC的设备,如计算机、智能电视等。这样,我们可以方便地将摄像头用于视频通信、图像采集和人机互动等应用领域。 总之,i.MXRT1176的Mipi-CSI2 to UVC功能提供了一种简单、高效的解决方案,使得摄像头数据可以通过USB接口直接传输给其他设备,为视频应用的开发和应用提供了更多的可能性。 ### 回答2: IMXRT1176 是恩智浦(NXP)公司推出的一款高性能 Arm Cortex-M7 微控制器。它具有丰富的外设接口和强大的计算能力,可广泛应用于各种嵌入式系统MIPI-CSI2 是一种通信接口标准,用于将摄像头传感器与处理器之间的数据传输。它通过传输高清视频和图像数据,实现了低功耗、高带宽、高质量的图像传输。 UVC(USB Video Class)是一种标准协议,用于视频设备与计算机之间的通信。它允许将视频设备连接到计算机,并以 USB 接口的形式传输图像或视频数据。 IMXRT1176 Mipi-CSI2 to UVC 是指将IMXRT1176微控制器与摄像头传感器之间的视频数据经过Mipi-CSI2接口传输,并通过UVC协议将视频数据传输到连接的计算机。 通过这种方式,我们可以在IMXRT1176微控制器上实现摄像头数据的采集和处理,然后将处理后的视频数据传输到计算机,并通过UVC协议对其进行解码和显示。这使得开发者可以方便地在嵌入式系统使用摄像头,并实现图像或视频的实时采集、处理和显示。 总之,IMXRT1176 Mipi-CSI2 to UVC 提供了一种方便高效的解决方案,使得在嵌入式系统使用摄像头变得更加容易和灵活。 ### 回答3: IMXRT1176是一款高性能的嵌入式处理器,而MIPI-CSI2和UVC是两种不同的图像传输接口。 MIPI-CSI2是一种用于连接图像传感器和图像处理器的接口标准。它使用串行传输协议,可以实现高速、低功耗的图像传输。MIPI-CSI2支持多通道数据传输,并且提供了丰富的控制和配置选项,以满足不同应用场景的要求。因此,IMXRT1176可以通过MIPI-CSI2接口与图像传感器进行通信,获取高质量的图像数据。 UVC是一种USB设备类别,它定义了一套用于视频采集和图像传输的标准协议。通过UVC协议,可以将图像数据通过USB接口传输到计算机上,同时还可以实现对图像的控制和配置。这样,计算机可以直接从IMXRT1176通过UVC接口获取图像数据,无需额外的驱动程序。 因此,IMXRT1176 MIPI-CSI2 to UVC的意思就是将IMXRT1176处理器与图像传感器通过MIPI-CSI2接口连接,然后将获取的图像数据通过UVC接口传输给计算机。这样一来,我们就可以在计算机上实时查看、录制和处理来自图像传感器的图像数据,为各种应用场景带来更便利和灵活的图像处理能力。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值