DDS技术概述及测试策略与方案

news2024/12/24 9:00:13

随着车载通信技术的快速发展,传统的通信技术在满足车载通信需求方面面临着一些挑战。车载通信对实时性、可靠性以及通信带宽的需求越来越高,同时车载通信环境存在多路径衰落、信号干扰等问题,这些都给通信技术的选择和应用带来了一定的挑战。因此,开发一种适用于车载通信的高效可靠的通信技术变得尤为重要。DDS(Data Distribution Service)技术作为一种新兴的通信技术,正在逐渐应用于车载通信领域。

目前DDS在汽车领域主要应用于智能交通指挥系统、汽车自动驾驶及智能座舱系统中的数据传输等,此外DDS技术能够使车辆与其他设备和云平台无缝连接,提供更智能化的车辆服务和管理。DDS中间件可实现车辆应用软件与基础软硬件的解耦,同时可以为车上各功能提供差异化的、具有特定服务质量要求的数据传输,并可实现对资源的合理调度。

DDS技术概述

DDS定义

数据分发服务(Data Distribution Service,DDS),是OMG在2004年发布的一个以数据为中心的中间件协议和应用程序接口(API)标准,基于发布-订阅的通信方式为实时分布系统提供了低延迟、高可靠性、可扩展性的通信架构标准。其位于操作系统和应用程序之间,也是一种通信中间件。DDS通信协议规范是由OMG发布和维护的,核心标准包括以下4部分:

  1. 以数据为中心的发布订阅DCPS(Data-Centric Publish-Subscribe)模型
  2. DDS实时发布订阅RTPS(Real-Time Publish/Subscribe)协议
  3. DDS类型和数据序列化方法
  4. DDS安全模型

除了核心协议之外,扩展标准中还包括DDS-RPC协议、IDL标准等,DDS各标准在OSI核心架构中的标准如下图所示。

其中DCPS模型和RTPS协议为核心中的基础。DDS技术的核心原理包括:主题与数据元的映射、数据序列化与反序列化、QoS(Quality of Service)配置、数据过滤、负载均衡和网络穿透等。这些原理共同保证了DDS在实时性、可靠性和灵活性上的优势,下面简单介绍DCPS模型、RTPS模型以及QoS策略。

DCPS模型

DCPS模型是一种数据分发服务模型,它是一种基于发布-订阅机制的通信模式。在这个模型中,数据发布者将数据发布到全局数据空间,而数据订阅者则通过从全局数据空间中接收数据,下图中展示了它们之间的逻辑关系:

数据发布-订阅机制主要涉及主题的定义、数据发布以及数据订阅。Topic是发布和订阅应用程序间互动的基本方法,DataReader和DataWriter通过Topic进行关联。应用程序通过发布者发布数据后,由DataWriter向相对应的Topic进行数据写入。当应用程序想要获得某个Topic的数据时,就通过相应Topic的DataReader获取接收到的数据。

RTPS

RTPS是一种用于实时通信的传输协议,它是DDS技术的一部分。RTPS层位于DCPS层与传输层之间,每个DDS实体都对应RTPS实体,并通过历史缓存区进行沟通。RTPS规范中定义了消息格式以及不同场景下的消息交互方式,统一了DDS的传输层标准,使得不同厂家的DDS实现互操作。RTPS还支持控制消息,如心跳、确认、样本丢失通知等,以维护通信的稳定性和可靠性。

QoS

在DDS系统中,QoS是用来描述通信质量的指标,可以对数据交换进行约束和控制。QoS机制主要包括数据的可靠性、实时性、带宽限制、优先级、持久性和安全性等方面。用户根据应用程序的需求,对不同的数据流进行不同的QoS设置,以满足所需的性能指标。例如,对于需要速传输的数据,可以设置较高的传输优先级和带宽限制,以保证数据的实时性和稳定性。每个DCPS实体,包括Topic、Publisher、Subscriber、DataWriter、DataReader等,都能够独立配置相应的QoS策略,下面的表格中简单介绍了几个常见的QoS策略。


DDS测试策略与方案

DDS与SOME/IP是现阶段在车载领域最常见的两种通信中间件,两者具有中间件的一些共同特性:都是面向服务的通信协议,都采用以“数据为中心”的发布订阅模式。但毕竟两者是基于不同的应用需求及场景下诞生的中间件技术,因此它们在灵活性、服务策略、传输方式、序列化、安全机制、资源需求、实现方式等方面必定是有很大差异的。

