APP下载

TSN中时间同步技术研究及实现

2023-08-01颜晨孙云华陈翔

现代信息科技 2023年11期

颜晨 孙云华 陈翔

摘  要:时间敏感网络(TSN)对在以太网上传输的时间敏感流进行确定性控制,保证了网络传输实时数据的能力。时间同步是TSN技术中的基石,保障了网络数据传输的实时性和确定性。首先对建立时钟同步生成树和选择最佳主时钟的过程进行介绍;然后对路径延迟时间计算的原理进行描述;进而重点论述了各节点中进行时间同步时的计算推导过程。最后探索了一种流量整型技术,通过一个实验展示了时间同步在TSN流量整型中的重要作用。

关键词:时间敏感网络;时间同步;时钟同步生成树;最佳主时钟;流量整型

中图分类号:TP393    文献标识码:A  文章编号:2096-4706(2023)11-0083-06

Research and Implementation of Time Synchronization Technique in TSN

YAN Chen, SUN Yunhua, CHEN Xiang

(China Key System & Integrated Circuit Co., Ltd., Wuxi  214072, China)

Abstract: Time Sensitive Network (TSN) provides deterministic control over time sensitive streams transmitted over Ethernet, and ensures the ability to transmit real-time data of network. As the footing stone of TSN technology, time synchronization ensures the network data transmission is real-time and deterministic. Firstly, the process of establishment of clock synchronization spanning tree and selection of the best master clock are introduced. Then the principle of path delay time calculation is described. Further, the calculation and derivation process of time synchronization in each node is discussed emphatically. Finally, a traffic shaper technology is explored, and the important role of time synchronization in TSN traffic shaper is demonstrated through an experiment.

Keywords: Time-Sensitive Network; time synchronization; clock synchronization spanning tree; best master clock; traffic shaper

0  引  言

在社会日益发展的今天,随着科学研究持续深入和人类社会生活不断丰富,各式各样的信息充斥其中,对信息的传输、处理等要求也越来越高。对于汽车领域,目前不断深入的智能驾驶技术有大量雷达、视频传感器等数据输入和智能计算后的控制信号输出,需要一种网络机制来降低信息传输延迟和抖动,从而提高传输质量保证驾驶安全。在航天领域,空间站内外部通信,月球科考、实验任务的远距离控制和遥感卫星星座或编队在进行跨星链任务时都需要高时敏通信。在工业物联网领域,随着大数据和云计算的连入,Ethernet/IP、EtherCat、等实时工业以太网已没法满足数据传输的高精确和实时性要求[1]。

针对上述网络较高的性能要求,2008年电气和电子工程师协会(Institute of Electrical and Electronics Engineers, IEEE)制定了1588協议用来同步设备之间的时钟,并在2019年更新了此标准,此标准通过规定时间戳的生成位置和延迟测量补偿机制,将时间同步的精度提高到了亚微秒级[2]。IEEE 802.1AS[3]通用精准时间协议(generalized Precision Time Protocol, gPTP)由1588标准精简而来,它采用双步延迟测量与补偿机制,周期性的报文交互保证系统内时钟同步的精确性。

目前国外很多组织都在致力于IEEE 802.1AS协议的研究和实用性探索。韩国汉阳大学的Jeon等人为降低在网络中最佳主时钟算法造成数据阻塞的现象,使用列表存储最佳时钟的信息,减少Announce帧的交换次数[4]。奥地利TTTech Computertechnik AG公司研究了IEEE 802.1AS在工业自动化领域中的应用问题,当测试分析物理层PHY(physical)后,发现对同步精度影响较大的是物理层的抖动和时钟颗粒[5]。国内的公司和运营商也紧跟步伐,在2020年11月,中国电子技术标准化研究院发布了《时间敏感网络白皮书》,中兴、华为等厂家也同步开发了相关TSN交换机样机和芯片样片。

