基于千兆AFDX网络高精度授时时统的实现方法与流程

文档序号:16581981发布日期:2019-01-14 18:02阅读:749来源:国知局
基于千兆AFDX网络高精度授时时统的实现方法与流程

本发明属于航空电子系统中的机载总线通信技术领域,特别涉及确定性的数据交换通信架构下时间完整性维护和提高授时精度的设计方法。



背景技术:

随着航空电子领域的传感器技术高速发展,机载飞机系统集成的传感器的种类和数量越来越多,系统用户对不同传感器数据的传输需求特性不用,就要求航空电子通信能够面向不同安全关键性和实时性的分布式通信需求提供高精度授时守时功能实现各模块的协同工作。传统的航空机载通信网络如百兆afdx以及fc采用主从式的网络授时守时机制。虽然主从式的网络授时守时功能具有设计简单可控性好固有的优势,但是原有运行在百兆afdx主从授时方式采用的两种方式:1、采用预先估计一个主时钟设备到各从设备的传输时延即afdx网络中端到端传输的最大时延(该时延由afdx的固有确定性来计算定义),并配置到各从设备端实现从设备接收到主时钟信息加上主从设备间的传输链路平均时延值作为接收设备本地的同步授时时钟值更新本地时钟,该方式存在较大误差,我们知道afdx估计的最大时延上界是一个最悲观的估计值,同时又是一个统一值,而网络上任一周期的任意时刻一个节点广播传输的数据帧到各接收节点的传输时延均有差异;2、采用在线双向握手测试估计各条链路上的主从时钟设备的传输时延,各从设备端接收到主时钟信息加上在线测试的平均时延作为接收设备本地的同步授时时钟值更新本地时钟,该方式需要新增一条握手数据流占用有效的带宽,同时增加了设计复杂度,而且双向握手计算的平均时延存在较大误差。



技术实现要素:

本发明的目的在于提供一种基于千兆afdx网络高精度授时时统的实现方法,用以解决现有afdx通信机制采用低精度的授时问题。

为实现上述目的,实施本发明的千兆afdx网络高精度授时时统的方法包括如下步骤:

步骤一:设定rtc帧的虚拟链路序号、虚拟链路的类别和rtc帧的调度周期,同时测量网络系统中主时钟设备与交换机之间的物理传输长度和交换机到各从时钟设备的物理链路传输长度,并折算为ns为单位的传播时延计算公式:(10*长度(m)/2(ns))。

步骤二:在作为主时钟设备的afdx端系统方,设定一个周期为rtc帧的调度周期的周期计时器,周期计时器在每个调度周期计时完成产生一个脉冲,该脉冲触发主时钟设备读取当前本地时钟值local_timer_pit1_1,同时触发rtc帧的组包发送。

在rtc帧的组包发送过程中,将local_timer_pit1_1赋值到rtc帧的8字节的时间戳信息字段;当rtc帧从主时钟设备的端口输出第一个bit位的数据产生一个脉冲,该脉冲触发时读取当前本地时钟值local_timer_pit1_2,将local_timer_pit1_2与local_timer_pit1_1的时间差值转化为以ns单位的数值send_delay再加上折算的主时钟设备与交换机之间传播时延pro_delay1作为主时钟源设备的调度时延sche_delay赋值到4字节的延时计数信息中,计算crc发送rtc帧。

步骤三:在afdx交换机方,交换机的接收端口采集到数据帧gmii的使能信号的第一拍产生一个脉冲读取交换机的当前本地时钟值local_timer_pit2_1,并将该local_timer_pit2_1与数据帧组合一起存放到交换机的数据缓冲区,等待调度转发;同时将rtc帧的转发信息写入到交换机所有转发端口的帧信息输出队列中,交换机的转发端口从帧信息输出队列获取到rtc帧的转发信息,根据rtc帧的vl类别识别出为rtc帧后,进入到rtc帧的转发处理流程,首先将rtc帧从afdx交换机的数据缓冲区取出保存到转发端口mac层的缓冲区,当rtc帧从该转发端口输出第一个bit位的数据产生一个脉冲,该脉冲触发读取交换机的当前本地时钟值local_timer_pit2_2,将local_timer_pit2_2与local_timer_pit2_1的时间差值转化为以ns单位的数值作为交换机的转发时延增加到rtc帧的4字节的延时计数信息中,计算crc,实现rtc帧的转发功能,每经过一级交换机转发,该交换机都对网络的rtc帧进行上述步骤处理。

步骤四:在作为从时钟设备的afdx端系统方,从时钟设备的接收端口采集到数据帧gmii的使能信号的第一拍后产生一个脉冲,该脉冲触发读取从时钟设备的当前本地时钟值local_timer_pit3_1,通过匹配对应rtc帧信息中vl类别识别为rtc帧,提取rtc帧中8字节的主时钟设备的时间戳信息time_stamp和4字节的延时计数信息trans_delay,以4字节的延时计数信息提取完毕的时刻点产生一个脉冲,该脉冲触发读取本从时钟设备的本地时钟值local_timer_pit3_2。

下一个时钟使能计算出local_timer_pit3_2和local_timer_pit3_1差值作为接收技术时延tech_delay。通过4字节的延时计数信息trans_delay加上tech_delay再加上折算的交换机与从时钟设备与之间传播时延pro_delay2折算为本地时钟值精度的数值,与8字节的主时钟设备的时间戳信息time_stamp求和值为master_colck_pit。