结合两者在实现及功能上的共同点(通信中间件),不难看出针对DDS测试也需与SOME/IP一样进行协议一致性、互操作、稳定性、可靠性等测试验证来保证DDS协议栈基础功能的有效性及完整性,且可采取相同的策略来实现测试。

因DDS在资源需求、序列化、Qos、安全方面具有一定的原生特性,往往在DDS部署集成时需对其进行优化裁剪以适配车载通信的功能及性能的需求,这就要求必须针对这部分内容设计相应的测试方案并进行充分的测试以保证功能的有效性及完整性。

在车内通信网络中,目前及以后很长一段时间必定是以太网(DDS、SOME/IP、DoIP、TCP/IP等)及传统通信(CAN、CAN FD、LIN等)并存的局面,伴随着就会有不同通信方式、协议路由转换的场景,因此针对DDS与其他协议之间路由转换、S2S的测试验证也是必须执行的。

怿星科技基于DDS相关实现标准以及在车载通信应用上的具体实现,并结合以往测试经验,梳理开发出一套DDS协议规范,以实现DDS中间在车载通信应用下的功能及性能特性的全覆盖度测试验证。

且为了满足以上测试需求,怿星科技自研开发了一套DDS协议测试解决方案,该测试解决方案中全自动化测试软件:SmartDDS完全基于Python平台开发,同时设计开发测试中间件DIT以实现对ECU的DDS协议测试行为的观测及触发特性。

本篇文章介绍了怿星科技对DDS协议技术及应用、DDS测试内容、测试策略&方案的理解进行了一些初步分析,后续将会针对测试内容以及测试方案实现的细节进行一系列专题介绍,同时怿星基于该方案及丰富的工程经验,可支持客户对DDS协议应用仿真及测试需求的定制化开发。欢迎行业内对DDS协议及测试有兴趣&需求的专家与我们交流。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VMware 集群-虚拟机配置反亲和性(互斥)

简介 博客:https://songxwn.com/ 为实现应用系统的冗余,经常会双机或者多机部署(如数据库集群等)。在VMware 集群里面,要保证不同应用集群的节点虚拟机在不同的物理宿主机上,防止单个宿主机故障&#xff…

Web Servlet

目录 1 简介2 创建Servlet项目并成功发布运行3 新加Servlet步骤4 Servlet项目练习5 Servlet运行原理6 操作 HTTP Request头的方法(部分方法示例)7 操作 HTTP Response头的方法(部分方法示例)8 两种重定向(页面跳转)方法9 Cookie9.1 Cookie工作原理9.2 cookie构成9.3 Servlet 操…

Unity DropDown 组件 详解

Unity版本 2022.3.13f1 Dropdown下拉菜单可以快速创建大量选项 一、 Dropwon属性详解 属性:功能:Interactable此组件是否接受输入?请参阅 Interactable。Transition确定控件以何种方式对用户操作进行可视化响应的属性。请参阅过渡选项。Nav…

个人商城系统开源(展示宣传)

原文地址:个人商城系统开源(展示宣传) - Pleasure的博客 下面是正文内容: 前言 由于近期实在没有什么话题可写和一些有趣的项目教程可以分享。所以我只能决定将我自己亲手编写的一个迷你商城系统进行开源。 也就是放在我博客右边…

Unity UGUI之Scrollbar基本了解

Unity的Scrollbar组件是用于在UI中创建滚动条的组件之一。滚动条通常与其他可滚动的UI元素(如滚动视图或列表)一起使用,以便用户可以在内容超出可见区域时滚动内容。 以下是Scrollbar的基本信息和用法: 1、创建 在Unity的Hierarchy视图中右…

Android屏幕共享-硬编码硬解码

Android屏幕共享-硬编码硬解码 说起Android之间的屏幕共享,第一次接触会比较陌生,不过大家多少有了解过ffmpeg,看上去是不是很熟悉?ffmpeg是一套处理音视频的开源程序,但对于C了解较少的同学,编译起来很复杂…

掌握这几个技术点,你也能开发出爆款ARPG游戏!

在众多ARPG游戏的发售下,游戏市场温度迅速升高,今年很可能会成为一个“ARPG手游大年”,或许会再次出现“神仙打架”的情况。 ARPG作为一种非常经典且流行的游戏类型, 已经诞生过无数经典的作品,比如魂系,暗黑破坏神系列,塞尔达传说系列&#…

网页在特殊日子一键变灰