国内对下一代确定性网络的关注较多,但目前还是起步阶段,产品和论文较少,更多地去关注了IEEE 802.1 AS协议烦琐的通信处理机制。本文化繁为简以同步目标为重点,研究了IEEE 802.1AS通信帧,以及以这些帧为载体直面探索其最为重要的三个同步过程及其联系。首先描述最佳主时钟选择,时钟同步生成树的建立;然后介绍路径延迟测量原理,为后续偏差计算提供帮助;最后进行时钟同步,通过计算完成时钟同步目标。本文在第二章通过现有同步设备进行实验来验证时间同步在TSN流量调度中起到的关键作用。

1  802.1AS时间同步载体和处理机制

在802.1AS的同步通信中使用gPTP报文,这些报文分别用于处理不同的功能。Announce帧用于最佳主时钟选择,构建整个系统主从同步关系。Pdelay_Req、Pdelay_Resp和Pdelay_Resp_Follow_Up报文用于两节点通信链路的延迟测量。Sync、Follow_Up报文用于系统的时钟同步。Signaling用于系统间的配置包括对另一端的报文发送时间间隔进行请求等。

其中Sync、Pdelay_Req与Pdelay_Resp报文进出端口时会打上精准时间戳为事件报文,其余报文不打时间戳为普通报文。

下面对各种报文进行介绍,并以报文为切入点来对802.1 AS同步机制进行分析。

1.1  gPTP报文头

gPTP报文可在IEEE 802.11、IEEE 802.3等网络环境下实现。本文以太网IEEE 802.3为例,gPTP报文封装在以太网报文中,其结构如表1所示。

其中源地址为出口物理端口的MAC地址,目的地址为规定的多播地址01-80-C2-00-00-0E,协议类型为0x88f7。PTP报文头中messageType 字段用来区分报文类型,correctionField字段在Follow_Up帧中用来存储与主时钟的时间偏差,其他帧中用来存储纳秒的小数部分,sourcePortIdentity字段包含了端口号和时钟标识。详情请查看802.1AS-201410.5和11.4等章节。

1.2  Announce帧及在最佳主时钟选择中的处理机制

1.2.1  Announce帧

在时间同步前需要构建同步网络拓扑,Announce帧包含了时间感知节点的信息,在构建消息传输流向和选择主时钟方面用到。

在该报文体中有主时钟的时钟源优先级Priority1、Priority2、时钟等级clockClass、时钟精度clockAccuracy和时钟稳定度offsetScaledLogVariance(clockClass、clockAccuracy、offsetScaledLogVariance由报文中的clockQuality来表示),这五个参数和clockIdentity用于确定最优时钟。除了这五个参数,该报文体带的时间跳数stepsRemoved、报文头带的发送端口标识sourcePortIdentity和接收报文端口的端口号portNumber来确定端口的主从关系。

人为确定Priority1、Priority2,而clockClass、clockAccuracy和offsetScaledLogVariance是固有参数通过时钟源的厂家提供。clockIdentity为时钟的固有ID,可用端口的MAC地址组装其值,节点中该值互不相同。stepsRemoved代表了本节点到主时钟节点(超主)的时间跳数,Announce帧每经过一个节点该值加1。

1.2.2  最佳主时钟处理机制

在整个gPTP域中用最佳主时钟选择算法(Best Master Clock Algorithm, BMCA)选择最佳主时钟来同步域内时间,与此同时确定时间感知系统内的端口状态,构建时间同步生成树。

在初始状态下,为确定gPTP域内各节点角色和节点内部端口的状态,Announce帧会在节点相邻端口传递,帧内包含上述本地时钟的参数信息。各个节点把收到的Announce帧的时钟信息与本节点的时钟参数信息进行比较,选择较好的时钟信息保存下来,下次发送Announce帧时把较好的时钟信息发送出去。

在gPTP域内只有桥和终端两种设备概念,同步开始的示例图如图1所示。

