FPGA模拟MIPI相机,成功接入NVIDIA AGX开发者套件

本文介绍了如何利用NVIDIAJetsonAGXOrin与FPGA集成ISP,支持多种相机接口,如Sony和Aptina传感器。对于非官方支持的传感器,需进行硬件和驱动升级。奥唯思提供完整的解决方案,包括自研的MIPI接口子卡和ISP流水线,简化开发者接入过程,同时讨论了驱动签名和系统兼容性问题的解决策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

视觉相机是机器智能/自动化的关键,NVIDIA Jetson支持多个合作伙伴的Camera,这些相机包括USB、以太网、MIPI等接口的相机。Jetson为这些相机提供了完整的Jetpack SDK,支持用户可以快速接入这些相机,来实现相应的设计。

Jetson支持的相机列表,可以从官网中找到,链接如下所示:

选择CSI/MIPI接口,以及Orin套件,网页会出现Jetson Partner支持的相机列表,主要是:Sony的IMX290、IMX334、IMX179、IMX335、IMX415 ,以及Aptina的AR0234、AR0144、AR0822等。因此,比如用户使用NVIDIA的Jetson AGX Orin开发者套件,套件的SDK中就原生的支持如上列表的传感器CSI接入,用户可以快速进行自己的解决方案开发。    

图片

   如果选用上述列表中的相机并搭配配套的CSI转接板,由于Camera Partner已经提前和NVIDIA Jetson各种型号做了对接,原厂镜像中驱动默认已经支持,可以做到即插即用。

但是如果我们选用了列表外的sensor型号,即非Camera Partner的产品,就无法直接使用,比如我想用Sony的IMX472、 IMX252,思特威的SC2210、SC235HGS等,则需要进行配套的硬件开和驱动软件的升级。为此,奥唯思为您提供了完整的解决方案,可搭载任意相机,也可以选FPGA集成ISP。

FPGA模拟MIPI相机接入Jetson方案  

如下图所示:方案采用易灵思钛金16nm的FPGA Ti60F225,通过MIPI CSI RX采集图像传感器的数据,在FPGA内部经过一系列复杂的ISP运算后,再通过MIPI CSI TX将图像数据发送给后端。    

图片

其中VC-MIPI-AGX为奥唯思自研的配套NVIDIA Jetson AGX Orin开发者套件的 MIPI接入子卡。如下图所示,为AGX的MIPI卡槽,以及我们设计的接入子卡。我们使用高速稳定的TypeC 3.0数据线,来传输MIPI信号。当前方案可支持2个MIPI CSI通道,单通道最高支持6Gbps带宽。目前方案已经成功接入AGX,稳定可靠,烤机测试通过。

图片

易灵思MIPI介绍     

易灵思16nm钛金系列FPGA的低功耗、高带宽、小体积特点,充分赋能终端产品使其具有创新性和竞争力。钛金系列Ti60可支持MIPI/LVDS等接口的多摄像头输入、多类型屏幕驱动、高性能RISC-V软核等功能,适用于各种相机和传感器系统等场景应用。   

图片

因此我们选用了易灵思的FPGA作为主控,充分利用其高速低功耗的特性,完成了MIPI CSI的采集、ISP图像处理,以及MIPI CSI的发送。易灵思Ti60 FPGA的MIPI PHY为1.5Gbps单通道,4 lane支持6Gbps,在85%有效带宽下,评估有效的传输分辨/帧率,如下:

图片

采用RGB888或者Bayer 8bit传输,各有优缺点:   

  •  RGB888 8bit传输,AGX可以直接获取图像数据,好处是没有额外的源数据处理开销;坏处是由于Bayer的3倍带宽,当前FPGA方案只能支持到1080P60方案。

  • Bayer 8bit传输,带宽是RGB888的1/3,因此可以支持更高的分辨率(4K60),同时在同等分辨率下,比RGB888可以支持更长的传输距离;不足的是需要AGX的CPU(Neon)来处理Bayer2RGB算法,目前测试1080P120消耗了1个CPU 43%的资源(共12个CPU,单核资源消耗如下图所示)。

综合评估下,由于当前只用了AGX 1个CPU,并且用户的算法主要在GPU上跑CUDA,因此采用Bayer传输的优势更明显。

图片

奥唯思ISP介绍     

