一种在FC网络中实现时间同步的方法与流程

文档序号:15296690发布日期:2018-08-31 19:27阅读:1238来源:国知局

本发明涉及fc协议、fc传输领域,尤其涉及一种在fc网络中实现时间同步的方法。



背景技术:

fc(fiberchannel)是由美国标准化委员会(ansi)的提出的高速串行传输总线,由于其具备通道和网络双重优势,具备高带宽、高可靠性,抵抗电磁干扰等优点,能够提供非常稳定可靠的光纤连接,容易构建大型的数据传输和通信网络。fc-ae标准是一个fc应用到航空电子环境中的一组协议集,主要用于航空电子环境下各设备之间的数据通信,传输视频、指控、仪器仪表、传感器等数据,目前fc-ae网络在诸多航电网络和军工设备中得到了广泛的应用。

确定性网络已经成为新一代网络中的研究前沿,也是众多领域的研究热点。例如能够完全兼容以太网的tte,在国外已应用到发动机控制系统、风能系统、ima分布系统、载人飞船和火星探测项目中。目前fc协议现已广泛应用于各个行业领域中,特别是对于稳定可靠性要求非常高的航电领域,在fc协议中加入时间触发的机制以满足强实时性的要求在航电或者车载领域是必然的趋势。现有的fc网络没有高精确度的时间同步方法,从而使得fc网络中暂时无法使用时间调度策略。而时间触发机制的前提就是所有网络节点进行时间同步。

协议“fiberchannelframingandsignaling-2(fc-fs-2)rev1.01.”中规定设备节点需要区分为主动发送节点和被动接收节点,被动节点只能接受主动节点的时间原语而不能发送本地时间,时钟优先级只存在主次两种关系,不能扩展到多个节点的情况,且一旦发送节点出现故障则当前链路时间同步瘫痪。同时被动节点在接收时间原语时并没有考虑链路和设备处理延时,导致被动节点恢复出来的时间与主动节点仍然存在一定的偏差。



技术实现要素:

本发明的目的在于:解决目前网络需要精确的容错性强的时间同步,现有技术精确度不够、容错性不强的问题,本发明提供了一种在fc网络中实现时间同步的方法。

本发明的技术方案如下:

一种在fc网络中实现时间同步的方法,fc设备的每个端口对应一个时间同步单元,fc网络中每个链路的时间同步包括如下步骤:

步骤1:根据时钟优先级在各fc设备上设置deviceid(例如id越小或者越大优先级越高),并生成id原语;

步骤2:fc设备1向相邻的fc设备2发送包含步骤1中配置的deviceid的原语和时间原语,同时开始计时;

步骤3:fc设备2接收并解析id原语,然后向相邻的fc设备1回复id_rdy;

步骤4:fc设备1收到相邻的fc设备2发出的id_rdy原语之后停止计时并由此计算从计时开始到计时结束过程的时间差;

步骤2-步骤4的操作中,fc设备1作为发送端,fc设备2作为接收端;同时,fc设备1也作为接收端,fc设备2也作为发送端;

步骤5:fc设备1从接收到的相邻fc设备2的id原语、id_rdy原语和时间原语,以及计算得到的时间差中按照步骤1中的id优先级进行时间同步,如果fc设备1自身的优先级高于相邻的fc设备2则不被同步,否则fc设备1的时间被同步为相邻的fc设备2的时间。

具体地,每一个所述的fc设备设置的id信息互不相同,每个fc设备的id原语作为唯一标识信息,其长度不超过2个字节。

具体地,所述步骤2中,id原语前2字节固定为0xbc55,后2字节用来封装id;id原语和时间原语都在fc帧之间发送,共占用4个发送时钟周期,满足fc帧与帧之间至少间隔6个空闲周期的协议规定。

进一步地,所述步骤3包括如下步骤:

步骤3.1:fc设备2的时间同步单元收到id原语之后解析后2字节的id信息;

