Gustav杂物间 - 2020年5月
type: channel
link: http://ifreehub.com/2020/05/
description: 群处守住嘴，独处守住心！
items: Nvidia Jetson Xavier Camera子系统

Nvidia Jetson Xavier Camera子系统
type: item
date: 2020-05-13T02:54:00+00:00
description: 前言前段时间完成了基于Xavier平台+Max9286串行解串器的多路视频输入项目，现在终于有点时间对整个项目中学到的东西进行一番总结，涵盖的内容会包含Xavier的Camera子系统、DPHY与MIPI标准协议、linux下的驱动开发（V4L2+IIC）等。现在开始我们的第一部分吧------Xavier的Camera子系统。总览Xavier的Camera子系统主要由NVIDIA Camera Serial Interface (NVCSI)与Video Input(VI)两个部分组成，其中NVCSI为VI的输入源，NVCSI采集到的数据经由VI处理后转发至DDR内存中。整体框图如下：特性如下：物理层支持DPHY1.2（每Lane（2线）支持2.5Gbps）与CPHY1.1（每lane（3线）支持2.5Gsym/s）基于MIPI CSI-2 v2.0版本协议栈包含6个像素解析器（PP）每个像素解析器支持16路虚拟通道（VC）解析支持数据类型交织解析拓展数据类型支持raw16/raw20每个时钟支持同时输出8个像素数据NVCSINVCSI在物理层上同时支持DPHY与CPHY，可以配置成4X4Lane、6X2lane、6X1Lane。每个lane都能支持16路虚拟通道以及数据类型交织传输。虚拟通道：由MIPI CSI标准定义，在协议中由2段数据域共同确定，虚拟通道在多摄像头输入的场景下十分有用，以max9286为例，通过对各个link的Camera（1280*720）设置虚拟通道ID，能够实现4路图像分离，而不是获得一个(1280*4)*720的合并图像。数据类型交织：在HDR Line-by-Line的模式下，NVCSI支持解析同一个虚拟通道上的不同数据类型。频率目标：NVCSI支持并行像素处理，这使得它能够允许更高的带宽与更低的时钟频率。在单个像素小于等于16Bit的情况下（Bit-Per-Pixel:BPP<=16），一个时钟能够同时处理8个像素(Pixel-per-clock:8PPC)，若BPP>16，则只能同时处理4个像素（4PPC）。支持的数据格式：RAW6/7/8/10/12/14/16/20RGB888/666/565/555/444YUV420-8bit(Legacy)YUV420-8bitYUV422-8bit/10bitNVCSI CORENVCSI CORE主要工作在于处理CSI-2中的Low-Level协议层，将字节序包解包为各个像素。CORE内包含了6个Packet Parse（PP）功能单元，这意味着能够同时处理6路独立的来自NVCSICIL的数据流。NVCSI CORE内部框图如下，下文会对各个单元进行说明：包头包尾解析（HFP）来自NVCSISCIL的数据流首先通过多路复选器转发至Header Footer Parser(HFP)，HFP会对提取包头信息，并进行ECC校验纠错，校验通过后判断是长包还是短包，若为长包则根据Word Count字段进行CRC计算并与包尾CRC字段对比，校验通过后转发至Color Parser(CP)进行处理，若为短包且为SOF(Start of Frame)或EOF(End of Frame)，则会置位寄存器以通知VI单元。Color Parser控制（PP FSM）PP FSM会丢弃来自sensor的LS(Line Start)与LE(Line End)短包，而自己生成LS与LE短包，产生CP使能信号控制Color Parse，同时会对过短的Line进行单独的处理。Color ParserCP主要工作在于将包中的字节负载解码为像素，解码方式取决于包头中Data Type。DPCM解压当图像Sensor使用DPCM对图像进行压缩，它会将压缩后的数据和一个用户自定义的数据类型构建数据包进行发送，软件层面需要覆盖这种数据类型，使得Color Parser能够知道如何将该字节数据转换为像素，进而送入DPCM进行解压。支持的DPCM比率如下：VIMUXVIMUX收集来自NVCSICORE各个单元模块生成的信息（SOF、EOF、VC、DTYPE、Frame Number、SOL、EOL、Embedded Data、Pixel Data、Error Flag等），并发送给VI单元。NVCSI SCILSCIL单元模块集成所有PHY接口与控制为一体，DPHY与CPHY的数据同一放入SCIL的FIFO中，NVCSI CORE可以直接从FIFO中获取数据而无需与PHY交互。SCIL功能框图如下：SCIL主要由以下功能：校正DPHY的边沿歪斜（Deskew）；控制PHY层Pair(DPHY)、Trio(CPHY)的极性；控制brick的LP至HS或HS至LP状态的转换；处理来自Sen…