在图1的设备当中都会有systemIdentity属性包含如下属性,按照重要程度从高到低分别为priority1、clockClass、clockAccuracy、offsetScaledLogVariance、priority2、clockIdentity。当priority1<255时,表明节点具有成为最佳主时钟的能力,在节点内部把通過Announce帧组建的systemIdentity和本地的systemIdentity进行比较,如图2所示。设节点内部当前属性用后缀C标识,通过Announce帧接收的相邻节点属性后缀用R标识。

时钟性能更好的节点参与最佳主时钟选择。

不考虑PassivePort、DisabledPort的情况下,若比较后,本节点的时钟性能最好,则节点内部与其他时间感知系统相连的端口为MasterPort。若节点不是性能最好,则节点内部与更好时钟性能相连的端口为SlavePort,其余与其他时间感知系统相连的端口为MasterPort。若节点时钟性能不是最好,内部端口systemIdentity一致,stepsRemoved最小的端口为SlavePort;当stepsRemoved一样时,portNumber最小的为SlavePort。

当两个节点的系统属性systemIdentity一致,则比较stepsRemoved,stepsRemoved较小的节点端口为MasterPort,另一个节点端口为SlavePort。IEEE 802.1AS协议中的端口共有四种状态[3],如表2所示。

节点内部MasterPort传递保留此时最好时钟性能参数的Announce帧,gPTP域内其他节点进行上述比较,最终选出最佳主时钟,建立起时钟同步生成树。如图3所示,为时间感知系统的主从拓扑示例框架结构。

在Announce帧中,若节点时钟性能更好,则帧头的sourcePortIdentity填入节点的时钟标识clockIdentity和端口号portNumber,该节点的时钟性能填入报文体,报文体中的stepsRemoved为0。若节点时钟性能较差,则发送的Announce帧报文体内stepsRemoved加1,其他时钟性能属性不变。

1.3  延迟测量的报文及其机制

1.3.1  延迟测量的报文

gPTP通过标记发收报文的时间戳对两点之间延迟进行计算,并用此延时来同步与主时钟的时间偏差。采用的是点对点(Peer to Peer, P2P)的双步延迟测量机制,下节会具体讲述。

Pdelay_Req报文是延迟测量节点发出的请求报文,发出时测量节点内部会记录时间戳t1。报文体不包含数据,为了功能扩展包含了20个为零的字节。

Pdelay_Resp报文是被测节点的延迟测量回应报文,报文体内包含时间戳requestReceiptTimestamp(t2),此时间戳在Pdelay_Req报文到被测节点时记录的,以及测量发起端口的端口标识requestingPortIdentity。测量节点收到此报文时会产生时间戳t4。

Pdelay_Resp_Follow_Up报文是被测节点的回应跟随报文,报文体内包含了时间戳responseOriginTimestamp(t3),此时间戳在Pdelay_Resp发出时被测节点记录的,以及测量发起端口的端口标识requestingPortIdentity。

1.3.2  延迟测量机制

如图4所示,假设两节点传输路径是对称路径的,测量节点可通过一次测量得到t1,t2,t3和t4。

传播延迟D的计算如下:

D表示理想状态下的延迟,节点双方的频率相同,而实际上往往不同。t1和t4表示延迟测量发起者测量的时间,t2和t3表示延迟测量响应者测量的时间。频率不同会造成计算偏差。为避免这种偏差,会将响应者的时基转换到发起者的时基。一般在同步拓扑中,slave端口会向相邻的节点发起延迟测量,因此延迟测量的计算如下:

式(2)中,ri-1, i表示节点slave端口相邻节点i-1与节点i的时钟频率比。

除了上述两节点的频率差造成延迟测量误差,网络的拥堵或者波动也会对一次测量的结果造成很大的影响,为了减少这方面的影响,对多次测量的值取平均。因为延迟测量会周期性的进行,节点内会对一段时间测量结果进行存储。则一段时间内的延迟计算如下:

式(3)中,Davg, k表示第K次测量的延迟均值,Dk-1表示第K-1次测量的路径延迟时间。

