车载通信与DDS标准解读系列(2):DDS标准

2024-04-01 10:52

本文主要是介绍车载通信与DDS标准解读系列(2):DDS标准,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

▎汽车智能化与车载通信

在这个汽车智能化迅猛发展的时代,特别是智能驾驶技术的快速迭代,对车载通信的需求也越来越高,传统的通信方案开始无法满足通信系统的多样性需求。为了适应这一趋势的发展,我们需要一种灵活、可靠、低延迟且具有高安全性的通信方案。DDS作为一种高效、可靠的数据通信技术,正逐渐在汽车行业中崭露头角。

在接下来的篇章中,我们将认识DSS,探讨基本概念和原理,弄清楚DDS为什么可以适应当前车载通信的需求。之后会带领大家打开DDS标准一探究竟,更好地理解DDS在车载通信系统中的优势和价值。

▎什么是DDS

DDS (Data Distribution Service) 即数据分发服务,是一种中间件标准,中间件是指位于操作系统和应用程序之间的软件层,用于协调和管理不同软件组件之间的通信和交互。它提供了统一的接口和通信机制,使不同应用程序可以在不同的环境中进行互操作。DDS为分布式数据通信提供解决方案,以便不同的应用程序可以相互交流和协作,目的是支持高性能、实时和可靠的数据传输。

DDS具备以下几个特点:

  • 以数据为中心的发布订阅模型:DDS基于数据为中心,可以实现高效的数据传输和共享。数据发布者将数据发布到DDS网络中,订阅者可以选择订阅感兴趣的数据,并接收到相应的数据更新。
  • 支持多种QoS(Quality of Service)策略:DDS支持多达22种QoS策略,用于定义数据传输的质量要求。可以根据具体应用需求进行配置和调整,以满足不同的性能和可靠性要求。
  • 大规模的可扩展性:DDS具备大规模的可扩展性,能够适应复杂的分布式系统和大量的数据交换。它支持灵活的拓扑结构和节点间的动态发现,可以方便地扩展和集成新的节点和功能。
  • 较好的安全性:DDS提供了一系列的安全机制,用于保护数据的传输和存储。它支持数据加密、身份验证、访问控制等安全特性,可以有效地防止数据泄露和未经授权的访问。

DDS与专门用于车载通信系统的SOME/IP有所不同。DDS最初由OMG(Object Management Group)组织于2003年发布,目的是为了满足现代实时系统的需求,在物联网、工业自动化、航空航天、国防等多个领域均得到广泛应用。随着汽车电子系统对车内通信传输性能、安全性和灵活性提出更高要求,越来越多的OEM开始采用DDS作为通信解决方案。

▎打开DDS标准

了解了DDS是什么,有什么特点之后,我们深入了解一下DDS标准到底介绍了什么?

从OMG组织2003年发布的DDS v1.0版本至今,DDS标准经历了多次迭代和内容拓展。目前,DDS标准可以分为4个部分:核心标准、扩展标准、网关标准和API标准。其中,核心标准包括了4个协议:

  • DDS:主要描述了DCPS模型和QoS策略
  • DDSI-RTPS:定义了DDS基于有线传输的通信行为、报文格式等内容
  • DDS-XTYPES:描述了数据的序列化表示及TypeSystem
  • DDS-SECURITY:描述了四类security策略,如认证、数据加密等

在这里插入图片描述
除了核心协议之外,扩展标准中的DDS-RPC对车载通信应用来说同样是非常重要的内容,其定义了如何使用DDS实现RPC通信。此外,正在开发中的DDS标准DDS-TSN也备受关注。这些标准的开发旨在进一步完善DDS协议,使其适用于更广泛的实时系统应用场景。

本次我们会重点介绍核心协议中的DDS标准。它涵盖了两个主要部分:

  1. DCPS(Data-Centric Publish-Subscribe)模型:是DDS的核心模型,它定义了数据发布者和订阅者之间的交互方式。
  2. QoS(Quality of Service)策略:它为数据传输提供了质量服务。DDS的QoS策略非常丰富,包括实时性、可靠性、带宽控制等。通过配置和调整这些QoS策略,实现不同的通信要求。

DCPS模型