步骤3.2:fc设备2的时间同步单元回复自定义id_rdy到当前链路上,id_rdy定义为0xbc775555。

进一步地,所述步骤4中,通过id原语的发送和回复精确计算出fc设备1和相邻的fc设备2的线路时间差。

具体地,所述步骤5中,fc设备1的时间同步单元收到id_rdy之后,根据步骤4中求得的时间差、从fc设备2接收的时间原语中获得的时间信息,恢复出fc设备2的时间信息;具体的恢复规则如下:

步骤5.1:fc设备1的时间同步单元进行判断,若从fc设备2接收到的id优先级比本地id高,则将该端口获取的精确时间信息保存,否则不做处理;

步骤5.2:将fc设备1的时间更新为主时钟提供方的时间并用本地晶振进行时间累加。

本发明中所述的fc设备1和fc设备2之间只是描述了一种单一网络,对于较为复杂的网络,比如,有多个fc设备和多个交换机,对于每条链路两端的fc设备或者交换机,都是采用本发明的方法进行传输。这些均在本发明的保护范围之内。

采用上述方案后,本发明的有益效果如下:

1)本发明对发送id原语和接收rdy原语进行精确控制,准确地计算了链路延时,实现了高精确度的时间同步。

2)自定义的原语(包括deviceid原语、id_rdy原语)以及时间原语都是在帧间隔期发送,fc协议规定在帧和帧之间必须留一部分时间发送原语,即使不发时间原语也不能发帧,本发明是在利用协议规定的空闲时间,在不占用有效传输带宽,并且不违背现有协议的情况下进行时间同步,使得该技术有广泛的适应性;

3)时间同步速度快,原理上只需要id信息的一次往返传输即可使两端节点进入同步状态;

4)本发明通过分布式实现方式,原语无法跨越交换机,fc设备1和交换机之间进行同步后,由于原语在协议中无法像数据帧那样被交换机转发,原语被交换机收到之后消失,但是此时交换机已经同步到fc设备1的时间,然后交换机和fc设备2之间继续采用本发明的方法进行同步,因此本发明巧妙地利用了该特点使得整个网络中各节点可以采用扩散的方式进行同步,而不需要统一的时间分配系统,大大降低了实现成本。

5)该方法容错能力强,在网络拓扑结构发生改变(如节点、链路大规模瘫痪)的时候可以按照本方法中的时钟选取方法自动快速进入新的同步状态。

6)fc时间原语计时精度常见的是100ns(协议默认值),改变计时频率可以提高到10ns,因此,同步的时间精度高,根据fc协议规定可以达到亚微秒级精度的时钟同步,稍做修改可以将该时钟精度进一步提高。

附图说明

图1为本发明的方法流程图;

图2为本发明步骤2中id的原语封装格式图;

图3为本发明synx、syny和synz时间原语格式图;

图4为本发明的端口互发过程示意图。

具体实施方式

本说明书公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。

下面,将结合附图和具体实施例对本发明进行更加清楚、完整的说明。

本实施例中,为方便对fc设备1和fc设备2中各自的id原语和id_rdy原语进行区分。具体地,将对id原语分别描述成id原语1和id原语2,其中,id原语1表示包含fc设备1的deviceid的原语,id原语2表示包含fc设备2的deviceid的原语。

本具体实施方式中的一种在fc网络中实现时间同步的方法,fc设备的每个端口对应一个时间同步单元,fc网络中每个链路的时间同步的整个过程如图1所示,同时,如图4所示,图4为本发明的两个端口互发过程的示意图,本发明的步骤包括如下步骤:

步骤1:在fc设备1上设置deviceid为0x0001,在相邻的fc设备2上设置deviceid为0x0002,设定规则0x0001优先级高于0x0002;

步骤2:fc设备1向相邻的fc设备2发送包含步骤1配置的id原语1和时间原语synx、syny和synz,同时开始计时,时间原语的格式如图3所示;

