基于fpga的分布式网络时钟同步系统及方法

文档序号:7688895阅读:154来源:国知局
专利名称:基于fpga的分布式网络时钟同步系统及方法
技术领域
本发明涉及计算机控制技术,尤其涉及分布式网络同步技术。
技术背景随着计算机网络的发展,分布式系统的范围扩大且更加分散,通过网络联系的分散控 制节点之间的实时性变得越来越重要。影响分布式系统实时性的主要根源在于各个测控设 备之间的时钟差异和测控数据在网络中的传输延迟及抖动。这些问题是分布式系统所固有 的,解决这些问题的关键就是时间同步,时间词步的目的就是要将时间基准点准确地传递 到网络各控制点。目前国内外流行的同步方法有简单时间同步协议SNTP 、网络化测量 和控制系统的精确时钟同步协议IEEE1588标准等。1、 简单时间同歩协议SNTP,能用单播方式(点对点)和广播方式(点对多点)操作, 也能在IP多播方式下操作。但SNTP的时间精度依赖于客户端和服务端网络的情况,采用 这种同步方式在分布式系统中可以达到0.5 2ms的精度。在同步要求较高的试飞系统、工 业采集与控制的情况下,该同步的精度远远不能达到要求。2、 IEEE1588标准,定义了一个适于在测量和自动化系统中使用的时钟同步协议,最 高可以实现微秒量级的超高精度的时钟同步,高于其他网络时间同步协议的精度。但是该 标准对网络的要求也相当高,适合于只有以太网的工作环境。而且当有新的单元加入到网 络中或网络环境变化时,网络需要重新同步,完成同步的时间长。在2单元的系统中,完 成一次同步需要10次线路延迟,而且随着同步单元的增加,完成同步的时间将成倍地增加。随着计算机和电子技术的发展,FPGA技术得到了广泛的应用且已经相当成熟,FPGA 还增加了高速I/0、嵌入式内存、专用锁相环(PLL)、以^:嵌入式处理器,目前还存在着 大量以IP核呈现的预设计电路模块。其次片上可编程系统SOPC (System On a Programmable Chip,)是现代电子技术和电 子系统设计的汇聚点和发展方向。SOPC综合了SOC和PLD、 FPGA各自的优点,集成了硬核或 软核CPU、 OSP、存储器、外围I/0及可编程逻辑,用户可以利用SOPC平台自行设计高速、 高性能的DSP处理器或特定功能的CPU处理器,从而使电子系统设计进入一个全新的模式。采用FPGA技术实现分布式网络时钟同步,能满足遵循不同协议网络间的时钟同步,同 歩精度高,同步单元的增加不会大幅增加同步的时间。提高了网络工作效率。 发明内容本发明所要解决的技术问题是,针对现有技术中存在的分布式网络时钟同步系统对网 络环境要求高,同歩时间长的缺陷,设计一种基于FPGA的分布式网络时钟同步系统,以 实现网络快速进入同歩状态以及高精度的时钟同步。本发明解决上述技术问题的技术方案是,提出一种基于FPGA的分布式网络时钟同歩 系统,该分布式网络时钟同歩系统包括控制与处理部分、时钟同步部分、数据传输部分。所述控制与处理部分包括网络中心控制处理部分和各分布式单元控制处理部分,每个 分布式单元控制处理部分都是以FPGA为核心的单元,FPGA中内嵌有1个微处理器,控制 网络中各分布式单元实现实时同步,定时把数据发送到分布式网络中或者接收其它分布式 单元发送的数据。网络中心控制处理部分由主控计算机和监控计算机实施控制处理,包括计算机侦测部 分、计算机配置部分和数据包检测部分。计算机侦测部分主控计算机发送侦测数据,侦测网络中有多少分布式单元;计算机 配置部分主控计算机发送配置数据,配置各分布式单元功能,定义包括工作周期、数据 产生时刻、数据产生频率和数据发送时刻等;数据包检测部分当系统进入实时工作(开 始进行数据传输)后,主控和监控计算机完成对数据包的监测。所述时钟同步部分包括1个主分布式单元MASTER和多个从分布式单元SLAVER,由其 实时控制模块实现主、从分布式单元之间的同步。从分布式单元实时控制模块根据其接收、 发送报文的时间间隔和从分布式单元单元号,计算各从分布式单元的网络线路延迟Delay, 根据各从分布式单元的网络线路延迟确定MASTER单元和SLAVER单元的时钟归零时刻,使 MASTER单元和各个SLAVER单元在同一时刻时钟归零。这样,多个终端可以同时进行同步,所以这是一种更加适合多终端同步周期比较频繁 的分布式系统的网络时钟同步方式。所述数据传输部分采用以太网传输方式,非同步模式下传输侦测、配置数据、同步发 起报文等,同步模式下传输各分布式单元实时数据。本发明还提出一种基于FPGA的分布式网络时钟同步方法,主分布式单元向网络发送 同歩发起报文;各从分布式单元返回包含其单元号、发送与收到数据包之间的处理时间的 同歩响应报文;主分布式单元根据时间间隔和处理时间,计算各从分布式单元的网络线路 延迟;再根据线路延迟通知从分布式单元同步开始时刻。该方法包括如下歩骤1、 MASTER单元向SLAVER单元发送同步发起报文;2、 SLAVER单元收到MASTER单元的报文,返回一个同歩响应报文,此报文带有MASTER 单元单元号和报文处理时间(从收到报文到返回报文之间的时间);3、 MASTER单元收到同步响应报文后,根据发送报文和收到报文的时刻计算线路延迟;4、 MASTER单元根据线路延迟向SLAVER单元发送同步开始包;5、 MASTER单元和所有SLAVER单元同时时钟归零。本分布式网络时钟同步系统采用基于FPGA的分布式网络时钟,实现了该分布式系统 在网络中的高精度同歩,能够满足试飞系统、高精度工业采集与控制等分布式实时数据采 集与控制的需要,并且在初始同步或网络环境发生变化需要重新同步时,能够实现快速进 入同歩状态。本系统只要各单元数据发送时刻不冲突,系统能够很准确地将各时刻采集的 数据送到指定的位置,而且传输可靠、抗干扰能力强,稳定性好,实时性及兼容性强。经 实际应用表明,该系统时钟同步、数据采集及处理由FPGA实现,不但能实现微秒级的时 间同歩,而且使分布式系统的初始同步所需的时间大大减小。工作稳定、可靠;数据通信 能够实时完成。 '


