GMSL介绍

随着汽车智能化的不断提升,特别是高级辅助驾驶系统(ADAS)的普及,越来越多的车载摄像头和传感器需要与汽车电子控制单元(ECU)进行数据通信,对车内数据传输的带宽、实时性和稳定性的要求也越来越高,由此诞生了GMSL高速信号传输方式,本文我们将详细介绍GMSL高带宽数据接入的方法。

GMSL介绍

GMSL:Gigabit Multimedia Serial Link是Maxim公司(http://www.maximintegrated.com)推出的一种高速串行接口,适用于视频、音频和控制信号的传输,使用50Ω同轴电缆或100Ω屏蔽双绞线电缆,传输距离可达15m或更长。

GMSL技术的特点是将并行数据转换成串行数据发送,在接收端将串行数据解码为并行数据,其优势有:高速率、远距离、抗干扰性强等。目前基于GMSL架构的通信协议最高可实现单通道6Gbps的速率(参考USB3.0仅有2.5Gbps),在未来会有越来越广泛的应用。
图1 GMSL的串行-解串数据链路示意图
图1 GMSL的串行-解串数据链路示意图

以ADAS摄像头为例,一般来讲,摄像头除了对外发送捕获到的图像数据外,还会发送帧同步信号,像素时钟等信息,此外还有电源供给等等,因此它需要由许多信号线组成的一个并行总线。如之前所说,并行总线在高速的数据传输过程中,是不占据优势,因此我们需要将这些并行的信号合并为串行信号,再通过更高频率进行传输。
在这里插入图片描述
图2 使用并行总线的摄像头模组

GMSL技术的诞生就是为了解决并行数据到串行数据,再从串行数据还原为并行数据的问题。GMSL是SerDes的一种,SerDes是Serializer/Deserializer的缩写,即串行器和解串器。SerDes的串行-解串可以通过数模电路或者FPGA来实现。但是在商用领域,出于性价比的考量,往往会使用独立IC芯片来实现这个功能,GMSL就是由Maxim公司开发的一系列串行-解串芯片的集合。

GMSL技术经历了很长的发展时间,第一代的GMSL从2003年开始,最高支持3Gbps的传输速率,足够传输1百万-3百万像素(1080p/30fps)的视频流数据。从2017年之后,GMSL2代技术出现,传输带宽已经提升至6Gbps,可轻松传输8百万像素(4K/30fps)的视频流数据。
在这里插入图片描述
图3 GMSL1代技术的发展历程

GMSL串行器-解串器

Maxim目前同时提供两代的GMSL产品,分别是GMSL1以及GMSL2,其中部分GMSL2产品兼容GMSL1。目前常见的GMSL串行-解串芯片如表1所示。其中兼容GMSL1/2的器件,既可以接入GMSL1也可以接入GMSL2。例如:

a) MAX9296解串器,既可以接入MAX96701(GMSL1)也可以接入MAX96717(GMSL2);
b) MAX9295A串行器,既可以接入MAX9286(GMSL1),也可以接入MAX96712(GMSL2);

除此之外,GMSL1的串行器无法接入GMSL2的解串器,反之亦然。

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

表1 GMSL串行器-解串器对应配置表

从SoC的角度来看,如果忽略串行-解串的过程,可以认为SoC直接接入到相机Sensor上。由于GMSL同轴线的传输延迟几乎可以忽略不计(ns级别),相当于将原来只能短距离传输的高速并行信号(MIPI/I2C/CLK等)的传输距离延长,真正做到高带宽、低延迟、长距离的数据传输。

GMSL数据接入方式

  1. NVIDIA 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。
在这里插入图片描述

图4 解串器转接板的硬件连接方式

硬件架构如图5所示:

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

图5 GMSL摄像头接入Jetson的硬件框图

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

在这里插入图片描述

图6 Jetson的GMSL摄像头驱动架构

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

GMSL开发板

MAX9296开发板

