為推動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和作業系統差異。是以可以很好的支援分布式應用在不同平台上移植的能力,是以在各類需要分布式實時處理的裝備平台中得到廣泛應用。
圖1 DDS(1)向應用提供Pubsub資料分發服務;(2)對應用屏蔽OS和CPU差别,提升應用跨平台移植能力
TSN在近年來得到飛速發展,是裝備平台嵌入式交換系統的重要發展方向。為了推動DDS與TSN的融合,OMG組織2018年啟動DDS-TSN标準的制定,目标是利用TSN為DDS實時資料分發提供更好的服務品質保證。
雖然DDS-TSN标準尚未最終釋出,但從相關技術資料看[1],DDS-TSN标準主要在三個方面對DDS進行擴充,如圖2所示。
圖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網絡的測試。
圖3 T3000基于RWR機制實作1K條ST流精準發送 (詳情 https://blog.csdn.net/C2COMM/article/details/125527172)
“遠端候車室”機制的核心是在為實時應用提供一個通信庫,接管應用基于socket發送的分組,該程式設計庫收到應用發送的資料後并不立刻發送,而是等待TSN網卡通過分組發送的”時間通告“後,才向核心發送資料。
基于“遠端候車室”機制的TSN端系統DDS适配架構如圖4所示。網卡上的RWR控制邏輯根據CUC規劃好的時間(TimeAwareOffset)向“遠端候車室”發送讀取幀的請求。讀取到的ST幀進入網卡後,可以直接送注入控制緩沖區中排隊。
圖4 基于“遠端候車室”機制的TSN端系統DDS适配
由圖4可知,DDS是目前使用的非支援DDS-TSN标準的中間件,其與CUC通信的功能解除安裝到TSN網卡上實作。
“遠端候車室”機制實作的前提是應用看到的時間(APP CLK)要與TSN網卡上的TSN同步時間(Net clk)有一個粗同步(允許由ms級的誤差)。與T3000測試儀的測試應用開發不同的是,DDS的應用開發可能是非協作的。即DDS應用中難以實作從TSN網卡擷取網絡同步時間(Net CLk)的操作。解決這一問題的基本思路是TASP[2],或由資料源實作與網絡時間的同步。
圖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