【自动驾驶汽车通讯协议】GMSL通信技术以及加串器(Serializer)解串器(Deserializer)介绍
文章目录
- 0. 前言
- 1. GMSL技术概述
- 2. 为什么需要SerDes?
- 3. GMSL技术特点
- 4.自动驾驶汽车中的应用
- 5. 结论
0. 前言
按照国际惯例,首先声明:本文只是我自己学习的理解,虽然参考了他人的宝贵见解及成果,但是内容可能存在不准确的地方。如果发现文中错误,希望批评指正,共同进步。
随着自动驾驶技术和驾驶辅助系统(ADAS)的快速发展,车载摄像头成为了必不可少的传感器,这对车载数据传输提出了很高的要求。为了应对这一挑战,吉比特多媒体串行链路(GMSL, Gigabit Multimedia Serial Link)作为一种高速、长距离的串行通信技术应运而生。本文将详细介绍GMSL技术的工作原理及其在汽车领域的应用。

1. GMSL技术概述
GMSL技术是一种专为多媒体数据传输设计的串行链路技术,它能够在长距离上传输高清视频、音频和控制信号等大量数据,同时保持较低的功耗和电磁干扰(EMI)。GMSL技术的核心组件包括串行器(Ser)和解串器(Des),它们共同构成了SerDes(Serializer/Deserializer)系统,负责将并行数据转换为串行数据,并在接收端将串行数据恢复为并行数据。
GMSL SerDes解决方案示意图如下:

2. 为什么需要SerDes?
在GMSL多媒体数据传输中,SerDes(串行器/解串器)的核心任务是数据的串行化与解串行化:
- 串行化:在发送端,SerDes将来自源设备(例如摄像头)的并行数据流(例如视频)转换成高速串行数据流,以便通过单个或少量物理线路进行传输。
- 解串行化:在接收端,SerDes将接收到的串行数据流重新转换回并行数据流(例如视频),供目标设备(例如屏幕)处理。

具体来说,串行化有以下好处:
- 减少布线复杂性和成本
- 在传统的并行总线系统中,每条数据线都需要单独的导线,随着数据通道数量的增加,线束变得非常复杂且昂贵。
- SerDes通过将并行数据转换为高速串行数据流,大大减少了所需的物理线路数量,从而降低了线束的成本和重量。
- 提高传输速率
- SerDes能够支持非常高的数据传输速率,这对于高清视频传输尤其重要。
- 改善信号质量
- 高速并行总线容易受到信号完整性和电磁干扰的影响。
- 通过使用SerDes技术,可以在更长的距离上传输高质量的信号,同时减少信号衰减和干扰。
- 节省空间
- 使用SerDes技术可以减少所需的电缆数量和体积,从而节省空间并减轻重量。
- 提高灵活性
- SerDes技术使得GMSL可以支持多种不同类型的连接介质,包括同轴电缆和屏蔽双绞线(STP)。
- 这种灵活性允许制造商根据具体应用选择最合适的线缆类型,从而优化性能和成本。
- 功耗和散热
- SerDes技术有助于降低功耗和减少发热,这对于汽车电子系统来说是非常重要的因素。

- SerDes技术有助于降低功耗和减少发热,这对于汽车电子系统来说是非常重要的因素。
简而言之,SerDes在GMSL多媒体数据传输中的主要任务是确保数据能够高效、准确且可靠地从发送端传输到接收端,同时最小化信号质量和传输距离带来的影响。这对于实现在汽车和其他应用环境中高速、长距离的多媒体数据传输至关重要。
3. GMSL技术特点
GMSL技术具有以下几个显著特点:
- 高速率:GMSL1 支持的数据传输速率通常为 3Gbps 或更低。GMSL2 是第二代技术,它提升了数据传输带宽至 6Gbps,可以轻松传输 800 万像素(4K/30fps)的视频流数据;
- 远距离:支持最长15米的屏蔽双绞线(STP)或同轴电缆传输,这对于车辆内部的布局来说是非常有利的;
- 抗干扰性强:采用了串行传输方式,大大减少了线束的数量,满足严格的EMC要求,内置扩频功能以改善链路的电磁兼容性;
- 支持多种数据类型:不仅可以传输视频和音频信号,还能传输控制信号,适合于多媒体系统的集成;
- 功能安全:GMSL支持ASIL B级别的功能安全认证,适用于自动驾驶汽车相关的应用。
4.自动驾驶汽车中的应用
下面以美信公司的MAX967XX GMSL/SerDes产品为例,说明 GMSL/SerDes在ADAS中的应用。

