CN111147178B - 一种基于fpga的分布式系统时钟同步集中器 - Google Patents
一种基于fpga的分布式系统时钟同步集中器 Download PDFInfo
- Publication number
- CN111147178B CN111147178B CN201911317240.3A CN201911317240A CN111147178B CN 111147178 B CN111147178 B CN 111147178B CN 201911317240 A CN201911317240 A CN 201911317240A CN 111147178 B CN111147178 B CN 111147178B
- Authority
- CN
- China
- Prior art keywords
- frame
- module
- frames
- pcf
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于FPGA的分布式系统时钟同步集中器,采用FPGA芯片实现,时钟同步集中器包括多个数据接收控制模块、路由模块、状态机模块、PCF帧处理模块、时钟修正模块、PCF帧发送模块、非PCF帧发送模块以及多个数据发送控制模块;本发明提供的同步集中器采用FPGA硬件即可实现时钟同步,相比于以往采样软件模拟的同步方式,同步精度更高,并且提高了数据处理速度,降低了网络延迟。
Description
技术领域
本发明涉及时钟同步集中器,具体涉及一种基于FPGA的分布式系统时钟同步集中器。
背景技术
近年来,随着航空、航天等高端装备的电子系统都在由以前的分立式、联合式体系架构朝着网络化、综合化、分布式的开放体系架构方向发展,时间触发网络得到越来越多的重视,时间触发网络是一种在交换式网络环境下的时间触发通信技术,并严格按照整合周期和预先规划好的发送时间点进行业务调度,具备高可靠、确定性传输,同时具有良好的兼容性和高带宽,能够满足未来高端装备分布式综合电子系统的组网通信需求。
在分布式系统中,时间触发通信严格按照时刻调度表进行调度,因此时钟同步机制就显得格外重要,时钟同步精度越高,系统的通信抖动就越低,系统可靠性就越高。该时钟同步详细定义了同步流程以及容错控制机制,为高可靠、高精度的网络时钟同步提供了一套完整的设计机制。在时钟同步过程中定义了三种重要网络构件,包括:(1)同步控制器(Synchronization Master,SM),时钟同步请求的发起者,也是本地时钟同步的执行者;(2)同步集中器(Compression Master,CM),响应SM发起的时钟同步请求,担任全局时钟的仲裁者角色,生成全局统一时间,通常同步集中器为交换机;(3)同步客户端(SynchronizationClient,SC),被动接收网络时钟同步要求,进行本地时钟同步。
目前,针对分布式系统时钟同步集中算法的研究大都停留在软件和仿真层面,软件方式由于时间精度有限,导致同步精度在毫秒级别,其无法满足高端装备的实际需求。
发明内容
本发明的目的在于提供一种基于FPGA的分布式系统时钟同步集中器,用以解决现有技术中采用软件模拟的时钟同步集中器出现的同步精度不高的问题。
为了实现上述任务,本发明采用以下技术方案:
一种基于FPGA的分布式系统时钟同步集中器,采用FPGA芯片实现,所述的时钟同步集中器包括多个数据接收控制模块、路由模块、状态机模块、PCF帧处理模块、时钟修正模块、PCF帧发送模块、非PCF帧发送模块以及多个数据发送控制模块;
所述的数据接收控制模块用于同时获取多路数据帧后,将多路数据帧分别加入本地时标,获得多路加入本地时标后的数据帧;对多路加入本地时标后的数据帧进行完整性检测后,对通过完整检测后的所有数据帧进行分类,获得多路PCF帧、多路TT帧以及多路BE帧;对所述每路PCF帧进行静态接收延迟修正,获得多路修正后的PCF帧;
所述的路由模块用于获得所述的每路修正后的PCF帧、每路TT帧以及每路BE帧的路由目的地址;
所述的路由模块还用于将所述的每路修正后的PCF帧以及对应的路由目的地址发送给PCF帧发送模块;所述的修正后的PCF帧包括CS帧、CA帧以及IN帧;
所述的路由模块还用于将所述的每路TT帧、每路BE帧以及对应的路由目的地址发送给非PCF帧发送模块;
所述的状态机模块用于当状态为未同步、参与到冷启动或临时同步时,控制所述的路由模块将所述的每个CS帧以及每个CS帧的路由目的地址发送给PCF帧发送模块;当状态为初始状态、同步以或稳定同步时,控制所述的路由模块将所述的CS帧丢弃;
所述的PCF帧处理模块用于对所述的多个CA帧以及多个IN帧进行保序处理后,对保序处理后的多个CA帧以及保序处理后的多个IN帧进行集中处理后再进行选优处理,获得最优CA帧、最优IN帧以及最优IN帧的集中点;所述的PCF处理模块还用于将所述的最优CA帧、最优IN帧发送给PCF帧发送模块;
所述的PCF帧处理模块还用于获得预接收点,根据所述的最优IN帧的集中点与预接收点之间的差值,获得误差值;
所述的状态机模块还用于判断当进入同步状态时,控制时钟修正模块开始进行修正处理;
所述的时钟修正模块用于当本地时钟计数到达预设的时钟修正点时,利用所述的误差值进行本地时钟修正处理,获得修正后的本地时钟;
所述的非PCF帧发送模块用于根据所述的路由目的地址将所述的TT帧、BE帧发送至相应的数据发送控制模块中;
所述的PCF帧发送模块用于在发送时间点根据当前时刻以及每个数据帧的透明时钟字段,修正所述的CS帧、最优CA帧以及最优IN帧的透明时钟字段,获得修正后的CS帧、修正后的CA帧以及修正后的IN帧后,依次将修正后的CS帧、修正后的CA帧以及修正后的IN帧在各自的发送时间点根据路由目的地址发送至相应的数据发送控制模块中;
所述的数据发送控制模块用于将所述的TT帧、BE帧、修正后的CS帧、修正后的CA帧以及修正后的IN帧进行编码后输出。
进一步地,所述的数据接收控制模块包括依次设置的SFP接收控制模块、本地时标记录模块、完整性检测模块以及透明时钟静态修正模块;
所述的SFP接收控制模块用于获取多路数据帧后进行解码,获得多路解码后的数据帧;
所述的SFP接收控制模块还用于接收到每路数据帧后,根据每路数据帧达到的时间点,获得每路数据帧对应的本地时标;
所述的本地时标记录模块用于在每路所述的解码后的数据帧中加入对应的本地时标,获得多路加入本地时标后的数据帧;
所述的本地时标记录模块还用于对每路本地时标后的数据帧进行CRC校验,获得CRC校验结果;
所述的完整性检测模块用于检测每路所述的本地时标后的数据帧中的PCF帧的PCF_VLID字段和CTMarker字段是否在设定范围内,获得完整性检测结果,所述的完整性检测结果包括在设定范围内以及不在设定范围内,当完整性检测结果为不在设定范围内则丢弃所述的本地时标后的数据帧;
所述的透明时钟静态修正模块用于根据所述的CRC校验结果以及,对通过完整检测后的所有数据帧进行分类,获得多路PCF帧、多路TT帧以及多路BE帧;
所述的透明时钟静态修正模块还用于根据每路PCF帧的透明时钟字段对每路PCF帧进行静态接收延迟修正,获得多路修正后的PCF帧。
进一步地,所述的PCF帧处理模块包括保序处理模块、集中处理模块以及选优模块;
所述的保序处理模块用于对所述的多个CA帧按照每个CA帧对应的保序点时间先后顺序进行排序,获得保序处理后的多个CA帧;
所述的保序处理模块用于对所述的多个IN帧按照每个IN帧对应的保序点时间先后顺序进行排序,获得保序处理后的多个IN帧;
所述的集中处理模块用于采用集中算法对所述的保序处理后的多个CA帧进行处理,获得一个CA帧集中点以及一个CA帧成员关系值;
所述的集中处理模块还用于采用集中算法对所述的保序处理后的多个IN帧进行处理,获得一个IN帧集中点以及一个IN帧成员关系值;
所述的集中处理模块还用于根据一个CA帧集中点以及一个CA帧成员关系值,生成一个新的CA帧;
所述的集中处理模块还用于根据一个IN帧集中点以及一个IN帧成员关系值,生成一个新的IN帧;
所述的选优模块用于当获得多个新的CA帧时,从多个新的CA帧中选取出一个最优CA帧,所述的最优CA帧的成员关系值最大且集中点与所述的预接收点之间的偏差最小;
所述的选优模块还用于当获得多个新的IN帧时,从多个新的IN帧中选取出一个最优IN帧,所述的最优IN帧的成员关系值最大且集中点与所述的预接收点之间的偏差最小;
所述的选优模块还用于将所述的一个最优CA帧以及一个最优IN帧发送至PCF帧发送模块中;
所述的选优模块还用于获得最优IN帧的集中点以及预接收点,根据所述的最优IN帧的集中点与预接收点之间的差值,获得误差值。
本发明与现有技术相比具有以下技术效果:
1、本发明提供的基于FPGA的分布式系统时钟同步集中器提供了一套FPGA处理器能够实现的工作模块,采用FPGA硬件即可实现时钟同步,相比于以往采样软件模拟的同步方式,同步精度更高,并且提高了数据处理速度,降低了网络延迟;
2、本发明提供的基于FPGA的分布式系统时钟同步集中器通过利用PFGA中的SFP模块进行数据的发送与接收,相比于传统的软件模拟的方式,可靠性更高;另外考虑到本发明采用硬件实现时钟同步,通过对PCF帧进行静态接收延迟修正,以消除线路延时以及MAC接收延时,提高了时钟同步的精度;
3、本发明提供的基于FPGA的分布式系统时钟同步集中器同步精度可以达到100ns以内,单次调节的步进可以达到8ns,具有较高的实时性与可靠性,可以应用在航空、航天、高铁等对安全性和实时性要求高的产品研制中。
附图说明
图1为本发明提供的网络时钟同步过程示意图;
图2为本发明提供的同步集中器硬件结构示意图;
图3为本发明提供的FPGA同步集中器内部结构示意图;
图4为本发明提供的状态机工作过程示意图。
具体实施方式
下面结合附图和实施例对本发明进行详细说明。以便本领域的技术人员更好的理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
以下对本发明涉及的定义或概念内涵做以说明:
PCF帧:Protocol Control Frame,协议控制帧,携带有时间触发以太网协议控制信息,PCF帧还分为冷启动CS帧、冷启动确认帧CA帧以及整合IN帧。
TT帧:Time Triggered,时间触发数据帧;
BE帧:Best Effort,尽力传数据帧;
SFP:Small Form Pluggable,电信号转换为光信号的接口;
FPGA:现场可编程逻辑门阵列器件;
实施例:
在本实施例中公开了一种基于FPGA的分布式系统时钟同步集中器,采用FPGA芯片实现。
在将多个非同源SM的本地时刻通过集中器同步到相同时刻,最后各SM本地时刻偏差越小,表示同步效果越好。如图2所示,集中器包括SFP、K7系列FPGA、FLASH、串口等硬件结构。
SFP模块,既可以是光模块也可以是电模块,其作为CM与SM的数据交互接口,完成数据帧的收发功能。
FPGA为赛灵思的K7系列,其逻辑资源较大,可以支持多路数据收发,从而可以扩张为多个与SM的接口,主要实现时钟同步集中器的功能。
FLASH用于存储FPGA的加载文件,FPGA上电后从FLASH读取并加载可编程逻辑,完成整个FPGA的功能。
串口为RS-232接口,负责接收集中器的状态信息及其它辅助信息。
分布式系统时钟同步集中器要完成消息帧类别判断、消息保序、集中计算、消息帧转发等功能。
如图1所示的分布式系统时钟同步过程,时钟同步由同步控制器SM发起,同步集中器CM收到链路上来自不同SM发送的PCF帧,通过保序计算、集中计算得到全局统一时钟,再通过PCF帧转发给SM/SC,SM/SC根据收到的全局统一时钟信息校正本地时钟,这样就完成分布式系统网络时钟同步过程。图中符号表示的含义如表1。
表1时钟同步过程中符号含义
具体地,如图3所示,时钟同步集中器包括多个数据接收控制模块、路由模块、状态机模块、PCF帧处理模块、时钟修正模块、PCF帧发送模块、非PCF帧发送模块以及多个数据发送控制模块;
数据接收控制模块用于同时获取多路数据帧后,将多路数据帧分别加入本地时标,获得多路加入本地时标后的数据帧;对多路加入本地时标后的数据帧进行完整性检测后,对通过完整检测后的数据帧进行分类,获得多路PCF帧、多路TT帧以及多路BE帧;对所述每个PCF帧进行静态接收延迟修正,获得多个修正后的PCF帧;
可选地,数据接收控制模块包括依次设置的SFP接收控制模块、本地时标记录模块、完整性检测模块以及透明时钟静态修正模块;
SFP接收控制模块用于获取多路数据帧后进行解码,获得多路解码后的数据帧;
SFP接收控制模块还用于接收到每路数据帧后,根据每路数据帧达到的时间点,获得每路数据帧对应的本地时标;
在本实施例中,SFP接收控制模块,将来自SM的数据帧通过SFP接收控制模块解码,将帧转换成AXIS数据流格式传给后续模块,并且SFP接收控制模块收到数据帧以后根据AXIS总线的valid信号记录本地时标(cm_receive_pit),为后续透明时钟修正做准备。
本地时标记录模块用于在每路所述的解码后的数据帧中加入对应的本地时标,获得多路加入本地时标后的数据帧;
本地时标记录模块还用于对每路本地时标后的数据帧进行CRC校验,获得CRC校验结果;
在本实施例中,本地时标记录模块将解码后的数据帧计入本地时标后存入乒乓缓存,并计算帧的CRC值是否正确。
完整性检测模块用于检测每路所述的本地时标后的数据帧中的PCF帧的PCF_VLID字段和CTMarker字段是否在设定范围内,获得完整性检测结果,所述的完整性检测结果包括在设定范围内以及不在设定范围内,当完整性检测结果为不在设定范围内则丢弃所述的本地时标后的数据帧;
在本实施例中,数据帧分为三大类,PCF帧(帧类型为0x891d)、TT数据帧(帧类型为实际载荷长度,小于1536)、BE数据帧(除TT与PCF帧都可以视为BE帧),其中PCF帧又可分为三大类,包含冷启动帧(CS帧,pcf type=0x04)、冷启动确认帧(CA帧,pcf typ=0x08)、整合帧(IN帧,pcf typ=0x02)。
对PCF帧查询PCF_VLID字段和CTMarker字段,这两个字段合成PCF帧目的地址,如果这两个字段不在设定范围内,则直接丢弃此帧。如果当前是同步状态,还要检查整合周期是否正确。
在本实施例中,字段查询的设定范围是用户根据设备情况自定义的,例如对于某一节点的PCF帧查询以下信息:
0x0fe5<PCF_VLID<0x0fee、CTMarker=0xabadbabe
透明时钟静态修正模块用于根据所述的CRC校验结果以及,对通过完整检测后的所有数据帧进行分类,获得多路PCF帧、多路TT帧以及多路BE帧;
透明时钟静态修正模块还用于根据每路PCF帧的透明时钟字段对每路PCF帧进行静态接收延迟修正,获得多路修正后的PCF帧。
在本实施例中,根据CRC校验结果、语义检测结果以及各个模块的检测判断结果得出检测标志信号,其中检测标志信号用于标志帧的类型,帧类型包括PCF帧、TT帧以及BE帧,根据透明时钟transparent_clock修正静态接收延迟(包括线路延时,MAC接收延时,接收检测模块处理延时)后传递给下一个处理单元。
路由模块用于路由模块用于获得所述的每个修正后的PCF帧、每个TT帧以及每个BE帧的路由目的地址;
路由模块还用于将每个修正后的PCF帧以及对应的路由目的地址发送给PCF帧发送模块;修正后的PCF帧包括CS帧、CA帧以及IN帧;
所述的路由模块还用于将每个TT帧、每个BE帧以及对应的路由目的地址发送给非PCF帧发送模块;
在本实施例中,路由查找和分类是将所有SFP接收到的帧,分为PCF帧(包括IN帧、CS帧、CA帧),BE帧、TT帧进行处理。对CS帧进行广播转发,对CA帧和IN帧进行集中保序;PCF帧和TT帧均采用TT交换模块进行交换,BE帧采用BE交换模块进行交换,交换都采用存储转发的方式,即根据帧的目的地址将帧放到对应输出端口的缓存依次进行发送。主控机通过PCIE下发BE帧数据到CM的接收模块然后按照各自的交换规则进行转发交换。提交交换前根据目的地址或者VLID查表得到路由信息,并按照交换帧格式将路由信息、时标、帧长度和帧内容一起提交给交换缓冲区进行后续交换,最后通过SFP发送模块发送。
状态机模块用于当状态为未同步、参与到冷启动或临时同步时,控制路由模块将每个CS帧以及每个CS帧的路由目的地址发送给PCF帧发送模块;当状态为初始状态、同步以或稳定同步时,控制路由模块将CS帧丢弃;
在本实施例中,定义了高完整性CM的状态机及转换关系,其保证了保序模块、集中模块、选优模块、时钟修正模块之间的协同工作。CM状态机包含了CM_INTEGRATE、CM_WAIT_4_CYCLE_START、CM_UNSYNC、CM_TENTIVE_SYNC、SM_SYNC、CM_STABLE等6种状态。其取值含义如下表2所示。
表2 CM各状态取值含义列表
CM协议状态机如图4所示,异步状态有CM_INTEGRATE、CM_WAIT_4_CYCLE_START、CM_UNSYNC、CM_TENTIVE_SYNC,同步状态是CM_SYNC和CM_STABLE。
CM协议状态机对PCF帧(包括CS帧、CA帧、IN帧)的处理方式如下。
1)当CM在状态CM_UNSYNC、CM_WAIT_4_CYCLE_START、CM_TENTIVE_SYNC时,转发所有的CS帧,在其他的状态丢弃CS帧;
2)当接收到CA帧时,集中处理后转发;
3)当接收IN帧时,集中处理后转发。
在本实施例中,如图4所示中的序号1到17表示17个状态机的判断条件,其中:
①表示:收到IN帧,且cm_integrate_to_sync_thrld>local_sync_membership>=cm_integrate_to_wait_thrld;
②表示:local_timer超时;
③表示:收到IN帧,且local_sync_membership>=cm_integrate_to_sync_thrld;
④表示:下一整合周期内接到了IN帧,local_membership_new>=cm_wait_threshold_sync,但IN帧不在调度估算范围内或者IN中的pcf_integration_cycle不等于local_integration_cycle;
⑤表示:下一个整合周期能在调度估算范围内接收到IN帧,且local_sync_membership>0;
⑥表示:下一个整合周期内没有接收到IN帧;
⑦表示:在cm_sync_eval_pit,进行同步检测,cm_tentative_to_sync_thrld>local_sync_membership>=cm_tentative_sync_thres hold_sync;
⑧表示:在cm_sync_eval_pit,进行同步检测时,local_sync_membership>=cm_tentative_to_sync_thrld;
⑨表示:在cm_async_eval_pit,进行异步检测时local_async_membership>=cm_tentative_sync_threshold_async;或者在cm_sync_eval_pit,进行异步检测local_sync_membership<cm_tentative_sync_threshold_sync;
⑩表示:在cm_sync_eval_pit,进行同步检测时,local_sync_membership<cm_sync_threshold_sync;
表示:在cm_sync_eval_pit,进行同步检测时,local_sync_membership>=cm_sync_threshold_sync且stable_cyle_ctr<num_stable_cycles且cm_sync_to_stable_enabled;
表示:在cm_sync_eval_pit,进行同步检测时,local_sync_membership>=cm_sync_threshold_sync且stable_cyle_ctr>=num_stable_cycles且cm_sync_to_stable_enabled;
在cm_sync_eval_pit,进行同步检测时,local_sync_membership<cm_stable_threshold_sync且cm_sync_threshold_sync<cm_stable_threshold_sync且stable_cyle_ctr<num_stable_cycles或者在cm_sync_eval_pit,进行同步检测时,local_sync_membership>=cm_stable_threshold_sync;cm_sync_threshold_sync>=cm_stable_threshold_sync;
表示:在cm_async_eval_pit,进行异步检测时Local_async_membership>=cm_stable_threshold_async或者在cm_sync_eval_pit,进行同步检测时,local_sync_membership cm_stable_threshold_sync且cm_sync_threshold_sync<cm_stable_threshold_sync且stable_cyle_ctr>=num_stable_cycles
PCF帧处理模块用于对多个CA帧以及多个IN帧进行保序处理后,对保序处理后的多个CA帧以及保序处理后的多个IN帧进行集中处理后再进行选优处理,获得最优CA帧、最优IN帧以及最优IN帧的集中点;PCF处理模块还用于将最优CA帧、最优IN帧发送给PCF帧发送模块;
PCF帧处理模块还用于获得预接收点,根据最优IN帧的集中点与预接收点之间的差值,获得误差值;
在本实施例中,PCF帧处理模块用于对CA帧以及IN帧进行处理,进入PCF处理模块的PCF帧具有多个,因此有多个CA帧以及多个IN帧,由于数据帧在传输的过程中可能会出现乱序,因此PCF帧处理模块的一个主要功能就是多个CA帧以及多个IN帧根据其原本的发送顺序进行重新排序。
可选地,PCF帧处理模块包括保序处理模块、集中处理模块以及选优模块;
保序处理模块用于对多个CA帧按照每个CA帧对应的保序点时间先后顺序进行排序,获得保序处理后的多个CA帧;
保序处理模块用于对多个IN帧按照每个IN帧对应的保序点时间先后顺序进行排序,获得保序处理后的多个IN帧;
在本实施例中,保序处理模块根据配置寄存器信息计算出预接收点cm_scheduled_pit,再根据实际帧的接收点cm_receive_pit与PCF帧携带的透明时钟,计算出保序点cm_permanence_pit,使得网络由于自身原因而失序的各个PCF帧,恢复其原始的发送时间顺序,即保证PCF帧的接收顺序与其发送顺序相同。
集中处理模块用于采用集中算法对保序处理后的多个CA帧进行处理,获得一个CA帧集中点以及一个CA帧成员关系值;
集中处理模块还用于采用集中算法对保序处理后的多个IN帧进行处理,获得一个IN帧集中点以及一个IN帧成员关系值;
集中处理模块还用于根据一个CA帧集中点以及一个CA帧成员关系值,生成一个新的CA帧;
集中处理模块还用于根据一个IN帧集中点以及一个IN帧成员关系值,生成一个新的IN帧;
在本实施例中,集中处理模块的主要作用是将多个同步器上的数据帧进行集中,得到一个集中后的数据帧。
当整个系统状态为未同步、参与到冷启动或临时同步时,假设由数据接收控制模块接收到了5路数据帧,这5路数据帧中包括了5路PCF数据帧,每路PCF数据帧都包括了三种帧,分别是CS帧、CA帧以及IN帧,在本实施例中每路PCF帧均包括一个CS帧、一个CA帧以及一个IN帧,即一共有5个CA帧以及5个IN帧,其中每个CA帧都对应有一个CA帧保序点以及一个CA帧成员关系值,每个IN帧都对应有一个IN帧保序点以及一个IN帧成员关系值,那么对于CA帧来说一共有5个CA帧保序点以及5个CA帧成员关系值,对于IN帧来说一共有5个IN帧保序点以及5个IN帧成员关系值,在集中处理模块中,对5个CA帧保序点进行集中处理,获得一个CA帧集中点,对5个CA帧成员关系值进行按位或处理,获得一个CA帧成员关系值;同样地,将5个IN帧保序点集中为一个IN帧集中点以及将5个IN帧成员关系值集中为一个IN帧成员关系值。
当整个系统的状态为初始状态、同步以或稳定同步时,此时同步器发送的PCF数据帧中只包括IN帧,仅需要对IN帧进行保序、集中处理即可。
在本实施例中,集中处理模块在集中器上的保序时刻cm_permanence_pit,启动集中算法(Compression Algorithm)。集中算法的作用是根据CM接收到的属于相同整合周期(integration cycle)的所有PCF帧中的permanence_pit值,计算cm_compressed_pit(集中点)值,同时根据所有PCF帧的membership整合成新的membership,生成新的PCF,为后续择优做准备。
选优模块用于从至少一个新的IN帧中选取出一个最优IN帧,最优IN帧的成员关系值最大且集中点与预接收点之间的偏差最小;
选优模块还用于获得最优IN帧的集中点以及预接收点,根据最优IN帧的集中点与预接收点之间的差值,获得误差值。
在本实施例中,选优模块检测计算出的集中点是否落在预接收范围内,落在预接收范围内才是有效的集中PCF帧。当收到多个集中PCF帧时,根据择优算法(即membership最大的前提下,集中点最大),选择出一个最优的集中PCF帧,该帧集中点cm_compressed_pit与预接收点cm_scheduled_pit的差值,即为误差值(clock_corr),将该值送入CM状态机模块,该模块还负责处理同步集群检测和异步集群检测。
状态机模块还用于判断当进入同步状态时,控制时钟修正模块开始进行修正处理;
时钟修正模块用于当本地时钟计数到达预设的时钟修正点时,利用误差值进行本地时钟修正处理,获得修正后的本地时钟;
在本实施例中,CM状态机主要判读CS、CA、IN帧及同步集群检测和异步集群检测结果,并根据不同状态进行应对处理。根据保序集中结果,当本地时钟计数到达cm_clock_corr_pit时,根据误差值(clock_corr)修正本地时钟local_clock,完成时钟修正过程。
非PCF帧发送模块用于根据路由目的地址将TT帧、BE帧发送至相应的数据发送控制模块中;
PCF帧发送模块用于在发送时间点根据当前时刻以及每个数据帧的透明时钟字段,修正CS帧、保序后的CA帧以及最优IN帧的透明时钟字段,获得修正后的CS帧、修正后的CA帧以及修正后的IN帧后,依次将修正后的CS帧、修正后的CA帧以及修正后的IN帧在各自的发送时间点根据路由目的地址发送至相应的数据发送控制模块中;
在本实施例中,发送新的PCF时,延时到统一的派遣时刻点cm_dispatch_pit,再启动发送CS帧、CA帧、IN帧。在PCF帧发送点,根据当前时刻和透明时钟计算动态延时,修正IN、CS、CA帧的透明时钟,并在统一时刻点cm_send_pit发送。
数据发送控制模块用于将TT帧、BE帧、修正后的CS帧、修正后的CA帧以及修正后的IN帧进行编码后输出。
在本实施例中,SFP发送控制模块,将送到此模块的数据根据编码格式重新编码,发送给各个同步控制器SM。
本发明提供的时钟同步控制器经过多次试验证明,同步精度可以达到100ns以内,单次调节的步进可以达到8ns,具有较高的实时性与可靠性,可以应用在航空、航天、高铁等对安全性和实时性要求高的产品研制中。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
Claims (3)
1.一种基于FPGA的分布式系统时钟同步集中器,其特征在于,采用FPGA芯片实现,所述的时钟同步集中器包括多个数据接收控制模块、路由模块、状态机模块、PCF帧处理模块、时钟修正模块、PCF帧发送模块、非PCF帧发送模块以及多个数据发送控制模块;
所述的数据接收控制模块用于同时获取多路数据帧后,将多路数据帧分别加入本地时标,获得多路加入本地时标后的数据帧;对多路加入本地时标后的数据帧进行完整性检测后,对通过完整检测后的所有数据帧进行分类,获得多路PCF帧、多路TT帧以及多路BE帧;对每路PCF帧进行静态接收延迟修正,获得多路修正后的PCF帧;
所述的路由模块用于获得每路修正后的PCF帧、每路TT帧以及每路BE帧的路由目的地址;
所述的路由模块还用于将每路修正后的PCF帧以及对应的路由目的地址发送给PCF帧发送模块;所述的修正后的PCF帧包括CS帧、CA帧以及IN帧;
所述的路由模块还用于将所述的每路TT帧、每路BE帧以及对应的路由目的地址发送给非PCF帧发送模块;
所述的状态机模块用于当状态为未同步、参与到冷启动或临时同步时,控制所述的路由模块将每个CS帧以及每个CS帧的路由目的地址发送给PCF帧发送模块;当状态为初始状态、同步以或稳定同步时,控制所述的路由模块将所述的CS帧丢弃;
所述的PCF帧处理模块用于对多个CA帧以及多个IN帧进行保序处理后,对保序处理后的多个CA帧以及保序处理后的多个IN帧进行集中处理后再进行选优处理,获得最优CA帧、最优IN帧以及最优IN帧的集中点;PCF处理模块还用于将所述的最优CA帧、最优IN帧发送给PCF帧发送模块;
所述的PCF帧处理模块还用于获得预接收点,根据所述的最优IN帧的集中点与预接收点之间的差值,获得误差值;
所述的状态机模块还用于判断当进入同步状态时,控制时钟修正模块开始进行修正处理;
所述的时钟修正模块用于当本地时钟计数到达预设的时钟修正点时,利用所述的误差值进行本地时钟修正处理,获得修正后的本地时钟;
所述的非PCF帧发送模块用于根据所述的路由目的地址将所述的TT帧、BE帧发送至相应的数据发送控制模块中;
所述的PCF帧发送模块用于在发送时间点根据当前时刻以及每个数据帧的透明时钟字段,修正所述的CS帧、最优CA帧以及最优IN帧的透明时钟字段,获得修正后的CS帧、修正后的CA帧以及修正后的IN帧后,依次将修正后的CS帧、修正后的CA帧以及修正后的IN帧在各自的发送时间点根据路由目的地址发送至相应的数据发送控制模块中;
所述的数据发送控制模块用于将所述的TT帧、BE帧、修正后的CS帧、修正后的CA帧以及修正后的IN帧进行编码后输出。
2.如权利要求1所述的基于FPGA的分布式系统时钟同步集中器,其特征在于,所述的数据接收控制模块包括依次设置的SFP接收控制模块、本地时标记录模块、完整性检测模块以及透明时钟静态修正模块;
所述的SFP接收控制模块用于获取多路数据帧后进行解码,获得多路解码后的数据帧;
所述的SFP接收控制模块还用于接收到每路数据帧后,根据每路数据帧达到的时间点,获得每路数据帧对应的本地时标;
所述的本地时标记录模块用于在每路所述的解码后的数据帧中加入对应的本地时标,获得多路加入本地时标后的数据帧;
所述的本地时标记录模块还用于对每路本地时标后的数据帧进行CRC校验,获得CRC校验结果;
所述的完整性检测模块用于检测每路所述的本地时标后的数据帧中的PCF帧的PCF_VLID字段和CTMarker字段是否在设定范围内,获得完整性检测结果,所述的完整性检测结果包括在设定范围内以及不在设定范围内,当完整性检测结果为不在设定范围内则丢弃所述的本地时标后的数据帧;
所述的透明时钟静态修正模块用于根据所述的CRC校验结果以及,对通过完整检测后的所有数据帧进行分类,获得多路PCF帧、多路TT帧以及多路BE帧;
所述的透明时钟静态修正模块还用于根据每路PCF帧的透明时钟字段对每路PCF帧进行静态接收延迟修正,获得多路修正后的PCF帧。
3.如权利要求2所述的基于FPGA的分布式系统时钟同步集中器,其特征在于,所述的PCF帧处理模块包括保序处理模块、集中处理模块以及选优模块;
所述的保序处理模块用于对所述的多个CA帧按照每个CA帧对应的保序点时间先后顺序进行排序,获得保序处理后的多个CA帧;
所述的保序处理模块用于对所述的多个IN帧按照每个IN帧对应的保序点时间先后顺序进行排序,获得保序处理后的多个IN帧;
所述的集中处理模块用于采用集中算法对所述的保序处理后的多个CA帧进行处理,获得一个CA帧集中点以及一个CA帧成员关系值;
所述的集中处理模块还用于采用集中算法对所述的保序处理后的多个IN帧进行处理,获得一个IN帧集中点以及一个IN帧成员关系值;
所述的集中处理模块还用于根据一个CA帧集中点以及一个CA帧成员关系值,生成一个新的CA帧;
所述的集中处理模块还用于根据一个IN帧集中点以及一个IN帧成员关系值,生成一个新的IN帧;
所述的选优模块用于当获得多个新的CA帧时,从多个新的CA帧中选取出一个最优CA帧,所述的最优CA帧的成员关系值最大且集中点与所述的预接收点之间的偏差最小;
所述的选优模块还用于当获得多个新的IN帧时,从多个新的IN帧中选取出一个最优IN帧,所述的最优IN帧的成员关系值最大且集中点与所述的预接收点之间的偏差最小;
所述的选优模块还用于将所述的一个最优CA帧以及一个最优IN 帧发送至PCF帧发送模块中;
所述的选优模块还用于获得最优IN帧的集中点以及预接收点,根据所述的最优IN帧的集中点与预接收点之间的差值,获得误差值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911317240.3A CN111147178B (zh) | 2019-12-19 | 2019-12-19 | 一种基于fpga的分布式系统时钟同步集中器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911317240.3A CN111147178B (zh) | 2019-12-19 | 2019-12-19 | 一种基于fpga的分布式系统时钟同步集中器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111147178A CN111147178A (zh) | 2020-05-12 |
CN111147178B true CN111147178B (zh) | 2021-08-20 |
Family
ID=70518921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911317240.3A Active CN111147178B (zh) | 2019-12-19 | 2019-12-19 | 一种基于fpga的分布式系统时钟同步集中器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111147178B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115150016B (zh) * | 2022-06-24 | 2023-07-28 | 中国电子科技集团公司第五十八研究所 | 一种时间同步主控制器电路的工作方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106936756A (zh) * | 2015-12-31 | 2017-07-07 | 中兴通讯股份有限公司 | 同步信号的传输方法、装置及系统 |
CN107147465A (zh) * | 2017-06-30 | 2017-09-08 | 西安微电子技术研究所 | 一种面向时间触发网络的交换机时钟同步控制器及控制方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7587203B2 (en) * | 2005-10-20 | 2009-09-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Forward link admission control for high-speed data networks |
-
2019
- 2019-12-19 CN CN201911317240.3A patent/CN111147178B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106936756A (zh) * | 2015-12-31 | 2017-07-07 | 中兴通讯股份有限公司 | 同步信号的传输方法、装置及系统 |
CN107147465A (zh) * | 2017-06-30 | 2017-09-08 | 西安微电子技术研究所 | 一种面向时间触发网络的交换机时钟同步控制器及控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111147178A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111800213B (zh) | 面向高速tte级联网络1588同步方法、系统、装置 | |
US8068429B2 (en) | Transmit scheduling | |
WO2022100411A1 (zh) | 一种tsn网络转发时间特性的测量方法及终端 | |
KR101298640B1 (ko) | 전송 스트림 패킷을 전송하는 방법 및 장치 | |
US8320373B2 (en) | Packet-based processing system | |
US10149025B2 (en) | Optical packet sending method and device, optical packet processing method, and optical switching device | |
CN111565073A (zh) | 一种基于5g通信的无线光差同步方法及系统 | |
CA2833465A1 (en) | Synchronization control system | |
US20220350773A1 (en) | Low complexity ethernet node (len) one port | |
CN111200473B (zh) | 一种基于fpga的分布式系统时钟同步控制器 | |
WO2015131626A1 (zh) | 用于网络设备的时间同步方法、装置及时间同步服务器 | |
CN111147178B (zh) | 一种基于fpga的分布式系统时钟同步集中器 | |
US8848739B2 (en) | Efficient switch fabric bandwidth distribution | |
WO2023098367A1 (zh) | 网桥端到端的确定性转发方法、网桥发送端及接收端 | |
CN113014586A (zh) | Rtp数据包乱序处理及重组帧方法和系统 | |
CN112751788A (zh) | 一种支持多类型帧混合传输的双平面交换方法 | |
CN113452804B (zh) | 基于vhdl语言实现arp和udp协议数据通信的星载通信装置 | |
CN112688812B (zh) | 应用于电力数据传输的可靠性感知时间敏感网络路由方法 | |
WO2013097754A1 (zh) | 一种空口数据同步处理的方法和装置 | |
CN113014515B (zh) | 一种支持异构网络时间同步时延补偿的方法和交换机 | |
CN114095901A (zh) | 通信数据处理方法及装置 | |
CN114553356A (zh) | 一种透传时钟在无线hub中的实现装置和方法 | |
JP2006262474A (ja) | レジデンシャルイーサネット(登録商標)システムにおける等時性データと非同期データを伝送するためのスーパーフレームの構成方法 | |
CN117014967A (zh) | 移动通信系统、方法和用户面节点 | |
CN104735824B (zh) | 数据处理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A Clock Synchronization Concentrator for Distributed System Based on FPGA Effective date of registration: 20221207 Granted publication date: 20210820 Pledgee: Xi'an Caijin Financing Guarantee Co.,Ltd. Pledgor: XI'AN YUNWEI ZHILIAN TECHNOLOGY Co.,Ltd. Registration number: Y2022610000797 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |