五十多篇DDS从Topic到QoS从RTPS报文到发现阶段从发布订阅到与SOME/IP分工一路写下来终于到了可以“回头看”的时候。学DDS之前老是听人说“DDS是自动驾驶的标配”“DDS比SOME/IP强大”“DDS有QoSSOME/IP没有”……听多了心里痒痒的觉得这东西一定很厉害。现在学完了不敢说精通但至少——它是什么能干什么怎么干心里有底了。这种感觉比光听别人说强太多了。一、如果只用一句话介绍DDSDDS 数据分发服务 让一个数据同时发给多个接收方还能按需配置服务质量。传统通信是你问他答SOME/IPDDS是我发你收。摄像头拍到的图像不需要等域控来问直接往Topic里扔谁订阅谁收。域控收了做感知座舱收了做显示记录仪收了做保存——一个数据三个用途摄像头只发一次。这就是DDS最核心的价值。二、学完DDS我最想说的三件事第一DDS的“自动发现”不是魔法。以前听人讲DDS总说“自动发现”“自动匹配”听起来很玄乎。学完之后才知道就是SPDP广播“我上线了”SEDP广播“我要发什么”“我要收什么”本地一对比暗号对上了就自动连。不是魔法是提前约定好的暗号。第二QoS是DDS的灵魂但不是万能的。刹车指令配RELIABLEHIGH1ms摄像头图像配BEST_EFFORTNORMAL100ms。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 53RTP 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。
车载以太网之要火系列 - 番外篇5:DDS学完回头看,入门容易精通难
五十多篇DDS从Topic到QoS从RTPS报文到发现阶段从发布订阅到与SOME/IP分工一路写下来终于到了可以“回头看”的时候。学DDS之前老是听人说“DDS是自动驾驶的标配”“DDS比SOME/IP强大”“DDS有QoSSOME/IP没有”……听多了心里痒痒的觉得这东西一定很厉害。现在学完了不敢说精通但至少——它是什么能干什么怎么干心里有底了。这种感觉比光听别人说强太多了。一、如果只用一句话介绍DDSDDS 数据分发服务 让一个数据同时发给多个接收方还能按需配置服务质量。传统通信是你问他答SOME/IPDDS是我发你收。摄像头拍到的图像不需要等域控来问直接往Topic里扔谁订阅谁收。域控收了做感知座舱收了做显示记录仪收了做保存——一个数据三个用途摄像头只发一次。这就是DDS最核心的价值。二、学完DDS我最想说的三件事第一DDS的“自动发现”不是魔法。以前听人讲DDS总说“自动发现”“自动匹配”听起来很玄乎。学完之后才知道就是SPDP广播“我上线了”SEDP广播“我要发什么”“我要收什么”本地一对比暗号对上了就自动连。不是魔法是提前约定好的暗号。第二QoS是DDS的灵魂但不是万能的。刹车指令配RELIABLEHIGH1ms摄像头图像配BEST_EFFORTNORMAL100ms。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 53RTP 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。