DCPS(Data-Centric Publish-Subscribe)模型定义了应用程序在DDS中发布和订阅数据对象的功能。发布和订阅很容易理解,"Publisher"发布者将"Topic"主题发布出来,"Subscriber"订阅者则对感兴趣的主题进行订阅。"Topic"主题是DDS中定义的一个抽象概念,它代表了一类数据的集合,用于标识一组相关的数据。那么当我们要发布或订阅内容时,这些数据从何而来,又该去向何处?

这个问题的答案同样在DCPS基本概念里,我们需要了解"DataWriter"和"DataReader"。在发布信息时,数据通过"DataWriter"传递给"Publisher"。对于"Subscriber",当订阅数据后,需要通过"DataReader"来访问和接收具体的数据。这里需要注意的是,一个"DataWriter"/“DataReader"只能对应一个"Publisher”/“Subscriber”,也可以理解成前者是由后者创造的,而一个"Publisher"/“Subscriber"可以创造多个"DataWriter”/“DataReader”。当我们想发布不同的"Topic"时,可以使用不同的"DataWriter"来向发布者传递数据。

在这里插入图片描述
至此我们知道了DCPS的几个基础概念:

  • Publisher/Subscriber(发布者/订阅者):发布者负责将数据发布到特定的主题(Topic)中,而订阅者则通过订阅相关主题来接收所需的数据。
  • DataWriter/DataReader(数据写入者/数据读取者):DataWriter负责将数据写入到特定的主题中,而DataReader负责从主题中读取相应的数据。
  • Topic(主题):主题是DCPS中定义数据传输的逻辑分类和组织单元。它可以看作是一种数据的标签,用于区分不同类型的数据。

当我们理解了几个基础概念后,再将视野放大一些,如果有非常多的"Publisher", “Subscriber”, "Topic"该如何处理?

DCPS模型通过引入全局数据空间(Global Data Space)来解决这个问题。全局数据空间是一个集中存储和管理所有数据对象的共享空间。一个全局数据空间即一个DDS域(DDS Domain),DDS域是一个逻辑上的容器,它将所有的"Publisher", “Subscriber”, “Topic"集中在一个空间中,用于组织和管理相关的数据对象。在DDS域中,有一个关键的概念"Domain Participant"域参与者。域参与者是一个抽象的实体,主要负责创建和管理"Publisher”, “Subscriber”, “Topic”。

需要注意的是,不同的Domain之间是相互独立的,它们不能直接进行通信或访问对方的数据。每个Domain都被分配一个唯一的Domain ID(域标识),通过该ID可以唯一地识别一个Domain。应用程序可以通过指定特定的Domain ID来创建Domain Participant(域参与者),以获取相应Domain的访问权限。

现在我们又了解到了DCPS宏观上的两个新的概念:

  • Domain(域):域是一个逻辑上的概念,基于不同的应用需求、安全性要求或其他特定的业务需求将不同的数据通信划分为不同的区域。在同一个域内,数据的发布者和订阅者可以进行数据的交换和共享。
  • Domain Participant(域参与者):域参与者表示在特定域中的一个实体。它是数据的发布者、订阅者和Topic的创造者及管理者,负责管理DDS中的实体对象和通信配置。

在这里插入图片描述
除了上述这些概念之外,DCPS提供了多种策略来满足不同的发布和订阅需求。对于订阅方来说,DDS提供了以下两种基础策略:

  • Listen(监听):订阅者可以使用监听方式来接收数据。它会一直等待,直到接收到数据为止。这种方式是阻塞型的,即订阅者在接收到数据之前会一直等待。
  • StatusCondition(状态条件):使用Condition和Waitset(条件和等待集),订阅者可以实现异步数据访问。可以为一个或多个条件对象设置条件,然后等待条件满足或特定事件发生。这种方式是非阻塞的,订阅者可以继续执行其他操作,而不必一直等待。

通过选择适当的策略,订阅者可以根据不同的需求进行数据访问和处理。监听方式适用于需要及时响应并处理数据的场景,而条件和等待集方式适用于需要异步处理数据或等待特定条件发生的场景。

QoS服务质量

