【相机方案】智能驾驶的域控采用的“串行器和解串器”方案的总结(持续更新),SerDes,GMSL

本文主要是介绍【相机方案】智能驾驶的域控采用的“串行器和解串器”方案的总结(持续更新),SerDes,GMSL,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SerDes是Serializer/Deserializer的缩写,即串行器和解串器。由于同轴线的传输延迟几乎可以忽略不计(ns级别),相当于将原来只能短距离传输的高速并行信号(MIPI/I2C/CLK等)的传输距离延长,真正做到高带宽、低延迟、长距离的数据传输。

  • SerDes的串行-解串可以通过数模电路或者FPGA来实现。
  • 在商用领域,出于性价比的考量,往往会使用独立IC芯片来实现这个功能,GMSL是SerDes的一种。GMSL就是由Maxim公司开发的一系列串行-解串芯片的集合。
  • GMSL适用于视频、音频和控制信号的传输,使用50Ω同轴电缆或100Ω屏蔽双绞线电缆,传输距离可达15m或更长。目前基于GMSL架构的通信协议最高可实现单通道6Gbps的速率(参考USB3.0仅有2.5Gbps)

在这里插入图片描述

文章目录

  • 产品发展
  • 1 Jetson Xavier平台
  • 2 PC电脑/工控机
  • 3 DRIVE Xavier
  • 4 TDA4 GMSL1 自主域控 MAX9286与MAX96705
  • 5 寒武纪行歌 SD5223C 开发板 max96712
  • 6 orin
  • 参考

产品发展

GMSL技术经历了很长的发展时间,第一代的GMSL从2003年开始,最高支持3Gbps的传输速率,足够传输1百万-3百万像素(1080p/30fps)的视频流数据。从2017年之后,GMSL2代技术出现,传输带宽已经提升至6Gbps,可轻松传输8百万像素(4K/30fps)的视频流数据。
在这里插入图片描述
Maxim目前同时提供两代的GMSL产品,分别是GMSL1以及GMSL2,其中部分GMSL2产品兼容GMSL1。目前常见的GMSL串行-解串芯片如表1所示。其中兼容GMSL1/2的器件,既可以接入GMSL1也可以接入GMSL2。例如:

a) MAX9296解串器,既可以接入MAX96701(GMSL1)也可以接入MAX96717(GMSL2);

b) MAX9295A串行器,既可以接入MAX9286(GMSL1),也可以接入MAX96712(GMSL2);

串行器解串器
GMSL1MAX96701/MAX96715MAX9286
12bit DVP IN 1 SIO OUT@1.76Gbps4IN 1OUT@MIPI 1.5Gbps
GMSL1/2 兼容MAX9295AMAX9296MAX96722
4-MIPI IN 1 SIO OUT@6Gbps2IN 2OUT@MIPI 2.5Gbps4IN 1OUT@MIPI 2.5Gbps
GMSL2MAX96717/MAX96717FMAX96712
4-MIPI IN 1 SIO OUT@6Gbps/3Gbps4IN 1OUT@MIPI 2.5Gbps

1 Jetson Xavier平台

以Jetson Xavier为代表的Arm架构下的SoC系统,通常没有直接的GMSL接口,而是提供MIPI信号接口,因此需要通过外挂解串板的方式来实现,以下方的配置为例介绍。

硬件连接方式如图4所示,摄像头包含Sensor(IMX390)和串行器(MAX9295),两路摄像头通过GMSL Link同轴线(Coax Cable)连接到转接板(MAX9296 Deserializer Board),转接板再通过排线(MIPI White Cable)接入到Jetson Xavier开发板的CSI Port。
在这里插入图片描述
硬件架构如图5所示:

  • Sensor(IMX390)接口为MIPI-CSI,数据格式为1080p/30fps/RAW12
  • 每路摄像头搭配1个MAX9295串行器(Serializer)
  • 两路GMSL Link共同连接到解串器MAX9296
  • MAX9296解串器接入到Jetson的CSI port(以Port A为例)

