车载通信架构 —— DDS协议介绍

车载通信架构 —— DDS协议介绍

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。

老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:

屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节能减排。

本文主要

-> 1、标准及发展简介

-> 2、概念介绍

-> 3、应用场景及价值意义

一、标准及发展简介

DDS 的全称为 Data Distribution Service(数据分发服务 ),是由OMG联盟在2004年发布的中间件协议和应用程序接口标准。采用发布 / 订阅模型,提供丰富的 QoS(Quality of Service)服务质量策略,可满足各种分布式系统实时通信的低延迟、高可靠性、可扩展性的需求。DDS 被广泛应用在航空航天、船舶、军事、工业、医疗、交通、能源等领域中。

在分布式系统中,DDS 中间件是处于操作系统和用户应用程序之间的软件层,如图 4.5-12 所示。它将应用程序从操作系统,网络传输和低级数据格式的详细信息中抽象出来,以接口定义语言模式提供了支持多种编程语言 API,从而使应用在不同的操作系统、编程语言和处理器体系架构之间交换信息。DDS中间件管理了数据格式、发现、连接、可靠性、协议、传输选择、QoS、安全性等底层细节。

随着SOA在汽车领域的发展和运用,面向服务的通信中间件SOME/IP标准协议被引入到基础软件架构标准中。随着基础软件软硬解耦、软软解耦的发展,应用和服务之间除了服务能力的提供,还出现数据共享的需求。DDS正是以数据为中心的通信中间件,用Topic为单元实现数据的共享,按照用户定义的方式存储、发布和订阅数据,支持运行在不同系统上,不同开发语言的应用可以分布式的互相收发数据。

二、概念介绍

DDS 在软件框架中的模型如下图所示。DDS 通信的要素包括:

->(Domain)代表一个通信平面,由Domain ID唯一标识,只有在同一个域内的通信实体才可以通信;如果考虑车内通信,可以只划分1个Domain,也可以按照交互规则或其他规则,定义多个Domain;

-> 域参与者(Domain Participant)代表域内通信的应用程序的本地成员身份,简单来说,就是说明同一数据域内的通信成员;

-> 主题(Topic)是数据的抽象概念,由TopicName标识,关联相应数据的数据类型(DataType),如果把车内所涉及的所有Topic集合在一起,这样就形成一个虚拟的全局数据空间“Global Data Space”,进一步弱化了节点的概念,所以域参与者已经不是节点的概念了;

-> 发布者(Publisher)发布者,发布主题数据,至少与1个DataWriter关联,通过调用DataWriter的相关函数将数据发出去;

-> 订阅者(Subscriber)订阅者,订阅主题数据,至少与1个DataReader关联。当数据到达时,应用程序可能忙于执行其他操作或应用程序只是等待该消息时,这样就会存在两种情况,同步访问和异步通知;

-> 数据写入者(Data Writer)数据写入者,类似缓存,把需要发布的主题数据从应用层写入到DataWriter中;;

-> 数据读取者(Data Reader)数据读取者,同样可以理解为一种缓存,从订阅者得到主题数据,随之传给应用层。

详细内容可参见如下示意图:

DDS软件框架模型


DDS软件框架模型

DCPS(Data-Centric Publish-Subscribe )模型中的4个基础的概念:

-> 1、Publisher:它是负责创建和配置其实现的 DataWriters 的 DCPS 实体。 DataWriter 是负责实际发布消息的实体。每个 DataWriter 都有一个分配的 Topic,在该 Topic 下发布消息。

-> 2、Subscriber:它负责接收在其订阅的 Topic 下发布的数据。它为一个或多个 DataReader 对象提供服务,这些对象负责将新数据的可用性传达给应用程序。

-> 3、Topic:它是绑定发布和订阅的实体,在 DDS 域中是唯一的。通过 TopicDescription,它允许发布和订阅数据类型的统一。

-> 4、Domain:它用于链接所有发布者和订阅者,属于一个或多个应用程序,它们在不同主题下交换数据。这些参与域的单个应用程序称为 DomainParticipant,DDS域由Domain ID 标识。DomainParticipant通过定义Domain ID 以指定它所属的DDS域。具有不同Domain ID 的两个 DomainParticipants不知道彼此在网络中的存在。因此,可以创建多个通信通道。这适用于涉及多个DDS应用程序的场景,它们各自的 DomainParticipants相互通信,但这些应用程序不得干扰。DomainParticipant 充当其他 DCPS 实体的容器,充当发布者、订阅者和主题实体的工厂,并在域中提供管理服务。

