0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是DDS?初识CP AUTOSAR平台下的DDS规范

jf_EksNQtU6 来源:车载嵌入式软件开发 2023-12-05 18:18 次阅读

什么是DDS

数据分发服务(DDS)[1]是一个来自对象管理组(OMG)的中间件协议和API标准。它将系统的组件集成在一起,提供低延迟的数据连接,极高的可靠性,和可扩展的架构。

DDS中间件是一个软件层,它将应用程序从操作系统网络传输,和低级数据格式的细节中抽象出来。底层的细节,例如数据线格式,发现,连接,可靠性,协议,传输选择,QoS,安全等,都由中间件管理。

DDS提供了QoS控制的数据共享。应用程序通过发布和订阅主题(topic)来进行通信,主题由它们的主题名和类型来标识。订阅者可以通过时间和内容过滤器来获取主题上发布的数据的一个子集。不同的DDS域彼此完全独立。DDS域之间没有数据共享。

DDS以数据为中心,这个特点保证了所有的消息都包含了应用程序需要理解数据的上下文信息。DDS知道它存储了什么数据,并控制了如何共享这些数据。使用传统的基于消息的中间件的程序员必须编写发送消息的代码。使用数据中心化的中间件的程序员编写指定如何和何时共享数据的代码,然后直接共享数据值。而不是在应用程序(用户)代码中管理所有这些复杂性,DDS直接为用户实现了受控的,管理的,安全的数据共享。

全局数据空间

DDS依赖于一个与平台无关的数据模型。这个模型定义了全局数据空间,并指定了发布者和订阅者如何引用这个空间的一部分。数据模型可以简单到一组没有关联的数据结构,每个数据结构由一个主题和一个类型来标识。

主题提供了一个唯一标识全局数据空间中某些数据项的标识符。类型提供了结构信息,告诉中间件如何操作数据。使用类型化接口意味着需要一个生成工具,将类型描述转换为适当的接口和实现,填补类型化接口和通用中间件之间的差距。

以下定义可能有助于更好地理解DDS。

实体Entity:DDS的基本对象,几乎所有其他对象都是它的特化。

发布者Publisher:这个对象负责数据分发。它可以发布不同数据类型的数据。

数据写入DataWriter:应用程序必须使用数据写入器来向发布者通知给定类型的数据对象的存在和值。当数据对象的值通过适当的数据写入器传递给发布者时,发布者有责任执行分发(发布者将根据自己的QoS或附加到相应数据写入器的QoS来执行此操作)。

订阅者Subscriber:订阅者负责接收发布的数据,并根据订阅者的QoS使其可用于接收应用程序。它可以接收和分发不同指定类型的数据。

数据读取DataReader:订阅者使用数据读取器来向应用程序提供特定类型的接收数据。

域Domain:域是一个分布式的概念,它连接了所有能够相互通信的应用程序。它代表了一个通信平面:只有附加到同一域的发布者和订阅者才能相互作用。

服务质量(QoS):QoS(服务质量)是一个通用的概念,用于指定一个实体的行为。QoS由单个QoS策略(QosPolicy类型的对象)组成。影响不同实体的一个或多个QoS策略的特定值可以分组在QoS配置文件中。

主题Topic:一个主题对应于一个单一的数据类型。主题对象在概念上位于发布和订阅之间。发布必须以一种订阅可以明确引用的方式被知晓。主题的目的就是满足这个需求:它将一个名字(在域中唯一)、一个数据类型和与数据本身相关的QoS关联起来。除了主题QoS之外,与该主题相关的数据写入器的QoS和与数据写入器相关的发布者的QoS控制了发布者端的行为,而相应的主题、数据读取器和订阅者QoS控制了订阅者端的行为。

c526c9b2-9355-11ee-939d-92fbcf53809c.jpg

DDS是一个以数据为中心的发布订阅协议,这个协议定义了应用程序发布和订阅数据对象的值的功能。它允许:

发布应用程序标识它们打算发布的数据对象,然后提供这些对象的值(它们使用一些在某些域参与者中定义的发布者/数据写入器)。

订阅应用程序标识它们感兴趣的数据对象,然后访问它们的数据值(它们使用一些在与它们想要接收数据的各个主题的发布者相同的域参与者中定义的订阅者/数据读取器)。

应用程序定义主题,将类型信息附加到主题,创建发布者和订阅者实体,将QoS策略附加到所有这些实体,总之,使所有这些实体运行。

CP中的DDS模块

c53d3d46-9355-11ee-939d-92fbcf53809c.jpg

DDS模块实现实体管理,QoS等接口逻辑,还有DDSI-RTPS标准层,它是一个具备以下功能的协议栈:

序列化

反序列化

数据过滤

数据记录

数据持久化

数据重传

信息安全

E2E保护

从传输路径的角度来看,DDS模块只提供了一个基于PDU的接口,用于传入(例如,上层PDU)和传出(例如,下层PDU)的PDU。

