赵漫菲,姚 蕊,王浩枫+,程德玉
(1.中国航天科工集团第二研究院 七〇六所,北京 100854;2.西安云维智联科技有限公司 研发部,陕西 西安 710000)
时间触发以太网(time-triggered Ethernet,TTE)是一种将时间触发协议(TTP)的实时性、确定性、容错性与传统以太网的普及型、成熟性、组网灵活性相结合,在同一网络中高可靠、高性能地支持各种不同应用综合传输的新型信息通信系统。传统以太网的机理在文献[1]中有较详细的论述。时间触发以太网创造性地加入了时间触发概念,时间同步主要的功能就是能够补偿网络中各个端系统本地时钟抖动造成的时钟差异,配合时间触发调度算法,使节点能够依靠调度表来完成时间触发事务的发送与接收,最终确保时间触发事务可以无冲突的在网络中传输,保证了网络实时性[1]。
本文针对时间触发以太网技术的业务种类、同步通信原理等相关知识点展开论述,TTE是奥地利TTTech公司研发的时间触发以太网,本项目中以TTTech公司出品的TTE产品结合国产自研的端系统、交换机为基础搭建应用场景,在项目应用中加以实践,最终该系统在满足项目中网络确定性通信的同时,也满足了系统对于稳定性的要求。本次工程实践,为同类型和时间确定性相关的网络技术应用提供有力的技术支撑及解决方案。
时间触发以太网将内部承载的业务分为时间触发的TT业务和事件触发的ET业务。TT业务的传输由全局系统时间控制,周期性触发。但ET业务的传输是随机的,ET业务中又包含速率受限的RC业务和尽力投递的BE业务。这3种业务的特点在文献[2]中有较详尽的论述,从论述中可以看出TT业务应用时间触发机制,以发送时间表为依据,在特定的时间点上发送TT消息,而且在特定的时间到达接收数据端,RC业务是事件触发业务,BE业务就是常说的传统以太网业务,它也属于事件触发业务,其数据帧格式符合传统以太网的数据标准,会利用网络剩余的带宽进行传输,它的优先级低于TT数据和RC数据业务,而且它的可靠性等性能不能保证,这一点在文献[2]中有较详细的论述。
TTE技术的基本原理如图1所示,时间轴包含了多个时分多址周期(TDMA)的簇周期,在一个簇周期内,各个同步端分别占用不同的时间槽位,时间槽在每个时分多址周期内的时间坐标是固定不变的,如图1所示,端节点1、2、3、4在时间槽中的位置是固定的,也是提前设置好的,节点之间通过全局时钟机制保持同步,由于每个端节点占用了不同的时间片段,所以各端节点的通信将互不冲突,文献[3]中也有同样的论述。
图1 端节点在时间槽中的示意
TTE能保证设备间的同步通信,但设备间的不同步是如何产生的呢?这主要是因为各网络设备在计时过程中,时钟晶振震荡从而引起了计时值的偏移,要是设备间不进行周期性的同步维护,那么每个同步时钟的计时值偏移超出了系统同步精度时,网络的同步状态会丢失。时间触发协议的提出为改进以太网的确定性做出了贡献。而TTE则综合了标准以太网和TTP的优势。在发布SAE AS6802同步协议前,该网络的协议形态是由IEEE802.3标准和IEEE1588同步协议组合而成。TTE在以太网基础上引入时钟同步机制,建立了微秒级的网络时钟同步,实现了时间触发和事件触发混合调度机制,在文献[4]中有具体的论述。
TTE网络体系各传输层与各协议间的关系见表1[5]。
表1 传输层与各协议间的关系
TTE时钟同步属于一种内部时钟同步方式,其方式是将同一个网络拓扑中的各节点的本地时钟进行同步,使得所有网络设备的通信具备时间协调的能力。TTE时钟同步机制不是一种典型的对称性“主从式”的同步机制,同时也不完全属于一种对称式的时钟同步机制,在该机制下的网络设备在时钟同步中具有不同的功能[2]。
透明时钟传输机制是TTE网络采用的时钟同步机制。TTE网络拓扑结构一旦设定完成,任意端到端的连接路径就是相对固定的了,从而网络中点到点的最大消息传输时延就可以确定下来。这种时延不仅包括网络设备的收发协议处理或者数据拷贝等产生的静态技术时延和物理链路传输时延,而且还包括信息传输过程中网络动态时延。这个最大消息传输时延参数,经过同步机制的固化,实现在接收端协议控制帧的发送时刻点的顺序,且计算发送时刻点的不同,在这个基础之上,获取最佳的固化时刻点或者最佳的压缩时刻点,从而计算出同步时钟的偏移量,最终实现网络各节点的同步时钟的建立和维护。
在TTE的调度方式中,最常用的是在各发送端先离线设计好任务调度表,之后根据调度表进行消息的发送和传输。
调度表中包含一个矩阵周期,相关内容见文献[6]。如图2所示,每个基本周期分为两段,TT帧在基本周期前一段时间内发送,RC帧与BE帧在TT帧后面的一段时间内发送。在每个基本周期会预留一定长度的时间间隔,这样可以不影响下一周期TT帧的发送,通过离线调度表,TTE内各节点在全局统一时间基准下,使TT消息具有完全的时间确定性[7,8]。
图2 调度表中各业务帧的发送顺序
这样既保证了整个网络时钟精确同步,而且通过预先设计好的任务调度表,使交换机在接收各个端系统发送的TT流量过程中避免了消息的冲突,从而减少了数据的丢失。
调度表生成算法将根据网络参数和业务参数进行调度,生成各网络节点的时间调度表。调度表明确规划了每条业务的源端发送时间点、交换机接收时间点、交换机接收窗、交换机转发时间点、交换机转发时间窗、目的端系统接收时间点、目的端系统接收时间窗等信息。615A标准协议定义了一系列规则,这些规则就是通过响应、握手和确认机制等,来完成数据在加载端和被加载端之间的传输,同时规定了交互的数据以及文件的格式与要求,用以确保其加卸载操作的准确性和可靠性。基于ARINC 615A的配置加载软件用于传输TTE硬件所需的配置表文件(包含了调度表、同步信息等内容)和驱动所需的帧字段转换表文件,将这些文件从加载端上传至交换机和端系统。
本章节中,描述了目前工程应用中存在及出现的问题,从工程应用的实际需求出发,搭建了某项目TTE传输的应用场景,并结合关键代码及演示用例,说明了TTE在具体工程实现中的关键技术及应用流程。
在项目的具体应用中,传统的基于UDP或TCP/IP的网络通信方式,在处理数据量较大、通信间隔较短的大数据包通信时,经常会出现丢包或数据不完整的现象;另一方面,在某些系统间握手交互对实时性要求较高的应用中,除了使用网络通信,通常也会用到串口通信或1553 B等总线通信方式,以确保传输的稳定性及数据传输的实时性,总线的不统一造成了系统连接方式比较复杂,归零或故障定位涉及面较多,维修及维护成本都比较高。
基于此,在某项目的具体应用中,由于系统对实时性、确定性、容错性要求较高,数据传输中我们以时间触发以太网为系统模型,从时间触发以太网其自身的特点出发,将时间触发协议TTP的实时性、确定性、容错性与传统以太网的普及性、成熟性、组网灵活性相结合,展示能在同一网络中高可靠、高性能地支持各种不同应用属性业务的综合传输,同时依托奥地利TTTech公司出品的端系统、交换机及国产的基于TTE同步技术的硬件平台,搭建应用场景,通过国产TTE平台与TTTech公司TTE平台端系统的互联互通,展示国产平台目前在此项业务中的发展,及对于通用标准的融合[9]。
该项目中搭建的应用场景,在确保了网络通信数据实时性、确定性的基础上,用不同的端系统取代了原有的项目中使用的串口通信模式,经验证完全满足系统数据传输需求。
在此基础上从用户代码开发的角度出发,通过演示案例,说明TTE中TT业务、BE业务的创建及通信过程。
在TTTech端系统及国产端系统中安装Ubuntu18.04操作系统,采用Qt5.14.2作为图形界面开发工具,开发了TTE业务的人机交互界面,通过该界面可演示TT及BE业务的收发传输、调度表的生成以及端系统间的数据交互传输。
图3为平台的网络拓扑结构,从图中可以看到,该项目我们使用了两台交换机,其中交换机1为TTTech公司的24端口的交换机产品,交换机2为国产的24端口的交换机;6个端系统,其中端系统1、端系统2、端系统3以及端系统4为TTTech公司的端系统产品,其网卡为TTTech公司标准产品;端系统5、端系统6为国产的端系统产品,自研网卡。
图3 演示平台的网络拓扑结构
该平台共建了24条虚链路。其调度表映射关系由TTTech公司提供的TTE-Tools Workbench软件配置,例如由端系统1生成的名为TT_VL_100的虚链路,其属性设置如图4所示;其生成的配置文件直接拷贝到各个主机端,交换机内部的配置表由TTE-Switch软件完成配置并固化到交换机内部。
图4 ES1中名为TT_VL_100的属性
TTTech的端系统1向端系统2发送TT业务、向端系统3发送BE业务,同时端系统1接收来自端系统2的TT业务及端系统3的BE业务,端系统2接收端系统1的TT业务,端系统3接收端系统1的BE业务。端系统5(国产端系统1)向端系统6(国产端系统2)发送数据周期为7 ms 的TT业务;端系统6(国产端系统2)向端系统4(TTTech端系统4)发送数据周期为17 ms的TT业务;端系统6(国产端系统2)向端系统5(国产端系统1)发送数据周期为63 ms的TT业务;端系统4(TTTech端系统4)向端系统6(国产端系统2)发送数据周期为58 ms的TT业务。该项目在执行网络数据传输的过程中,可以测定出各端系统间的同步精度均小于100 ns。
在该项目的BE业务中,同时也通过端系统3向端系统2(国产端系统)发送视频流,端系统3作为服务器端加载最大带宽不超过30 M的视频流,端系统4(TTTech端系统)向端系统2同时注入500多兆带宽的BE流量;此时,作为视频点播的另一端,端系统2(国产端系统)作为客户端,可以平稳播放该视频流,如图5所示,端系统间的TT业务也稳定运行;此时,端系统2接收到的网络带宽总和小于700 M,然后我们加大对端系统2的BE流量注入,从发送视频点播业务的端系统3端,发送将近300 M带宽的BE流量,端系统2总接收到的流量为900多兆,此时,播放的视频流明显出现了滞后和卡顿的现象。如图6所示。具体的实验数据见表2。
图5 国产端系统与TTTech端系统融合展示
图6 增加流量注入后BE视频流出现卡顿后的效果
表2 TT、BE业务与干扰带宽间的关联情况
分析该现象可以看出,无论是国产交换机还是TTTech公司生产的交换机,交换机端口的最大带宽为1 G,在交换机端口接收到的最大带宽不超过该值时,BE视频流平稳传输稳定运行,当加大交换机端口流量注入,交换机端接收到的流量超过1 G时,为了保证TT业务的稳定运行,交换机端口会丢失部分的BE视频流的传输数据,如图6所示,端系统2在流量注入超过1 G的情况下,它播放的视频出现了卡顿。而同时在端系统2上接收的TT端系统业务稳定运行,不受影响,如图7所示,由此可见,以太网标准中对数据包的传输是“尽力而为”的,不能保证关键控制数据传输的实时性和可靠性。
在硬件平台搭建完成,软件环境安装到位,调度表生成完毕并已植入主机端和交换机的前提下,开发人员需要根据自身的网络应用,开发TTE各业务的代码实现,实现流程主要包含以下几个方面:
2.3.1 TTE端系统初始化
(1)端系统配置文件加载
在端系统初始化开始,需要加载配置文件,在本项目中使用的TTTech公司提供的TTE-Tools Workbench软件,根据系统架构,对.network_description文件中的虚链路、周期、端口名称、最大发送字节等进行配置,编译完成会生成各端系统的.bin文件,对应系统中不同的端系统,需要加载其相对应的二进制配置文件。
(2)端口号、分区号、物理地址等参数的有效性判定
之后对读入的配置文件中的端口号、分区号、物理地址等的有效性进行判定,不满足条件的情况程序会退出。
(3)初始化端系统
初始化接口调用如下:
if (TTE_ES_RET_OK != ttex_es_mng_init (es_type, &es_hdl_r, &dev_hdl, es_index))
{
fprintf (stderr, PFX "INIT: Invalid Endsystem Handle or wrong type of Endsystem specified ");
return EXIT_FAILURE;
}
(4)使能系统IO管脚等
2.3.2 分别建立各发送及接收线程
根据系统中所需的虚链路数,建立不同的发送或者接收线程。
2.3.3 结合QT消息响应机制建立相应槽函数、显示线程等
本项目中使用的是Ubuntu操作系统,为了方便用户进行人机交互控制,我们使用了QT作为图形界面开发工具,所以本应用需要结合QT消息响应机制,关联不同的信号及槽函数,同时要建立不同的显示线程,将发送端发出的或接收端收到的网络数据进行显示。
……
thread_send = new tt_send_thread();
connect(send_button,SIGNAL(released()),this,SLOT(on_Send_Clear_released()));
connect(send_button,SIGNAL(clicked()),this,SLOT(on_send_button_clicked()));
connect(thread_send,SIGNAL(ttsend_signal(int)),this,SLOT(ttex_send_comm(int)));
……
thread_send->start();
……
在该项目的工程演示中,配置交换机的端口9为TT业务的发送端,端系统1与之相连,端系统2连接交换机的端口10,作为TT业务的接收端,交换机的端口3连接端系统3,作为BE业务的发送端。启动程序界面,设定发送时间间隔,数据包大小等参数,TT业务运行开始后,按照端系统1的设定值,发送固定长度的数据包,同时启动各接收线程,端系统2、3初始化过程同理。端系统1发送TT业务的同时也接收端系统2发来的TT业务数据及端系统3上发送的BE业务数据,接收情况如图8所示;端系统2只发送TT业务数据包给端系统1,同时接收端系统1发来的TT数据包,接收情况如图9所示;端系统3只发送BE业务包给端系统1,同时接收来自端系统1的BE业务包,
图8 演示平台端系统1演示界面
图9 演示平台端系统2演示界面
收发情况如图10所示。该数据通信过程,是2.3节中端系统软件开发中具体的工程实践应用。图11为该平台中端系统1与端系统2间的同步精度,从示波器中可以看出,端系统间的动态同步精度小于50 ns。
图10 演示平台端系统3演示界面
图11 演示平台中的端系统1、2间的同步精度
本文围绕着TTE时间触发以太网的工程应用,论述了TTE的业务特点、同步控制等基本原理,以对TTTech公司的端系统的使用过程为主线,系统阐述了时间触发以太网在某工程应用中具体的实现流程。
传统以太网标准中对数据包的传输是不确定的,它并不能保证数据传输的实时性和可靠性。为了解决这一问题,相关科研工作者在传统以太网的基础上进行改进以满足不同系统的应用需求。其中,时间触发以太网是该类技术的佼佼者[8]。时间触发以太网技术有着高容错性、高确定性、高兼容性、高可靠性及高可测性的特点,能同时高效地支持工业数据采集、控制指令传输、网络互联互通等多种应用场景,在航天航空领域、工业自动化控制领域都有着广泛而重要的应用。TTE网络总线在美国龙飞船及战机上已经成功应用。随着TTE芯片化的成功和应用,TTE总线的应用和推广会越来越广泛[11]。
但也由于其自身组网的确定性等特点,造成了用户使用中感觉不够灵活,顶层设计需要修改的情况下全项目涉及改动较大,后续随着理论研究的不断深入,工程应用的不断推广,相信会产生出更完善、更灵活的TTE组网方式。