三、应用场景及价值意义

作为AP中中间件协议的常用协议,DDS还广泛应用于如下地方:

-> 军事&航空航天

NASA Launch Control System,NASA 发射控制系统,DDS用于超过40万个控制点 , 能够智能地分发来自数千个传感器的数据,并允许在控制室进行数据的存储和查看。

另外,Next Generation Navy System基于DDS标准的、高性能的中间件促进系统更好地实现互操作性,并作为未来架构设计的基础。

-> 智能能源

Large Scale Fusion Reactor System,该系统是DDS用于聚变能源中心的远程控制系统的数据监控和采集。SIEMENS WIND POWER也使用DDS可用于控制多个分布式的风力涡轮机,通过数据的交互和采集提高发电效率。

-> 医疗设备&健康卫生系统

用于集成医院的医药诊断系统。DDS将设备、服务连接在一起,以支持实时的显示。DDS 可用于支持需要高效控制大规模数据流传输的系统,如CT成像系统等。

-> 仿真&测试系统

飞行员训练模拟器。CAE用DDS进行高效的数据分发,并作为下一代飞行模拟器的架构.

-> 汽车领域(敲重点)

用于 Hardware-in-the-loop(HIL)仿真,Audi使用DDS中间件实现测试系统中数百个设备的数据的实时交互。

DDS用于大众智能车的驾驶辅助及综合安全系统,用于结合来自雷达、激光测距仪和视频的数据,来协助安全操作,比如能够检测驾驶员的睡意,还能够检测车道偏离等。

Baidu Apollo系统中集成了DDS。

AUTOSAR 的AP平台在 R18-03 版本开始支持DDS,CP平台也已经开始规划支持DDS。

部分自动驾驶的SoC芯片预留了DDS接口,ROS2、Cyber RT 等操作系统也集成了开源DDS。

而对于面向服务的通信协议,DDS与SOME/IP各自的优劣?DDS能否替换SOME/IP等问题不在本文讨论。

搁笔分享完毕!

愿你我相信时间的力量

做一个长期主义者!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/156390.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

扒一扒集成运放uA741的内部电路

uA741是一款常见的集成运放芯片,这个是uA741的内部电路。 Q1与Q2组成的差动对是整个741运算放大器的输入端,这两个三极管是射极跟随器的连接方式,特点是输入电阻大,输出电阻小。 Q1和Q2的输出接至共基极组态的PNP晶体管Q3和Q4

JS VUE 用 canvas 给图片加水印

最近写需求,遇到要给图片加水印的需求。 刚开始想的方案是给图片上覆盖一层水印照片,但是这样的话用户直接下载图片水印也会消失。 后来查资料发现用 canvas 就可以给图片加水印,下面是处理过程。 首先我们要确认图片的格式,我们通…

缓存的力量:提升API性能和可扩展性

缓存是将频繁访问的数据或资源存储在临时存储位置(例如内存或磁盘)的过程,以提高检索速度并减少重复处理的需要。 缓存的好处 提高性能:缓存消除了每次从原始源检索数据的需要,从而提高了响应时间并减少了延迟。减少服务器负载:通…

python安装geopy出现错误

python: 安装geopy出现错误 错误信息: 解决办法:再试一次 居然成功了,就是说,也不知道为什么

企架布道:中电金信应邀出席2023佛山敏捷之旅暨DevOps Meetup

近日,2023佛山敏捷之旅暨DevOps Meetup活动顺利举行,本次活动以助力大湾区金融和互联网企业敏捷DevOps实施和效能提升为主题,共设立 2个会场,16个话题分享,200余位金融、互联网企业相关从业人员齐聚一堂,共…

软件设计师学习笔记12-数据库的基本概念+数据库的设计过程+概念设计+逻辑设计

1.数据库的基本概念 1.1数据库的体系结构 1.1.1常见数据库 ①集中式数据库 数据是集中的;数据管理是集中的 ②C/S结构 客户端负责数据表服务;服务器负责数据库服务;系统分前后端;ODBC、JDBC ③分布式数据库 物理上分布、逻…

【Python深度学习】目标检测和语义分割的区别