在这里插入图片描述
驱动层的结构如图6所示,驱动最上层是v4l2的架构,是Linux系统下的通用相机驱动框架。中间层是sensor驱动,用于控制视频流的开关、设置图像参数等。最底层是MAX9295/9296的驱动,负责拉通数据链路。

在这里插入图片描述
Sensor驱动程序会在设备启动(Device boot)的时候,配置串行器-解串器的参数,建立起数据链路(data streaming pipeline)。一旦数据链路建立起来后,就可以分别对串行器、解串器、Sensor配置寄存器参数,控制它们的工作模式,或进行数据流的开关操作等。

2 PC电脑/工控机

PC/工控机主要运行在x86平台,这类系统通常接口有:USB/以太网/PCIE等。USB3.0的传输带宽在1Gbps – 2.5Gbps左右,以太网的带宽在100Mbps – 1000Mbps之间,PCIE的带宽高于10Gbps。

如表2所示,1M(100万像素) - 8M(8百万像素)摄像头的数据传输带宽在655Mbps – 4.4Gbps。从带宽的限制来看,USB3.0最高只能支持到2M,以太网最高支持到1M,只有PCIE可以满足所有的传输需求。

像素传输带宽USB3.0Ethernet (以太网)PCIE
1M655Mbps
2M1.3Gbps×
8M4.4Gbps××

表2 不同接口的传输带宽

PCIE 其工作原理如下:

  1. 摄像头(Sensor+Serdes)的图像数据通过GMSL同轴连接线传输到采集卡的解串芯片(DeSerdes, MAX9296)上

  2. 解串芯片将数据通过MIPI/IIC传输到FPGA,FPGA解析数据流

  3. FPGA通过PCIE将数据存放至DDR4内存中

  4. 调用SDK获取内存数据

在这里插入图片描述

3 DRIVE Xavier

https://docs.nvidia.com/drive/driveworks-3.5/supported_sensors.html
在这里插入图片描述

在这里插入图片描述

使用 Entron 的F001A100BM0A,这是侧向2MP的相机

在这里插入图片描述
在这里插入图片描述

4 TDA4 GMSL1 自主域控 MAX9286与MAX96705

在这里插入图片描述

5 寒武纪行歌 SD5223C 开发板 max96712

在这里插入图片描述

GMSL1方案: 3Gbps
串行器解串器max96705和max96712,gms1通信,HIM参数的互相之间的设置;

在这里插入图片描述
GMSL2方案: 6Gbps
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

6 orin

https://developer.nvidia.cn/drive/ecosystem-orin
在这里插入图片描述

2MP
AR0233 H100 RAW 数量:4

8MP
AR0820 H120Y RAW 数量:2
AR0820 H30 RAW 数量:1

参考

https://zhuanlan.zhihu.com/p/497871767?utm_id=0
http://www.360doc.com/content/23/1122/19/40892371_1104930953.shtml

这篇关于【相机方案】智能驾驶的域控采用的“串行器和解串器”方案的总结(持续更新),SerDes,GMSL的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/885847

相关文章

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

Spring Gateway动态路由实现方案

《SpringGateway动态路由实现方案》本文主要介绍了SpringGateway动态路由实现方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录前沿何为路由RouteDefinitionRouteLocator工作流程动态路由实现尾巴前沿S

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

Rust 智能指针的使用详解

《Rust智能指针的使用详解》Rust智能指针是内存管理核心工具,本文就来详细的介绍一下Rust智能指针(Box、Rc、RefCell、Arc、Mutex、RwLock、Weak)的原理与使用场景,... 目录一、www.chinasem.cnRust 智能指针详解1、Box<T>:堆内存分配2、Rc<T>:

C#实现高性能拍照与水印添加功能完整方案

《C#实现高性能拍照与水印添加功能完整方案》在工业检测、质量追溯等应用场景中,经常需要对产品进行拍照并添加相关信息水印,本文将详细介绍如何使用C#实现一个高性能的拍照和水印添加功能,包含完整的代码实现... 目录1. 概述2. 功能架构设计3. 核心代码实现python3.1 主拍照方法3.2 安全HBIT

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详