基本上,在发送端,Dds数据是在应用层创建的,并直接传递给RTE(作为未序列化的数据),然后转发给LdCom,PduR,然后作为一个PDU转发给Dds模块,没有经过任何修改或转换(在接收端也是如此)。RTE,LdCom和PduR(作为上层)只是简单地充当透传模块。序列化是在Dds BSW内部执行的,对AUTOSAR堆栈完全不透明。Dds BSW应该知道复制数据的确切数据类型。

需要注意的是,在RTE,即使对于复合数据类型,也不会进行任何转换或序列化:数据会从应用层复制到ISignal(在LdCom缓冲区中),然后PduR将信息路由到DDS模块,数据到达Dds时完全没有修改。Dds模块能够通过其映射到PDU的类型来处理数据。下层PDU包含了DDSI-RTPS协议包,准备好交付给传输层。

c5527fbc-9355-11ee-939d-92fbcf53809c.jpg

传输层提供了一组适合于启用Dds通信的连接。例如,让我们考虑一个使用一些发布者/数据写入器在一些域参与者下的简单发布SW-C。如果本地域参与者不支持动态发现,那么对于每个数据写入器,就有必要静态配置适当的远程数据读取器可达性信息。接收端也应该发生类似的情况:本地数据读取器应该知道与之相关的数据写入器的可达性信息。这些信息应该用于适当的配置底层传输协议。

c566fb2c-9355-11ee-939d-92fbcf53809c.jpg

QoS管理

Dds BSW可以支持一部分(甚至为空)的QoS策略。没有必须实现的QoS。哪些QoS策略实际上是支持的,这是由供应商决定的。

c57edbf2-9355-11ee-939d-92fbcf53809c.jpg

对于DDS的TRANSPORT_PRIORITY QoS,由SoAdSocketFramePriority实现,但具体Dds模块在运行时需要自己选择发送PDU送到哪个优先级的SoAd connection上。

数据安全机制

在AP和CP之间,甚至在CP和非AUTOSAR平台之间,建立通信路径可能会涉及安全风险,因此可能需要使用一些安全机制。Dds BSW模块通过使用DDS安全规范来[2]保证一些安全机制。使用这个规范是为了保证与其他DDS系统的互操作性,无论是与AP(其中已经使用了DDS数据安全)还是与非AUTOSAR系统。然而,实现这个规范可能会非常消耗资源,特别是在一个慢速的微控制器上使用,这些功能需要硬件加速。为了克服这个问题,选择了一个DDS数据安全功能的子集,它能保证最低的安全级别。

在这个阶段,实现DDS数据安全的目的是为了保证消息认证,数据完整性和组认证。安全机制可以在配置时启用或禁用。如果启用,所有的安全参数必须在预编译时静态配置。

c5833e72-9355-11ee-939d-92fbcf53809c.jpg

如果配置了,整个RTPS消息的消息认证码(MAC)会被添加。AUTOSAR CSM用于密钥管理和MAC计算,要使用的算法是可配置的(从支持的算法中选择)。

用于哈希算法的密钥是对称密钥,它们在与域参与者相关的实体之间共享,所以认证是在域参与者级别进行的(不是单个发布者/订阅者,不是单个数据写入器/数据读取器)。要使用的对称密钥应该由CSM直接管理,它应该提供一个handler给DDS,以便使用它的服务。为了上述目的,使用了DDS加密插件,它提供了一个接口来保护整个RTPS消息。在应用安全后,结果RTPS消息如下图所示。

c59748b8-9355-11ee-939d-92fbcf53809c.jpg

功能安全机制

根据ISO 26262,在执行不同软件分区或ECU中的发送器和接收器之间的通信链路上的一组故障需要被考虑。

端到端保护的概念假定在运行时应保护与安全相关的数据免受通信链路内部故障的影响。

DDS规范具有内在的安全机制(计数器、CRC、QoS策略),可用于支持安全论证。

以下是在追求功能安全时需要解决的可能故障列表,以及DDS提供的支持它们的机制:

重复、丢失、插入、不正确的顺序、仅由接收器子集接收到的来自发送方的信息以及阻塞对通信通道的访问:子消息64位序列号,如DDS Interoperability Wire Protocol, Version 2.2第8节3.5.4“SequenceNumber”中定义的,以及在第8.3.7“RTPS Submessages”中定义的额外的SequenceNumber类型字段。这些机制仅对在接收器端检测丢失有用;如果还需要在发送器端进行检测,则应结合使用DDS QoS。

信息延迟和阻塞对通信通道的访问:LATENCY_BUDGET、DEADLINE和LIFESPAN质量服务策略,分别在Data Distribution Service (DDS), Version 1.4的2.2.3.8“LATENCY_BUDGET”、2.2.3.7“DEADLINE”和2.2.3.16“LIFESPAN”中定义的部分。

信息伪装或错误寻址:DDS安全认证插件,如DDS Security, Version 1.1 第8.3“Authentication Plugin”节中定义的。在这个概念中,只能在DomainParticipant级别实现身份验证,因为属于同一DomainParticipant级别的所有实体共享相同的对称密钥。这可以防止属于DomainParticipant之外的实体访问DomainParticipant通信,但不能区分被授权在DomainParticipant内部通信的两个不同实体。