在计算机视觉领域,语义分割和目标检测是两个关键的任务,它们都是对图像和视频进行分析,但它们之间存在着明显的区别。本文将通过图像示例,详细阐述语义分割和目标检测之间的差异。 一、基本概念 1.1 语义分割(Semantic…

【MySQL入门到精通-黑马程序员】MySQL基础篇-DCL

文章目录 前言一、DCL-介绍二、DCL-管理用户二、DCL-权限控制总结 前言 本专栏文章为观看黑马程序员《MySQL入门到精通》所做笔记,课程地址在这。如有侵权,立即删除。 一、DCL-介绍 DCL英文全称是Data Control Language(数据控制语言&#x…

联邦学习综述二

联邦学习漫画 联邦学习漫画链接: https://federated.withgoogle.com/ Federated Analytics: Collaborative Data Science without Data Collection 博客链接: https://blog.research.google/2020/05/federated-analytics-collaborative-data.html 本篇博客介绍了联邦分析&a…

【广州华锐互动】智轨列车AR互动教学系统

智轨列车,也被称为路面电车或拖电车,是一种公共交通工具,它在城市的街头巷尾提供了一种有效、环保的出行方式。智轨列车的概念已经存在了很长时间,但是随着科技的发展,我们现在可以更好地理解和欣赏它。通过使用增强现…

日常学习记录随笔-zabix实战

使用zabix结合 实现一套监控报警装置 不管是web开发还是大数据开发 我们的离线项目还是实时项目也好,都需要把我们的应用提交到我们服务器或者容器中去执行 整个应用过程中怎么保证线上整体环境的稳定运行 监控很重要 现在比较主流的就是 普罗米修斯以及zabix 我要做…

代码随想录算法训练营第23期day20| 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

目录 一、(leetcode 530)二叉搜索树的最小绝对差 二、(leetcode 501)二叉搜索树中的众数 1.二叉搜索树 2.非二叉搜索树 思路 三、(leetcode 236)二叉树的最近公共祖先 一、(leetcode 530&…

R语言 一种功能强大的数据分析、统计建模 可视化 免费、开源且跨平台 的编程语言

R语言是一种广泛应用于数据分析、统计建模和可视化的编程语言。它由新西兰奥克兰大学的罗斯伊哈卡和罗伯特杰特曼开发,并于1993年首次发布。R语言是一个免费、开源且跨平台的语言,它在统计学和数据科学领域得到了广泛的应用。 R语言具有丰富的数据处理、…

相交链表Java

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 nu11。 以下有两种解决方法: 一种是用Map,利用其key值唯一的方法去判断(也可以使用set,set在add时,已存在的元素会返回false,不存在的返回…

机器学习-概述与贝叶斯算法

机器学习的一般步骤:数据搜集、数据清洗、特征工程、数学建模。数据划分:训练集、验证集、测试集。K折交叉验证:解决数据量不够大问题,解决参数调优问题。深度学习不用做特征工程,传统机器学习要。损失函数&#xff0c…

顶顶通ASR安装配置说明

联系顶顶通申请Asrproxy授权,勾选asrproxy和asrserver模块。 下载语音识别模型 链接: https://pan.baidu.com/s/1ugh-fVwhdt30A0ueMjdvHg?pwd65e4 提取码: 65e4 安装asrproxy到/ddt/asrproxy,模型解压到 /ddt/asrproxy/model 对接mod_vad asrproxy.…

抖音小程序没人做了吗?

我是卢松松,点点上面的头像,欢迎关注我哦! 咱说的严谨点,不是没人做了,而是做的人少了。利益驱使,越来越多的人开始思考新方向了,开发小程序的人少了,排名也没多少人做了&#xff…

从0开始学go第七天

gin获取表单from中的数据 模拟简单登录页面&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>login</title> </head><body><form action"/login" method&q…

GPU 基础知识整理

萌新&#xff1a; 在接触一款硬件时我会&#xff1a;基础硬件结构&#xff0c;线程结构&#xff0c;内存布局&#xff0c;数据吞吐量&#xff0c;等方面进行学习 首先GPU的特点: 并行性能&#xff1a;GPU 是专门设计用于并行计算的硬件&#xff0c;通常具有大量的处理单元&am…

论文阅读笔记(Clover: 计算与存储被动分离的分布式键值存储系统)

关于Disaggregating Persistent Memory and Controlling Them Remotely: An Exploration of Passive Disaggregated Key-Value Stores这篇论文的笔记 原文链接 提出背景 传统的分布式存储系统中&#xff0c;每个节点都会包含计算和存储两个部分&#xff0c;一个节点既可以访…