QoS(Quality of Service)是一种用于确定通信系统中信息传输质量的策略。QoS策略用于满足不同应用场景下对信息交互的特殊需求。与SOME/IP相比,DDS的QoS数量可谓相当丰富。目前,DDS提供了22种不同的QoS策略,它们可以独立或组合使用。通过定义和配置一系列QoS参数和策略,能够在数据传输过程中实现对带宽、延迟、可靠性和安全性等的控制和优化。

当定义一个QoS策略时,我们首先要了解他的含义和Value(配置值)的定义,需要注意的是QoS必须定义一个默认值。除此之外还有以下三点需要定义:

  • Concerns: 表示QoS可为哪些实体配置,包括:Topic, DataWriter, DataReader, Publisher, Subscriber, and DomainParticipant。
  • RxO: 兼容设置。YES即表示通信两端要求兼容,NO表示可独立配置,N/A表示该Qos只能在一端配置。
  • Changeable: Entity创建后是否可改变QoS配置,YES/NO。

在这里插入图片描述
由于DDS提供了较多的QoS策略,我们以其中三个重要的QoS为例来介绍:

Durability(持久性):该策略用于确定数据的持久性存储方式。它可以设置为"VOLATILE"数据不进行永久储存,"TRANSIENT"数据保留在内存中,"TRANSIENT_LOCAL"数据保留在DataWriter的内存中,"PERSISTENT"数据将保存在永久存储中。在车载通信系统中,Durability可以确保重要数据在异常情况下不会丢失。同时,持久性存储还可以支持数据的历史记录和回放,为数据分析、故障排查等提供有力支持。根据具体应用场景和需求来灵活配置Durability,以实现最佳的持久性存储效果。

在这里插入图片描述
Reliability(可靠性):该策略用于确保数据传输的可靠性。它可以设置为"BEST_EFFORT"或"RELIABLE",前者表示尽力而为的传输,不保证可靠传输,数据可能会丢失或重复,适用于某些实时性要求较高的应用场景。后者表示数据以可靠的方式发送,保证数据的传输和接收的可靠性。数据不会丢失,确保所有订阅者都可以接收到相同的数据。我们可以依据对延时和可靠性的实际需求来进行选择。

在这里插入图片描述
Partition(分区):该策略通过一组字符串来定义发布者和订阅者的分区。分区是一种逻辑上的划分,用于将数据发布者和数据订阅者按照一定的规则进行分组。当发布者和订阅者使用相同的分区标识符时,它们将进行匹配并允许进行数据交互。这样可以实现对数据的精确过滤,实现灵活的数据管理。

在这里插入图片描述
以上仅是几个常见的QoS策略示例,DDS还提供了其他许多策略,通过配置和组合这些策略,以满足不同应用对网络通信服务质量的需求。

▎结语

由于车载通信领域的发展对通信方案提出了更高的要求,DDS作为一种灵活、可靠、低延迟且具有高安全性的通信方案,逐渐成为汽车通信系统的选择。

经过对DDS的首要核心标准的解析,我们已经了解到DDS基于数据为核心的发布-订阅的DCPS模型以及多种QoS策略。通过DDS的合理模型设计和策略配置,能够实现高效的数据传输,并满足车载通信中不同应用场景的需求。那么,在车载系统中,我们应该如何通过DDS来实现通讯,又如何通过网络协议进行数据传输呢?对于这些问题,将会在对DDS标准的下一份核心协议《DDSI-RTPS》的解读中找到答案,敬请期待。

了解更多:请致电 010-64840808转6115或发邮件至market_dept@hirain.com(联系时请说明来自CSDN平台)

这篇关于车载通信与DDS标准解读系列(2):DDS标准的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/866977

相关文章

通信系统网络架构_2.广域网网络架构

1.概述          通俗来讲,广域网是将分布于相比局域网络更广区域的计算机设备联接起来的网络。广域网由通信子网于资源子网组成。通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网构建,将分布在不同地区的局域网或计算机系统互连起来,实现资源子网的共享。 2.网络组成          广域网属于多级网络,通常由骨干网、分布网、接入网组成。在网络规模较小时,可仅由骨干网和接入网组成

ROS话题通信流程自定义数据格式