附图l:分布式系统构架 附图2:各分布式单元体系结构 附图3: 2单元同歩工作原理图 附图4:多单元同步工作原理图 附图5: MASTER单元处理流程图 附图6: SLAVER单元处理流程图 具体实施方案本发明提出一种基于FPGA的分布式网络时钟同步系统,该分布式网络时钟同步系统 包括控制与处理部分、时钟同步部分、数据传输部分。控制与处理部分包括网络中心控制处理部分和各分布式单元控制处理部分,每个分布 式单元控制处理部分都是以FPGA为核心的单元,FPGA中内嵌有1个微处理器,控制网络 中各分布式单元实现实时同步,定时把数据发送到分布式网络中或者接收其它分布式单元 发送的数据。网络中心控制处理部分由主控计算机和监控计算机实施控制处理,包括计算 机侦测部分、计算机配置部分和数据包检测部分。计算机侦测部分主控计算机发送侦测 数据,侦测网络中有多少分布式单元;计算机配置部分主控计算机发送配置数据,配置 各分布式单元功能,定义包括工作周期、数据产生时刻、数据产生频率和数据发送时刻等数据包检测部分当系统进入实时工作,开始进行数据传输后,主控和监控计算机完成对 数据包的监测。时钟同歩部分包括1个主分布式单元MSTER和多个从分布式单元SLAVER, 网络时钟同歩采用类似IEEE1588标准的方式,但根据其初始同歩速度慢的缺点,用各分 布式单元的时钟同时归零来取代在IEEE1588标准中的对时钟偏移的调整,这样,多个终端可以同时进行同歩,所以这是一种更加适合多终端同步周期比较频繁 的分布式系统的网络时钟同步方式。以下针对附图和具体实例对本发明的实施作具体描述。如图l所示为本发明所述分布式网络时钟同步系统结构框图。该系统包括一个主分布 式单元MASTER和多个(如n个)从分布式单元SLAVER,各个单元之间分别通过集线器HUB 连接到网络中心控制处理部分的主控和监控计算机,每个分布式单元(包括MASTER和 SLAVER单元)都包括网络接口和FPGA板,以FPGA为核心的分布式单元控制处理部分各自 通过网络接口连接HUB。MASTER单元和SLAVER单元的功能除了时钟同步部分不同外,其它功能和结构都相同。 MASTER单元为时钟同步发起者,SLAVER单元跟随MASTER单元的时钟。网络中心控制处理部分由主控计算机和监控计算机实现控制处理,完成包括计算机侦 测部分、计算机配置部分和数据包检测部分功能。主控计算机负责发送侦测数据、同步命 令(即退出控制状态)或发送各个单元的配置包,侦测网络中有多少分布式单元;配置各 分布式单元功能,定义包括工作周期、数据产生时刻、数据产生频率和数据发送时刻等; 当系统进入实时工作(开始进行数据传输)后,主控和监控计算机通过数据包检测部分对 数据包实时监测。如图2所示为各分布式单元体系结构。每个分布式单元控制处理部分都是以FPGA为 核心的单元,FPGA板中嵌有SOPC软核处理器。设置有系统配置、功能配置、传输控制、 实时控制、UDP以及采集与输出等模块。控制网络中各分布式单元实现实时同步,定时把 数据发送到分布式网络中或者接收其它分布式单元发送的数据。其中系统配置模块、功能配置模块和传输控制模块都属于应用层模块,它们与采集与 输出模块都是由FPGA实现。实时控制模块、UDP模块由FPGA中的S0PC系统实现。主控计 算机发送系统配置信息和功能配置信息,分布式单元接收到上述系统配置信息后将其存入 分布式单元的FLASH中,分布式单元系统配置模块根据系统配置信息初始化系统工作状态, 系统配置信息包括系统同歩周期、数据发送周期、数据发送长度、数据接收缓存地址、数 据发送时刻;功能配置模块根据功能配置信息确定每个同步周期初始采集时刻、数据采集速率、数据采集通道数、数据采集存储地址、数据输出缓存地址等信息。当系统上电进入 初始化或者FLASH中存储的系统配置和功能配置信息改变时,FPGA主动通过读写FLASH改变系统功能。传输控制模块包括站内传输控制模块和站间传输控制模块,站内传输控制模块在实时 状态下将采集模块采集的数据存储在存储器SRAM中,或者将SRAM中的数据送到输出模块 的缓存地址中。站间传输控制模块在实时状态下将此刻存储到SRAM中的实时数据组合成UDP包格式等待发送。实时控制模块根据从单元接收到同步发起报文Sync到发送同步响应报文 Sync—Responce的时间间隔Adjust和SLAVER单元单元号,计算各SLAVER单元的网络线路 延迟Delay,根据各从分布式单元的网络线路延迟确定MASTER单元和SLAVER单元的时钟 归零时刻,实现主、从分布式单元之间的同步。UDP模块通过传输UDP包来实现实时数据的传输,数据传输由SOPC软核处理器通过 控制命令实现。其收发函数分别为发送报文TransmitPacket和接收报文ReceivePacket。以下分别以2单元和多单元的系统为例,对本发明分布式网络时钟同步系统的同步控 制过程进行具体描述。如图3所示为2单元的分布式系统同步过程示意图。该同步过程定义了 3个同步报文 同步发起报文Sync、同步响应报文Sync—Responce和同步开始报文Sync_Start。系统时 钟由分布式单元的晶振计数产生,如可选择系统晶振频率为32M。同步流程如下首先MASTER单元传输控制模块控制输出模块向SLAVER单元发送Sync报文,SLAVER 单元数据采集模块收到Sync报文后,传输控制模块控制输出模块向MASTER单元反馈一个 包含SLAVER单元从接收到Sync报文到发送Sync—Responce报文的时间间隔Adjust和 SLAVER单元单元号的Sync—Responce报文,当MASTER单元收到Sync_Responce报文后, 确定MASTER单元发送Sync报文与收到Sync_Responce报文的时间Tral、 Tm2, MASTER单 元实时控制模块根据时间间隔Adjust和发送Sync报文与收到Sync—Responce报文的时间 Tml、 Tm2,调用公式Dela"(Tm2-Tml-Adjust)/2计算网络的线路延迟Delay。然后Tm3时刻MASTER单元的传输控制模块控制其输出模块向SLAVER单元发送Sync_Start报文,并 延迟Delay个时钟后,Ts3时刻实时控制模块控制MASTER单元时钟归零,同时SLAVER单 元收到Sync一Start报文后,时钟也归零,时钟控制单元从0开始计时。这样MASTER单元 和SLAVER单元在同一时刻归零,实现了时钟的同步。采用该方法仅通过3次线路传输就完成了2单元分布式网络的主从单元的时钟同步。所以当分布式系统环境变化时,需要重新同歩的时间很短,能满足系统的需要。 如图4为多单元的分布式系统同歩过程示意图。当分布式系统为多单元(n个)时,MASTER单元传输控制模块控制输出模块在预定发 送间隔时间先后向系统中所有的SLAVER单元发送Sync报文,并分别记录发送时刻,各个 SLAVER单元通过数据采集模块收到Sync报文后,传输控制模块控制输出模块向MASTER单 元反馈一个Sync—Responce报文,该Sync—Responce报文中包含SLAVER单元从接收到Sync 报文到发送Sync_Responce报文的时间间隔Adjust和SLAVER单元单元号。当MASTER单 元数据采集模块收到SynC_ReSp0nce报文后,根据上面的线路延迟计算公式 DelayKTm2-Tml-Adjust)/2计算各个SLAVER单元的线路延迟Delay。再根据各个SLAVER单元的线路延迟,确定向各个SLAVER单元发送Sync_Start报文的时刻Tm4-Tmk,然后 MASTER单元的传输控制模块控制其输出模块向各个SLAVER单元发送Sync—Start报文,根 据每个SLAVER单元的线路延迟时间确定各个SLAVER单元收到报文的时刻,当达到第n个 SLAVER单元的线路延迟时实时控制模块控制MASTER单元时钟归零,同时SLAVER单元已收 到Sync—Start报文,时钟也归零。使MASTER单元和各个SLAVER单元在同一时刻时钟归令。当分布式单元增多的时候,可能引起MASTER单元发送和接收的冲突,所以可以分批 对SLAVER单元与MASTER单元实行同步。经测试,系统中一次线路延迟大概为100000个 时钟左右,所以可将一次同步的SLAVER单元限定在预定个数以内。主控计算机发送侦测 数据,侦测网络中有多少分布式单元,当主控计算机侦测到网络中SLAVER单元超过预定 个数时,MASTER单元根据接收到各个SLAVER单元的Sync—Responce报文时刻,及其所包 含的信息,先计算出前预定个SLAVER单元的线路延迟,再计算出其它SLAVER单元的线路 .延迟,实时控制模块根据网络中所有SLAVER单元的线路延迟,发送控制命令使系统中所 有分布式单元时钟同时归零。由于时钟品振的偏差,当系统运行一定时间后,系统需要重新同步一次。图中示出了 系统时钟需归零的各种时刻。如TsnbO表示从单元n第k次时钟归为O。如图5所示为MASTER单元处理流程图,分布式系统包括同步状态和非同步状态两种状态。在非同歩状态下,系统上电后,MASTER单元读取FLASH中的配置信息,初始化系统配 置和功能配置。然后MASTER单元广播hello包,检测网络上是否有主控计算机,如果没有 检测到主控计算机或者等待预定时间未收到反馈信息,系统直接进入实时状态,进行实时数据传输;当MASTER单元收到主控计算机返回的response包,进入MASTER控制状态。MASTER 在控制状态下,主控计算机对网络进行侦测、系统配置和功能配置等工作。侦测主控计算机向网络广播UnitGet包对网络中的分布式单元进行侦测,在线的分 布式单元都会向主控计算机返回一个Unitlnform包;主控计算机根据接收到的Unitlnform 包确定网络中有多少分布式单元。系统配置主控计算机向MASTER单元发送系统配置SysConfig包,根据系统配置数 据确定SysConfig包,包括系统同歩周期、数据发送周期、数据发送长度、数据接收缓存 地址、数据发送时刻。MASTER单元收到SysConfig包后,将配置数据写入其FLASH中,根据系统配置信息初 始化系统各工作状态,包括系统同步周期、数据发送周期、数据发送长度、数据接收缓存 地址、数据发送时刻;功能配置主控计算机向MASTER单元发送FunConfig包,MASTER 单元收到FunConfig包后,将配置数据写入FLASH中,根据功能配置信息确定网络中各分 布式单元每个同步周期初始采集时刻、数据采集速率、数据采集通道数、数据采集存储地 址、数据输出缓存地址等信息。当系统完成侦测、配置后,主控计算机发送QuitCongfig包,MASTER单元收到主控计 算机发出的QuitCongfig包,退出控制状态,实时启动,.系统进入如图4所示的同步控制 过程。当系统完成同歩后,根据控制状态中主控计算机发来的系统配置配置信息和功能配 置信息实现网络中数据的传输;如果MASTER单元没有检测到主控计算机,系统直接进入实时数据传输状态,系统实 现同步后,根据FLASH中已经存入的系统配置和功能配置来实现数据传输。实时数据传输 状态下,系统根据同步周期、数据发送周期、数据发送长度、数据接收缓存地址、数据发 送时刻、每个同步周期初始采集时刻、数据釆集速率、数据采集通道数、数据采集存储地 址和数据输出缓存地址进行实时数据传输。在实时数据传输阶段,由每个分布式单元的每个同步周期初始采集时刻和采集速率一 样,使每个分布式单元的数据采集时刻都一样。这样,某个分布式单元在一个数据发送周 期内收到的其它分布式单元的采集数据都是同一时刻产生,可以对各分布式单元采集的数 据进行处理。如图6所示为SLAVER单元处理流程图。当系统处于非同步状态下,系统初始化后, 直接进入SLAVER控制状态,如SLAVER单元没有接收到MASTER单元发送的Sync包, SLAVER单元一直处于SLAVER控制状态,此时,主控计算机可以对SLAVER单元进行侦测、10系统配置和功能配置等工作,工作处理过程与MASTER单元一样。当MASTER单元向SLAVER 单元发送Sync包后,SLAVER单元跟随MASTER单元进入同歩状态(如图4所述)。同步后, 数据传输根据控制状态时计算机配置实时状态功能来实现如果控制状态没有系统配置和 功能配置,数据传输根据FLASH中的系统配置和功能配置来实现。实时数据传输状态下, 系统根据同歩周期、数据发送周期、数据发送长度、数据接收缓存地址、数据发送时刻、 数据采集速率、数据采集通道数、数据采集存储地址和数据输出缓存地址进行实时数据传 输。根据系统配置对系统中各种报文的格式进行定义。以下对几种报文的格式进行举例说明。 网络UDP包定义(44332211为区别于其它系统的特设的数据包字段) hello包UDP包头+44332211+90 response包UDP包头+44332211+91 UnitGet包:UDP包头+44332211+99Unitlnform包:UDP包头+44332211+9a+单元号(可设MASTER单元为00, SLAVER单元为 01-ff,每个SLAVER单元单元号必须是唯一的)SysConfig包UDP包头+44332211+01+单元号(同Unitlnform包)+FLASH地址(2个字 节)+配置数据(系统同步周期+数据发送周期+数据发送长度+数据发送时刻+数据接收缓 存地址)+ffffffff(配置数据结束标志)FunConfig包UDP包头+44332211+01+单元号(同Unitlnform包)+FLASH地址(2个字节)+配置数据(数据采集速率+数据采集通道数+数据采集存储地址+数据输出缓存地址) +^!^^订(配置数据结束标志)Sync报文:UDP包头+44332211+70+单元号(同Unitlnform包)Sync_Responce报文:UDP包头+44332211+71+单元号(同Unitlnform包)十Delay (4个字 节)Sync—Start报文:UDP包头+44332211+72+单元号(同Unitlnform包)。
权利要求
1. 一种基于FPGA技术的分布式网络时间同步系统,包括控制与处理部分、时钟同步部分、数据传输部分,其特征在于,所述控制与处理部分包括网络中心控制处理部分和各分布式单元控制处理部分,各分布式单元控制处理部分以FPGA为核心,控制网络中各分布式单元实现实时同步,定时发送和接收数据;网络中心控制处理部分由主控计算机和监控计算机实施控制处理,主控计算机侦测网络中有多少分布式单元并根据系统配置信息和功能配置信息配置各分布式单元功能,主控计算机和监控计算机完成对数据包的监测;所述时钟同步部分包括1个主分布式单元MASTER和多个从分布式单元SLAVER,主分布式单元根据各从分布式单元的网络线路延迟确定主分布式单元和从分布式单元的时钟归零时刻,实现主、从分布式单元之间的同步;所述数据传输部分在非同步模式下传输侦测、配置数据及同步发起报文,同步模式下传输各分布式单元实时数据
2、 根据权利要求1所述的分布式网络时间同步系统,其特征在于,各从分布式单 元实时控制模块根据其接收和发送报文的处理时间,发送报文的时间间隔和从分布式单元 单元号,计算各从分布式单元的网络线路延迟Delay。
3、 根据权利要求1所述的分布式网络时间同步系统,其特征在于,系统配置信息 包括系统同步周期、数据发送周期、数据发送长度、数据接收缓存地址、数据发送时刻; 功能配置模块根据功能配置信息确定数据采集速率、数据采集通道数、数据采集存储地址、 数据输出缓存地址。
4、 根据权利要求1所述的分布式网络时间同步系统,其特征在于,FPGA中嵌有 SOPC软核处理器,设置有系统配置、功能配置、传输控制、实时控制、UDP以及采集与输 出模±央,其中系统配置模块、功能配置模块和传输控制模块由FPGA实现;实时控制模块、 UDP模块由FPGA中的S0PC实现。
5、 一种基于FPGA技术的分布式网络时间同步方法,其特征在于,从分布式单元 接收到主分布式单元发送的同步发起报文后,实时控制模块控制输出模块返回一个包含报 文处理时间间隔和从分布式单元单元号的同步响应报文,主分布式单元根据同步响应报文、发送同歩发起报文的时间Tml、收到同步响应报文的时间Tm2,计算各从分布式单元 的网络线路延迟,实时控制模块根据各从分布式单元的网络线路延迟确定主分布式单元和 从分布式单元的时钟归零时刻,实现主、从分布式单元之间的同歩。
6、 根据权利要求5所述的分布式网络时间同步方法,其特征在于,所述报文处理 时间间隔为从分布式单元从接收到同步发起报文到发送同步响应报文之间的时间间隔 Adjust,根据公式DdayKTm2-Tml-Adjust)/2计算从分布式单元网络线路延迟。
7、 根据权利要求5所述的分布式网络时间同步方法,其特征在于,当分布式单元 增多时,分批对从分布式单元与主分布式单元实行同步。
全文摘要
本发明请求保护一种基于现场可编程门阵列(FPGA)实现的小型分布式网络时钟同步系统,涉及分布式网络同步技术。它主要包括PC、HUB以及基于FPGA的分布式单元。每个分布式单元都带有通用网络接口,采用固定的同步周期时间方案来实现小型分布式网络的时钟同步,使系统能够达到微秒级的同步。本发明的同步方式采用类似IEEE1588标准的方式,根据该标准的高精度同步特性,改善其初始同步速度,实现一个初始同步速度快、高精度时钟同步的分布式系统。它根据提供分布式网络系统各个组成单元的同步时钟,作为系统的工作时钟的参照。这样,可以满足对实时要求性较高的分布式网络用于传输数据等。
文档编号H04J3/06GK101252404SQ20081006952
公开日2008年8月27日 申请日期2008年3月31日 优先权日2008年3月31日
发明者伟 何, 良 吴, 宋焱翼, 玲 张, 林英撑, 骥 王, 平 甘 申请人:重庆大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1