Nvidia Jetson Xavier Camera子系统

前言

前段时间完成了基于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个像素数据

NVCSI

NVCSI在物理层上同时支持DPHY与CPHY,可以配置成4X4Lane6X2lane6X1Lane。每个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/20
  • RGB888/666/565/555/444
  • YUV420-8bit(Legacy)
  • YUV420-8bit
  • YUV422-8bit/10bit

NVCSI CORE

NVCSI 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 Parser

CP主要工作在于将包中的字节负载解码为像素,解码方式取决于包头中Data Type。

DPCM解压

当图像Sensor使用DPCM对图像进行压缩,它会将压缩后的数据和一个用户自定义的数据类型构建数据包进行发送,软件层面需要覆盖这种数据类型,使得Color Parser能够知道如何将该字节数据转换为像素,进而送入DPCM进行解压。
支持的DPCM比率如下:

VIMUX

VIMUX收集来自NVCSICORE各个单元模块生成的信息(SOF、EOF、VC、DTYPE、Frame Number、SOL、EOL、Embedded Data、Pixel Data、Error Flag等),并发送给VI单元。

NVCSI SCIL

SCIL单元模块集成所有PHY接口与控制为一体,DPHY与CPHY的数据同一放入SCIL的FIFO中,NVCSI CORE可以直接从FIFO中获取数据而无需与PHY交互。
SCIL功能框图如下:

 

SCIL主要由以下功能:

  • 校正DPHY的边沿歪斜(Deskew);
  • 控制PHY层Pair(DPHY)、Trio(CPHY)的极性;
  • 控制brick的LP至HS或HS至LP状态的转换;
  • 处理来自Sensor的LP状态的数据;
  • 在ULPS(Ultra Low Power State)状态下,控制Brick的供电;
  • 提供电气参数(PHY时序等)寄存器的配置;
  • 监测信号错误并通知NVCSICORE;
  • 控制多Lane传输时的字节对齐;
  • Lane聚合;
  • 侦测SOT(Start of Transmission)与EOT(End of Transmission)信号;

NVCSI SCIL可以控制各个独立的Lane进行组合,对于AB和CD Pad,可以配置为以下几种形式

  • D-PHY: 1x 4 lanes, 2x 2 lanes, 2x 1 lane, 1x 1 lane, 1x 2 lanes, 1x 1 lane + 1x 2 lanes
  • C-PHY: 1x 4 trios, 1x 3 trios + 1x 1 trio, 2x 2 trios, 2x 1 trio, 1x 1 trio, 1x 3 trios, 1x 2 trios + 1x 1 trio, 1x 2 trios
    对于EF和GH Pad,可以配置为以下几种形式
  • D-PHY: 1x 4 lanes, 1x 2 lanes, 1x 1 lane
  • C-PHY: 1x 4 trios, 1x 3 trios, 1x 2 trios, 1x 1 trio

根据CSI-2标准,SCIL主要服务于Low Level Protocol与Lane managenment两大功能:
Low Level Protocol:从SOT到EOT之间的数据采集,建立Bit Level或Byte Level级别的数据同步,并转发至NVCSI CORE。
Lane Management:为了提高性能,CSI的lane是可拓展的,DPHY中,最多可以配置为4路Data Lane,在CPHY中最多可以配置为4路Data Trio,SCIL会将来自各个Lane的数据通过Lane Merge单元进行数据组合,恢复出来自Sensor的原始数据流序列(具体的Merge实现在CSI-2标准文档中由详细描述)。

Video Input(VI)

VI单元用于接收来自NVCSI的数据,经过处理最终转发至Memory中。VI仅有一条Pipeline通过时分复用的方式处理来自NVCSI各个通道的数据。
VI中内置了一个NV自家的实时处理单元Falcon,通过软件的方式对VI进行控制,以拓展VI能力。

VI性能

VI的最大时钟支持到660MHz,在一个Clock处理8个像素(即8PPC)的情况下,总处理能力约为5.2Gpps(piexl per sec),若以YUV420-8bit(bbp=16) 720p 30fps来计算,则理论上(不考虑各种开销)约可以同时处理150个视频流,可怕的带宽

