你想了解的DDS协议解决方案在这里

news/2024/11/19 10:45:32/文章来源:https://www.cnblogs.com/hirain123/p/18554391

       随着汽车电子电气架构快速演进,车企对车内网络通信性能、安全性、灵活性要求日益提升,车载总线通信技术也迎来革新挑战。在此背景下,DDS(Data Distribution Service)凭借其高性能、高可靠和低延迟的特点,有力支撑了智能汽车系统的高效运行。

       DDS协议凭借其在物联网、工业自动化、航空航天与国防等领域的广泛应用,展现了其卓越的技术兼容性与行业适应性。如今,该协议与车载网络通信应用的深度融合,已成为全球汽车制造商关注的焦点。

       作为OPEN联盟的活跃成员与AUTOSAR联盟的高级合作伙伴,经纬恒润致力于为国内外各大OEMs及供应商,提供全面覆盖TCP/IP、SOME/IP、DoIP、AVB、TSN、DDS、MQTT,以及10M、Multi-G等一系列关键技术领域的设计与测试咨询服务。秉持创新精神,深入探索车载网络技术的前沿应用,以期引领行业变革。

       基于丰富的项目实施经验,经纬恒润已成功构建了一套高质量、本土化的DDS设计开发与测试一体化解决方案,为整车网络架构的创新发展,提供了坚实的技术保障和支持

 

DDS设计解决方案

       在整车设计阶段,DDS系统设计是后续ECU实现的基础。经纬恒润依托多年对DDS的深入理解和丰富的车载网络设计经验,开发了适用于车载ECU落地应用的DDS需求规范,探索出基于服务/数据进行兼容性设计的方法,并提供适用于后续环节的xml/idl/arxml文件,保持研发过程的数据一致性,保障研发过程顺利进行。

DDS数据库格式转换工具

       INTEWORK-VDC(Vehicle Database Convertor,以下简称VDC)是一款简单易用的数据库转换工具,可以实现企业Excel矩阵模板与车型通信数据的标准格式文件之间的自动转换,以及其他辅助功能。VDC支持CAN(FD)、Ethernet、LIN、J1939多种协议的数据库,软件界面功能布局清晰、操作简单,大部分功能只需要一键操作即可完成,转换速率快,并且支持常见的错误检查和定位。

 

       DDS作为车载以太网的通信中间件协议,其功能被集成在VDC软件中的Ethernet模块,主要功能包括:

  • DDS通信矩阵与DDS数据库文件的转换
  • DDS通信矩阵的一致性检查
  • 数据库平台选择
  • 数据库类型选择 
  • ECU节点的合并/拆分

       目前我们也正在开发DDS通信数据库设计开发工具,相关功能即将在INTEWORK-VDE(Vehicle Database Editor)新版中发布,VDE是经纬恒润自主系列工具中的网络通信及数据库开发工具,目前已经支持基于SOME/IP、CAN、CANFD多种通信协议的通信系统设计以及AUTOSAR AP/CP平台的数据库开发,方便用户高效、高质量地完成整车网络通信设计。

DDS协议栈

       经纬恒润在汽车电子领域深耕二十余载,于2009年与AUTOSAR联盟结缘,成为AUTOSAR组织的Associate Partner,是国内首家加入AUTOSAR组织的基础软件供应商。作为国内AUTOSAR自主产业的重要参与者,经纬恒润结合相关业务经验,自主研发了适应当前智能网联汽车技术发展趋势、符合AUTOSAR标准、稳定可靠且便捷易用的AUTOSAR软件产品——INTEWORK-EAS(ECU AUTOSAR Software,以下简称EAS)。目前也已发布DDS协议栈组件。

  • Hirain AUTOSAR CP DDS特点优势

       DDS 协议栈组件包括DCPS 功能、RTPS 功能、XTypes 功能、RPC 功能等。基于OMG Data Distribution Service 1.4规范进行开发,支持 AUTOSAR CP R22-11 版本的规范要求,产品具备以下特点:

       ① 支持通信域内的动态发现功能

       ② 支持 20 多种 QoS 策略的组合使用,支持动态获取及修改 QoS 策略的功能

       ③ 支持拓展协议 DDS-RPC 的功能

       ④ 支持 XTypes 的 PLAIN_CDR 和 PLAIN_CDR2 两种序列化方式

       ⑤ 支持通信矩阵(xml)导入,自动创建 DDS 模块相关配置参数

  • Hirain AUTOSAR AP DDS特点优势

       基于OMG Data Distribution Service 1.4规范进行开发,支持 AUTOSAR AP R19-11 和R22-11版本的规范要求,可以适配Linux、QNX等操作系统,匹配TDA4、S32G等SOC芯片;具备以下特点:

       ① 支持 RTPS V2.2,DDS V1.4,XTypes V1.3

       ② 支持 SPDP,SEDP,Liveliness 协议和长消息分片功能

       ③ 支持常用Qos:user_data / partition / durability / lifespan / deadline / liveliness / ownership / ownership_strength / history / reliability / destination_order / resource_limits / entity_factory

       ④ 支持 XTypes 协议CDR v1 和 CDR v2,支持基础类型和自定义类型的静态语言绑定

 

