随着汽车智能化的不断提升,特别是高级辅助驾驶系统(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的串行-解串数据链路示意图
以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的解串器,反之亦然。
串行器 | 解串器 | ||
---|---|---|---|
GMSL1 | MAX96701/MAX96715 | MAX9286 | |
12bit DVP IN 1 SIO OUT@1.76Gbps | 4IN 1OUT@MIPI 1.5Gbps | ||
GMSL1/2 兼容 | MAX9295 | MAX9296 | MAX96722 |
4-MIPI IN 1 SIO OUT@6Gbps/3Gbps | 2IN 2OUT@MIPI 2.5Gbps | 4IN 1OUT@MIPI 2.5Gbps | |
GMSL2 | MAX96717/MAX96717F | MAX96712 | |
4-MIPI IN 1 SIO OUT@6Gbps | 4IN 4OUT@MIPI 2.5Gbps |
表1 GMSL串行器-解串器对应配置表
从SoC的角度来看,如果忽略串行-解串的过程,可以认为SoC直接接入到相机Sensor上。由于GMSL同轴线的传输延迟几乎可以忽略不计(ns级别),相当于将原来只能短距离传输的高速并行信号(MIPI/I2C/CLK等)的传输距离延长,真正做到高带宽、低延迟、长距离的数据传输。
GMSL数据接入方式
- 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可拨码配置切换