<template> <div :class"{ grayscale: isGrayscale }"> <!-- 你的页面内容放在这里 --> </div> </template> <script> export default { data() { return { // 存储哀悼日的数组 aidaoriDates:["0404", &q…

Filter过滤器+JWT令牌实现登陆验证

一、背景 我们需要在客户端访问服务器的时候给定用户一定的操作权限&#xff0c;比如没有登陆时就不能进行其他操作。如果他需要进行其他操作&#xff0c;而在这之前他没有登陆过&#xff0c;服务端则需要将该请求拦截下来&#xff0c;这就需要用到过滤器&#xff0c;过滤器可以…

高速缓冲存储器(Cache)

程序访问的局部性原理 程序访问的局部性原理包括时间局部性和空间局部性。 时间局部性&#xff1a;指在最近的未来要用到的信息&#xff0c;很可能是现在正在使用的信息&#xff0c;因为程序中存在循环。空间局部性&#xff1a;指在最近的未来要用到的信息&#xff0c;很可能…

简析内部审计数字化转型的方法和路径【小落送书(第6期)】

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

利用IP地址信息提升网络安全

在计算机网络中&#xff0c;IP地址是用于唯一标识网络设备的重要标识符。然而&#xff0c;由于网络中存在大量设备&#xff0c;有时会出现IP地址冲突的情况&#xff0c;即两个或多个设备在同一网络中使用了相同的IP地址&#xff0c;这可能导致网络连接故障和通信中断。本文将介…

基于PHP的医院绩效管理系统设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 相关技术 3 1.1 PHP技术简介 3 1.2 Bootstrap框架简介 3 1.3 MVC技术模式简介 3 1.4 Ajax技术简介 3 1.5 MySQL数据库简介 4 1.6本章小结 4 2 系统需求分析 5 2.1系统分析 5 2.2需求分析 8 2.2.1用户需求分析 8 2.2.2管理员需求分析 10 2…

知识付费开发:开启智慧的新篇章

在数字化时代的浪潮下&#xff0c;知识的获取与分享方式正在发生深刻变革。传统的知识传递模式逐渐被知识付费开发的新模式所取代&#xff0c;它以其独特的魅力和巨大的潜力&#xff0c;正在引领着智慧的新潮流。 知识付费开发&#xff0c;是以用户为中心&#xff0c;以知识为…

Spring Boot工程集成验证码生成与验证功能教程

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

基于SSM技术的宠物寄存系统设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 相关技术介绍 3 1.1 开发技术语言 3 1.1.1 Java 3 1.1.2 Ajax 3 1.1.3 JavaScript 3 1.2 开发框架 4 1.2.1 Spring 4 1.2.2 Spring MVC 4 1.2.3 Mybatis 4 1.2.4 Bootstrap 5 1.3 MySQL数据库 5 1.4 本章小结 6 2 系统分析 7 2.1 系统的需…

针对ETC系统的OBE-SAM模块设计方案

ETC&#xff08;Electrical Toll Collection&#xff09;不停车收费是目前世界上最先进的路桥收费方式。通过安装在车辆挡风玻璃上的车载单元与安装在收费站 ETC 车道上的路侧单元之间的微波专用短程通讯&#xff0c;利用计算机联网技术与银行进行后台结算处理&#xff0c;从而…

ubuntu上通过apt-get 安装指定版本的ecal

在ubuntu上想通过apt get直接安装ecal不自己编译源码安装的话&#xff0c; ecal官网给出的安装指令是 2. Installing eCAL — Eclipse eCAL™ sudo add-apt-repository ppa:ecal/ecal-latest sudo apt-get update sudo apt-get install ecal 要指定版本的时候 按照提示&…

【ICCV】AIGC时代下的SOTA人脸表征提取器TransFace,FaceChain团队出品

一、论文 本文介绍被计算机视觉顶级国际会议ICCV 2023接收的论文 "TransFace: Calibrating Transformer Training for Face Recognition from a Data-Centric Perspective" 论文链接&#xff1a;https://arxiv.org/abs/2308.10133 开源代码&#xff1a;https://an…

在PyCharm中使用Jupyter Notebooks实现高效开发

大家好&#xff0c;在数据科学领域&#xff0c;Jupyter Notebooks已成为一种流行的工具&#xff0c;许多专业人士都在使用它来进行数据分析、机器学习等任务。有时&#xff0c;我们希望在更加强大、功能齐全的IDE环境中运行Jupyter笔记本&#xff0c;以提高工作效率和开发体验。…