链接: https://item.taobao.com/item.htm?id=678742402278
在这里插入图片描述
· 同时解串2路2M(1080p)相机,或者1路5M/8M(4K)GMSL2相机
· 10米以上稳定图像传输
· 支持Jetson Nano / Xavier NX / Jetson AGX Xavier / Orin
· 支持MAX9295/MAX96717等加串器
· 支持同步触发(需相机支持)
· 19V Jetson配套电源输入,同时输出19V供给Jetson。仅需一块电源
· I2C地址,6Gbps/3Gbps可拨码配置切换
· 15Pin MIPI相机接口(Jetson Xavier NX以及树莓派3/4相机接口)
· 提供芯片数据手册,电路原理图,BOM清单,驱动源代码

MAX9295开发板

链接:https://item.taobao.com/item.htm?id=686405894522
在这里插入图片描述

4路GMSL2解串板

链接:https://item.taobao.com/item.htm?id=709831353860
在这里插入图片描述
· 2块MAX9296A芯片级联,8Lane支持20Gbps总带宽
· 同时解串4路2M(1080p)/5M/8M(4K)GMSL2相机
· 10米以上稳定图像传输
· 支持Jetson AGX Xavier / Orin
· 支持MAX9295/MAX96717等加串器
· 支持同步触发(需相机支持),预留外部同步信号输入接口
· 19V Jetson配套电源输入,无需额外电源适配器
· I2C地址,6Gbps/3Gbps可拨码配置切换

结束

### GMSL2 的定义、使用与方法介绍 #### 1. GMSL2 技术概述 Gigabit Multimedia Serial Link (GMSL) 是一种基于 SerDes(Serializer/Deserializer)技术的高速串行通信协议。它通过将并行数据转换为串行数据来实现高效的数据传输,并在接收端重新还原为并行数据[^1]。第二代 GMSL(即 GMSL2)自 2017 年推出以来,显著提升了传输带宽至 6Gbps,能够满足高分辨率视频流的需求,例如支持高达 8 百万像素(4K/30fps)的视频传输[^2]。 #### 2. GMSL2 的主要特点 - **高带宽**:相比第一代 GMSL 提供的最大 3Gbps 带宽,GMSL2 将其扩展到 6Gbps,适用于更高清晰度的多媒体应用。 - **多协议支持**:除了视频和音频数据外,GMSL2 还可以承载多种控制信号,如 GPIO、SPI、I²C 和 UART 等通讯协议[^3]。 - **低延迟设计**:优化了数据传输路径中的延迟问题,适合实时性要求较高的场景。 - **可靠性增强**:引入了更完善的错误检测机制,比如针对空闲字错误的监控功能,从而提高了系统的稳定性[^4]。 #### 3. GMSL2 的典型应用场景 GMSL2 主要应用于汽车电子领域以及工业自动化设备中对于高清图像处理需求较大的场合。具体来说,在现代智能驾驶辅助系统(ADAS)里,摄像头模组与中央处理器之间的互联通常会采用这种标准;另外还包括仪表盘显示单元同主机板卡间的连接等情形。 #### 4. 实现方式说明 以下是关于如何部署实施一套完整的基于GMSL2解决方案的一些指导原则: ##### a. 硬件选型建议 选择合适的物理层芯片组至关重要,这些组件应具备良好的兼容性和性能指标以匹配目标应用环境下的负载特性。常见的供应商提供了一系列专门用于构建此类网络的产品线。 ##### b. 软件驱动开发要点 为了充分发挥硬件潜力,必须编写相应的固件程序来进行初始化配置操作以及日常运行期间的状态管理任务。这可能涉及到对特定寄存器位域值设定等工作细节。 下面给出一段简单的伪代码示例展示部分逻辑流程: ```c // 初始化序列 void gmsl_init() { configure_serializer(); // 配置串行器参数 set_bandwidth(BW_6G); // 设置带宽为6Gbps enable_error_detection(); // 启用错误检测模块 while (!link_established()) { // 循环直到链路建立成功 retry_connection(); } } // 错误处理函数 void handle_idle_word_errors(uint error_count) { if (error_count >= DEC_ERR_THRESHOLD) { log_error("Idle word decoding failed"); reset_channel(); // 如果超过阈值则重置信道 } } ``` 上述片段仅作为概念演示用途,请依据实际项目情况调整具体内容结构形式。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值