1.4  时间同步报文及其机制

1.4.1  时间同步报文

在建立了时间同步生成树,选了最佳主时钟,完成了路径延迟测量后开始进行时间同步。时间同步采用Sync和Follow_Up两种报文,它们从具有最佳主时钟的节点端口发出,通过时间同步生成树中节点的MasterPort端口对域内所有节点进行同步。

Sync报文用于发出和接收此报文时产生时间戳,报文体不包含任何数据。

Follow_Up报文跟随在Sync报文后面,其内部包含记录主时钟发出Sync时产生的时间戳(preciseOriginTimestamp段),记錄节点转发Sync报文时的同步时间与preciseOriginTimestamp的偏差值(correctionField段),记录主时钟和当前节点时钟频率比(cumulativeScaledRateOffset段)。

1.4.2  时间同步机制

在同步时,节点内通过Follow_Up报文可知发送此Sync时主时钟的时间preciseOriginTimestamp(简称“O”),以及上一个节点i-1累计的偏差Ci-1,计算本节点的偏差Ci可得到本节点发送Sync报文时的同步时间,查看式(4)。Ci由Ci-1,上一个节点到本节点的延迟Di加上Sync驻留在本节点的时间Si后转换成主时域的时间相加计算得到,如式(5)。其同步的过程如图5所示。

在节点i计算了与主时钟频率比,计算了偏差值,完成了时钟同步,更新Follow_Up报文相关段内的值,便可把同步报文发往下一个节点进行时间同步,依次完成本时域的一次同步。

由于各节点内的时钟晶振频率存在偏差甚至不同,所以在下一次时钟同步前节点的时间偏差会达到最大。为了减小偏差,简单的解决办法是增加Sync同步报文的发送频率。但实际情况下,Sync发送频率过大会造成网络的拥堵,通常发送间隔在50~2 000 ms[6]。

2  TSN时间同步实践

在介绍了TSN时间同步的原理后,本文通过一个实验来探索时间同步在流量调度中的应用。TSN标准是一个协议簇,涉及时间同步,流量调度,系统配置等内容。其中流量调度是TSN标准中的核心机制,用来确定设备出口端数据的传输顺序和时间。而时间同步则是流量调度实施的基础。

2.1  TSN时间同步实践原理介绍

为了体现时间同步的实际表现,需要使用到TSN流量整形中的一种技术,基于时间感知的整形调度技术。时间感知整形器(Time Awareness Shaper, TAS)在8802-1Q_Amd 3-2017[7]标准中定义,它为需要实时性的流量提供了一个确定时间段打开的传输通道,避免了在这段时间内其他流量对时间敏感流量的干扰。

它在通信端口把需要传出的不同流量划分在不同的传输通道队列内,流量按照流量类型(存在于以太网帧头VLAN内的优先级PCP段)进行分类,如表3所示。又定义了传输时间周期,在时间周期内分为不同的时间片段,在时间片段内选定一个或者多个优先级的流量传输。

在门控调度中存在门控列表gate control list,包含了队列的状态(“C”表示关闭,“O”表示打开)和时间间隔。门控调度示例图如图6所示,在T1时间片段,只有优先级为2的流量队列来传输。

在一个满足严苛时延和传输确定的系统网络中,不同节点的端口会置有TAS,确保实时性流量能够确定到达终端。为达到这一目的,不同节点的门控设置得一致且门控开启的时间得在同一个时域下,时间偏差越小越好。本文接下来准备一种流量在设有门控机制的节点中传输,分别比较不同时间基准和统一时间基准的传输情况。

2.2  TSN实践平台搭建

本文采用宏科TSN套件来搭建TSN实验环境。该套件包含三个硬件和一个ISO镜像。三个硬件分别为流量发生器,具有TSN功能的网桥和可以插在电脑上具有TSN功能的PCIe卡。下面进行详细介绍:

1)流量发生器Traffic Generator。流量发生器用来产生和传输具有冲突性质的流量来验证TSN机制的作用。

