天天看点

“DDS自扫门前雪,哪管OS瓦上霜”,DDS-TSN标准的不足及解决思路

为推动DDS与TSN的融合,OMG组织2018年启动DDS-TSN标准的制定,目标是利用TSN为DDS实时数据分发提供更好的服务质量保证。本文首先指出,DDS-TSN标准只是解决DDS到TSN的适配问题,如不解决OS任务调度和网络I/O的不确定性难题,DDS over TSN的部署还存在很多困难。本文还介绍了我们提出的解决DDS应用适配中OS不确定性问题的“远程候车室”机制。

一、DDS“自扫门前雪“

2003 年对象管理组织(Object Management Group, OMG)发布了数据分发服务(Data Distribution Service,DDS)规范。DDS在为实时分布式应用提供了数据发布/订阅服务,支持多种语言编程的同时,向应用屏蔽了CPU和操作系统差异。因此可以很好的支持分布式应用在不同平台上移植的能力,因此在各类需要分布式实时处理的装备平台中得到广泛应用。

“DDS自扫门前雪,哪管OS瓦上霜”,DDS-TSN标准的不足及解决思路

图1 DDS(1)向应用提供Pubsub数据分发服务;(2)对应用屏蔽OS和CPU差别,提升应用跨平台移植能力

TSN在近年来得到飞速发展,是装备平台嵌入式交换系统的重要发展方向。为了推动DDS与TSN的融合,OMG组织2018年启动DDS-TSN标准的制定,目标是利用TSN为DDS实时数据分发提供更好的服务质量保证。

虽然DDS-TSN标准尚未最终发布,但从相关技术资料看[1],DDS-TSN标准主要在三个方面对DDS进行扩充,如图2所示。

“DDS自扫门前雪,哪管OS瓦上霜”,DDS-TSN标准的不足及解决思路

图2 DDS-TSN的主要原理

从图2可见,DDS-TSN标准从对应用流描述的要求,DDS与CUC通信接口,以及DDS流量到TSN网络的映射三方面为DDS over TSN做了充分准备。即“DDS扫了门前雪”。然而 “适配但不依赖任何操作系统”是DDS的重要设计原则,因此DDS-TSN标准是不会关注 “OS的瓦上霜”的,即如何实现时间触发任务调度以及确保网络I/O延时确定性并不是DDS-TSN标准所关注的,在TSN端系统要上运行DDS,还存在一块重要的拼图,即OS的支持。

二、我们的相关工作

我们在T3000 TSN/TTE测试仪研制中,采用“远程候车室(RWR:Romote Waiting Room)机制,在FT2000 CPU上屏蔽了麒麟OS任务调度和网络I/O延时的不确定性,在用户空间构造并发送了1000条周期性的ST流,实现了对TSN网络的测试。

“DDS自扫门前雪,哪管OS瓦上霜”,DDS-TSN标准的不足及解决思路
“DDS自扫门前雪,哪管OS瓦上霜”,DDS-TSN标准的不足及解决思路

图3 T3000基于RWR机制实现1K条ST流精准发送 (详情 https://blog.csdn.net/C2COMM/article/details/125527172)

“远程候车室”机制的核心是在为实时应用提供一个通信库,接管应用基于socket发送的分组,该编程库收到应用发送的数据后并不立刻发送,而是等待TSN网卡通过分组发送的”时间通告“后,才向内核发送数据。

基于“远程候车室”机制的TSN端系统DDS适配架构如图4所示。网卡上的RWR控制逻辑根据CUC规划好的时间(TimeAwareOffset)向“远程候车室”发送读取帧的请求。读取到的ST帧进入网卡后,可以直接送注入控制缓冲区中排队。

“DDS自扫门前雪,哪管OS瓦上霜”,DDS-TSN标准的不足及解决思路

图4 基于“远程候车室”机制的TSN端系统DDS适配

由图4可知,DDS是当前使用的非支持DDS-TSN标准的中间件,其与CUC通信的功能卸载到TSN网卡上实现。

“远程候车室”机制实现的前提是应用看到的时间(APP CLK)要与TSN网卡上的TSN同步时间(Net clk)有一个粗同步(允许由ms级的误差)。与T3000测试仪的测试应用开发不同的是,DDS的应用开发可能是非协作的。即DDS应用中难以实现从TSN网卡获取网络同步时间(Net CLk)的操作。解决这一问题的基本思路是TASP[2],或由数据源实现与网络时间的同步。

“DDS自扫门前雪,哪管OS瓦上霜”,DDS-TSN标准的不足及解决思路

图5 远程候车室机制的建模分析

我们对远程候车室机制进行了建模分析,证明了机制的可靠性。其中OS任务调度和网络I/O的不确定性由MaxGetBufDelay和MinGetBufDelay参数描述,APP CLK和Net CLK的粗同步误差由参数Δ描述。

理论分析表明,远程候车室机制可以避免由于OS不确定性给注入控制带来的两点冲突:

(1)流内冲突

存储在注入buf x的流K的第i个帧还没有到规划的发送时间,还没有被注入控制调度到Qbv队列时,流K的第i+1个帧已经到达网卡,可能会覆盖第i个帧;

(2)流间冲突

存储在注入buf X的流K的第i个帧还没有到规划的发送时间,还没有被注入控制调度到Qbv队列时,流L(L不等于K)的第j个帧已经到达网卡,且根据规划该帧保存在注入buf X,可能会覆盖流K的第i个帧;

三、结束语

在行为未知的OS上实现确定性通信延时保证是DDS到TSN端系统适配的重要环节。当然,DDS到TSN端系统适配中还存在其他难题,例如:

(1)DataWriter/DataReader到Talker/Listener的映射可能是动态的,与目前静态的TSN规划有冲突;

(2)DDS动态产生的控制帧到TSN流量的映射问题;

(3)DDS大块数据分发产生的大量分片帧对帧复制与消除逻辑复杂性的潜在威胁;

(4)DDS库自身处理延时对延时约束较为苛刻流(ms级延时)的可满足性的影响。

我们认为已经在T3000测试仪上验证的“远程候车室”机制是当前解决DDS到TSN端系统映射的有效手段。本文是“浅谈”,难免有不足和错误之处,希望得到领域内各类专家的批评指正。

参考文献:

[1] 技术白皮书:Using DDS to Unlock the Power of TSN ,https://www.rti.com/whitepapers/using-dds-to-unlock-the-power-of-tsn

[2] XuYan Jiang etc. TASP: Enabling Time-triggered Task Scheduling in TSN-based Mixed-criticality system. IWQos 2022