本发明属于通信技术领域,涉及一种时间触发以太网络tte时间同步方法,具体涉及一种基于1588协议和as6802协议的时间触发以太网络tte时间同步方法,用于提高tte中各个网络设备之间的时间同步的适应性与稳定性。
背景技术:
时间触发以太网络(time-triggeredethernet,tte)是基于时间触发协议的以太网络。tte中至少包含两个网络设备,每个网络设备至少包含两个端口。各网络设备间通过相互收发时间触发(time-trigger,tt)业务和事件触发(event-trigger,et)业务完成数据交互。各个网络设备需要通过时间同步操作对自身的本地时间进行调整,实现tte中各个网络设备间的时间统一,并按照时间统一的调度表来完成tt业务周期性的收发。实现tte中各个网络设备间的时间同步的思路是,先进行各个网络设备之间特定同步帧的交互,获得同步所需的时间节点,然后根据时间节点来纠正自身的本地时间,使所有网络设备的本地时间相同。因此tte中各个网络设备的时间同步需要兼具高适应性和高稳定性。其中,时间同步的适应性受绝对同步的时间格式影响,所有网络设备需要保持相同的格林威治时间;时间同步的稳定性受不同网络设备之间的起始时间差异和网络设备的容错率限制。
为了提高tte各个网络设备间时间同步的适应性,现有技术中典型的时间同步方式为基于1588协议的tte时间同步方法。1588同步方法基于ieee1588v2精确时钟同步协议,通过主时钟设备与从属设备的同步帧交互实现亚微秒级偏差的时间同步,但是受主时钟质量限制大,使得时间同步的稳定性较差,例如:烽火通信科技股份有限公司在其申请的专利文献“一种分布式系统上实现1588时间同步的集中式方法”(申请日:2017年10月24日,申请号:2017104426971,申请公布号:cn107294634a)中公开了一种在分布式系统上实现1588时间同步的集中式方法。该方法具体步骤为:主时钟节点发送同步报文,携带t1和t1'-t1,t1'为同节点线卡发出同步报文的时刻,从时钟节点接收,打上t2'和t2,计算同步报文矫正时延值;从时钟节点发送时延请求报文,携带t3和t3'-t3,t3'为同节点线卡发出时延请求报文的时刻,主时钟节点接收,打上t4'和t4,计算时延请求报文矫正时延值,和t4插入到时延响应报文,发给从时钟节点,从时钟节点获取所有时间戳和两个矫正时延值,通过时间同步算法完成开发调试工作量少的时间同步,但仍存在主时钟设备失效时,将导致所有网络设备无法根据正确的格林威治时间调度tt业务的问题,使得时间同步的稳定性较低。
为了提高tte各个网络设备间时间同步的稳定性,现有技术中典型的时间同步方式为基于as6802协议的tte时间同步方法。as6802同步方法基于美国机动车工程学会的saeas6802(societyofautomotiveengineers)标准,通过压缩主机和同步主机之间的协议控制帧交互实现高精度的时间同步,并且压缩主机能够容纳一定数目的故障同步主机,使得时间同步的稳定性高,但是只能进行相对时间同步,无法使所有网络设备达到格林威治时间统一,从而时间同步的适应性较低,例如:西安微电子技术研究所在其申请的专利文献“一种面向时间触发网络的时钟动态压缩方法”(申请日:2017年11月17日,申请号:2017104534637,申请公布号:cn107359952a)中公开了一种用于时间触发网络的时钟动态压缩方法。该方法具体步骤为:1)交换控制器对各终端发送的同步帧进行固化运算,还原各同步帧的时钟固化点;将还原后的时钟固化点存储至固化点存储模块,固化点存储模块的固化信息存储区设置存储标识,当存储标识有效时,将标识对应的时钟固化点信息提供给压缩函数,当本地时钟与已存储的第x个固化点相等时,产生第x个固化点时刻的有效脉冲,用于压缩函数的固化点收集;2)在第一个固化点时刻有效脉冲出现后,当前压缩函数开始打开收集窗口,收集固化点;3)压缩函数对收集到的固化点进行排序;4)排序完成后,压缩函数计算出网络的相对时钟偏差,进而计算出网络时钟压缩点,实现了高精确度的时钟同步。但as6802同步方法只能实现周期性循环的相对时间同步,因此该方法仍存在完成基于as6802协议的时间同步后tte的时间同步适应性较低的问题。
综上,现有技术不能实现兼具高适应性与高稳定性的时间同步。
技术实现要素:
本发明目的在于克服上述已有技术的不足,提出一种基于1588和as6802协议的tte时间同步方法,解决了以往tte中网络设备的时间同步不能兼具高适应性与高稳定性的问题。
为实现上述目的,本发明采取的技术步骤如下:
(1)网络设备测量时间触发以太网络tte中各相邻端口间的链路时延:
(1a)设tte包含m个网络设备a1,a2,...,ak,...,am,m≥2,每个网络设备包含至少两个端口;
(1b)网络设备ak通过端口向与ak相邻的每个网络设备ak1,ak2,...,aki,...,akn的端口广播标志为88f70202的对等延迟请求帧,同时保存广播的时间点tk,其中n≥1;
(1c)网络设备ak1,ak2,...,aki,...,akn中的每个aki保存接收对等延迟请求帧的时间点t'ki,并将预设的发送对等延迟响应帧的时间点
(1d)网络设备ak保存接收写有yki的对等延迟响应帧的时间点
(2)基于1588协议对tte中的网络设备进行划分:
根据1588协议中主时钟设备的最佳主时钟第一优先级的属性,将tte中最佳主时钟第一优先级最小的网络设备作为主时钟设备,其余m-1个网络设备作为从属设备s1,s2,...,sj,...,sm-1;
(3)主时钟设备向每个从属设备sj广播同步帧:
主时钟设备将预置的广播同步帧的时间点tsync写入标志为88f70002的同步帧的时间戳字段中,并以w毫秒为1588协议的同步周期,在tsync时刻通过主时钟设备端口向每个从属设备sj的端口广播写有tsync的同步帧,其中w≥1;
(4)每个从属设备sj基于1588协议实现与主时钟设备的周期性全局时间同步:
(4a)每个从属设备sj保存接收写有tsync的同步帧的时间点
(4b)每个从属设备sj根据tsync、
(4c)每个从属设备sj通过满足1588协议对亚微秒级同步精度的要求的
(5)基于as6802协议对tte'中的网络设备进行划分:
根据as6802协议对网络设备不同功能的需求,从tte'中任选一个网络设备作为压缩主机,其余m-1个网络设备作为同步主机sm1,sm2,...,smg,...,smm-1;
(6)每个同步主机smg与压缩主机基于as6802协议进行预同步:
(6a)在sj完成与主时钟设备的周期性全局时间同步的格林威治时间点,每个同步主机smg通过端口向压缩主机的端口发送as6802协议中的冷启动帧
(6b)压缩主机在接收到第一个
(6c)每个同步主机smg收到f'cs后,通过端口向压缩主机的端口发送as6802协议中的冷启动应答帧
(6d)压缩主机在接收到第一个
(6e)每个同步主机smg在接收f'ca的格林威治时间点,基于as6802协议规定的时钟格式,以第0个时钟为起始点,以第r个时钟为结束点,持续地进行本地时钟的循环计数,实现与压缩主机的预同步,r≥124999;
(7)每个同步主机smg与压缩主机基于as6802协议获取tte时间同步结果:
(7a)每个同步主机smg在进行每次本地时钟计数的起始点,通过端口向压缩主机的端口发送as6802协议中的集成帧
(7b)压缩主机保存每个集成帧
(7c)压缩主机基于as6802协议的压缩函数,通过tc1、第e个固化时间点tce和第m-e个固化时间点tc(m-e),计算压缩时间修正值ts,并将tc1与ts的和作为压缩时间点,在本地时钟的循环计数到达压缩时间点时,以tte'预设的派发时间点t'scm为基准,对本地时钟计数值进行调整,得到tte'的全局时间基,其中,e为tte'预设的允许出错的同步主机smg数目,且e∈[1,m-1);
(7d)压缩主机在本地时钟的循环计数到达tte'预设的发送时刻时,通过端口向每个同步主机smg的端口广播集成帧f'in;
(7e)每个同步主机smg保存集成帧f'in到达的时间点
(7f)每个同步主机smg在本地时钟循环计数到达
本发明与现有技术相比,具有以下优点:
第一,由于本发明采用tte各个网络设备实现基于1588协议周期性全局时间同步时开始进行基于as6802协议的预同步,最终获取tte时间同步结果的方案,在达到相对时间同步的同时实现绝对时间的同步,即实现as6802相对同步情况下的理想全局时间基与1588绝对同步状态时的格林威治时间的一一对应,解决了现有技术中进行as6802同步时tte时间同步的适应性较低的问题,同时大大减小了tte中每个同步主机smg进行as6802预同步的起始时间差异,显著提高了tte时间同步的稳定性;
第二,由于本发明采用在tte中的各个网络设备实现基于1588协议周期性全局时间同步后,每个同步主机smg在进行每次本地时钟计数的起始点,向压缩主机发送集成帧
附图说明
图1为本发明的实现流程图。
具体实施方式
下面结合附图和具体实施例,对本发明作进一步详细描述。
参照图1,本发明包括如下步骤:
步骤1)网络设备测量时间触发以太网络tte中各相邻端口间的链路时延:
步骤1a)设tte包含m个网络设备a1,a2,...,ak,...,am,m≥2,每个网络设备包含至少两个端口;本发明实施例中令m=5,每个网络设备包含四个端口。
步骤1b)网络设备ak通过端口向与ak相邻的每个网络设备ak1,ak2,...,aki,...,akn的端口广播标志为88f70202的对等延迟请求帧,同时保存广播的时间点tk,其中n≥1;n<1是指网络设备ak没有相邻的网络设备,本发明实施例中令n=4。
步骤1c)网络设备ak1,ak2,...,aki,...,akn中的每个aki保存接收对等延迟请求帧的时间点t'ki,并将预设的发送对等延迟响应帧的时间点
步骤1d)网络设备ak保存接收写有yki的对等延迟响应帧的时间点
步骤2)基于1588协议对tte中的网络设备进行划分:
根据1588协议中主时钟设备的最佳主时钟第一优先级的属性,将tte中最佳主时钟第一优先级最小的网络设备作为主时钟设备,其余m-1个网络设备作为从属设备s1,s2,...,sj,...,sm-1。
步骤3)主时钟设备向每个从属设备sj广播同步帧:
主时钟设备将预置的广播同步帧的时间点tsync写入标志为88f70002的同步帧的时间戳字段中,并以w毫秒为1588协议的同步周期,在tsync时刻通过主时钟设备端口向每个从属设备sj的端口广播写有tsync的同步帧,其中w≥1;由于w<1不符合实际应用意义且过于浪费带宽,本发明实施例中令w=1000。
步骤4)每个从属设备sj基于1588协议实现与主时钟设备的周期性全局时间同步:
步骤4a)每个从属设备sj保存接收写有tsync的同步帧的时间点
步骤4b)每个从属设备sj根据tsync、
步骤4c)每个从属设备sj通过满足1588协议对亚微秒级同步精度的要求的
步骤5)基于as6802协议对tte'中的网络设备进行划分:
根据as6802协议对网络设备不同功能的需求,从tte'中任选一个网络设备作为压缩主机,其余m-1个网络设备作为同步主机sm1,sm2,...,smg,...,smm-1;其中不同功能的需求包括同步发起者和同步响应者,为了使每个同步主机都能与压缩主机进行协议控制帧交互,本发明实施例中选取tte'内相邻网络设备最多的一个网络设备作为压缩主机。
步骤6)每个同步主机smg与压缩主机基于as6802协议进行预同步:
步骤6a)在sj完成与主时钟设备的周期性全局时间同步的格林威治时间点,每个同步主机smg通过端口向压缩主机的端口发送as6802协议中的冷启动帧
步骤6b)压缩主机在接收到第一个
步骤6c)每个同步主机smg收到f’cs后,通过端口向压缩主机的端口发送as6802协议中的冷启动应答帧
步骤6d)压缩主机在接收到第一个
步骤6e)每个同步主机smg在接收f’ca的格林威治时间点,基于as6802协议规定的时钟格式,以第0个时钟为起始点,以第r个时钟为结束点,持续地进行本地时钟的循环计数,实现与压缩主机的预同步,r≥124999;本发明实施例中r=249999。
步骤7)每个同步主机smg与压缩主机基于as6802协议获取tte时间同步结果:
步骤7a)每个同步主机smg在进行每次本地时钟计数的起始点,通过端口向压缩主机的端口发送as6802协议中的集成帧
步骤7b)压缩主机保存每个集成帧
步骤7c)压缩主机基于as6802协议的压缩函数,通过tc1、第e个固化时间点tce和第m-e个固化时间点tc(m-e),计算压缩时间修正值ts,并将tc1与ts的和作为压缩时间点,在本地时钟的循环计数到达压缩时间点时,以tte'预设的派发时间点t'scm为基准,对本地时钟计数值进行调整,得到tte'的全局时间基,其中,e为tte'预设的允许出错的同步主机smg数目,且e∈[1,m-1);对本地时钟计数值进行调整是指若本地时钟计数值与t'scm不同,将本地时钟计数值修改为t'scm,由于e必须小于smg的最大数目才能实现时间同步,本发明实施例中令e=2,计算ts所用计算公式为ts=[(tce-tc1)+(tc(m-e)-tc1)]/2。
步骤7d)压缩主机在本地时钟的循环计数到达tte'预设的发送时刻时,通过端口向每个同步主机smg的端口广播集成帧f'in。
步骤7e)每个同步主机smg保存集成帧f'in到达的时间点
步骤7f)每个同步主机smg在本地时钟循环计数到达