ROS话题通信流程自定义数据格式 需求流程实现步骤定义msg文件编辑配置文件编译 在 ROS 通信协议中,数据载体是一个较为重要组成部分,ROS 中通过 std_msgs 封装了一些原生的数据类型,比如:String、Int32、Int64、Char、Bool、Empty… 但是,这些数据一般只包含一个 data 字段,结构的单一意味着功能上的局限性,当传输一些复杂的数据,比如:

JavaWeb系列二十: jQuery的DOM操作 下

jQuery的DOM操作 CSS-DOM操作多选框案例页面加载完毕触发方法作业布置jQuery获取选中复选框的值jQuery控制checkbox被选中jQuery控制(全选/全不选/反选)jQuery动态添加删除用户 CSS-DOM操作 获取和设置元素的样式属性: css()获取和设置元素透明度: opacity属性获取和设置元素高度, 宽度: height(), widt

气象站的种类和应用范围可以根据不同的分类标准进行详细的划分和描述

气象站的种类和应用范围可以根据不同的分类标准进行详细的划分和描述。以下是从不同角度对气象站的种类和应用范围的介绍: 一、气象站的种类 根据用途和安装环境分类: 农业气象站:专为农业生产服务,监测土壤温度、湿度等参数,为农业生产提供科学依据。交通气象站:用于公路、铁路、机场等交通场所的气象监测,提供实时气象数据以支持交通运营和调度。林业气象站:监测林区风速、湿度、温度等气象要素,为林区保护和

DDS信号的发生器(验证篇)——FPGA学习笔记8

前言:第一部分详细讲解DDS核心框图,还请读者深入阅读第一部分,以便理解DDS核心思想 三刷小梅哥视频总结! 小梅哥https://www.corecourse.com/lander 一、DDS简介         DDS(Direct Digital Synthesizer)即数字合成器,是一种新型的频率合成技术,具有低成本、低功耗、高分辨率、频率转换时间短、相位连续性好等优点,对数字信

C语言入门系列:探秘二级指针与多级指针的奇妙世界

文章目录 一,指针的回忆杀1,指针的概念2,指针的声明和赋值3,指针的使用3.1 直接给指针变量赋值3.2 通过*运算符读写指针指向的内存3.2.1 读3.2.2 写 二,二级指针详解1,定义2,示例说明3,二级指针与一级指针、普通变量的关系3.1,与一级指针的关系3.2,与普通变量的关系,示例说明 4,二级指针的常见用途5,二级指针扩展到多级指针 小结 C语言的学习之旅中,二级

[vivado][IP核]DDS

刘东华的IP核详解: 1、 这里的是指IP核配置中的相位数据的宽度。 2、 实际使用此IP核时并没有“频率分辨率”可以配,是靠改变来变的。 3、 4、 5、 数据输出的ready在数据正式输出时才会有。 自己仿真: 使用SIN/COS LUT only的模式,使用一个累加器作为相位输入,不知怎么,输出为X。

使用JWT进行安全通信

在现代Web应用中,安全通信是至关重要的。JSON Web Token(JWT)是一种流行的安全通信方式,它允许用户和服务器之间安全地传输信息。JWT是一种紧凑的、URL安全的表示方法,用于在两方之间传输信息。本文将详细介绍JWT的工作原理,并提供代码示例帮助新人理解和实现JWT。 什么是JWT? JWT是一种开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以JSO

JavaWeb系列六: 动态WEB开发核心(Servlet) 上

韩老师学生 官网文档为什么会出现Servlet什么是ServletServlet在JavaWeb项目位置Servlet基本使用Servlet开发方式说明快速入门- 手动开发 servlet浏览器请求Servlet UML分析Servlet生命周期GET和POST请求分发处理通过继承HttpServlet开发ServletIDEA配置ServletServlet注意事项和细节 Servlet注

C++标准模板库STL介绍

STL的六大组成部分 STL(Standard Template Library)是 C++ 标准库中的一个重要组成部分,提供了丰富的通用数据结构和算法,使得 C++ 编程变得更加高效和方便。STL 包括了 6 大类组件,分别是算法(Algorithm)、容器(Container)、空间分配器(Allocator)、迭代器(Iterator)、函数对象(Functor)、适配器(Adapter)