再下一个时钟使能用master_colck_pit+1时钟值修正从时钟设备的本地时钟,完成网络的授时功能的整个过程。

本发明的有益效果在于提出了一种易于实现,授时精度高的实现方式,通过在afdx网络中授时功能的rtc帧增加实时的传输时延信息,通过记录rtc帧在主时钟源设备的调度时延、路径交换机的转发时延、以及从时钟设备接收处理的技术延时,将三种时延参数的和作为rtc帧从授时端到被授时端设备之间的实际时延来补偿授时的时钟,被授时端接收到授时的rtc帧提取帧中的主时间戳值加上计算获取的rtc帧传输的实际时延值写入本地时钟计时器,通过该实现方式主时钟计时器值和从时钟的计时器值的差异不会超过100ns,即该同步授时精度可达亚微秒级的精度。传统的交换机转发方式下不会对转发数据帧进行任何改变,该授时方式下通过改变rtc帧在网络系统中的交换机的转发输出方式,在转发端口处改变了帧负载的内容以及重新计算crc来达到高精度的性能。通过该方法较好的解决了低精度的授时问题,提高了设备间协同的操作能力。

【附图说明】

图1为基于千兆afdx网络高精度授时时统的实现方法的流程示意图。

图2为rtc帧的结构示意图。

【具体实施方式】

下面结合附图和实施例对本发明作进一步的详细说明。

参见图1所示,一种基于千兆afdx网络高精度授时时统的实现方法,包括如下步骤:

步骤一:设定rtc帧的虚拟链路序号(以下简称vlid)号、虚拟链路(以下简称vl)的类别和rtc帧的调度周期,同时测量网络系统中主时钟设备与交换机之间的物理传输长度和交换机到各从时钟设备的物理链路传输长度,并折算为ns为单位的传播时延计算公式:(10*长度(m)/2(ns))。设定vl类别是用于区分其它通信vl。设定rtc帧的调度周期是为让主时钟源按照该调度周期大小周期性的广播rtc帧。

步骤二:,将折算的主时钟设备与交换机之间传播时延pro_delay1写入到主时钟设备的fpga寄存器空间,作为主时钟设备的afdx端系统设定一个周期计时器,该周期计时器的周期为rtc帧的调度周期,每个调度周期计时完成产生一个脉冲,该脉冲触发主时钟设备读取64位本地时钟值local_timer_pit1_1,同时触发rtc帧的组包发送。rtc帧按照afdx的协议标准组成64字节的最小包,其中17个字节的payload部分包含8字节的时间戳信息和4字节的延时计数信息(单位为1ns)以及5个字节的保留信息,其中将local_timer_pit1_1赋值到8字节的时间戳信息字段;当rtc帧从主时钟设备的端口输出第一个bit位的数据产生一个脉冲,该脉冲触发时读取当前64位本地时钟值local_timer_pit1_2,将local_timer_pit1_2与local_timer_pit1_1的时间差值转化为以ns单位的数值send_delay再加上pro_delay1作为主时钟源设备的调度时延sche_delay赋值到4字节的延时计数信息中,计算crc发送rtc帧。

步骤三:afdx交换机的接收端口采集到数据帧gmii的使能信号的第一拍产生一个脉冲读取afdx交换机当前64位本地时钟值local_timer_pit2_1,并将该时钟值与数据帧组合一起存放到交换机的数据缓冲区,等待调度转发;同时将rtc帧的转发信息写入到交换机所有转发端口的帧信息输出队列中,交换机的转发端口从帧信息输出队列获取到rtc帧的转发信息,根据rtc帧的vl类别识别出为rtc帧后,进入到rtc帧的转发处理流程,首先将rtc帧从afdx交换机的数据缓冲区取出保存到转发端口mac层的缓冲区,当rtc帧从该转发端口输出第一个bit位的数据产生一个脉冲,该脉冲触发读取交换机的当前64位本地时钟值local_timer_pit2_2,将local_timer_pit2_2与local_timer_pit2_1的时间差值转化为以ns单位的数值作为交换机的转发时延增加到4字节的延时计数信息中,计算crc,实现rtc帧的转发功能,每经过一级交换机转发,该交换机都对网络的rtc授时帧进行上述步骤处理。

步骤四:将折算的交换机与从时钟设备与之间传播时延pro_delay2写入到从时钟设备的fpga寄存器空间,作为从时钟设备的afdx端系统的接收端口采集到数据帧gmii的使能信号的第一拍产生一个脉冲读取本设备当前64位本地时钟值local_timer_pit3_1,通过匹配对应帧信息中vlid参数识别为rtc帧,提取rtc帧中8字节的主时钟设备的时间戳信息time_stamp和4字节的延时计数信息trans_delay,以4字节的延时计数信息提取完毕的时刻点产生一个脉冲,该脉冲触发读取本设备的当前64位本地时钟值local_timer_pit3_2。

下一个时钟使能计算出local_timer_pit3_2和local_timer_pit3_1差值作为接收技术时延tech_delay。通过4字节的延时计数信息trans_delay加上tech_delay再加上pro_delay2折算为64位本地时钟值精度的数值,与8字节的主时钟设备的时间戳信息time_stamp求和值为master_colck_pit。

master_colck_pit=time_stamp+(local_timer_pit3_2-local_timer_pit3_1)+(trans_delay)折算与64位本地时钟值精度相同的值。

再下一个时钟使能用master_colck_pit+1时钟值修正从时钟设备的64位本地时钟,完成网络的授时功能的整个过程。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1