【相机方案】智能驾驶的域控采用的“串行器和解串器”方案的总结(持续更新),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

相关文章

MySQL分表自动化创建的实现方案

《MySQL分表自动化创建的实现方案》在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在... 目录一、项目目的二、实现过程(一)mysql 事件调度器结合存储过程方式1. 开启事件调度器2. 创

Kubernetes常用命令大全近期总结

《Kubernetes常用命令大全近期总结》Kubernetes是用于大规模部署和管理这些容器的开源软件-在希腊语中,这个词还有“舵手”或“飞行员”的意思,使用Kubernetes(有时被称为“... 目录前言Kubernetes 的工作原理为什么要使用 Kubernetes?Kubernetes常用命令总

Redis缓存问题与缓存更新机制详解

《Redis缓存问题与缓存更新机制详解》本文主要介绍了缓存问题及其解决方案,包括缓存穿透、缓存击穿、缓存雪崩等问题的成因以及相应的预防和解决方法,同时,还详细探讨了缓存更新机制,包括不同情况下的缓存更... 目录一、缓存问题1.1 缓存穿透1.1.1 问题来源1.1.2 解决方案1.2 缓存击穿1.2.1

Linux Mint Xia 22.1重磅发布: 重要更新一览

《LinuxMintXia22.1重磅发布:重要更新一览》Beta版LinuxMint“Xia”22.1发布,新版本基于Ubuntu24.04,内核版本为Linux6.8,这... linux Mint 22.1「Xia」正式发布啦!这次更新带来了诸多优化和改进,进一步巩固了 Mint 在 Linux 桌面

Python中实现进度条的多种方法总结

《Python中实现进度条的多种方法总结》在Python编程中,进度条是一个非常有用的功能,它能让用户直观地了解任务的进度,提升用户体验,本文将介绍几种在Python中实现进度条的常用方法,并通过代码... 目录一、简单的打印方式二、使用tqdm库三、使用alive-progress库四、使用progres

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

Ubuntu 24.04 LTS怎么关闭 Ubuntu Pro 更新提示弹窗?

《Ubuntu24.04LTS怎么关闭UbuntuPro更新提示弹窗?》Ubuntu每次开机都会弹窗提示安全更新,设置里最多只能取消自动下载,自动更新,但无法做到直接让自动更新的弹窗不出现,... 如果你正在使用 Ubuntu 24.04 LTS,可能会注意到——在使用「软件更新器」或运行 APT 命令时,

Java向kettle8.0传递参数的方式总结

《Java向kettle8.0传递参数的方式总结》介绍了如何在Kettle中传递参数到转换和作业中,包括设置全局properties、使用TransMeta和JobMeta的parameterValu... 目录1.传递参数到转换中2.传递参数到作业中总结1.传递参数到转换中1.1. 通过设置Trans的

Java解析JSON的六种方案

《Java解析JSON的六种方案》这篇文章介绍了6种JSON解析方案,包括Jackson、Gson、FastJSON、JsonPath、、手动解析,分别阐述了它们的功能特点、代码示例、高级功能、优缺点... 目录前言1. 使用 Jackson:业界标配功能特点代码示例高级功能优缺点2. 使用 Gson:轻量