CN112769518A - 一种带秒准时沿的串口时间发送系统及方法 - Google Patents
一种带秒准时沿的串口时间发送系统及方法 Download PDFInfo
- Publication number
- CN112769518A CN112769518A CN202110088563.0A CN202110088563A CN112769518A CN 112769518 A CN112769518 A CN 112769518A CN 202110088563 A CN202110088563 A CN 202110088563A CN 112769518 A CN112769518 A CN 112769518A
- Authority
- CN
- China
- Prior art keywords
- serial port
- time
- edge
- buffer area
- state
- 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.)
- Granted
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/0602—Systems characterised by the synchronising information used
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0602—Systems characterised by the synchronising information used
- H04J3/0605—Special codes used as synchronising signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/0079—Receiver details
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/0091—Transmitter details
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Multi Processors (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明公开了一种带秒准时沿的串口时间发送系统及方法,涉及时间同步技术领域,其包括:处理器和可编程的逻辑模块,处理器设有时间处理引擎,时间处理引擎完成参考时间源的串口时间报文解析输出,可编程的逻辑模块测量得到秒脉冲以及参考时间源之间的秒脉冲差值和秒脉冲的时钟周期计数值,秒脉冲由可编程的逻辑模块完成伺服,参考时间源由处理器完成伺服,伺服后的秒脉冲的上升沿作为秒准时沿,处理器内建立有用于发送串口时间报文的状态机,建立状态机的组合逻辑,根据组合逻辑与状态机将秒准时沿作为串口时间报文发送的帧头起始位下降沿,以1PPS的准时沿是串口时间报文帧头起始位的下降沿,减少电缆的铺设,降低成本,减少了人工。
Description
技术领域
本发明涉及时间同步技术领域,具体涉及一种带秒准时沿的串口时间发送系统及方法。
背景技术
时间同步装置通过串口进行时间传递的方式在工业自动化系统中广泛应用,在应用中通常会约束串口时间报文与秒脉冲之间的关系,在电力行业的时间同步技术规范DL/T1100.1对串口时间报文的发送有明确的约束“报文发送时刻,每秒输出1帧。帧头为#,与秒脉冲(PPS)的前沿对齐,偏差小于5ms”。
在通信行业中,近期发布的对串口时间报文发送的规范,即在1PPS+TOD规范中获取时间信号的秒准时沿以及该秒所对应的时间信息,串口时间报文的发送和秒信号相分离,因此在工程实施时除了铺设串口通信所需要的线缆外,还需要铺设传输PPS的线缆,不仅增加施工的复杂度、工作量和施工维护成本,也增加了系统故障点。
现有技术中通常采用如下技术来解决上述问题:
1)软件方案,采用釆用CPU或MCU(以下CPU指代描述)程序完成串口时间报文组织与驱动发送,但该方案由于CPU的运行速度,多任务和中断影响等原因,存在只能满足同步精度要求不高的需求,且需要一直监测秒是否发生变化,效率较低的问题。
2)软件硬件结合方案1,釆用PPS中断CPU驱动发送本秒的串口时间报文,报文的组织和发送均有CPU完成。这种方式采用CPU提供的外部硬件中断接口,响应优先级高,发送报文及时,在这种情况下,带操作系统的串口发送接近0延迟,但仍然受CPU指令访问时间,操作系统调度时间的约束,发送延迟在微秒或毫秒量级。
3)软件硬件结合方案2,釆用PPS中断CPU驱动发送下一秒的串口时间报文到FPGA的缓冲中,当下一秒PPS到来时触发FPGA将缓冲中待发送的串口时间报文的发送出去;不受CPU的影响,而仅仅跟FPGA识别PPS准时沿的时钟有关,发送延迟可以做到几十纳秒量级。
申请号:201320831978.3提出了“基于零延时的串行报文授时系统”其在授时信号1PPS到来之前先向缓冲区写入下一秒要发送的时间数据,并在授时信号1PPS到来之时触发发送。这样输出的串行时间报文信息就同时携带了较高精度的秒同步信息。因此,仅需要串口线,即可时间信息报文和秒同步信息的发送。减少了占用的信号线,简化了软件协议和硬件实现。
有鉴于此,本申请对上述技术中的串口时间报文的同步精度进一步优化。
发明内容
本发明目的在于提供一种带秒准时沿的串口时间发送系统及方法,本申请实现了,1PPS准时沿是串口时间数据报文发送信号里的组成部分,即1PPS的准时沿是串口时间报文帧头起始位的下降沿。并非1PPS到来之时触发发送,而是将秒信号的准时沿携带到串口时间报文的发送信号中,基于该技术,在没有增加任何附加硬件资源的情况下,串口时间报文的同步精度优于1μs,可以达到IRIG_B方式输出的同步精度。而在工业应用场景中,很多工控机,服务器基本都配置有串口,可以直接接收串口的时间报文,其帧头的起始位下降沿完全可以作为本秒的秒准时沿用。特别是对于需要1PPS+TOD的应用场景,这种方式可以减少电缆的铺设,降低成本,减少了人工。
本发明通过下述技术方案实现:
一种带秒准时沿的串口时间发送系统包括,处理器,其用于接受应用指令并实现数据处理与调度;可编程的逻辑模块,其用于测量与产生高精度时间信号,其中,所述处理器与可编程的逻辑模块之间采用串行外设接口进行片间通信。所述处理器设有时间处理引擎,所述时间处理引擎完成参考时间源的串口时间报文解析输出,所述可编程的逻辑模块获取参考时间源和秒脉冲,所述可编程的逻辑模块根据所述参考时间源得到的秒脉冲差值和秒脉冲的时钟周期计数值;其中,所述秒脉冲由可编程的逻辑模块完成伺服,所述参考时间源由处理器完成伺服,伺服后的所述秒脉冲的上升沿作为秒准时沿;所述处理器内建立有用于发送串口时间报文的状态机,建立状态机的组合逻辑,根据组合逻辑与状态机将所述秒准时沿作为所述串口时间报文发送的帧头起始位下降沿。
在本方案中,CPU+FPGA,片间通信采用SPI;CPU组织串口时间报文,PPS信号触发CPU通过SPI将串口时间报文下载到FPGA的缓冲中,等待发送。FPGA通过状态机和组合逻辑实现PPS准时沿作为串口时间报文发送的帧头起始位下降沿,串口时间报文的同步精度优于1μs,可以达到IRIG_B方式输出的同步精度,对于需要1PPS+TOD的应用场景,可以减少电缆的铺设,降低成本,减少了人工。
进一步地,所述处理器通过串行外设接口发送所述串口时间报文至所述第一缓冲区或第二缓冲区,将接受数据的所述第一缓冲区设置为接受状态,待数据接受完毕,所述第一缓冲区设置发送状态,并将所述串口时间报文发送至串口收发器后,所述第一缓冲区回复为接受状态;其中,所述第二缓冲区与所述第一缓冲区功能相同,所述第一缓冲区和第二缓冲区循环使用。
在本方案中,可编程的逻辑模块FPGA具有硬件并发处理能力,可并发处理CPU组织串口时间报文下载到FPGA的缓冲中和FPGA从缓冲中读取时间报文发送串口收发器中。为防止CPU与FPGA同时操作同一个时间报文缓冲,产生竞争冲突,本方案在可编程的逻辑模块FPGA侧采用双缓冲方式,一个缓冲用于接收CPU通过串行外设接口发送过来的数据,一个缓冲用于FPGA发送到串口收发器,因为CPU发送串口报文在秒信号触发以后,从PPS触发到下发报文具有微秒级的延迟时间,而在FPGA侧,PPS触发后立即将接收缓冲的数据赋值到发送缓冲,只需要10M时钟的一个周期即100ns内完成,避免了访问竞争。
优选地,所述串口时间报文的发送采用异步串口通信,所述异步串口通信数据发送的帧格式包括起始位、数据位、校验位和停止位,所述串口时间报文的帧头起始位对齐所述秒准时沿的硬件编码发送。
进一步地,在发送一组所述串口时间报文数据产生的所述秒脉冲的时钟周期计数值由秒准时沿触发,所述秒脉冲与秒准时沿对齐时,所述秒脉冲反向。
在本方案中,由于串口协议中规定,其发送信号在空闲时候为高电平,字节发送时,以起始位开始,起始位是持续波特率时钟周期的连低电平信号,为配合这一特点,本方案将PPS信号在FPGA内反向。
此外本发明一种带秒准时沿的串口时间发送方法,包括以下步骤:
S1:建立串口时间报文发送的状态机,并将串口时间报文数据发送至处理器;
S2:通过所述时间处理引擎完成参考时间源的串口时间报文数据解析输出,并将数据解析通过所述串行外设接口传输于所述可编程的逻辑模块;
S3:根据所述可编程的逻辑模块测量得到秒脉冲和参考时间源之间的秒脉冲差值和秒脉冲的时钟周期计数值;
S4:使用所述可编程的逻辑模块伺服秒脉冲输入,使用处理器伺服参考时间源输入,并将伺服后的所述秒脉冲的上升沿为秒准时沿;
其中,在步骤S4中,还包括步骤:
S41:在所述可编程的逻辑模块侧设置所述第一缓冲区和第二缓冲区;
S42:将所述第一缓冲区和第二缓冲区初始状态设置为接受状态;
S43:当所述处理器发送所述串口时间报文至所述可编程的逻辑模块时,所述处理器选取其中一个待接收的缓冲区来接受数据,并将该缓冲区设置为接受状态;
S44:当该缓冲区数据接受完毕后,设置该缓冲区为待发送状态;
S45:当所述秒准时沿发送至所述可编程的逻辑模块时,选择一个待发送状态的缓冲区进行发送,并将此时的待发送缓冲变成发送状态,发送完毕后该缓冲区变为待接受状态。
S5:通过在处理器下载状态机并设置状态机的组合逻辑,通过状态机和组合逻辑将所述秒准时沿作为所述串口时间报文发送的帧头起始位下降沿。
其中,在步骤S5中还包括步骤:
S51:在所述可编程的逻辑模块上建立一个串口时间报文发送的状态机;
S52:设置状态机的空闲状态、数据位状态、校验位状态、停止位状态和起始位状态,并设置编辑组合逻辑代码根据所述串口数据报文与秒准时沿输出信号电平高低来建立状态机状态转移触发机制。
在本方案中,涉及三个方面的技术实现:首先是秒准时沿的产生;其次是串口时间报文的组织;最后串口时间报文帧头起始位对齐秒准时沿的硬件编码与发送。伺服后的秒信号即用于中断CPU进行串口时间报文组织,其反向后作为,秒准时沿作通过串口时间报问发送信号的帧头起始位携带传输。
采用上述的一种带秒准时沿的串口时间发送方法,本发明还提供一种计算机设备,包括计算机,所述计算机设有可编程的逻辑模块和处理器,所述可编程的逻辑模块设有存储器,所述储存器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的一种带秒准时沿的串口时间发送方法。
此外,本发明还提供一种计算机可读储存介质,所述计算机可读存储介质上存储有带秒准时沿的串口时间发送方法的配置程序,所述串口时间发送方法的配置程序被处理器执行时实现所述一种带秒准时沿的串口时间发送方法的步骤。
本发明与现有技术相比,具有如下的优点和有益效果:
本发明一种带秒准时沿的串口时间发送系统及方法,在没有增加任何附加硬件资源的情况下,串口时间报文的同步精度优于1μs,可以达到IRIG_B方式输出的同步精度。而在工业应用场景中,很多工控机,服务器基本都配置有串口,可以直接接收串口的时间报文,其帧头的起始位下降沿完全可以作为本秒的秒准时沿用。特别是对于需要1PPS+TOD的应用场景,这种方式可以大大减少电缆的铺设,降低成本,减少人工,是值得推广的一项技术。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为本发明实施例中流程示意图;
图2为本发明实施例中带秒准时沿的串口时间发送原理框图;
图3为本发明实施例中带秒准时沿的串口时间发送的组合逻辑与状态机的程序框图;
图4为本发明实施例中带秒准时沿的串口时间发送时序图;
图5为本发明实施例中串口输出信号与秒信号同窗捕获图;
图6为本发明实施例中串口输出信号与秒信号准时沿采集图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
在以下描述中,为了提供对本发明的透彻理解阐述了大量特定细节。然而,对于本领域普通技术人员显而易见的是:不必采用这些特定细节来实行本发明。在其他实例中,为了避免混淆本发明,未具体描述公知的结构、电路、材料或方法。
在整个说明书中,对“一个实施例”、“实施例”、“一个示例”或“示例”的提及意味着:结合该实施例或示例描述的特定特征、结构或特性被包含在本发明至少一个实施例中。因此,在整个说明书的各个地方出现的短语“一个实施例”、“实施例”、“一个示例”或“示例”不一定都指同一实施例或示例。此外,可以以任何适当的组合和、或子组合将特定的特征、结构或特性组合在一个或多个实施例或示例中。此外,本领域普通技术人员应当理解,在此提供的示图都是为了说明的目的,并且示图不一定是按比例绘制的。这里使用的术语“和/或”包括一个或多个相关列出的项目的任何和所有组合。
在本发明的描述中,需要理解的是,术语“前”、“后”、“左”、“右”、“上”、“下”、“竖直”、“水平”、“高”、“低”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明保护范围的限制。
实施例
如图2所示,本发明一种带秒准时沿的串口时间发送系统,包括,处理器,其用于接受应用指令并实现数据处理与调度;可编程的逻辑模块,其用于测量与产生高精度时间信号,其中,所述处理器与可编程的逻辑模块之间采用串行外设接口进行片间通信。所述处理器设有时间处理引擎,所述时间处理引擎完成参考时间源的串口时间报文解析输出,所述可编程的逻辑模块获取参考时间源和秒脉冲,所述可编程的逻辑模块根据所述参考时间源得到的秒脉冲差值和秒脉冲的时钟周期计数值;其中,所述秒脉冲由可编程的逻辑模块完成伺服,所述参考时间源由处理器完成伺服,伺服后的所述秒脉冲的上升沿作为秒准时沿;所述处理器内建立有用于发送串口时间报文的状态机,带秒准时沿的串口时间报文发送,涉及三个方面的技术实现:第一,秒准时沿的产生;第二,串口时间报文的组织,第三串口时间报文帧头起始位对齐秒准时沿的硬件编码与发送。秒准时沿的产生是时间同步装置最基本的功能,基本流程为:选择外部时间参考源,测量计算装置与时间参考源之间的时差真值,驱动伺服装置的时间(PPS和年月日时间分秒信息)。秒准时沿为伺服后的PPS的上升沿。此过程中ARM9的时间处理引擎负责完成参考时间源的时间报文解析,获得参考时间源的是否有效的状态信息,FPGA测量参考时间源之间的PPS差值,PPS的时钟周期计数值。时间处理引擎根据以上信息综合分析参考源的一致性和稳定性,根据行业标准要求的选源策略,实现时间源的选择。时间处理引擎根据FPGA测量的装置与所选参考时间源的差值,驱动伺服装置的时间,其中装置时间的PPS由FPGA完成伺服,年月日时分秒由ARM9完成伺服建立状态机的组合逻辑,根据组合逻辑与状态机将所述秒准时沿作为所述串口时间报文发送的帧头起始位下降沿,CPU+FPGA,片间通信采用SPI;CPU组织串口时间报文,PPS信号触发CPU通过SPI将串口时间报文下载到FPGA的缓冲中,等待发送。FPGA通过状态机和组合逻辑实现PPS准时沿作为串口时间报文发送的帧头起始位下降沿。
作为上述实施例的优选,在FPGA侧,设置两个缓冲,两个缓冲在初始状态均为待接收状态,当ARM9发送串口时间报文给FPGA时,FPGA选择一个待接收的缓冲来接收数据,此时将该缓冲状态设置为接收状态,当数据接收完毕后,设置该缓冲为待发送状态,当秒准时沿来时,选择一个待发送缓冲进行发送,此时待发送缓冲变成发送状态,发送完毕后该缓冲变为待接收状态。这样两个缓冲可以循环使用,可避免FPGA收发时间报文形成的并发竞争(接收ARM9时间报文,发送时间报文到串口收发器并发处理)。本方案在可编程的逻辑模块FPGA侧采用双缓冲方式,一个缓冲用于接收CPU通过串行外设接口发送过来的数据,一个缓冲用于FPGA发送到串口收发器,因为CPU发送串口报文在秒信号触发以后,从PPS触发到下发报文具有微秒级的延迟时间,而在FPGA侧,PPS触发后立即将接收缓冲的数据赋值到发送缓冲。
作为上述实施例的优选,如图3所示,所述串口时间报文的发送采用异步串口通信,所述异步串口通信数据发送的帧格式包括起始位、数据位、校验位和停止位,所述串口时间报文的帧头起始位对齐所述秒准时沿的硬件编码发送。
作为上述实施例的优选,在发送一组所述串口时间报文数据产生的所述秒脉冲的时钟周期计数值由秒准时沿触发,所述秒脉冲与秒准时沿对齐时,所述秒脉冲反向,需满足串口协议,以起始位开始,起始位是持续波特率时钟周期的连低电平信号,为配合这一特点,本方案将PPS信号在FPGA内反向。
可以理解的是,秒准时沿对齐发送串口报文,关键因素有三个:第一,发送一组串口数据的波特率产生的计数由秒信号准时沿触发,第二,由于串口协议中空闲时发送的是高电平,因此,为与秒准时沿对齐发送串口起始位,需要将秒信号反向,这样帧头起始位的沿完全可以由反向后的秒信号产生。第三,帧头起始位的沿产生后无缝发送跟在后面的时间报文内容。在FPGA侧采用状态机和组合逻辑电路来实现。
作为上述实施例的优选如图1与图3所示,本发明一种带秒准时沿的串口时间发送方法,包括步骤:
S1:建立串口时间报文发送的状态机,并将串口时间报文数据发送至处理器;
S2:通过所述时间处理引擎完成参考时间源的串口时间报文数据解析输出,并将数据解析通过所述串行外设接口传输于所述可编程的逻辑模块;
S3:根据所述可编程的逻辑模块测量得到秒脉冲和参考时间源之间的秒脉冲差值和秒脉冲的时钟周期计数值;
S4:使用所述可编程的逻辑模块伺服秒脉冲输入,使用处理器伺服参考时间源输入,并将伺服后的所述秒脉冲的上升沿为秒准时沿;
其中,在步骤S4中,还包括步骤:
S41:在所述可编程的逻辑模块侧设置所述第一缓冲区和第二缓冲区;
S42:将所述第一缓冲区和第二缓冲区初始状态设置为接受状态;
S43:当所述处理器发送所述串口时间报文至所述可编程的逻辑模块时,所述处理器选取其中一个待接收的缓冲区来接受数据,并将该缓冲区设置为接受状态;
S44:当该缓冲区数据接受完毕后,设置该缓冲区为待发送状态;
S45:当所述秒准时沿发送至所述可编程的逻辑模块时,选择一个待发送状态的缓冲区进行发送,并将此时的待发送缓冲变成发送状态,发送完毕后该缓冲区变为待接受状态。
S5:通过在处理器下载状态机并设置状态机的组合逻辑,通过状态机和组合逻辑将所述秒准时沿作为所述串口时间报文发送的帧头起始位下降沿。
其中,在步骤S5中还包括步骤:
S51:在所述可编程的逻辑模块上建立一个串口时间报文发送的状态机;
S52:设置状态机的空闲状态、数据位状态、校验位状态、停止位状态和起始位状态,并设置编辑组合逻辑代码根据所述串口数据报文与秒准时沿输出信号电平高低来建立状态机状态转移触发机制。
需要说明的是,常规的串口数据发送从IDEL状态转移到START_STAT状态,从图3中可以看出,本状态机串口数据发送的触发是从pps_rising(秒准时沿)开始触发直接编码了起始位,Clkb_rising来后(波特率时钟上升沿)直接进入了数据发送,然后进入常规的串口发送时序。
此外本发明还提供一种计算机设备,包括计算机,所述计算机设有可编程的逻辑模块和处理器,所述可编程的逻辑模块设有存储器,所述储存器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的一种带秒准时沿的串口时间发送方法。
具有一组(至少一个)的程序/实用工具,可以存储在例如系统存储器中,这样的程序包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序通常执行本发明实施例所描述的实施例中的功能和/或方法。
此外,本发明还提供一种计算机可读储存介质,所述计算机可读存储介质上存储有带秒准时沿的串口时间发送方法的配置程序,所述串口时间发送方法的配置程序被处理器执行时实现所述一种带秒准时沿的串口时间发送方法的步骤。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储存器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
状态机与组合逻辑转换的具体过程如下:
具体实现见图3的组合逻辑和状态机的转换,状态机处于空闲状态时永远都是从PPS_rising触发,直接用进入了数据发送状态,由组合逻辑控制PPS准时沿的输出即为串口时间报文的帧头的起始位下降沿。帧头起始位发送结束后顺序进入数据发送状态、校验位发送状态、停止位发送状态,如果时间报文未发送完,停止位发送完成后进入起始位发送状态,否则进入空闲状态,等待下一次的串口时间报文数据发送吗。组合逻辑和状态机执行的结果如图三所示,图中uart_tx波形为最终输出的串口发送信号。
1、组合逻辑与状态机的关系
1)组合逻辑:
assign uart_tx=pps_en==1?~PPS:bits;
组合逻辑的输出效果为,当pps_en为1时uart_tx输出~PPS信号,当pps_en为0时uart_tx输出的bits信号;
2)状态机:
I、在状态机中通过控制pps_en,选择输出的uart_tx发送的信号是~PPS还是bits;
II、初始状态时,pps_en为0,bits=1;组合逻辑输出的信号是bits,然后进入状态机的IDLE状态;
III、状态机进入IDLE后
当~PPS为高时:设置pps_en为1,输出~PPS;
当PPS_rising(秒信号准时沿)到了时:
设置pps_en为0;bits=0;
状态机进入DATA_STAT;
触发Clkb时钟周期计数;
在这个流程执行完成后,uart_tx从输出~PPS转到bits的输出,见图三中从IDLE到DATA_STAT的时间段内uart_tx,bits,pps_en,Clkb,PPS,~PPS的相互关系。
IV、状态机进入DATA_STAT
当Clkb_rising时:
开始将发送缓冲中的数据位移到bits中,见图三所示。
此时uart_tx输出了bits的内容即发送的串口时间报文的内容;
这个过程一直持续到单字节的数据位发送结束。即Byte_bit=0时;
判断是否有校验位,如果Param_crc!=0则状态机进入CRC_STAT,否则直接进入STOP_STAT;
(本示例为无校验),直接进入STOP_STAT
此过程uart_tx,bits,pps_en,Clkb,PPS,~PPS的相互关系见图三中所示DATA_STAT期间所示。
V、状态机进入STOP_STAT
当Clkb_rising时:
bits=1;
这个过程一直持续到,到停止位发送结束,即Stop_Count==0时,如果报文未发送完即Send_byte_bits!=0则状态机进入下一个字节的起始位的发送状态,即START_STAT;如果发送结束Send_byte_bits==0就
进入空闲状态IDLE,等待下一次的串口时间报文的发送过程。
VI、状态机进入START_STAT
当Clkb_rising时:
bits=1;
状态机直接进入数据发送状态DATA_STAT;
2.关于状态机过程中的控制条件变量的变化说明:
主要涉及变量为:
Param_crc;
Stop_Count;
Clkb_rising;
Send_byte_bits;
Byte_bit;
PPS_rising;
I、Param_crc是配置串口发送校验位的参数,本示例为无校验位;
II、Stop_Count是配置串口发送停止位个数,本示例为1个,值为0;
III、Clkb_rising程序中专有波特率产生器来产生波特率时钟,
Clkb_rising表示波特率时钟每个周期上升沿;
每一个bits的发送都是靠这个沿触发发送;
IV、Send_byte_bits,Byte_bit,
在IDLE状态时为他们赋初值,当PPS_rising发生时:
Send_byte_bits赋需要发送的总的字节数*8;
Byte_b单个字节需要发送的位数;
DATA_STAT状态时:
当Clkb_rising时:
Send_byte_bits,Byte_bit,都要减1;
V、PPS_rising程序中专有PPS信号产生的程序,
PPS_rising为PPS信号的准时沿(上升沿)见图4所示,显示了秒准时沿发送数据时序。
为验证技术实现的效果,本文提供了两种验证方式:方法一,直接用100M逻辑分析仪捕获FPGA输出的PPS和uart_tx信号,观察PPS准时沿与uart_tx帧头起始位下降沿的相位差。方法二,搭建一个内嵌该技术的时钟同步装置,装置同步后,用TimeAcc 007检测串口时间报文同步精度。直接用100M逻辑分析仪捕获PPS和uart_tx信号,如图5与图6所示可以看出PPS的上升沿即准时沿与与uart_tx一组时间报文的帧头起始位下降沿重合,从图6可以更清晰的看出两个的重合度,至少在100ns的单位上看还是重合状态。验证结果证明了uart_tx的串口时间报文成功携带了秒准时沿。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种带秒准时沿的串口时间发送系统,其特征在于,包括:
处理器,其用于接受应用指令并实现数据处理与调度;
可编程的逻辑模块,其用于测量与产生高精度时间信号;
其中,所述处理器与可编程的逻辑模块之间采用串行外设接口进行片间通信;
所述处理器设有时间处理引擎,所述时间处理引擎完成参考时间源的串口时间报文解析输出,所述可编程的逻辑模块获取参考时间源和秒脉冲,所述可编程的逻辑模块根据所述参考时间源得到的秒脉冲差值和秒脉冲的时钟周期计数值;
其中,所述秒脉冲由可编程的逻辑模块完成伺服,所述参考时间源由处理器完成伺服,伺服后的所述秒脉冲的上升沿作为秒准时沿;
所述处理器内建立有用于发送串口时间报文的状态机,建立状态机的组合逻辑,根据组合逻辑与状态机将所述秒准时沿作为所述串口时间报文发送的帧头起始位下降沿。
2.根据权利要求1所述的一种带秒准时沿的串口时间发送系统,其特征在于,所述可编程的逻辑模块建立有缓冲区和串口收发器,所述缓冲区包括第一缓冲区和第二缓冲区;
所述处理器通过串行外设接口发送所述串口时间报文至所述第一缓冲区或第二缓冲区,将接受数据的所述第一缓冲区设置为接受状态,待数据接受完毕,所述第一缓冲区设置发送状态,并将所述串口时间报文发送至串口收发器后,所述第一缓冲区回复为接受状态;
其中,所述第二缓冲区与所述第一缓冲区功能相同,所述第一缓冲区和第二缓冲区循环使用。
3.根据权利要求1所述的一种带秒准时沿的串口时间发送系统,其特征在于,所述串口时间报文的发送采用异步串口通信,所述异步串口通信数据发送的帧格式包括起始位、数据位、校验位和停止位,所述串口时间报文的帧头起始位对齐所述秒准时沿的硬件编码发送。
4.根据权利要求1所述的一种带秒准时沿的串口时间发送系统,其特征在于,在发送一组所述串口时间报文数据产生的所述秒脉冲的时钟周期计数值由秒准时沿触发,所述秒脉冲与秒准时沿对齐时,所述秒脉冲反向。
5.使用权利要求1-4中任意一项所述的一种带秒准时沿的串口时间发送系统的带秒准时沿的串口时间发送方法,其特征在于,包括以下步骤:
S1:建立串口时间报文发送的状态机,并将串口时间报文数据发送至处理器;
S2:通过所述时间处理引擎完成参考时间源的串口时间报文数据解析输出,并将数据解析通过所述串行外设接口传输于所述可编程的逻辑模块;
S3:根据所述可编程的逻辑模块测量得到秒脉冲和参考时间源之间的秒脉冲差值和秒脉冲的时钟周期计数值;
S4:使用所述可编程的逻辑模块伺服秒脉冲输入,使用处理器伺服参考时间源输入,并将伺服后的所述秒脉冲的上升沿为秒准时沿;
S5:通过在处理器下载状态机并设置状态机的组合逻辑,通过状态机和组合逻辑将所述秒准时沿作为所述串口时间报文发送的帧头起始位下降沿。
6.根据权利要求5所述的一种带秒准时沿的串口时间发送方法,其特征在于,在步骤S4中还包括步骤:
S41:在所述可编程的逻辑模块侧设置所述第一缓冲区和第二缓冲区;
S42:将所述第一缓冲区和第二缓冲区初始状态设置为接受状态;
S43:当所述处理器发送所述串口时间报文至所述可编程的逻辑模块时,所述处理器选取其中一个待接收的缓冲区来接受数据,并将该缓冲区设置为接受状态;
S44:当该缓冲区数据接受完毕后,设置该缓冲区为待发送状态;
S45:当所述秒准时沿发送至所述可编程的逻辑模块时,选择一个待发送状态的缓冲区进行发送,并将此时的待发送缓冲变成发送状态,发送完毕后该缓冲区变为待接受状态。
7.根据权利要求5所述的一种带秒准时沿的串口时间发送方法,其特征在于,在步骤S5中还包括步骤:
S51:在所述可编程的逻辑模块上建立一个串口时间报文发送的状态机;
S52:设置状态机的空闲状态、数据位状态、校验位状态、停止位状态和起始位状态,并设置编辑组合逻辑代码根据所述串口数据报文与秒准时沿输出信号电平高低来建立状态机状态转移触发机制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110088563.0A CN112769518B (zh) | 2021-01-22 | 2021-01-22 | 一种带秒准时沿的串口时间发送系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110088563.0A CN112769518B (zh) | 2021-01-22 | 2021-01-22 | 一种带秒准时沿的串口时间发送系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112769518A true CN112769518A (zh) | 2021-05-07 |
CN112769518B CN112769518B (zh) | 2022-09-13 |
Family
ID=75705755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110088563.0A Active CN112769518B (zh) | 2021-01-22 | 2021-01-22 | 一种带秒准时沿的串口时间发送系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112769518B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001047160A2 (de) * | 1999-12-22 | 2001-06-28 | Siemens Aktiengesellschaft | Schaltungsanordnung und verfahren zur taktsignalbereitstellung |
US6263033B1 (en) * | 1998-03-09 | 2001-07-17 | Advanced Micro Devices, Inc. | Baud rate granularity in single clock microcontrollers for serial port transmissions |
WO2007000498A1 (en) * | 2005-06-29 | 2007-01-04 | Abb Oy | Method for synchronizing an automation data communications network |
CN105187148A (zh) * | 2015-08-17 | 2015-12-23 | 武汉理工大学 | 一种基于arm的网络时钟同步系统及方法 |
CN106100783A (zh) * | 2016-06-30 | 2016-11-09 | 许继集团有限公司 | 一种智能变电站合并单元数据采集的同步方法及装置 |
WO2017080274A1 (zh) * | 2015-11-13 | 2017-05-18 | 华为技术有限公司 | 多处理器系统及时钟同步方法 |
CN110113124A (zh) * | 2019-04-16 | 2019-08-09 | 河南顺博建筑智能化工程有限公司 | 用于光纤振动传感系统的时钟同步方法以及装置 |
CN112202521A (zh) * | 2020-09-29 | 2021-01-08 | 国智恒北斗科技集团股份有限公司 | 一种e1输入转换时间信号授时的操作系统 |
-
2021
- 2021-01-22 CN CN202110088563.0A patent/CN112769518B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6263033B1 (en) * | 1998-03-09 | 2001-07-17 | Advanced Micro Devices, Inc. | Baud rate granularity in single clock microcontrollers for serial port transmissions |
WO2001047160A2 (de) * | 1999-12-22 | 2001-06-28 | Siemens Aktiengesellschaft | Schaltungsanordnung und verfahren zur taktsignalbereitstellung |
WO2007000498A1 (en) * | 2005-06-29 | 2007-01-04 | Abb Oy | Method for synchronizing an automation data communications network |
CN105187148A (zh) * | 2015-08-17 | 2015-12-23 | 武汉理工大学 | 一种基于arm的网络时钟同步系统及方法 |
WO2017080274A1 (zh) * | 2015-11-13 | 2017-05-18 | 华为技术有限公司 | 多处理器系统及时钟同步方法 |
CN106100783A (zh) * | 2016-06-30 | 2016-11-09 | 许继集团有限公司 | 一种智能变电站合并单元数据采集的同步方法及装置 |
CN110113124A (zh) * | 2019-04-16 | 2019-08-09 | 河南顺博建筑智能化工程有限公司 | 用于光纤振动传感系统的时钟同步方法以及装置 |
CN112202521A (zh) * | 2020-09-29 | 2021-01-08 | 国智恒北斗科技集团股份有限公司 | 一种e1输入转换时间信号授时的操作系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112769518B (zh) | 2022-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105930580B (zh) | 一种用于电力系统和信息通信系统联合仿真的时间同步与数据交换的装置及其方法 | |
CN100521637C (zh) | 基于光纤的高速串行工业实时通信总线系统及其控制方法 | |
CN106292409B (zh) | 一种基于fpga多速率光纤通讯的实时仿真系统及其仿真方法 | |
CN106411184B (zh) | 一种网络化的多轴电机同步控制装置及方法 | |
CN106598889A (zh) | 一种基于fpga夹层板的sata主控器 | |
CN110224789A (zh) | 一种基于fpga的多模式hdlc控制器 | |
CN106230541B (zh) | 一种用于工业以太网的站点同步系统及方法 | |
CN112306146B (zh) | 一种多pxie机箱内awg板卡输出波形同步的装置及方法 | |
CN105824275A (zh) | 一种控制从站伺服驱动器同步主站的方法 | |
CN113190291A (zh) | 一种基于片上网络数据采集的可配置协议转换系统及方法 | |
CN103795790A (zh) | 一种基于通信实现的分布式同步采样控制系统及其方法 | |
CN112769518B (zh) | 一种带秒准时沿的串口时间发送系统及方法 | |
CN111488005A (zh) | 船用低速机转速分发系统、方法及设备 | |
JP3537290B2 (ja) | シリアルインタフェース回路 | |
CN103441811A (zh) | 一种基于utc时间的ais时隙同步触发系统 | |
CN107102965B (zh) | 一种数据处理电路、系统及数据处理方法 | |
ES2265055T3 (es) | Proceso para el funcionamiento de un usuario final de un sistema de comunicacion isocrono y ciclico. | |
CN106603113A (zh) | 一种雷达信号处理机对外通信控制系统 | |
CN102063401A (zh) | 分布录波装置的tdmow串行总线结构及编码方法 | |
CN101464844A (zh) | 一种ram使用权的控制方法及总线接口 | |
CN104713553A (zh) | 一种微惯性测量单元的信号处理装置及方法 | |
CN106230536B (zh) | 一种用于电力电子分布式控制的实时通信与同步发送系统 | |
CN104735824A (zh) | 数据处理系统 | |
Wang | Optimization of UART Communication Protocol Based on Frequency Multiplier Sampling Technology and Asynchronous FIFO | |
CN2676507Y (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 |