信息损坏、从发送方发送到多个接收器的不对称信息(仅对导致无效CRC的情况有效):位于HeaderExtension子消息下的rtpsMessageChecksum([RTPS 2.5或更高版本])。在没有此功能的情况下,DDS Security, Version 1.1 还提供了内置于其消息认证协议中的消息完整性验证。对于CRC计算,使用AUTOSAR CRC库。

对这些故障条件错误的通知:在发生任何通信错误或故障(甚至是超时错误)时,Dds BSW应通知Det模块。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • QoS
    QoS
    +关注

    关注

    1

    文章

    133

    浏览量

    44510
  • DDS
    DDS
    +关注

    关注

    21

    文章

    614

    浏览量

    151731
  • AUTOSAR
    +关注

    关注

    9

    文章

    329

    浏览量

    21130

原文标题:初识CP AUTOSAR平台下的DDS规范

文章出处:【微信号:谈思实验室,微信公众号:谈思实验室】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    DDS协议测试解决方案之中间件的作用#DDS

    DDS
    北汇信息POLELINK
    发布于 :2023年05月12日 13:05:42

    DDS芯片选型,请问DDS专用芯片与基于FPGA的DDS的区别是什么?

    DDS专用芯片与基于FPGA的DDS的区别什么地方,优势在哪?关于DDS选型,DAC的位数影响DDS的什么性能,怎么选择合适DAC位数?AD995X系列与AD991x系列那个相噪性能杂
    发表于 08-06 09:13

    DDS的工作原理是什么?如何去设计DDS

    DDS的工作原理是什么?基于DSP Builder和DDS设计基于FPGA的DDS设计
    发表于 05-06 06:27

    什么是DDSDDS的工作原理是什么

    什么是DDSDDS的工作原理是什么?怎么做出一个DDS模块呢?
    发表于 01-26 06:31

    DDS的结构和在系统设计中的优势以及D A转换器在DDS中的

    DDS的结构和在系统设计中的优势以及D A转换器在DDS中的应用:
    发表于 06-10 11:11 34次下载
    <b class='flag-5'>DDS</b>的结构和在系统设计中的优势以及D A转换器在<b class='flag-5'>DDS</b>中的

    DDS,什么是DDS,DDS的结构

    DDS,什么是DDS,DDS的结构 DDS概述 直接数字式频率综合器DDS(Direct Digital Synthesizer),
    发表于 09-03 08:42 4276次阅读
    <b class='flag-5'>DDS</b>,什么是<b class='flag-5'>DDS</b>,<b class='flag-5'>DDS</b>的结构

    DDS是什么意思,DDS结构,DDS原理是什么

    DDS是什么意思,DDS结构,DDS原理是什么 什么叫DDS 直接数字式频率合成器DDS(Direct Digital Synthesi
    发表于 03-08 16:56 4.5w次阅读

    直接数字合成(DDS),直接数字合成(DDS)是什么意思

    直接数字合成(DDS),直接数字合成(DDS)是什么意思 直接数字合成(DDS)的概念 1971年,美国学者J.Tierncy,
    发表于 03-23 11:06 2307次阅读

    DDS多波信号发生器的实现

    详细介绍了直接数字频率合成器(DDS)的工作原理、基本结构。在参考DDS 相关文献的基础上,提出了符合结构的DDS 设计方案,利用DDS 技术设计了一种高频率精度的多波形信号发生器,此
    发表于 11-22 14:35 0次下载

    利用ADISim DDS在线工具仿真DDS产品的频谱特性

    利用ADISim DDS来仿真DDS产品的频谱特性。
    的头像 发表于 07-15 06:13 3640次阅读

    CAN网络管理规范 AUTOSAR CP中文版

    CAN网络管理规范 AUTOSAR CP中文版免费下载。
    发表于 04-06 16:21 0次下载

    一文读懂DDSAUTOSAR Adaptive的集成

    对于使用AUTOSAR制造车辆的公司来说,已经出现了两个不同的平台 - AUTOSAR Classic和AUTOSAR Adaptive 这两个AU
    的头像 发表于 11-02 10:05 2066次阅读

    映射DDSAUTOSAR类型系统实现

    对于使用AUTOSAR制造车辆的公司来说,已经出现了两个不同的平台 - AUTOSAR Classic和AUTOSAR Adaptive 这两个AU
    的头像 发表于 11-02 10:05 859次阅读

    SOME/IP与DDS对比及DDS测试策略和方案探讨

    本文对DDS以及基于DDS的SOA系统的测试策略进行探讨,并介绍DDS测试方案。
    的头像 发表于 08-04 14:52 1451次阅读
    SOME/IP与<b class='flag-5'>DDS</b>对比及<b class='flag-5'>DDS</b>测试策略和方案探讨

    DDS在ROS2中的应用

    DDS在ROS2中的应用 DDS在ROS2系统中的位置至关重要,所有上层建设都建立在DDS之上。在这个ROS2的架构图中,蓝色和红色部分就是DDS。 刚才我们也提到,
    的头像 发表于 11-24 17:54 426次阅读
    <b class='flag-5'>DDS</b>在ROS2中的应用