当前位置: 首页 > news >正文

车载以太网之要火系列 - 番外篇5:DDS学完回头看,入门容易精通难

五十多篇DDS,从Topic到QoS,从RTPS报文到发现阶段,从发布订阅到与SOME/IP分工,一路写下来,终于到了可以“回头看”的时候。

学DDS之前,老是听人说“DDS是自动驾驶的标配”“DDS比SOME/IP强大”“DDS有QoS,SOME/IP没有”……听多了,心里痒痒的,觉得这东西一定很厉害。

现在学完了,不敢说精通,但至少——它是什么,能干什么,怎么干,心里有底了。

这种感觉,比光听别人说强太多了。

一、如果只用一句话介绍DDS

DDS = 数据分发服务 = 让一个数据同时发给多个接收方,还能按需配置服务质量。

传统通信是你问他答(SOME/IP),DDS是我发你收。

摄像头拍到的图像,不需要等域控来问,直接往Topic里扔,谁订阅谁收。域控收了做感知,座舱收了做显示,记录仪收了做保存——一个数据,三个用途,摄像头只发一次。

这就是DDS最核心的价值。

二、学完DDS,我最想说的三件事

第一,DDS的“自动发现”不是魔法。

以前听人讲DDS,总说“自动发现”“自动匹配”,听起来很玄乎。学完之后才知道,就是SPDP广播“我上线了”,SEDP广播“我要发什么”“我要收什么”,本地一对比,暗号对上了就自动连。

不是魔法,是提前约定好的暗号。

第二,QoS是DDS的灵魂,但不是万能的。

刹车指令配RELIABLE+HIGH+1ms,摄像头图像配BEST_EFFORT+NORMAL+100ms。QoS搞错了,轻则性能差,重则根本连不上。

但QoS不是万能的。它只能在DDS协议栈的能力范围内优化,网络带宽不够、硬件性能不足,QoS也救不了。

第三,DDS和SOME/IP不是竞争对手。

以前以为DDS要干掉SOME/IP,学完才知道,它们各管一摊。自动驾驶大数据用DDS,车身控制RPC用SOME/IP。一个域控制器同时跑DDS和SOME/IP,不打架,不冲突。

不是谁取代谁,是谁更适合什么。

三、那些学的时候“迷迷糊糊”,现在“有点明白”的地方

关于Topic

以前觉得Topic就是“话题”,很抽象。现在理解就是“数据的名字”。摄像头图像叫/camera/front,刹车指令叫/brake/cmd。名字定好了,发和收对得上就行。

关于RTPS报文

以前看到52 54 50 53(RTP S)就觉得头疼。现在看到,知道“哦,这是DDS的报文”,然后看里面是DATA还是Heartbeat还是AckNack。

关于发现阶段

以前觉得“自动发现”很智能。现在知道,就是SPDP→SEDP→匹配→单播。四步走完,连接建立。不智能,但可靠。

关于QoS

以前觉得QoS是“高级配置”。现在知道,就是告诉DDS“这个数据重要,那个数据可以随便”。刹车指令不能丢,摄像头图像丢了就丢了。

关于与SOME/IP的分工

以前觉得DDS和SOME/IP是竞争对手。现在知道,它们各管一摊,甚至可以同时跑在一个ECU上。

四、学完之后,我不得不承认的几个事实

DDS不是银弹,解决不了所有问题。配置复杂,资源消耗大,QoS不匹配就连不上。但它解决的问题——大数据分发、一对多通信、服务质量保证——是SOME/IP解决不了的。

DDS的报文比SOME/IP复杂得多,但复杂有复杂的道理。SOME/IP一个RPC调用,12字节头部就够了。DDS要传图像,需要分片、重传、确认。

学了DDS,不代表SOME/IP就没用了。车身控制还是SOME/IP顺手,自动驾驶才需要DDS。

五、下一步:TSN(时间敏感网络)

DDS学完了,下一步准备研究TSN

如果说DDS解决了“数据怎么分发给多个人”的问题,那TSN要解决的是“数据怎么准时到达”的问题。