步骤3:fc设备2接收并解析id原语1,然后向相邻的fc设备1回复id_rdy;所述步骤3包括如下步骤:

步骤3.1:fc设备2的时间同步单元收到id原语1之后解析后2字节的id信息;

步骤3.2:fc设备2的时间同步单元回复自定义id_rdy到当前链路上,id_rdy定义为0xbc775555或其他与协议原语无冲突字段。

步骤4:fc设备1收到id_rdy之后停止计时并由此计算从计时开始到计时结束过程的时间差;

步骤2-步骤4中,fc设备1作为发送端,fc设备2作为接收端;同时,fc设备1也作为接收端,fc设备2也作为发送端;具体而言,其步骤为:

步骤2-1:fc设备2向相邻的fc设备1发送包含步骤1-1中设置的deviceid原语2和时间原语,同时开始计时;

步骤3-1:fc设备1接收并解析id原语2,然后向发送设备的fc设备2回复id_rdy;对于步骤3-1所包含如下步骤:

步骤3-1.1:fc设备1的时间同步单元收到id原语之后解析后2字节的id信息;

步骤3-1.2:fc设备1的时间同步单元回复自定义id_rdy到当前链路上,id_rdy定义为0xbc775555或其他与协议原语无冲突字段。

步骤4-1:fc设备2收到id_rdy之后停止计时并由此计算从计时开始到计时结束过程的时间差。

步骤5:fc设备2从接收到的相邻fc设备1的id原语、id_rdy原语和时间原语,以及计算得到的时间差中按照步骤1中的id优先级进行时间同步,如果fc设备2自身的优先级高于相邻的fc设备1则不被同步,否则fc设备2的时间被同步为相邻的fc设备1的时间。

每一个所述的fc设备设置的id信息互不相同,每个fc设备的id原语作为唯一标识信息,其长度不超过2个字节。

在步骤2和步骤2-1中,id原语1和id原语2前2字节固定为0xbc55,后2字节用来封装id;id原语和时间原语都在fc帧之间发送,共占用4个发送时钟周期,满足fc帧与帧之间至少间隔6个空闲周期的协议规定。

步骤4和步骤4-1中,通过id原语的发送和回复精确计算出fc设备1和相邻的fc设备2的线路时间差。

步骤5:fc设备1从接收到的相邻fc设备2的id原语、id_rdy原语和时间原语,以及计算得到的时间差中按照步骤1中的id优先级进行时间同步,如果fc设备1自身的优先级高于相邻的fc设备2则不被同步,否则fc设备1的时间被同步为相邻的fc设备2的时间。如本例中,若fc设备2记录的步骤4中的时间差为t,从fc设备1发出的时间原语中经过解析获取的时间为tc,则在fc设备2上可算出fc设备1当前时钟为tc+t/2;具体的恢复规则如下:

步骤5.1:各fc设备的时间同步单元进行判断,若从相邻设备接收到的id比本地id小,则将该端口获取的精确时间信息保存,否则不做处理;例如,本例中,fc设备2的时间同步单元上判断,由于fc设备2的id为0x0002,大于fc设备1的id为0x0001,所以fc设备2的时钟同步单元会将自己的时钟同步为fc设备1的当前时钟,即tc+t/2;而fc设备1的时钟同步单元在判断id时已经得知己方为主时钟,所以不会被fc设备2所同步。本实施例中,判断规则是以id小为准,同样,可以改为id大为准,或者按照提前设定好的id优先级顺序为准,本领域技术人员根据需要进行自由设置。

步骤5.2:将fc设备2的时间更新为主时钟提供方的时间并用本地晶振进行时间累加。

应当理解,对于本发明中的两个fc设备,本发明保护的范围并不仅仅是限制与两个fc设备,还可以扩展为多个fc设备的网络,每个fc设备的同步过程和上述fc设备1的同步过程完全一致。

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