VI各单元模块功能

  • CSI Multiplexer(CSI MUX):CSIMUX作为Pipeline的前端,处于数据流处理缓冲地带,由于一次只能处理一个像素包,CSIMUX则会为每一个输入通道创建一个缓冲区,然后在上一次象素包处理完成后,输送新的象素包进行处理。
  • Channel Selector(CHANSEL):CHANSEL的任务主要是对每个传入的像素数据进行检查,根据每个传入通道的配置,对该数据进行模式匹配,根据物理信道(即哪个CSI信道)、数据类型、虚拟信道ID和帧ID的任意组合进行匹配。同时也为每个通道维护每一帧的状态,向NOTIFY发送类似SOF、EOF等事件。
  • Pixel Formatter(PIXFMT):由于CSI-2标准提供的像素格式比较少,PIXFMT单元会预先将接收到的像素数据按照通道指定的像素格式转换为特定的内部格式。这样即方便了VI的处理,也方便了Xavier自带的ISP处理。
  • DPCM:若像素数据需要进一步ISP处理,为了降低VI与ISP之间的带宽,DPCM可对数据进行压缩。
  • Memory Atom Packer(ATOMP):ATOMP是Pipeline处理的最后阶段了,它在接收完不同宽度的像素包后,产生内存请求,产生内存地址,单处理到EOL或EOF事件时,则会向NOTIFY发出通知。
  • Output Water-Level Buffer(OFIF):ATOMP一般来说应该直接将数据输出到MCCIF指定内存中,但是内存buffer并不能在容量不足时通知到ATMOP,因此OFIF则是用来指示当前内存使用是否达到预设值,是的话则向NOTIFY发出通知。
  • Notification Engine(NOTIFY):NOTIFY用于接收来自整个VI的消息,并将消息转发至VI内部的实时微控制器FALCON,FALCON根据消息对VI内部进行相应的调度。

    • CSI MUX:SOL、EOL;
    • CHANNEL:SOL、SOF、Unrecognized Channel、Frame Dropped、Incorre Size;
    • ATOMP:EOF、EOL;
    • OFIF:Packet Dropped、Buffer Full;
  • FALCON:VI中的实时微控制器,用于接收NOTIFY事件,并对该事件进行及时处理。
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: NVIDIA Jetson Xavier NX是一个高性能的边缘计算器,它在面向AI应用的计算能力上有着出色的表现。与其他Jetson系列产品相比,Jetson Xavier NX设计更紧凑,但仍然拥有强大的计算能力和丰富的扩展性。 《NVIDIA Jetson Xavier NX设计指南》提供了广泛的信息,以帮助系统设计师和嵌入式开发者使用Jetson Xavier NX完成他们的项目。本指南的第一部分主要涵盖了Jetson Xavier NX的各种硬件规格和接口,包括CPU、GPU、存储、USB、LAN、PCIe和GPIO等。它还介绍了如何使用GStreamer实现视频捕捉和处理,以及如何在Jetson Xavier NX上使用TensorRT加速深度学习模型。 第二部分介绍了如何将Jetson Xavier NX集成到系统中,并讨论了如何使用各种工具调试和优化板载软件。其中包括如何在系统启动时加载设备树、如何使用SWAT调试和优化系统性能等。 总之,《NVIDIA Jetson Xavier NX设计指南》提供了全面的Jetson Xavier NX硬件和软件信息,并提供了实用的建议,帮助开发人员将其集成到他们的项目中。这个指南对于想要了解Jetson Xavier NX的人,以及想要开始使用Jetson Xavier NX搭建项目的人来说,都是非常有用的参考资料。 ### 回答2: 《Nvidia Jetson Xavier NX 设计指南》是为了引导用户更好地设计和开发基于Nvidia Jetson平台的系统和设备而发布的指南。本指南提供了完整且详细的设计资料和技术规格,涵盖了硬件和软件两个方面,帮助用户深入了解Nvidia Jetson Xavier NX的特点和构造,从而更好地了解如何开发满足自身需求的应用。 在硬件设计方面,本指南详细介绍了Jetson Xavier NX的物理特性、电源管理、接口和连接、外设等方面的设计规范和最佳实践,包括了设计注意事项、建议和限制。同时,本文档还提供了多个原理图和PCB布局的指导,以便用户更快速、高效地进行设计工作。 在软件设计方面,本指南介绍了JetPack SDK的工具和套件的功能和使用方法,以及它们可以为用户开发的应用程序带来哪些优势和好处。此外,还提供了关于如何安装、配置和使用Nvidia Jetson开发板的详细说明,并提供了许多示例代码、工具和文档,以帮助用户更轻松地使用和开发。 总的来说,该指南提供了对Jetson Xavier NX平台的全面介绍和理解,从硬件和软件两个方面深入解析,为用户提供了开发机器视觉、人工智能、深度学习和高性能计算应用的全方位支持和指导。 ### 回答3: Nvidia Jetson Xavier NX设计指南是一个技术手册,旨在帮助工程师设计和开发基于Jetson Xavier NX模块的嵌入式系统。该手册包含了有关模块设计、电源设计、I / O架构和接口、散热与轻量级引脚组织等方面的详尽介绍。 在Jetson Xavier NX模块设计方面,该手册提供了硬件指南,指导如何理解和使用Jetson Xavier模块上的每个组件,以及如何在基板上集成它们,确保在具有高性能和低功耗的同时,最大程度地利用Jetson Xavier NX的可扩展性。该手册还提供了针对特定用例的知识和技巧,以便工程师们能够最大程度地发挥模块的潜力。 在电源设计方面,该手册提供了有关电源供应设计的指导,包括通过正式电源链和电源滤波器确保稳定的电源,以及通过在基板上附加灯具和调节器端口来实现更高的功率效率。 该手册还涵盖了Jetson Xavier NX模块的I / O架构和接口。读者将获得关于模块如何与其他外部组件互动的信息。 最后,该手册还提供了一些有关如何在Jetson Xavier NX模块中使用散热器的指导,以及如何轻量级引脚组织的建议。这些内容都可以帮助工程师构建稳定、高效的嵌入式系统。 总的来说,Nvidia Jetson Xavier NX设计指南是一个极其有用的技术手册,为工程师提供了深入的技术细节和实用的建议,以帮助他们构建卓越的嵌入式系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值