DDS与时间敏感网络TSN

自上世纪70年代以太网诞生以来,其速度已大幅提高,但时延和带宽优化问题仍然存在。为解决这些问题,IEEE802委员会制定了时间敏感网络(TSN)子标准,旨在使各类网络流量能共享公共链路,同时确保高精确度与确定性的时序应用。实现TSN需要结合微处理器的决策功能与FPGA的专用电路,赛灵思在2016年演示了TSN与关键工业协议的结合,并于2017年发布了TSN解决方案的基础版本。

关键词:数据分发服务,DDS,时间敏感网络,TSN

上世纪 70 年代晚期,以太网之父在施乐帕洛阿尔托研究中心 (PARC) 制作出以太网的雏形 (3Mb/s)。当时他们的研究重点是连接功能,对网络时延或吞吐量关注不多。当时的网络节点是工作站上的工作人员和激光打印机,没人关心数据包在传输过程中是否相互干扰,是否会在抵达目的地前被多次重复发送。在网络中,长短数据包混合传输会给短数据包造成长时延,因为它们需要等待长数据包通过。这个过程就像汽车要在公路的铁路道口等待列车通过,才能穿过道口。

快进到今天,以太网速度与过去相比已有天渊之别。更快的速度能大幅度提升容量,但对降低时延或优化带宽而言意义不大。在重负载情况下,掉线和再发送数据包仍然是常事。意识到这种情况会限制以太网在要求高精确度与确定性时序应用上的效用,负责以太网规格的 IEEE 802 委员会制定了一套总体上被称为“时间敏感网络 (TSN)”的子标准,便于各类网络流量共享公共链路。

但要把 TSN 变为现实,是一个无比艰巨的技术难题。在传统以太网中,一旦某一节点开始发送数据包“A”,那么它必须在发送完成后才能开始发送另一个数据包。但如果队列头突然遭遇延迟,导致数据包“B”错过截止发送时限,会发生什么情况呢?发送方要么必须等待第一个数据包发送完毕,要么中止发送,转而发送数据包“B”,然后再从头完整地重新发送数据包“A”,牺牲带宽来最大限度降低时延。在具备 TSN 功能的网络中,发送节点可以在中途暂停发送数据包“A”,先发送完数据包“B”,然后从中断点恢复发送数据包“A”。在相对速度较慢的网络 (100Mb/s) 中,控制器有不到 82 微秒 (µs) 的时间评估排队选项,然后做出决策。在千兆位速度下,这个时间甚至缩短到 8 微秒。
在这里插入图片描述

实现 TSN 需要将微处理器的决策制定功能与 FPGA 的专用电路相结合。在 2016 年德国纽伦堡工业自动化展会上,赛灵思演示了运行在 TSN 顶层的 OPC UA、DDS 和 EtherCAT 等关键工业协议。在 2017 年,发布了 TSN 解决方案的基础版本,名称“朗朗上口”,叫“1G/100M TSN 子系统 LogiCORE IP”。它能与 Zynq-7000 或 Zynq UltraScale+ MPSoC 器件配合使用,为多种应用提供单芯片解决方案。在德国纽伦堡工业自动化展会上,展示了 Acutronic Robotics 的 MARA 协作机器人 (Cobot)。这类机器人严重依赖于实时运动控制来实现速度、精度和安全。基于赛灵思 Zynq 的 TSN 解决方案负责管理多轴机器人使用的基于以太网的确定性通信功能。


译文连载

RTPS规范-译文连载:实时发布订阅协议(RTPS)DDS互操作网络协议规范-中文翻译_001
DDS规范-译文连载:DDS (Data Distribution Service) 数据分发服务-规范中文翻译_001

相关链接

DDS科普:一文读懂DDS(数据分发服务)
DDS定义:什么是DDS?
### 实现DDSTSN网络中的结合 在现代分布式系统中,为了满足严格的实时性和可靠性要求,通常会采用数据分发服务(DDS)协议时间敏感网络TSN)相结合的方法。这种组合能够提供高效的数据传输机制以及精确的时间同步能力。 #### 设计原则 当考虑在一个支持 TSN 的环境中部署基于 DDS 的应用程序时,有几个重要的因素需要考量: - **流量整形**:利用 TSN 提供的流量调度功能来优化不同类型的 DDS 数据流处理方式[^1]。 - **资源预留**:确保关键路径上的带宽和其他必要资源被提前分配给特定的应用程序或消息类型,从而保障其服务质量(QoS)[^2]。 - **冗余规划**:考虑到可能出现的各种故障场景,应建立足够的备份路由和服务实例以维持系统的高可用性[^3]。 #### 技术细节 具体来说,在一个典型的 TSN 网络里实施 DDS 通信涉及以下几个方面的工作: ##### 流量分类标记 通过对来自各个节点的消息按照优先级或其他属性进行区分,并打上相应的标签,使得交换机可以根据这些信息执行更精细的操作。例如,对于那些具有严格时效性的控制指令应当赋予更高的权重;而对于一般状态更新则可以适当放宽限制条件[^4]。 ```python def classify_and_tag_traffic(message, priority_level): """ 对传入的消息按指定级别设置DSCP/Traffic Class字段 参数: message (bytes): 要发送的数据报文 priority_level (int): 数字表示的重要性等级(0~7),数值越大越重要 返回值: tagged_message (bytes): 添加了QoS参数后的完整帧结构 """ dscp_value = int(priority_level * 32 / 7) # 将priority映射到DSCP范围内的整数部分 header_with_dscp = b'\x89\x00' + bytes([dscp_value]) + ... # 构造带有DSCP的新头部 return header_with_dscp + message ``` ##### 时间感知型调度算法 借助于 IEEE 802.1Qbv 定义的功能集——即周期性门控机制(CPG),允许管理员定义一系列窗口期,在此期间内只有某些类别的业务才获准通行。这样做的好处是可以有效减少抖动现象的发生频率并提高整体吞吐性能。 ##### 同步时钟源的选择 为了让所有参交互的对象都能遵循统一的时间基准线运作,必须选定合适的参考点作为全局协调的基础。目前较为流行的解决方案包括 PTPv2 协议所提供的硬件辅助精度校正手段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值