CN113381832B - 一种基于fpga平台的精确时间同步方法 - Google Patents
一种基于fpga平台的精确时间同步方法 Download PDFInfo
- Publication number
- CN113381832B CN113381832B CN202110645004.5A CN202110645004A CN113381832B CN 113381832 B CN113381832 B CN 113381832B CN 202110645004 A CN202110645004 A CN 202110645004A CN 113381832 B CN113381832 B CN 113381832B
- Authority
- CN
- China
- Prior art keywords
- module
- fpga
- message
- slave
- slave system
- 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
- H04J3/0658—Clock or time synchronisation among packet nodes
-
- 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/0682—Clock or time synchronisation in a network by delay compensation, e.g. by compensation of propagation delay or variations thereof, by ranging
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明公开了一种基于FPGA平台的精确时间同步系统及补偿方法,所述系统采用IEEE 1588v2(PTP)协议标准,实现FPGA平台协议栈的搭建,可适应主从系统的身份转换,既可作为主系统同步从系统,亦可作为从系统被主系统同步。通过周期性同步算法的实现,所述补偿方法可实现主从系统的时间偏差始终维持在一个相对狭窄的范围之内。
Description
技术领域
本发明属于通信技术领域,具体涉及一种基于FPGA平台的精确时间同步方法。
背景技术
当基于各种通信协议,信息在主系统和从系统之间传输时,由于信息延迟,主从系统之间会存在系统间的时间偏差。现如今,时间同步技术已运用到各行各业中,尤其在国防、金融、通信等领域至关重要,随着时代的发展,各行各业的市场竞争愈显激烈,而在时间同步技术的竞争中,精确和成本较低成为决胜的两大竞争力。
精确时间同步协议(PTP)最早被应用于自动控制领域,理论上,它可以达到亚微秒级的同步精度,这已经极大领先早期的网络时间同步协议了。在2008年发布了PTPv2协议,它在原有PTP协议的基础上新增了支持测量节点驻留时间和链路不对称等,在一些支持PTPv2的硬件转发节点上,更是达到了几十纳秒的同步精度,PTP协议的高精度性能使得其在很多行业都能迅速发展。
PTP协议中规定PTP报文的主要封装形式有三种,分别是:PTP over UDP overIPv4、PTP over UDPover IPv6和PTP over IEEE802.3/Ethernet。当下,PTP协议的实现一般采用纯软件方案或软硬件相结合的方案,这两种方法各有侧重点,纯软件方案成本较低但精度也较低,软硬件结合方案成本较高但精度也较高,它们的本质区别只在于时间戳的获取方式差异,但综合来说这两种方案的实现都需要复杂、冗余的系统结构和高昂的成本。
发明目的
本发明的目的是为了解决现有技术中所面临的难题,提供一种基于FPGA平台的精确时间系统同步方法,基于现有PTPv2协议,但摆脱了现有实现PTP协议技术系统复杂、成本太高的窘境,通过一个简单的基于FPGA平台的系统,成本较低地实现了主从系统之间的精确时间系统同步。鉴于现有技术的缺点,本发明采用纯硬件的方案,更适用于一些主从系统关系确定的应用场景,比如多通道远程同步触发数据采集、高精度工业流水线同步操作等。
发明内容
根据本发明的一个方面,提供了一种基于FPGA平台的精确时间同步系统,该信息同步传输系统基于IEEE802.3/Ethernet的PTP协议,包括主系统FPGA、从系统FPGA,其中,主系统FPGA依次双向连接主系统物理层芯片PHY、主系统RJ45接口;从系统FPGA依次双向连接从系统物理层芯片PHY、从系统RJ45接口;所述主系统RJ45接口与从系统RJ45接口相互连接双向交互数据;所述主系统FPGA包括主系统发送模块、主系统接收模块、主系统本地时钟模块、第一CRC校验模块、第二CRC校验模块;其中,所述主系统发送模块分别与第一CRC校验模块和主系统本地时钟模块连接,所述主系统接收模块分别与第二CRC校验模块和主系统本地时钟模块连接;
所述从系统FPGA包括从系统发送模块、从系统接收模块、从系统本地时钟模块、第三CRC校验模块、第四CRC校验模块以及偏移量计算和本地时钟补偿模块;所述从系统发送模块分别与第三CRC校验模块和从系统本地时钟模块连接,所述从系统接收模块分别与第四CRC校验模块和从系统本地时钟模块连接;所述从系统本地时钟模块与所述偏移量计算和本地时钟补偿模块连接。
优选地,所述主系统发送模块、从系统发送模块通过发送状态机发送数据,覆盖主从双系统逻辑处理;所述发送状态机的执行流程包括发送7个字节的前导码和1个字节的帧开始定界符、发送目的地址和源地址、发送类型值16’h88f7、发送PTP报文头、发送PTP报文数据、校验报文头和报文数据以生成校验码以及发送校验码。
更优选地,所述主系统发送模块周期性产生同步脉冲开启同步算法,依次发送sync报文和follow_up报文,收到delay_req报文后开始发送delay_resp报文;若在一定时间内未接受到delay_req报文,则同步周期内发生错误,发送状态机返回至Idle,等待下一次同步开始;所述从系统发送模块等待主系统发送的follow_up报文,接收到该报文后开始发送delay_req报文。
优选地,所述主系统接收模块、从系统接收模块通过接收状态机接收数据,覆盖主从双系统逻辑处理;所述接收状态机的执行流程包括接收7个字节的前导码和1个字节的帧开始定界符、接收目的地址和源地址、接收类型值16’h88f7、接收PTP报文头、接收PTP报文数据、接收校验码以及校验。
更优选地,所述主系统接收模块等待接收delay_req报文,在所述接收状态机的任何一个状态接收数据错误或未接受到数据均返回Idle;所述从系统接收模块依次接收到sync、follow_up以及delay_resp报文,在所述接收状态机的任何一个状态接受数据错误或未接受到数据均返回Idle。
优选地,所述主系统本地时钟模块、从系统本地时钟模块负责系统的输入提供和本地系统的计时。
优选地,所述第一CRC校验模块、第二CRC校验模块、第三CRC校验模块、第四CRC校验模块为相同型号,在发送报文时,以报文头和报文数据为校验对象生成32位CRC校验码;在接收报文时,以接收到的报文头、报文数据和32位校验码为校验对象,校验帧数据传输是否正常。
优选地,所述偏移量计算和本地时钟补偿模块用于实现系统的自我补偿,本地时钟补偿依照偏移量去调整本地时钟模块中的计时周期。
根据本发明的另一个方面,提供一种应用上述信息同步传输系统进行精确时间补偿的方法,包括以下步骤:
步骤1、主系统FPGA发送sync报文给从系统FPGA,并记录sync报文离开主系统的时间戳t0;从系统FPGA接收到来自主系统的sync报文,并记录sync报文到达从系统FPGA的时间戳t1;
步骤2、主系统FPGA发送携带时间戳t0的follow_up报文给从系统FPGA,从系统FPGA收到follow_up报文并获取了时间戳t0;
步骤3、从系统FPGA发送delay_req报文给主系统FPGA,并记录delay_req报文离开从系统FPGA的时间戳t2;主系统FPGA收到来自从系统FPGA的delay_req报文,并记录delay_req报文到达主系统FPGA的时间戳t3;
步骤4、主系统FPGA发送携带时间戳t3的delay_resp报文给从系统FPGA,从系统FPGA收到该报文并获取了时间戳t3;
t0、t1、t2以及t3满足如式(1)、式(2)的关系:
t1-t0=Delay+Offset (1),
t3–t2=Delay–Offset (2),
其中,Delay表示主从系统之间的时间偏移量,Offset表示时间补偿量;
从系统FPGA的偏移量计算和本地时钟补偿模块根据式(1)、(2)计算出从系统FPGA相对主系统FPGA的时间偏移量,通过本地时钟补偿依照偏移量去调整从系统本地时钟模块中的计时周期。
附图说明
图1为本发明所述基于FPGA平台的信息同步传输系统的框架图。
图2是本发明传输系统的发送模块的发送状态机工作流程图。
图3是本发明传输系统的接收模块的接收状态机工作流程图。
具体实施方式
以下结合附图,详细阐述本发明的具体实施方式。需要指出的是,具体实施方式仅用于示例性的描述本发明,不应被视作对本发明的保护范围的限定,本领域技术人员应当明白,不脱离本发明主旨的变体和改动均落入本发明的保护范围。
PTP协议中规定PTP报文的主要封装形式有三种,分别是:PTP over UDP overIPv4、PTP over UDPover IPv6和PTP over IEEE802.3/Ethernet。本实施方式选用PTPover IEEE802.3/Ethernet,其余两种方式与IEEE802.3/Ethernet方式类似。
PTP协议主要通过sync、follow_up、delay_req和delay_resp四种报文传递来实现主从系统同步的,通过多组信息交互,使得从系统计算出主从系统间的时间偏差并进行合理的自我时间补偿。自我时间补偿具体步骤通常如下:
(1)主系统发送sync报文给从系统,并记录sync报文离开主系统的时间戳t0。从系统接收到来自主系统的sync报文,并记录sync报文到达从系统的时间戳t1。
(2)主系统发送携带时间戳t0的follow_up报文给从系统,从系统收到follow_up报文并获取了时间戳t0。
(3)从系统发送delay_req报文给主系统,并记录delay_req报文离开从系统的时间戳t2;主系统收到来自从系统的delay_req报文,并记录delay_req报文到达主系统的时间戳t3。
(4)主系统发送携带时间戳t3的delay_resp报文给从系统,从系统收到该报文并获取了时间戳t3。
通过上述信息交互,从系统获得了t0、t1、t2以及t3四个时间戳,从而得到以下公式:
t1-t0=Delay+Offset (1),
t3–t2=Delay–Offset (2),
从系统根据公式(1)、(2)计算出从系统相对主系统的时间偏移量,并进行自我时间补偿达到同步效果。
图1为本发明所述基于FPGA平台的精确时间同步系统的框架图。由图可知,本发明的信息同步传输系统包括主系统FPGA、从系统FPGA,其中,主系统FPGA依次双向连接主系统物理层芯片PHY、主系统RJ45接口;从系统FPGA依次双向连接从系统物理层芯片PHY、从系统RJ45接口;所述主系统RJ45接口与从系统RJ45接口相互连接双向交互数据;所述主系统FPGA包括主系统发送模块、主系统接收模块、主系统本地时钟模块、第一CRC校验模块、第二CRC校验模块;所述主系统发送模块分别与第一CRC校验模块和主系统本地时钟模块连接,所述主系统接收模块分别与第二CRC校验模块和主系统本地时钟模块连接。
所述从系统FPGA包括从系统发送模块、从系统接收模块、从系统本地时钟模块、第三CRC校验模块、第四CRC校验模块以及偏移量计算和本地时钟补偿模块;所述从系统发送模块分别与第三CRC校验模块和从系统本地时钟模块连接,所述从系统接收模块分别与第四CRC校验模块和从系统本地时钟模块连接;所述从系统本地时钟模块与所述偏移量计算和本地时钟补偿模块连接。
图2是本发明同步系统的发送模块的发送状态机工作流程图。所述主系统发送模块、从系统发送模块通过发送状态机发送数据,覆盖主从双系统逻辑处理;所述发送状态机的执行流程包括发送7个字节的前导码和1个字节的帧开始定界符、发送目的地址和源地址、发送类型值16’h88f7、发送PTP报文头、发送PTP报文数据、校验报文头和报文数据以生成校验码以及发送校验码。工作时,主系统发送模块周期性产生同步脉冲开启同步算法,依次发送sync报文follow_up报文,收到delay_req报文后开始发送delay_resp报文;若在一定时间内未接受到delay_req报文,则同步周期内发生错误,发送状态机返回至Idle,等待下一次同步开始;所述从系统发送模块等待主系统发送的follow_up报文,接收到该报文后开始发送delay_req报文。
图3是本发明同步系统的接收模块的接收状态机工作流程图。主系统接收模块、从系统接收模块通过接收状态机接收数据,覆盖主从双系统逻辑处理;所述接收状态机的执行流程包括接收7个字节的前导码和1个字节的帧开始定界符、接收目的地址和源地址、接收类型值16’h88f7、接收PTP报文头、接收PTP报文数据、接收校验码以及校验。所述主系统接收模块等待接收delay_req报文,在所述接收状态机的任何一个状态接收数据错误或未接受到数据均返回Idle;所述从系统接收模块依次接收到sync、follow_up以及delay_resp报文,在所述接收状态机的任何一个状态接受数据错误或未接受到数据均返回Idle。
主系统本地时钟模块、从系统本地时钟模块负责系统的输入提供和本地系统的计时。
第一CRC校验模块、第二CRC校验模块、第三CRC校验模块、第四CRC校验模块为相同型号,在发送报文时,以报文头和报文数据为校验对象生成32位CRC校验码;在接收报文时,以接收到的报文头、报文数据和32位校验码为校验对象,校验帧数据传输是否正常。
偏移量计算和本地时钟补偿模块只有在从系统中才会工作,主系统中的偏移量计算和本地时钟补偿模块是永远不会工作的。从系统根据公式(1)、(2)计算出从系统相对主系统的时间偏移量,本地时钟补偿依照偏移量去调整本地时钟模块中的计时周期。
Claims (6)
1.一种基于FPGA平台的精确时间同步系统,该精确时间同步系统基于IEEE802.3/Ethernet的PTP协议,其特征在于,包括:主系统FPGA、从系统FPGA;
其中,所述主系统FPGA依次双向连接主系统物理层芯片PHY、主系统RJ45接口;从系统FPGA依次双向连接从系统物理层芯片PHY、从系统RJ45接口;所述主系统RJ45接口与从系统RJ45接口相互连接双向交互数据;
所述主系统FPGA包括主系统发送模块、主系统接收模块、主系统本地时钟模块、第一CRC校验模块、第二CRC校验模块;其中,所述主系统发送模块分别与第一CRC校验模块和主系统本地时钟模块连接,所述主系统接收模块分别与第二CRC校验模块和主系统本地时钟模块连接;
所述从系统FPGA包括从系统发送模块、从系统接收模块、从系统本地时钟模块、第三CRC校验模块、第四CRC校验模块以及偏移量计算和本地时钟补偿模块;所述从系统发送模块分别与第三CRC校验模块和从系统本地时钟模块连接,所述从系统接收模块分别与第四CRC校验模块和从系统本地时钟模块连接;所述从系统本地时钟模块与所述偏移量计算和本地时钟补偿模块连接;
所述第一CRC校验模块、第二CRC校验模块、第三CRC校验模块、第四CRC校验模块为相同型号,在发送报文时,以报文头和报文数据为校验对象生成32位CRC校验码;在接收报文时,以接收到的报文头、报文数据和32位校验码为校验对象,校验帧数据传输是否正常。
2.根据权利要求1所述的精确时间同步系统,其特征在于,所述主系统发送模块周期性产生同步脉冲开启同步算法,依次发送sync报文和follow_up报文,收到delay_req报文后开始发送delay_resp报文;若在一定时间内未接收delay_req报文,则同步周期内发生错误,发送状态机返回至Idle,等待下一次同步开始;所述从系统发送模块等待主系统发送的follow_up报文,接收到该报文后开始发送delay_req报文。
3.根据权利要求2所述的精确时间同步系统,其特征在于,所述主系统接收模块等待接收delay_req报文,在所述接收状态机的任何一个状态接收数据错误或未接受到数据均返回Idle;所述从系统接收模块依次接收到sync、follow_up以及delay_resp报文,在所述接收状态机的任何一个状态接收数据错误或未接受到数据均返回Idle。
4.根据权利要求1所述的精确时间同步系统,其特征在于,所述主系统本地时钟模块、从系统本地时钟模块负责系统的输入提供、本地系统的计时和时间戳的产生。
5.根据权利要求1所述的精确时间同步系统,其特征在于,所述偏移量计算和本地时钟补偿模块用于实现系统的自我补偿,本地时钟补偿依照偏移量去调整本地时钟模块中的计时周期。
6.一种应用根据权利要求1-5任一所述的精确时间同步系统进行精确时间补偿的方法,其特征在于,包括以下步骤:
步骤1、主系统FPGA发送sync报文给从系统FPGA,并记录sync报文离开主系统的时间戳t0;从系统FPGA接收到来自主系统的sync报文,并记录sync报文到达从系统FPGA的时间戳t1;
步骤2、主系统FPGA发送携带时间戳t0的follow_up报文给从系统FPGA,从系统FPGA收到follow_up报文并获取了时间戳t0;
步骤3、从系统FPGA发送delay_req报文给主系统FPGA,并记录delay_req报文离开从系统FPGA的时间戳t2;主系统FPGA收到来自从系统FPGA的delay_req报文,并记录delay_req报文到达主系统FPGA的时间戳t3;
步骤4、主系统FPGA发送携带时间戳t3的delay_resp报文给从系统FPGA,从系统FPGA收到该报文并获取了时间戳t3;
t0、t1、t2以及t3满足如式(1)、式(2)的关系:
t1-t0=Delay+Offset (1),
t3–t2=Delay–Offset (2),
其中,Delay表示主从系统之间的时间偏移量,Offset表示时间补偿量;
从系统FPGA的偏移量计算和本地时钟补偿模块根据式(1)、(2)计算出从系统FPGA相对主系统FPGA的时间偏移量,通过本地时钟补偿依照偏移量去调整从系统本地时钟模块中的计时周期。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110645004.5A CN113381832B (zh) | 2021-06-09 | 2021-06-09 | 一种基于fpga平台的精确时间同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110645004.5A CN113381832B (zh) | 2021-06-09 | 2021-06-09 | 一种基于fpga平台的精确时间同步方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113381832A CN113381832A (zh) | 2021-09-10 |
CN113381832B true CN113381832B (zh) | 2022-11-15 |
Family
ID=77573385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110645004.5A Active CN113381832B (zh) | 2021-06-09 | 2021-06-09 | 一种基于fpga平台的精确时间同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113381832B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114338032B (zh) * | 2021-12-02 | 2022-09-30 | 上海健交科技服务有限责任公司 | 面向深度学习的高精度时间戳安全校验加速方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102215078A (zh) * | 2011-06-09 | 2011-10-12 | 国网电力科学研究院 | 一种基于fpga的硬件时间戳实现方法 |
CN102457371A (zh) * | 2010-10-27 | 2012-05-16 | 华为技术有限公司 | 时间同步方法和相关设备及系统 |
CN104836630A (zh) * | 2015-05-21 | 2015-08-12 | 大连理工大学 | Ieee1588时钟同步系统及其实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10104148B2 (en) * | 2017-01-03 | 2018-10-16 | Globalfoundries Inc. | Nanosecond accuracy under precision time protocol for ethernet by using high accuracy timestamp assist device |
-
2021
- 2021-06-09 CN CN202110645004.5A patent/CN113381832B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102457371A (zh) * | 2010-10-27 | 2012-05-16 | 华为技术有限公司 | 时间同步方法和相关设备及系统 |
CN102215078A (zh) * | 2011-06-09 | 2011-10-12 | 国网电力科学研究院 | 一种基于fpga的硬件时间戳实现方法 |
CN104836630A (zh) * | 2015-05-21 | 2015-08-12 | 大连理工大学 | Ieee1588时钟同步系统及其实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113381832A (zh) | 2021-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5811794B2 (ja) | 通信装置 | |
CN104507156B (zh) | 针对无线网络的基于ieee 1588ptp机制的时间同步改进方法 | |
CN112385183B (zh) | 执行phy级硬件时间戳和时间同步的装置、方法和微控制器 | |
CN102332973B (zh) | 一种链状网络的实时通信与时钟同步方法 | |
TWI485996B (zh) | 致能一被動光網路具備支援時間同步能力的裝置與方法 | |
US11588568B2 (en) | Packet processing method and network device | |
CN103929293B (zh) | 非对称延迟的时间同步方法及系统 | |
JP5518191B2 (ja) | 光伝送網が時刻同期プロトコルをキャリングする方法及びシステム | |
CN101977104A (zh) | 基于ieee1588精确时钟同步协议系统及其同步方法 | |
CN106357362B (zh) | 一种时间同步方法、装置及ptp系统 | |
CN108667547A (zh) | 一种网络时间协议转换方法及系统 | |
CN102104475A (zh) | 基于ieee1588的同步系统及其同步方法 | |
CN108259109B (zh) | Ptp域中的网络设备及tod同步方法 | |
CN107579793A (zh) | 一种通信网络设备间时间同步的优化方法、装置及设备 | |
CN102299788A (zh) | 自动发送ieee1588协议报文的控制方法及装置 | |
CN102006157A (zh) | 一种时间同步的方法和系统 | |
CN103378993A (zh) | 基于ptp的从时钟监测方法 | |
CN103138887A (zh) | 一种1588事件报文的处理方法及系统 | |
CN101330342A (zh) | 一种用端口镜像实现时间同步协议的方法及其装置 | |
CN105027489B (zh) | 精确时钟协议同步方法和节点 | |
CN104243079A (zh) | 一种实时以太网的微秒级时钟同步方法 | |
CN113381832B (zh) | 一种基于fpga平台的精确时间同步方法 | |
CN103117829A (zh) | 一种不对称网络间的时间同步与补偿方法或者装置 | |
CN105978652A (zh) | 冗余以太网的同步对时设备、系统及方法 | |
WO2013155944A1 (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 |