刹车指令1ms内不到,车可能就撞了。摄像头图像100ms内不到,自动驾驶反应就慢了。普通以太网是“尽力而为”,不保证时间;TSN通过时间同步、流量整形、带宽预留,给关键数据开专用通道

DDS + TSN,一个管分发,一个管准时——可能是自动驾驶通信的“黄金搭档”。

TSN的内容大概能写多少篇,现在还没想好。但估计不会少于DDS的篇幅。老规矩,一边学一边写,不赶进度,不给自己太大压力。

写在最后

从第50篇到第61篇,DDS系列写完了。

不敢说精通,只能说——入门了,心里有底了。

技术这个东西,学一遍是不够的。过段时间回头看,肯定又有新的理解。但至少,我不再是那个只听过DDS、说不出所以然的门外汉了。

学完DoIP、UDS、SOME/IP、DDS,车载以太网的几大块算是有了个框架。虽然每块都还有很多细节没摸透,但下一步的方向已经清楚了——TSN,让数据准时到达。

这篇番外,不是技术笔记,是一路学过来的真实感受。

如果你也在学DDS,学得有点迷糊,不妨停下来,回头看看。有些东西,不是一遍能搞定的。

温故而知新,可以为师矣,爬着爬着也学就成大咖了,嘿嘿。

打完收工,886。

http://www.zskr.cn/news/1458517.html

相关文章:

  • Agentic AI自主智能体技术深度研究
  • AI核心知识——蒸馏
  • ssm游戏美术外包管理信息系统(10152)
  • EduCoder平台自动化运维小记:多账号签到与答案同步的实践与思考
  • 树莓派新手必看:用手机热点替代电脑,户外也能玩转(附VNC配置)
  • AI编程祛魅:从功能幻觉到零故障工作流的实战指南
  • 拆解Botsch经典算法:手写半边结构,一步步实现Isotropic Remeshing(附C++代码)
  • 保姆级教程:在嵌入式Linux上实战I3C SDR模式的热加入与带内中断(附代码避坑)
  • Python 爬虫进阶技巧:元数据 meta 标签提取辅助爬虫页面判重
  • Harness Engineering:Agent自主决策审计
  • 用STM32F103C8T6搞定74HC165扩展16个按键(附完整代码和接线图)
  • 2026降AIGC革命:AI率92%暴降至5%!实测10款降AI率工具!薅羊毛技巧!
  • 深入探秘 Golang 源码中 channel 管道通信的真正设计意图与边界
  • 绝区零自动化脚本终极指南:3分钟快速上手完整教程
  • Xcode 15开发者的终端效率手册:除了CMD+R运行,你的快捷键还缺这一块
  • 告别WebView黑盒:用Chrome DevTools调试Android混合开发页面(附Androidx-WebKit实战)
  • MATLAB图像质量评价避坑指南:为什么你的PSNR/SSIM结果和OpenCV差那么多?
  • 你的旧笔记本别扔!巧用闲置MiniPCIe接口,低成本变身4G物联网网关或监控终端
  • 1、VTK+QT + cmake编程 三维圆柱体
  • 如何2分钟搞定iPhone在Windows上的网络共享:终极驱动安装方案
  • FlagOS实现DeepSeekV4八芯片Day0适配技术解析
  • 保姆级教程:I3C总线初始化与动态地址分配实战(基于SDR模式)
  • 蓝桥杯5G仿真平台保姆级配置指南:从BBU到核心网,手把手带你打通第一个5G呼叫
  • 2026年实测AI写作辅助平台榜单(实测甄选版)
  • 从零开始组装电脑:硬件选型、兼容性检查与装机全流程实战指南
  • Qwen3.6-Plus实战:8分钟生成可部署官网的前端工作流
  • RK3568双网口开发板,u-boot下如何固定网络设备?一个env变量ethact就搞定
  • 创客教育中电路设计的多元应用:从模块化到生活场景实践
  • SpringBoot项目OOM排查实录:一个10MB的max-http-header-size配置是如何吃光8G堆内存的
  • 消费返利模式的底层困局:为什么很多平台从一开始就走不远?