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

随着车载通信技术的快速发展,传统的通信技术在满足车载通信需求方面面临着一些挑战。车载通信对实时性、可靠性以及通信带宽的需求越来越高,同时车载通信环境存在多路径衰落、信号干扰等问题,这些都给通信技术的选择和应用带来了一定的挑战。因此,开发一种适用于车载通信的高效可靠的通信技术变得尤为重要。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协议及测试有兴趣&需求的专家与我们交流。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

沐风老师3DMAX快速布尔QuickBoolean插件安装和使用教程

3DMAX快速布尔QuickBoolean插件安装和使用教程 3DMAX快速布尔QuickBoolean插件是一组工具,用于对具有预设轮廓的当前选定对象快速执行ProBoolean运算,如并集、相交、空心、修剪、减法、拆分和刀。 它的工作原理与SketchUp的Solid Tools非常相似&#xf…

qt如何配置ros环境

在Qt5.7的版本可以使用bash -i -c来启动qt,让Qt自己识别系统环境,不知道为什么Qt在之后的版本,这样使用都失效了。因为它会默认把CMAKE_PREFIX_PATH修改掉。 网上还有安装ros插件版本的qt creator,感觉失去了一些灵活性。 自己测试…

STM32CubeIDE基础学习-STM32CubeIDE软件配置下载器方法

STM32CubeIDE基础学习-STM32CubeIDE软件配置下载器方法 文章目录 STM32CubeIDE基础学习-STM32CubeIDE软件配置下载器方法前言第1章 配置ST-LINK下载器第2章 配置DAP下载器总结 前言 这个软件编译完之后,可以使用下载器进行在线下载程序或仿真调试程序,也…

高效办公-电脑软件安装简介

之前大概了解了一下应用软件就是在操作系统上面安装的一些办公软件。今天来学习下怎么下载软件、怎么安装、怎样卸载? 一、软件类型 电脑操作系统上可以根据自己的需求按照许多软件实现办公、影音娱乐等功能,大概分类有下面的一些,但是只是一…

设计模式(十):抽象工厂模式(创建型模式)

Abstract Factory,抽象工厂:提供一个创建一系列相关或相互依赖对 象的接口,而无须指定它们的具体类。 之前写过简单工厂和工厂方法模式(创建型模式),这两种模式比较简单。 简单工厂模式其实不符合开闭原则,即对修改关闭…

Linux:kubernetes(k8s)允许在任意节点使用kubectl命令(5)

我们部署好了主节点以后,我们使用kubectl命令 一切正常,而我们到了别的node上使用 就显示一个这个 这个原因是因为我们开始就配置了master的一个配置文件,在/root/.kube/config 里,而我们的从节点不知道去找那个api接口所以就报…

一分钟安装使用教程,无需服务器,一台电脑就可使用!全网最快速便捷使用Claude 3方法!

随着AI的应用变广,各类AI程序已逐渐普及,尤其是在一些日常办公、学习等与撰写/翻译文稿密切相关的场景,大家都希望找到一个适合自己的稳定可靠的ChatGPT软件来使用。 ChatGPT-Next-Web就是一个很好的选择。它是一个Github上超人气的免费开源…

【mogoose】对查询的数据进行过滤不需要展示的信息

数据库结构如下 我只要email userName sex role 几个数据,其余不要 {_id: new ObjectId(65e7b6df8d06a0623fa899f5),email: 12345qq.com,pwd: $2a$10$eLJ9skKEsQxvzHf5X8hbaOXKtg8GCHBeieieSN6Usu17D2DPaI44i,userName: 默认昵称0769,sex: 0,token: {upCount: 0,_…

想交易盈利?Anzo Capital昂首资本发现了一本畅销书

要想在复杂多变的外汇市场中迅速加深了解并想通过交易每天都可以盈利,是通过每天阅读大量的书籍吗?是每天成为行业培训网络资源和论坛的常客吗?是通过花钱请有经验的交易者进行个人培训吗?还是进行EA交易呢? 都不是&a…

C# LINQ基础

LINQ基础 1. 入门2. 运算符流语法2.1 连续使用查询运算符2.2 使用Lambda表达式2.2.1 Lambda表达式及Func的方法签名2.2.2 Lambda表达式和元素类型2.2.3 自然排序2.2.4 其他查询运算符 3 查询表达式4 延迟执行4.1 重复执行4.2 捕获的变量4.3 延迟加载的工作原理4.4 查询语句的执…

如何将TIDB作为Mysql的从库实现实时数据同步

------------------------------------------------------------------- 欢迎关注作者 墨天伦:潇湘秦的个人主页 - 墨天轮 CSDN:潇湘秦-CSDN博客 公众号:潇湘秦的DBA之路 ------------------------------------------------------------------- 近期一个MES项目架构比较复…

Spark实战-基于Spark日志清洗与数据统计以及Zeppelin使用

Saprk-日志实战 一、用户行为日志 1.概念 用户每次访问网站时所有的行为日志(访问、浏览、搜索、点击)用户行为轨迹,流量日志2.原因 分析日志:网站页面访问量网站的粘性推荐3.生产渠道 (1)Nginx(2)Ajax4.日志内容 日志数据内容:1.访问的…

IOS降级后从高版本到低版本恢复备份

IOS降级后从高版本到低版本恢复备份 此方法只适用于小版本还原,比如17.4->17.3,未验证大版本恢复可行性手机型号:iphone 13pro 系统版本:17.4 降级版本:17.3.1 步骤 通过itunes或者MacOS系统下对当前版本进行备份…

Windows11安装FFmpeg最新版本

打开终端: 输入 winget install ffmpeg 然后输入 Y 回车后出现如下图: 正在下载FFmpeg 6.1 安装成功 测试

常见数据类型

目录 数据类型 字符串 char nchar varchar varchar2 nvarchar 数字 number integer binary_float binary_double float 日期 date timestamp 大文本数据 大对象数据 Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 数…

Python实现时间序列分析Theta模型(ThetaModel算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 时间序列分析中的Theta模型(Theta Model)是由Athanasios Theodoridis在2008年提出的一种统计预测方法&…

Java中SpringBoot四大核心组件是什么

一、Spring Boot Starter 1.1 Starter的应用示例 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency><groupId>org.mybatis.sprin…

代码随想录算法训练营第十七天 | 110.平衡二叉树,257. 二叉树的所有路径,404.左叶子之和

递归法&#xff0c;考虑当我站在一个节点上时&#xff0c;我应该干点啥&#xff0c;是不是想知道是否是平衡二叉树&#xff0c;就得知道左右子树的高度&#xff0c;进一步判断这个节点下是不是平衡的&#xff0c;天然的就是一个后序遍历的场景&#xff0c;从左右子树收集信息 …

《JAVA与模式》之观察者模式

系列文章目录 文章目录 系列文章目录前言一、观察者模式的结构二、推模型和拉模型三、JAVA提供的对观察者模式的支持四、怎样使用JAVA对观察者模式的支持前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男…

推荐两本C语言学习的书籍

提高学生应对未来专业实践课程的兴趣和信心。 C程序设计 | 谭浩强 由谭浩强教授著、清华大学出版社出版的《C程序设计》经过近三十年一千多万读者的实践检验&#xff0c;被公认为学习C语言程序设计的经典教材。根据C语言的发展和计算机教学的需要&#xff0c;作者在《C程序设计…