|
汽车零部件采购、销售通信录 填写你的培训需求,我们帮你找 招募汽车专业培训老师
自动驾驶中camera方案(一)camera链路框架
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)
|
-
|