TESTBASE仿真测试系统

       目前部分OEM使用商业或者开源的DDS产品部署到各个控制器中,当然也有不少厂家在向MCU中集成DDS,受性能与资源限制,会对DDS中间件进行适当的裁剪和修改。在目前DDS协议栈百花齐放的市场下,如何满足HIL测试中DDS协议的正常交互是一个巨大挑战。通过经纬恒润自研的实验管理软件TCS、实时仿真引擎RTSE、以太网仿真板卡TB3902可以实现DDS协议栈的仿真及监控功能,满足硬件在环(HIL)中仿真测试的需求。

 

       INTEWORK-TCS(Testbase Control Software)是经纬恒润自主研发的一款实验管理软件,它可以配合HIL系统实现多种总线协议的仿真监控。该HIL方案可以集成目前开源的Cyclone DDS/Fast-DDS/Open-DDS协议栈,也可以响应客户定制化DDS协议的集成。用户可以通过加载IDL/xml/Excel等多种数据库的形式进行DDS协议报文的添加,以及相关Qos的设置,来实现DDS报文的仿真及监控。

       RTSE(Real Time Simulation Engine)是经纬恒润自研实时仿真引擎,其中实时操作系统支持多种开源的DDS协议栈,并支持客户定制化的DDS协议栈集成。通过TCS进行协议栈及报文的配置,实现DDS报文的仿真及信号监控功能。

       TB3902是经纬恒润自研的车载以太网板卡,支持4路100/1000Base-T1,支持Simulation、Switch、Monitor等多种模式。通过TB3902硬件实现与控制器之间的报文交互以及控制器与控制器之间的报文监控功能。

 

DDS协议测试解决方案

       DDS协议测试包括协议一致性测试和配置测试,以保证协议栈实现与协议要求的一致性和通信矩阵配置正确性,包括但不限于QoS配置测试、实体行为测试、数据序列化测试等内容。

       为了实现DDS协议的一致性和配置检查,经纬恒润自主开发完整的一致性和配置测试规范,用例覆盖标准协议和OEM常见配置需求。针对一致性测试,工程师开发了增强测试服务(Enhancement Testability Service,ETS)矩阵,配置内容覆盖全面,且满足DDS系统设计要求。同时,为了触发DUT的部分行为,经纬恒润开发了全套DUT内集成测试上位机(Upper Tester,UT)服务原语规范定义及UT代码,使一致性测试更加全面。

 

       上述测试内容可通过ANTP.DDS来实施,该测试套件已实现完整的DDS协议测试脚本和测试序列,通过简单配置、一键执行即可自动生成测试报告,简单高效。

 

车载总线监控工具

       INTEWORK-VBA ( Vehicle Bus Analyzer,以下简称VBA)是经纬恒润自主研发的一款专业、易用的车载总线监控分析及仿真工具,它集监控、分析、仿真、测量标定、故障诊断等核心功能于一体,服务于研发仿真分析到系统测试验证的整车研发“V流程”。

 

       考虑到DDS协议在汽车电子中的广泛使用,总线监控工具VBA也在不断扩展对DDS相关功能的支持。当前VBA已经实现DDS通信报文的监控和解析,用户可以导入XML数据库文件,实现对DDS数据的解析。此外,VBA向用户提供了报文仿真的功能,用户可以通过VBA中仿真模块向控制器发出相应格式的DDS报文,仿真DDS的通信。

 

了解更多

       上述INTEWORK系列软件可免费申请试用,请致电 010-64840808转6116或发邮件至market_dept@hirain.com(联系时请说明来自博客园)

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

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