NVIDIA同样可以做完整的ISP图像处理,甚至ASIC实现的ISP功能与性能相比FPGA更强大,但在此方案中,我们不得不采用FPGA进行完整的ISP处理,主要原因如下: 

  • 针对选定的Sensor,NVIDIA仍需要大量的Tuning工作;

  • NVIDIA的ISP不支持8bit RAW输入模式;

  • 部分应用工程师,并不熟悉ISP领域;

  • 部分ISP算法,NVIDIA并没有包含;

  • 低延时的需求,需要流水线完成ISP。

鉴于此,我们采用FPGA完成了一套完整的ISP处理流程,MIPI CSI直接输出经过FPGA图像处理完后的数据,NVIDIA AGX拿到RGB数据后,用户可以直接进行后续的应用算法。基于易灵思FPGA的ISP图像处理Pipeline,如下所示:

图片

奥唯思自研的流水线ISP,相关的Feature,如下表所示:

图片

AGX Orin接入驱动     

硬件方面,采用奥唯思设计的VC-MIPI-AGX子卡,实现了用户MIPICSI转AGX Samtec的输入。软件方面,则需要根据硬件板卡和模组设计,开发特定的Sensor驱动适配。如果有特殊定制的控制需求,比如ISP参数的控制,则需要修改Camera框架,进行深度定制开发。   

出于对系统安全性的保护,Jetson出厂时的,内核编译打开了驱动签名选项,如果新开发的驱动签名证书不匹配,则驱动ko文件无法加载。但是一般用户无法拿到NVIDIA编译出厂镜像时的签名证书,无法解决ko签名问题。如果需要使用新的sensor模组,则需要重新编译内核、生成全系统镜像、烧录系统,工作量相当巨大。

奥唯思为客户解决上述软硬件难题,并创造性地使用typeC 3.0线缆作为数据传输介质,连接可靠,通信稳定。基于NVIDIA Jetson AGX Orin开发者平台,接入的自研的FPGA MIPI ISP相机连接环境,如下所示:

图片

效果展示

图片

### 实现多个MIPI相机时间同步的关键要素 在RK3588平台上实现多个MIPI摄像头的时间同步涉及硬件设计和软件配置两方面的工作。为了确保多路视频输入能够保持良好的同步效果,需要考虑以下几个因素: #### 1. 硬件层面的支持 RK3588芯片本身支持多达四个独立的MIPI CSI-2接收通道[^3],这使得连接多个摄像设备成为可能。然而,在实际应用中还需要注意以下几点来保障不同传感器之间的帧率一致性以及触发信号的一致性。 对于时间敏感的应用场景来说,建议采用外部同步脉冲发生器或者利用SoC内部定时资源生成全局同步信号,并将其分配给各个相连的图像采集模块作为曝光控制依据。这样可以有效减少由于各自工作频率差异所造成的相位偏移现象。 #### 2. 软件驱动层面上的操作 通过修改内核源码中的`device tree source (DTS)`文件定义各组CSI接口参数设置,特别是涉及到像素时钟、HS/LS切换延时等关键属性值调整部分[^2]。具体而言就是针对每一个接入端口分别指定恰当的数据传输速率及时序关系,从而达到最佳匹配状态;与此同时也要兼顾到整体系统的功耗表现与稳定性考量。 另外值得注意的是,当存在多条并行链路同时运作的情况下,应该仔细校准每一路物理信道间的传播延迟特性,防止因线路长度不均而导致的画面撕裂等问题出现。为此可以在Linux Kernel空间编写相应的底层函数用于动态监测并补偿上述偏差量级。 ```c // Example of configuring HS trail timing parameter via sysfs interface. static ssize_t hs_trail_or_post_3_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { unsigned int hs_trail; sscanf(buf, "%u", &hs_trail); regmap_update_bits(samsung->regmap, DPHY_MC_TIME_CON2, T_HS_TRAIL_MASK, hs_trail); regmap_update_bits(samsung->regmap, DPHY_MD3_TIME_CON2, T_HS_TRAIL_MASK, hs_trail); return count; } ``` 此代码片段展示了如何通过sysfs接口更新特定寄存器内的高态拖尾(HS Trail)计数值,这对于优化高速模式下的数据交换过程至关重要。不过这只是众多可调参项之一而已,在追求极致精度的过程中往往还需综合权衡其他关联变量的影响范围。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值