当前位置: 首页 > news >正文

【自动驾驶汽车通讯协议】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将接收到的串行数据流重新转换回并行数据流(例如视频),供目标设备(例如屏幕)处理。
    **加粗样式**

具体来说,串行化有以下好处:

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

  1. 控制通道错误检测和重传

    • 确保配置链接时的100%准确性
    • 可靠的通信,用于通过控制链路访问的外围设备
  2. 交叉开关

    • 并行输入到并行输出
    • 为一个主机板启用不同的摄像头模块
    • 为多个主机板启用一个摄像头模块
  3. 减少EMI/EMC

    • 可编程输出扩频谱
    • 将输入时钟传播到解串器的能力
    • 高免疫力模式,以承受控制通道的EMC容忍度
  4. 增强电缆驱动

    • 50Ω同轴或100Ω屏蔽双绞线
    • 可编程预加重和去加重允许全速15米电缆
    • 可用的线路故障监控
  5. 视窗宽度监视器和自适应均衡化

    • 内置长电缆均衡器
    • 视窗宽度监视器可以触发均衡器重新调整
  6. 最高可达1.74Gbps的灵活数据输入

    • 12.5MHz至87MHz的14位输入+ HSYNC和VSYNC
    • 36.66MHz至116MHz的12位输入+ HSYNC和VSYNC
  7. 符合AEC-Q100资格

  8. 专用帧同步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语句的执行过程&#xff…...

# 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

题目链接&#xff1a;213. 打家劫舍 II - 力扣&#xff08;LeetCode&#xff09; 代码如下 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一二三章那些是重点呢

第一章 静态库动态库的区别 什么是库 库文件是计算机上的一类文件&#xff0c;可以简单的把库文件看成一种代码仓库&#xff0c;它提供给使用者一些可以直接 拿来用的变量、函数或类。 如何制作 静态动态库 静态库&#xff1a; GCC 进行链接时&#xff0c;会把静态库中代码打…...

C语言中的程序入口:超越main函数的探索

在C语言中&#xff0c;尽管main函数是标准程序的默认入口点&#xff0c;但借助编译器特性和链接器选项&#xff0c;我们可以指定其他函数作为程序的入口。GCC编译器通过-e选项&#xff0c;允许我们将任何符合签名的函数作为程序的入口。这一特性可以用于特定的实验需求、特定系…...

《面试之MQ篇》

《面试之MQ篇》 1. 为什么要使用MQ 首先,面试官问的第一个问题或者说是逼问的一个问题&#xff1a;“为什么要使用MQ”其实面试官问这个问题就是想考察你MQ的特性&#xff0c;这个时候呢&#xff0c;我们必须要答出三点&#xff1a;解耦、异步、削峰。 1. 解耦 1. 传统系统…...

Git 分支操作-开发规范

一、背景 在实际开发中&#xff0c;一般在主分支的基础上单独创建一个新的分支进行开发&#xff0c;最后合并到master分支&#xff0c;而不是直接在master分支进行开发。 二、新建分支 1、初始状态&#xff0c;local为本地分支&#xff0c;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&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

全面解析各类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&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 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 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

go 里面的指针

指针 在 Go 中&#xff0c;指针&#xff08;pointer&#xff09;是一个变量的内存地址&#xff0c;就像 C 语言那样&#xff1a; a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10&#xff0c;通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !

我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...

DAY 26 函数专题1

函数定义与参数知识点回顾&#xff1a;1. 函数的定义2. 变量作用域&#xff1a;局部变量和全局变量3. 函数的参数类型&#xff1a;位置参数、默认参数、不定参数4. 传递参数的手段&#xff1a;关键词参数5 题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一…...