2)网桥RELY-TSN-Evaluation-Board。转发TSN业务流并且内部存在网站服务,提供一个友好的UI界面可以用来配置流量发生器、具有TSN功能的PCIe卡和它自己的相关设置。

3)PCIe卡RELY-TSN-PCIe。用PCIe无缝衔接到用户电脑主板卡槽内,把TSN流转发到电脑上。

4)ISO镜像。用来在用户电脑上搭建一个基于Linux的操作系统Live Lubuntu O.S,它用来启动TSN的相关功能和配置。

除此之外,在用户电脑上需要配置Wireshark,用来观察流量的传输情况。实践平台拓扑结构和平台实物如图7和图8所示。

2.3  TSN时间同步测试实践

配置宽带速率接近100 Mbit/s,VLAN优先级为5,具有1 500个字节的流量,在不配置TSN功能下,可以从Wireshark看到流量统计图,如图9所示;配置网桥的门控如表4所示,在一个时间周期内只留了一个时间片传输优先级为5的流量,看到Wireshark内流量速率下降,如图10所示;当配置PCIe卡的门控如表4时,可以看流量速率进一步下降,如图11所示;当开启了时间同步后,流量速率恢复到图10的水平,如图12所示。

可以看到门控对流量发挥调度时,必须得依靠时间同步机制来搭建确定性的网络。

3  结  论

TSN在这一领域提出了一系列的通信机制和策略保障了确定性无冲突的传输,满足时延和带宽要求,时间同步在里面起到关键的作用。本文重点研究TSN中时间同步机制,从同步帧开始描述了其同步过程,较为清晰地展示了时间同步的原理和应用。时间同步稳定达到ns级离不开硬件层时间捕获的精确度和软件算法的优化。在实际开发过程中,除了硬件性能的提高外,时钟偏移、网络波动带来的同步周期变化和系统内部计算同步时间造成的延时,从而影响时钟抖动是重点考虑的方向。希望本文所研究的时间同步方面的内容可以帮助该领域的研究人员。

参考文献:

[1] 宋华振.时间敏感型网络技术综述 [J].自动化仪表,2020,41(2):1-9.

[2] Technical Committee on Sensor Technology (Tc-9) of the IEEE lnstrumentation and Measurement Society. IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems:IEEE Std 1588TM-2019 [S].New York:IEEE,2019.

[3] LAN/MAN Standards Committee. IEEE Standard for Local and Metropolitan Area Networks--Timing and Synchronization for Time--Sensitive Applications:IEEE Std 802.1ASTM-2020 [S].New York:IEEE,2020.

[4] JEON Y,LEE J. An Efficient Method of Reselecting Grand Master in IEEE 802.1AS [C]//The 20th Asia-Pacific Conference on Communication (APCC2014).Pattaya:IEEE,2014:303-308.

[5] GUTI?RREZ M,STEINER W. Synchronization Quality of IEEE 802.1AS in Large-Scale Industrial Automation Networks [C]//2017 IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS).Pittsburgh:IEEE,2017:273-282.

[6] GREENSTREET R,ZEPEDA A. Improving IEEE 1588 Synchronization Accuracy in 1000BASE-T Systems [C]//2015 IEEE International Symposium on Precision Clock Synchronization for Measurement, Control, and Communication (ISPCS).Beijing:IEEE,2015:58-63.

[7] LAN/MAN Standards Committee. ISO/IEC/IEEE International Standard—Information Technology—Telecommunications and Information Exchange between Systems—Local and Metropolitan Area Networks—Specific Requirements—Part 1Q:Bridges and Bridged Networks AMENDMENT 3: Enhancements for Scheduled Traffic: ISO/IEC/IEEE International Std 8802-1Q_Amd 3-2017 [S].New York,2017.

作者簡介:颜晨(1992.08—),男,汉族,湖北随州人,工程师,硕士,研究方向:网络通信、嵌入式软件。

收稿日期:2022-12-12