上图是GMSL/SerDes应用在ADAS系统中Camera视频数据传输的示例,该产品系统具有以下特征:
-
控制通道错误检测和重传
- 确保配置链接时的100%准确性
- 可靠的通信,用于通过控制链路访问的外围设备
-
交叉开关
- 并行输入到并行输出
- 为一个主机板启用不同的摄像头模块
- 为多个主机板启用一个摄像头模块
-
减少EMI/EMC
- 可编程输出扩频谱
- 将输入时钟传播到解串器的能力
- 高免疫力模式,以承受控制通道的EMC容忍度
-
增强电缆驱动
- 50Ω同轴或100Ω屏蔽双绞线
- 可编程预加重和去加重允许全速15米电缆
- 可用的线路故障监控
-
视窗宽度监视器和自适应均衡化
- 内置长电缆均衡器
- 视窗宽度监视器可以触发均衡器重新调整
-
最高可达1.74Gbps的灵活数据输入
- 12.5MHz至87MHz的14位输入+ HSYNC和VSYNC
- 36.66MHz至116MHz的12位输入+ HSYNC和VSYNC
-
符合AEC-Q100资格
-
专用帧同步GPO
5. 结论
GMSL/SerDes技术凭借其高速率、远距离传输能力和强大的抗干扰性,成为了汽车行业中多媒体数据传输的理想解决方案。随着自动驾驶技术的进步,GMSL/SerDes技术将继续发挥重要作用,推动汽车电子系统向着更高性能和更高效的方向发展。
相关文章:
【自动驾驶汽车通讯协议】GMSL通信技术以及加串器(Serializer)解串器(Deserializer)介绍
文章目录 0. 前言1. GMSL技术概述2. 为什么需要SerDes?3. GMSL技术特点4.自动驾驶汽车中的应用5. 结论 0. 前言 按照国际惯例,首先声明:本文只是我自己学习的理解,虽然参考了他人的宝贵见解及成果,但是内容可能存在不准…...
Uiautomator2与weditor配置一直报错咋办
作者在配置这两个的时候绞尽脑汁了,u2的init总是报错并且无法自动在手机上安装atx,weditor可以打开但是只要对元素操作或者任意操作就会让你去重新init,搞得作者焦头烂额,而且网上各种各样的报错信息眼花缭乱,作者几乎…...
Java后端面试题:MySQL篇
目录 MySQL基础部分 1. SELECT语句完整的执行顺序是什么? 2. 说一说内连接和外连接。 3. 请说说数据库三大范式。 4. 请你说说视图的作用,视图可以更改么? 架构 5. 请你说一说MySQL架构。 6. 请你说说一条SQL语句的执行过程ÿ…...
# Excel 操作大全
Excel 操作大全 文章目录 Excel 操作大全单元格文本换行计算SUM 单元格 文本换行 设置自动换行,在文本前面使用 AltEnter键即可换行文本前面可以输入空格实现段前缩进的效果 计算SUM 求和函数...
javascript中快速获取最大值和最小值
在 ES6 中,你可以使用 Math.max 和 Math.min 函数来获取一组数字中的最大值和最小值。这两个函数都接受一个可变数量的参数,并返回这些参数中的最大值或最小值。 以下是一个示例: const numbers [1, 2, 3, 4, 5];const max Math.max(...n…...
git merge啥意思
git merge 是 Git 中的一个命令,用于将一个分支的更改合并到另一个分支中。当你在一个项目中有多个开发人员同时工作,或者你在不同的特性分支上开发新功能时,git merge 命令就非常有用。它可以帮助你将不同分支上的更改整合在一起。 git mer…...
Web编程---Servlet技术
文章目录 一、目的二、原理三、过程1. TestServlet02文件演示效果2. TestServlet03文件演示效果3. TestServlet04与TestServlet05文件演示效果4. 控制台展示生命周期过程 四、代码web.xml文件TestServlet02.java文件TestServlet03.java文件TestServlet04.java文件TestServlet05…...
【cocos creator】输入框滑动条联动小组建
滑动条滑动输入框内容会改变 输入框输入,滑动条位置改变 const { ccclass, property } cc._decorator;ccclass() export default class SliderEnter extends cc.Component {property({ type: cc.Float, displayName: "最大值", tooltip: "" }…...
Flink时间窗口程序骨架结构
前言 Flink 作业的基本骨架结构包含三部分:创建执行环境、定义数据处理逻辑、提交并执行Flink作业。 日常大部分 Flink 作业是基于时间窗口计算模型的,同样的,开发一个Flink时间窗口作业也有一套基本的骨架结构,了解这套结构有助…...
计算机视觉之可做什么
1、计算机视觉的应用 计算机视觉在我们生活中已经有了很广泛的应用,在我们可见、不可见;可感知、不可感知的地方,深深地影响了我们的生活、生产方式。 日常生活:美颜相机、火车站刷脸进站、线上办理业务的身份认证、自动驾驶等等…...
观察者模式的思考
观察者模式由来 观察者模式(Observer Pattern)是一种行为型设计模式,它的起源可以追溯到20世纪90年代初,由设计模式四人帮(Erich Gamma, Richard Helm, Ralph Johnson 和 John Vlissides)在其著作《设计模…...
ORACLE SELECT INTO 赋值为空,抛出 NO DATA FOUND 异常
例子: DECLARE ORDER_NUM VARCHAR2(20); BEGIN SELECT S.ORDER_NUM INTO ORDER_NUM FROM SALES_ORDER S WHERE S.ID122344; DBMS_OUTPUT.PUT_LINE(单号: || ORDER_NUM); END; 在查询结果为空的情况下,以上代码会报错:未找到任何数据 解决方…...
GPT提示词
参考 提示词大全: GPT提示词大全(中英文双语)持续更新 提示词.com...
Redis协议详解及其异步应用
目录 一、Redis Pipeline(管道)概述优点使用场景工作原理Pipeline 的基本操作步骤C 示例(使用 [hiredis](https://github.com/redis/hiredis) 库) 二、Redis 事务概述事务的前提事务特征(ACID 分析)WATCH 命…...
LeetCode213:打家劫舍II
题目链接:213. 打家劫舍 II - 力扣(LeetCode) 代码如下 class Solution { public:int rob(vector<int>& nums) {if(nums.size() 0) return 0;if(nums.size() 1) return nums[0];if(nums.size() 2) return max(nums[0…...
linux一二三章那些是重点呢
第一章 静态库动态库的区别 什么是库 库文件是计算机上的一类文件,可以简单的把库文件看成一种代码仓库,它提供给使用者一些可以直接 拿来用的变量、函数或类。 如何制作 静态动态库 静态库: GCC 进行链接时,会把静态库中代码打…...
C语言中的程序入口:超越main函数的探索
在C语言中,尽管main函数是标准程序的默认入口点,但借助编译器特性和链接器选项,我们可以指定其他函数作为程序的入口。GCC编译器通过-e选项,允许我们将任何符合签名的函数作为程序的入口。这一特性可以用于特定的实验需求、特定系…...
《面试之MQ篇》
《面试之MQ篇》 1. 为什么要使用MQ 首先,面试官问的第一个问题或者说是逼问的一个问题:“为什么要使用MQ”其实面试官问这个问题就是想考察你MQ的特性,这个时候呢,我们必须要答出三点:解耦、异步、削峰。 1. 解耦 1. 传统系统…...
Git 分支操作-开发规范
一、背景 在实际开发中,一般在主分支的基础上单独创建一个新的分支进行开发,最后合并到master分支,而不是直接在master分支进行开发。 二、新建分支 1、初始状态,local为本地分支,remote为远程分支 2、单击 “Remot…...
JSONArray根据指定字段去重
JSONArray dataList new JSONArray();这儿省略dataList 加数据的过程 dataList new JSONArray(dataList.stream().distinct().collect(Collectors.toList())); Set<String> timestamps new HashSet<>();根据时间字段去重 dataList dataList.stream().map(obj -…...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...
数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...
DAY 26 函数专题1
函数定义与参数知识点回顾:1. 函数的定义2. 变量作用域:局部变量和全局变量3. 函数的参数类型:位置参数、默认参数、不定参数4. 传递参数的手段:关键词参数5 题目1:计算圆的面积 任务: 编写一…...