相关文章

VL4AD:让语义分割认识未知类别,无需额外数据和训练的OOD语义分割 | ECCV24

来源:晓飞的算法工程笔记 公众号,转载请注明出处论文: VL4AD: Vision-Language Models Improve Pixel-wise Anomaly Detection论文地址:https://arxiv.org/abs/2409.17330创新性提出VL4AD模型用于解决语义分割网络难以检测来自未知语义类别的异常的问题,避免额外的数据收集…

20222327 2024-2025-1 《网络与系统攻防技术》实验五实验报告

一、实验内容 网络攻击需要搜集的信息包括: 攻击对象的名称和域名;目标网络位置,如IP地址、DNS服务器、外部网络拓扑结构;现实世界中的对应物,如注册信息、电话号段、网络或安全管理员及联系方式、地理位置等;网络地图,包括活跃主机IP、操作系统类型、开放的端口与运行的…

小鸟科技携手纷享销客,共谱CRM国产化替代新篇章

小鸟科技(DigiBird)成立于2009年,是一家专注于全球专业视听领域,为客户提供数字化解决方案的国家高新技术企业。小鸟科技先后在北京、上海、广州、成都、西安、沈阳、济南、南京等多地设立分公司或服务网点,并拥有北京、郑州、南京三大研发团队,成功以自主品牌进入国际市…

LeetCode 2769[找出最大的可达成数字]

LeetCode 2769[找出最大的可达成数字]题目 链接 LeetCode 2769[找出最大的可达成数字] 详情实例提示题解 思路 每一步操作可同时操作 num 和 x ,可同时增加或者减少,若使 num 为最小值,每一步增加 1 个,同时 x 减少一个,则此时的 x 即为最大值 num 减少同时 x 增加,则操作…

王爽汇编笔记(第三版)

1. 测试环境 1.1 DosBox 简介:模拟dos环境的一个软件 下载地址:https://www.dosbox.com/download.php?main=1安装步骤:下一步...... 问题1: debug 不是内部或外部命令,也不是可运行的程序或批处理文件。 debug : 无法将“debug”项识别为 cmdlet、函数、脚本文件或可运行程…

VLC多媒体播放器 合并字幕srt文件和mp4文件 方法

转载自: 链接:https://blog.csdn.net/sdkdlwk/article/details/143867825 作者:sdkdlwk步骤: 1. 将视频和字幕放到同一个文件夹,并保证二者名字相同。 选择菜单"媒体"->"流"或者ctrl+s点"添加"选择视频文件,注意这里不要选择下面的使用…

聊聊springboot项目中使用jackson的一些小技巧

前言 在我们前后端联调时,很经常以json作为数据的交互格式,今天我们就来聊聊在开发springboot项目中,使用jackson进行数据渲染一些小技巧 场景一:枚举-JSON互转 在日常开发中我们为了避免过多的魔法值,使用枚举类来封装一些静态的状态代码。 但是在将这些枚举的意思正确而…

存储快照原理

快照有COW(Copy On Write,写时复制)和ROW(Redirect On Write,写重定向)两种实现方式。 1 .COW COW(Copy-On-Write),写时拷贝,也称为写前拷贝。 创建快照,如果源卷的数据发生了变化,快照系统会将原始数据拷贝到快照卷上的数据块中,然后再对源卷进行改写; OW快照在初…

树分治全家桶

树分治全家桶 树,(是一种益于保护环境植物)是图论当中的一种特殊图,由于(绿化环境的作用非常优秀)特殊性质丰富,经常出现在我们身边。 本文将主要介绍(如何植树)一种树上优美的暴力——树分治。 树分治 树分治可以将部分暴力降至 \(O(\log n)\) 至 \(O(\log^2 n)\) 级…

模拟计算hash前面N个0需要的时间

写了一个python代码用来模拟计算当hash前面有N个0时需要多长时间。 代码如下: import hashlib import time from datetime import timedelta from plyer import notificationdef find_hash_with_prefix_zeros(prefix_length=6):# 初始字符串base_text = "Hello, World!&q…

StopWatch使用

调试查看耗时的一个便捷类,一般只使用三个方法StopWatch stopWatch = new StopWatch();stopWatch.start("获取对象");//逻辑代码xxxxxxxxxxxstopWatch.stop();log.info(stopWatch.prettyPrint()); //打印详细信息