CN115102653A - 时间同步方法、装置、计算机设备和存储介质 - Google Patents
时间同步方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN115102653A CN115102653A CN202210600234.4A CN202210600234A CN115102653A CN 115102653 A CN115102653 A CN 115102653A CN 202210600234 A CN202210600234 A CN 202210600234A CN 115102653 A CN115102653 A CN 115102653A
- Authority
- CN
- China
- Prior art keywords
- operating system
- time
- processor
- time synchronization
- timestamp information
- 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.)
- Pending
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
- H04J3/0661—Clock or time synchronisation among packet nodes using timestamps
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本申请涉及一种时间同步方法、装置、计算机设备和存储介质。该方法包括:处理器上运行的第一操作系统获取授时器件提供的串行编码信号;对串行编码信号进行解码得到串行编码信号中单位时间编码帧的时间戳信息;向处理器上运行的第二操作系统传递时间戳信息;向第二操作系统传递解码完单位时间编码帧时触发的时间同步命令;第二操作系统在接收到时间同步命令时,根据时间戳信息对第二操作系统的系统时间进行同步。采用本方法能够降低硬件复杂度。
Description
技术领域
本申请涉及电子信息技术领域,特别是涉及一种时间同步方法、装置、计算机设备和存储介质。
背景技术
随着电子信息技术的发展,多个服务器组成的服务器集群往往需要采用统一的时间基准。比如,在服务器集群出现故障时,可以根据故障发生时间,对事故的原因和过程进行精准分析;或者是根据服务器日志所记录时间对不同服务器的日志进行组合分析等等。工业产品的工作环境十分恶劣,对服务器要求也是非常苛刻,服务器工作时的时钟日产生很大的飘移,跨区域性时间不同步很容易导致指令响应不及时,故障定位困难。因此,时间精准和统一是服务器集群最基本的要求。
传统方法中,工业领域的服务器可以包括与授时器件相连接的外挂FPGA、X86处理器、以及大量通信和控制外设。用于实现时间同步的硬件链路相当长,不仅硬件设计成本高,而且产品成本也高,同时硬件链路上的延时也高,达不到特定场景下的要求。
发明内容
基于此,有必要针对上述技术问题,提供一种能够降低硬件复杂度的时间同步方法、装置、计算机设备、存储介质和计算机程序产品。
第一方面,本申请提供了一种时间同步方法。所述方法包括:
处理器上运行的第一操作系统获取授时器件提供的串行编码信号;对所述串行编码信号进行解码得到所述串行编码信号中单位时间编码帧的时间戳信息;根据所述处理器内部的通信机制,向所述处理器上运行的第二操作系统传递所述时间戳信息,向所述第二操作系统传递解码完所述单位时间编码帧时触发的时间同步命令;
所述第二操作系统在接收到所述时间同步命令时,根据所述时间戳信息对所述第二操作系统的系统时间进行同步。
在其中一个实施例中,所述单位时间编码帧包括第一预设数量的码元,所述时间戳信息编码到所述单位时间编码帧中前第二预设数量的码元中,所述第二预设数量小于所述第一预设数量;
所述根据所述处理器内部的通信机制,向所述处理器上运行的第二操作系统传递所述时间戳信息;向所述第二操作系统传递解码完所述单位时间编码帧时触发的时间同步命令,包括:
当解码完所述单位时间编码帧中前第二预设数量的码元时,得到时间戳信息,根据所述处理器内部的通信机制,向所述处理器上运行的第二操作系统传递所述时间戳信息;
当解码完所述单位时间编码帧的第一预设数量的码元时,根据所述处理器内部的通信机制,向所述第二操作系统传递解码完所述单位时间编码帧时触发的时间同步命令。
在其中一个实施例中,所述单位时间编码帧中前第二预设数量的码元中编码有验证数据,所述方法还包括:
第一操作系统在解码完所述单位时间编码帧中前第二预设数量的码元时,获得所述验证数据,并向所述第二操作系统传递所述验证数据;
所述第二操作系统接收到所述验证数据后,使用所述验证数据对接收到的所述时间戳信息进行验证;
所述第二操作系统在接收到所述时间同步命令时,根据所述时间戳信息对所述第二操作系统的系统时间进行同步,包括:
所述第二操作系统响应于所述时间同步命令,使用验证通过后的所述时间戳信息对所述第二操作系统的系统时间进行同步。
在其中一个实施例中,所述方法还包括:
所述第二操作系统每隔预设周期对所述处理器的实时时钟进行时间同步;
所述第二操作系统每当监测到关机或重启事件时,即时对所述处理器的所述实时时钟进行时间同步。
在其中一个实施例中,所述第一操作系统为所述处理器具有可信执行环境的操作系统;所述第二操作系统为所述处理器具有富执行环境的操作系统;所述根据所述处理器内部的通信机制,向所述第二操作系统传递解码完所述单位时间编码帧时触发的时间同步命令包括:
通过所述可信执行环境和所述富执行环境之间符合安全标准的中断通信方式,向所述第二操作系统传递解码完所述单位时间编码帧时触发的时间同步命令。
在其中一个实施例中,所述根据所述处理器内部的通信机制,向所述处理器上运行的第二操作系统传递所述时间戳信息包括:
在获得所述时间戳信息时,通过所述第一操作系统和第二操作系统之间的中断通信方式,即时向所述处理器的第二操作系统传递所述时间戳信息;或者,在获得所述时间戳信息时,即时向所述处理器的第一操作系统和第二操作系统间的共享内存写入所述时间戳信息,使得所述第二操作系统从所述共享内存读取所述时间戳信息;
所述向所述第二操作系统传递解码完所述单位时间编码帧时触发的时间同步命令包括:
通过所述第一操作系统和第二操作系统之间的中断通信方式,向所述处理器的第二操作系统传递解码完所述单位时间编码帧时触发的时间同步命令。
在其中一个实施例中,所述方法还包括:
在所述第二操作系统提供的面向用户层的控制接口被调用的情况下,所述第二操作系统向所述第一操作系统传递调用参数,以触发所述第一操作系统按照所述调用参数控制对所述串行编码信号的解码。
第二方面,本申请还提供了一种时间同步装置。所述装置包括:
第一模块,用于指示处理器上运行的第一操作系统获取授时器件提供的串行编码信号;对所述串行编码信号进行解码得到所述串行编码信号中单位时间编码帧的时间戳信息;向所述处理器上运行的第二操作系统传递所述时间戳信息;向所述第二操作系统传递解码完所述单位时间编码帧时触发的时间同步命令;
第二模块,用于指示所述第二操作系统在接收到所述时间同步命令时,根据所述时间戳信息对所述第二操作系统的系统时间进行同步。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行上述时间同步方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行上述时间同步方法的步骤。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行上述时间同步方法的步骤。
上述时间同步方法、装置、计算机设备、存储介质和计算机程序产品,通过处理器上运行的第一操作系统获取授时器件提供的串行编码信号。对所述串行编码信号进行解码得到所述串行编码信号中单位时间编码帧的时间戳信息。根据所述处理器内部的通信机制,向所述处理器上运行的第二操作系统传递所述时间戳信息;向所述第二操作系统传递解码完所述单位时间编码帧时触发的时间同步命令。所述第二操作系统在接收到所述时间同步命令时,根据所述时间戳信息对所述第二操作系统的系统时间进行同步。这样,在解码完一个单位时间编码帧的情况下,便可以通过时间同步命令指示第二操作系统进行时间同步。这样,无需再增设其他硬件设备便可以实现时间同步,相比传统技术中增设专用器件实现时间同步的方法,降低了硬件复杂度。并且,相比传统技术中使用网络进行通讯以同步时钟,通过所述处理器内部的通信机制来进行通信,大大降低了处理延迟,降低了软件的复杂度,提高了时间同步的精准度。
附图说明
图1为一个实施例中时间同步方法的应用环境图;
图2为一个实施例中时间同步方法的流程示意图;
图3为一个实施例中时间同步方法的原理示意图;
图4为一个实施例中时间同步方法的流程示意图;
图5为一个实施例中时间同步装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的时间同步方法,可以应用于如图1所示的应用环境中。其中,授时器件110通过串口与服务器120进行通信。其中,授时器件110用于提供串行编码信号。服务器120的处理器上运行有第一操作系统和第二操作系统。
授时器件110向服务器120的处理器上运行的第一操作系统发送串行编码信息。第一操作系统获取授时器件110提供的串行编码信号。第一操作系统对串行编码信号进行解码得到串行编码信号中单位时间编码帧的时间戳信息。第一操作系统向处理器上运行的第二操作系统传递时间戳信息。第一操作系统向第二操作系统传递解码完单位时间编码帧时触发的时间同步命令。第二操作系统在接收到时间同步命令时,根据时间戳信息对第二操作系统的系统时间进行同步。
在一个实施例中,服务器120也可以由终端替代,对此不限定。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。
在一个实施例中,服务器120是电力工业服务器。在电力系统中,由于故障发生时需要根据故障时的数据,各个开关、断路动作先后顺序和准确时间,对事故的原因和过程进行精准分析。工业产品的工作环境十分恶劣,对服务器要求也是非常苛刻,服务器工作时的时钟日产生很大的飘移,跨区域性时间不同步很容易导致指令响应不及时,故障定位困难。因此,需要对电力工业服务器的系统时间进行同步。
在一个实施例中,如图2所示,提供了一种时间同步方法,本实施例以该方法应用于服务器进行举例说明,可以理解的是,该方法也可以应用于终端。
本实施例中,该方法包括以下步骤:
S202,处理器上运行的第一操作系统获取授时器件提供的串行编码信号;对串行编码信号进行解码得到串行编码信号中单位时间编码帧的时间戳信息。
其中,授时器件是提供标准可靠的时间信号以供应用者进行时间同步的器件。单位时间编码帧是每隔一个单位时间对时间进行编码得到的帧。时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数,时间戳信息用于描述时间戳,比如,时间戳信息可以包括秒、分、时、天、年,用于描述所对应的时间戳。
具体地,授时器件和处理器上运行的第一操作系统之间保持物理连接(比如串口)。第一操作系统通过物理连接获取到授时器件提供的串行编码信号。第一操作系统对串行编码信号进行解码得到串行编码信号中单位时间编码帧的时间戳信息。
在一个实施例中,串行编码信号是IRIG-B(IRIG时间码标准下的B格式)对应的串行编码信号。IRIG-B每秒一帧,一个时帧周期包括100个码元,每个码元总宽度为10ms。
在一个实施例中,处理器是基于ARMv9架构的处理器。
S204,根据所述处理器内部的通信机制,向处理器上运行的第二操作系统传递时间戳信息;向第二操作系统传递解码完单位时间编码帧时触发的时间同步命令。
其中,时间同步命令是用于指示对系统时间进行同步的命令。
具体地,根据所述处理器内部的通信机制,第一操作系统向处理器上运行的第二操作系统传递时间戳信息。第一操作系统向第二操作系统传递解码完单位时间编码帧时触发的时间同步命令。可以理解,时间戳信息和时间同步命令可以同时发送,也可以先后分两次发送。对此不做限定。
在一个实施例中,单位时间编码帧的码元数量为第一预设数量。时间戳信息编码到单位时间编码帧中前第二预设数量的码元中。第一操作系统可以将当前所解码的码元数量分别和第二预设数量、第一预设数量做比对,来对应触发传递时间戳信息和传递时间同步指令。
在一个实施例中,第一操作系统是安全的操作系统,是具有可信执行环境的操作系统;第二操作系统为具有富执行环境的操作系统,第一操作系统可以基于可信执行环境和富执行环境之间的安全通信机制,来传递时间戳信息和时间同步指令。
在一个实施例中,第一操作系统可以通过第一操作系统和第二操作系统之间的中断通信方式,向第二操作系统传递时间戳信息和时间同步命令;第一操作系统还可以向处理器的第一操作系统和第二操作系统间的共享内存写入时间戳信息以传递时间戳信息。
在一个实施例中,处理器内部的通信机制,可以是共享内存、中断等中的至少一种。
S206,第二操作系统在接收到时间同步命令时,根据时间戳信息对第二操作系统的系统时间进行同步。
具体地,第二操作系统在接收到第一操作系统传递的时间同步命令后,根据时间戳信息对第二操作系统的系统时间进行同步。
在一个实施例中,第二操作系统在接收到第一操作系统传递的时间戳信息后,对时间戳信息进行验证。第二操作系统在接收到第一操作系统传递的时间同步命令后,使用验证通过后的时间戳信息对第二操作系统的系统时间进行同步。可以理解,第二操作系统可以在判断需要同步系统时间时,才对系统时间进行同步。
在一个实施例中,第二操作系统对系统时间进行同步后,还可以按照预设时钟同步规则,对处理器的实时时钟进行时钟同步。
上述时间同步方法、装置、计算机设备、存储介质和计算机程序产品,通过处理器上运行的第一操作系统获取授时器件提供的串行编码信号。对串行编码信号进行解码得到串行编码信号中单位时间编码帧的时间戳信息。根据所述处理器内部的通信机制,向处理器上运行的第二操作系统传递时间戳信息,向第二操作系统传递解码完单位时间编码帧时触发的时间同步命令。第二操作系统在接收到时间同步命令时,根据时间戳信息对第二操作系统的系统时间进行同步。这样,在解码完一个单位时间编码帧的情况下,便可以通过时间同步命令指示第二操作系统进行时间同步。这样,无需再增设其他硬件设备便可以实现时间同步,相比传统技术中增设专用器件实现时间同步的方法,降低了硬件复杂度。并且,相比传统技术中使用网络进行通讯以同步时钟,通过所述处理器内部的通信机制来进行通信,大大降低了处理延迟,降低了软件的复杂度,提高了时间同步的精准度。
在一个实施例中,单位时间编码帧包括第一预设数量的码元,时间戳信息编码到单位时间编码帧中前第二预设数量的码元中,第二预设数量小于第一预设数量;根据所述处理器内部的通信机制,向处理器上运行的第二操作系统传递时间戳信息;向第二操作系统传递解码完单位时间编码帧时触发的时间同步命令,包括:当解码完单位时间编码帧中前第二预设数量的码元时,得到时间戳信息,根据所述处理器内部的通信机制,向处理器上运行的第二操作系统传递时间戳信息;当解码完单位时间编码帧的第一预设数量的码元时,根据所述处理器内部的通信机制,向第二操作系统传递解码完单位时间编码帧时触发的时间同步命令。
具体地,单位时间编码帧包括第一预设数量的码元。单位时间编码帧中前第二预设数量的码元具有时间戳信息的编码数据,且第二预设数量小于第一预设数量。第一操作系统在接收到单位时间编码帧的第一个码元时,开始对码元的个数进行计数,每处理一个码元则更新计数值。通过计数值判断解码完单位时间编码帧中前第二预设数量的码元,即时确定时间戳信息,根据所述处理器内部的通信机制,向处理器上运行的第二操作系统传递时间戳信息。通过计数值判断解码完单位时间编码帧的第一预设数量的码元,根据所述处理器内部的通信机制,即时向第二操作系统传递解码完单位时间编码帧时触发的时间同步命令。
在本实施例中,通过对所解码的码元数量分别和第二预设数量、第一预设数量做比对,来对应触发传递时间戳信息和传递时间同步指令。这样,不需要增加针对时间点的判断逻辑,而是通过码元的数量来触发执行不同的处理,从而便捷及时地去发送时间戳信息和时间同步指令。
在一个实施例中,单位时间编码帧中前第二预设数量的码元中编码有验证数据,方法还包括:第一操作系统在解码完单位时间编码帧中前第二预设数量的码元时,获得验证数据,并向第二操作系统传递验证数据;第二操作系统接收到验证数据后,使用验证数据对接收到的时间戳信息进行验证;第二操作系统在接收到时间同步命令时,根据时间戳信息对第二操作系统的系统时间进行同步,包括:第二操作系统响应于时间同步命令,使用验证通过后的时间戳信息对第二操作系统的系统时间进行同步。
具体地,单位时间编码帧中前第二预设数量的码元中编码有验证数据和时间戳信息。第一操作系统在解码完单位时间编码帧中前第二预设数量的码元时,获得验证数据和时间戳信息,并向第二操作系统传递验证数据和时间戳信息。第二操作系统接收到验证数据和时间戳信息后,使用验证数据对接收到的时间戳信息进行验证。在验证通过后的情况下,第二操作系统响应于时间同步命令,使用验证通过后的时间戳信息对第二操作系统的系统时间进行同步。可以理解,传递验证数据和时间戳信息可以在一次传输中完成,也可以分为两次传输。
在一个实施中,第二操作系统在中断程序中响应时间同步命令,可以理解,这样加快了针对时间同步命令的处理的及时性,从而提高了系统时间同步的精准性。经测试,本案的系统时间同步精准度能达到纳秒级别。
在本实施例中,在获取到验证数据后,预先使用验证数据对时间戳信息进行验证。这样,在响应于时间同步命令时,可以直接使用验证通过后的时间戳信息对第二操作系统的系统时间进行同步,避免针对时间同步命令的反应时长过长,从而减少不必要的延时,以提高时间同步的精确度。
在一个实施例中,方法还包括:第二操作系统每隔预设周期对处理器的实时时钟进行时间同步;第二操作系统每当监测到关机或重启事件时,即时对处理器的实时时钟进行时间同步。
其中,实时时钟又称RTC(Real_Time Clock)。RTC可以通过集成电路实现。
具体地,第二操作系统在同步系统时间后,还可以每隔预设周期对处理器的实时时钟进行时间同步。比如,每隔5分钟对处理器的实时时钟进行时间同步。第二操作系统每当监测到关机或重启事件时,即时对处理器的实时时钟进行时间同步。
在一个实施中,服务器的RTC通过使用有源晶振来提高实时时钟的稳定性。
在本实施例中,通过预设周期来对时钟进行同步,而不是实时同步,从而降低硬件损耗。并且,在第二操作系统执行关机或重启时,即时同步实时时钟,进一步提高了实时时钟的准确性。
在一个实施例中,第一操作系统为处理器具有可信执行环境的操作系统;第二操作系统为处理器具有富执行环境的操作系统;根据所述处理器内部的通信机制,向第二操作系统传递解码完单位时间编码帧时触发的时间同步命令包括:通过可信执行环境和富执行环境之间符合安全标准的中断通信方式,向第二操作系统传递解码完单位时间编码帧时触发的时间同步命令。
其中,可信执行环境(Trusted Execution Environment)可以保证不被常规操作系统干扰的计算,因此称为”可信”。通常使用可信执行环境来进行数字版权管理(DRM:Digital Rights Management)、移动支付等。富执行环境(Rich Execution Environment)是设备通用的环境,运行通用的OS(Operating System),例如Android,IOS,linux系统等。
具体地,第一操作系统为处理器具有可信执行环境的操作系统;第二操作系统为处理器具有富执行环境的操作系统。第一操作系统可以通过可信执行环境和富执行环境之间符合安全标准的中断通信方式,向第二操作系统传递解码完单位时间编码帧时触发的时间同步命令。
在一个实施例中,具有可信执行环境的操作系统可以为optee操作系统(Open-sourcePortableTrustedExecutionEnvironmentOS,开源便携可信执行环境操作系统)。具有富执行环境的操作系统可以为linux操作系统。安全的optee系统和Linux系统相互隔离,可以在两个系统之间共享内存完成数据共享。
在一个实施例中,optee操作系统和linux操作系统之间符合安全标准的中断通信方式可以通过ATF中的SMC指令来实现。其中,ATF
(Arm Trusted Firmware)是arm处理器的可信系统固件,提供了安全世界的参考实现软件。SMC指令是arm处理器的一条同步异常指令,SMC相关的处理为ATF中的一部分。具有可信执行环境的操作系统通过调用SMC指令,可以触发CPU进入具有富执行环境的中断程序中,执行完中断程序后,再次回到可信执行环境的操作系统中。
在本实施例中,通过使用具有可信执行环境操心系统来进行解码,从而提高了生成的时间戳信息的安全性;通过使用符合安全标准的通信方式进行通信,从而提高了传送时间戳信息的安全性,从而避免时间被篡改导致系统的异常。
在一个实施例中,根据所述处理器内部的通信机制,向处理器上运行的第二操作系统传递时间戳信息包括:在获得时间戳信息时,通过第一操作系统和第二操作系统之间的中断通信方式,即时向处理器的第二操作系统传递时间戳信息;或者,在获得时间戳信息时,即时向处理器的第一操作系统和第二操作系统间的共享内存写入时间戳信息,使得第二操作系统从共享内存读取时间戳信息;向第二操作系统传递解码完单位时间编码帧时触发的时间同步命令包括:通过第一操作系统和第二操作系统之间的中断通信方式,向处理器的第二操作系统传递解码完单位时间编码帧时触发的时间同步命令。
具体地,传递时间戳信息的方式可以有两种。在获得时间戳信息时,可以通过第一操作系统和第二操作系统之间的中断通信方式,即时向处理器的第二操作系统传递时间戳信息;即,可以同样使用通过ATF中的SMC指令来实现时间戳信息的传输。或者,在获得时间戳信息时,即时向处理器的第一操作系统和第二操作系统间的共享内存写入时间戳信息,使得第二操作系统从共享内存读取时间戳信息。第一操作系统还需要通过第一操作系统和第二操作系统之间的中断通信方式,向处理器的第二操作系统传递解码完单位时间编码帧时触发的时间同步命令。
在一个实施例中,第一操作系统将时间戳信息写入共享内存后,可以使用中断通信方式,即,可以同样使用通过ATF中的SMC指令来通知第二操作系统处理共享内存。可以理解,第二操作系统还可以通过识别共享内存的数据是否更新,来触发处理共享内存的数据。
在一个实施例中,可以使用寄存器来读写时间戳信息。具体地,在不使用共享内存而是使用中断通信方式的情况下,第一操作系统(如optee操作系统)可以在调用SMC指令时,将时间戳信息写入相关寄存器中,第二操作系统(如linux操作系统)的中断程序(又称SMC处理程序)可以通过读取相关寄存器值,来获取时间戳信息。比如,可以读取X1~X4寄存器值来获取时间戳信息。可以理解,通过写和读寄存器值,提高了时间戳信息传输效率。
在一个实施例中,第一和第二操作系统之间的共享内存字段包括定义如下:
其中,header和tail分别定义为“0x55”、“0xff”,可以用于确保数据没有被其它无关数据覆盖。data数组存放时间戳相关信息:秒、分、时、天、年。第一操作系统对码元进行解码后,将相关数据转换成十进制字符表示,主要包括:秒、分、时、天、年重要时间信息,闰秒相关字段,时间质量,校验位,时间戳相关数据存储于data数组中。info存放一个字节,用二进制数表示,闰秒位占用7~8两位,时间质量占用3~6共四位,校验位为第低位,为单位时间编码帧携带的奇偶校验的第一校验值,其中第2位预留。pc为奇偶校验,是第一操作系统对单位时间编码帧进行奇偶校验后得到的第二校验值。针对IRIG-B码,前面76帧数据已经包括时间戳信息、校验位、闰秒和时间质量等,第一操作系统可以解码完76个码元后将时间戳信息和校验信息等数据按照该结构体的格式写入到共享内存中。第二操作系统从共享内存获取该结构体对应的数据时,解析出校验位、时间质量等数据,并进行验证处理。具体地,当时间质量表征时间戳信息时间精度在预设范围内,且基于校验位确定时间戳信息准确时,验证通过;当时间质量数据表征时间戳信息时间的时间精度超过预设范围,或者基于校验位确定时间戳信息错误时,验证不通过。
在一个实施例中,第二操作系统使用验证数据对接收到的时间戳信息进行验证的过程包括:第二操作系统可以将第一校验值和第二校验值进行比对,若两个值相同,则可以确定第一操作系统得到的时间戳信息是准确的,若两个值不同,则可以确定第一操作系统得到的时间戳信息是不准确的。
在本实施例中,通过共享内存方式来传递时间戳信息,降低了数据传输延迟。通过中断通信方式来传递时间戳信息和时间同步命令,提高了处理的实时性,从而提高了时间同步的精确度。
在一个实施例中,方法还包括:在第二操作系统提供的面向用户层的控制接口被调用的情况下,第二操作系统向第一操作系统传递调用参数,以触发第一操作系统按照调用参数控制对串行编码信号的解码。
具体地,第二操作系统提供的面向用户层的控制接口。在该控制接口被调用的情况下,第二操作系统向第一操作系统传递调用参数,以触发第一操作系统按照调用参数控制对串行编码信号的解码,比如,可以控制开启、关闭和使能解码相关处理。可以理解,第二操作系统向第一操作系统传递调用参数,可以通过中断通信方式实现。
在一个实施例中,在第二操作系统提供的面向用户层的时钟控制接口被调用的情况下,第二操心系统可以按照调用参数控制是否自动同步时钟。
在本实施例中,通过提供面向用户层的控制接口,来控制对串行编码信号的解码,控制实时时钟的同步,从而提高了操作的灵活性。
在一个实施例中,如图3所示,展示了时间同步方法的原理示意图。具体对地,处理器上运行有第一操作系统和第二操作系统。授时器件发送串行编码信号到串口上,第一操作系统可以从串口获取授时器件提供的串行编码信号。
第一操作系统对串行编码信号进行解码得到串行编码信号中单位时间编码帧的时间戳信息,将该时间戳信息写入第一操作系统和第二操心系统的共享内存中。第一操作系统向第二操作系统传递解码完单位时间编码帧时触发的时间同步命令。第二操作系统在接收到时间同步命令时,根据共享内存中的时间戳信息对第二操作系统的系统时间进行同步。
在一个实施例中,如图4所示,展示了时间同步方法的流程示意图。第一操作系统可以为处理器具有可信执行环境的操作系统;第二操作系统可以为处理器具有富执行环境的操作系统。两个操作系统之间的中断通信方式可以是可信执行环境和富执行环境之间符合安全标准的中断通信方式。具体地,第一操作系统在解析到第一码元时,开始计数,每解码一个接收到的码元,则更新计数值。由于单位时间编码帧包括第一预设数量的码元,时间戳信息编码到单位时间编码帧中前第二预设数量的码元中。当解码完单位时间编码帧中前第二预设数量的码元时,得到时间戳信息,往共享内存写入时间戳信息,以向第二操作系统传递时间戳信息。第一操作系统在解码完单位时间编码帧中前第二预设数量的码元时,还可以获得验证数据,并向第二操作系统传递验证数据。当解码完单位时间编码帧的第一预设数量的码元时,向第二操作系统传递解码完单位时间编码帧时触发的时间同步命令,并对计数值清0,返回重新接收新的单位时间编码帧的第一个码元。第二操作系统启动内核实时线程,并通过该线程从共享内存中读取新的时间戳信息和验证数据,使用验证数据对接收到的时间戳信息进行验证。第二操作系统在中断程序中响应时间同步命令,并在验证通过且需要对系统时间进行同步的情况下,使用验证通过后的时间戳信息对第二操作系统的系统时间进行同步。第二操作系统还可以每隔预设周期对处理器的实时时钟进行时间同步,且每当监测到关机或重启事件时,即时对处理器的实时时钟进行时间同步。第二操作系统还可以提供面向用户层的控制接口,来控制对串行编码信号的解码、控制是否自动同步时钟。
应该理解的是,虽然本申请部分实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的时间同步方法的时间同步装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个时间同步装置实施例中的具体限定可以参见上文中对于时间同步方法的限定,在此不再赘述。
在一个实施例中,如图5所示,提供了一种时间同步装置500,包括:第一模502和第二模块504,其中:
第一模块502,用于指示处理器上运行的第一操作系统获取授时器件提供的串行编码信号;对串行编码信号进行解码得到串行编码信号中单位时间编码帧的时间戳信息;向处理器上运行的第二操作系统传递时间戳信息;向第二操作系统传递解码完单位时间编码帧时触发的时间同步命令。
第二模块504,用于指示第二操作系统在接收到时间同步命令时,根据时间戳信息对第二操作系统的系统时间进行同步。
在一个实施例中,单位时间编码帧包括第一预设数量的码元,时间戳信息编码到单位时间编码帧中前第二预设数量的码元中,第二预设数量小于第一预设数量;第一模块502还用于当解码完单位时间编码帧中前第二预设数量的码元时,得到时间戳信息,向处理器上运行的第二操作系统传递时间戳信息;当解码完单位时间编码帧的第一预设数量的码元时,向第二操作系统传递解码完单位时间编码帧时触发的时间同步命令。
在一个实施例中,单位时间编码帧中前第二预设数量的码元中编码有验证数据,第一模块502还用于指示第一操作系统解码完单位时间编码帧中前第二预设数量的码元时,获得验证数据,并向第二操作系统传递验证数据;第二操作系统接收到验证数据后,使用验证数据对接收到的时间戳信息进行验证。第二模块504还用于通过第二操作系统响应于时间同步命令,使用验证通过后的时间戳信息对第二操作系统的系统时间进行同步。
在一个实施例中,第二模块504还用于指示第二操作系统每隔预设周期对处理器的实时时钟进行时间同步;指示第二操作系统每当监测到关机或重启事件时,即时对处理器的实时时钟进行时间同步。
在一个实施例中,第一操作系统为处理器具有可信执行环境的操作系统;第二操作系统为处理器具有富执行环境的操作系统;第一模块502还用于通过可信执行环境和富执行环境之间符合安全标准的中断通信方式,向第二操作系统传递解码完单位时间编码帧时触发的时间同步命令。
在一个实施例中,第一模块502还用于在获得时间戳信息时,通过第一操作系统和第二操作系统之间的中断通信方式,即时向处理器的第二操作系统传递时间戳信息;或者,在获得时间戳信息时,即时向处理器的第一操作系统和第二操作系统间的共享内存写入时间戳信息,使得第二操作系统从共享内存读取时间戳信息。第一模块502还用于通过第一操作系统和第二操作系统之间的中断通信方式,向处理器的第二操作系统传递解码完单位时间编码帧时触发的时间同步命令。
在一个实施例中,第二模块504还用于在第二操作系统提供的面向用户层的控制接口被调用的情况下,第二操作系统向第一操作系统传递调用参数,以触发第一操作系统按照调用参数控制对串行编码信号的解码。
上述时间同步装置,通过处理器上运行的第一操作系统获取授时器件提供的串行编码信号。对串行编码信号进行解码得到串行编码信号中单位时间编码帧的时间戳信息。通过所述处理器内部的通信机制来进行通信,向处理器上运行的第二操作系统传递时间戳信息;向第二操作系统传递解码完单位时间编码帧时触发的时间同步命令。第二操作系统在接收到时间同步命令时,根据时间戳信息对第二操作系统的系统时间进行同步。这样,在解码完一个单位时间编码帧的情况下,便可以通过时间同步命令指示第二操作系统进行时间同步。这样,无需再增设其他硬件设备便可以实现时间同步,相比传统技术中增设专用器件实现时间同步的方法,降低了硬件复杂度。并且,相比传统技术中使用网络进行通讯以同步时钟,通过所述处理器内部的通信机制来进行通信,大大降低了处理延迟,降低了软件的复杂度,提高了时间同步的精准度。
关于上述时间同步装置的具体限定可以参见上文中对于上述时间同步方法的限定,在此不再赘述。上述时间同步装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种时间同步方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种时间同步方法,其特征在于,所述方法包括:
处理器上运行的第一操作系统获取授时器件提供的串行编码信号;对所述串行编码信号进行解码得到所述串行编码信号中单位时间编码帧的时间戳信息;根据所述处理器内部的通信机制,向所述处理器上运行的第二操作系统传递所述时间戳信息,向所述第二操作系统传递解码完所述单位时间编码帧时触发的时间同步命令;
所述第二操作系统在接收到所述时间同步命令时,根据所述时间戳信息对所述第二操作系统的系统时间进行同步。
2.根据权利要求1所述的方法,其特征在于,所述单位时间编码帧包括第一预设数量的码元,所述时间戳信息编码到所述单位时间编码帧中前第二预设数量的码元中,所述第二预设数量小于所述第一预设数量;
所述根据所述处理器内部的通信机制,向所述处理器上运行的第二操作系统传递所述时间戳信息;向所述第二操作系统传递解码完所述单位时间编码帧时触发的时间同步命令,包括:
当解码完所述单位时间编码帧中前第二预设数量的码元时,得到时间戳信息,根据所述处理器内部的通信机制,向所述处理器上运行的第二操作系统传递所述时间戳信息;
当解码完所述单位时间编码帧的第一预设数量的码元时,根据所述处理器内部的通信机制,向所述第二操作系统传递解码完所述单位时间编码帧时触发的时间同步命令。
3.根据权利要求2所述的方法,其特征在于,所述单位时间编码帧中前第二预设数量的码元中编码有验证数据,所述方法还包括:
第一操作系统在解码完所述单位时间编码帧中前第二预设数量的码元时,获得所述验证数据,并向所述第二操作系统传递所述验证数据;
所述第二操作系统接收到所述验证数据后,使用所述验证数据对接收到的所述时间戳信息进行验证;
所述第二操作系统在接收到所述时间同步命令时,根据所述时间戳信息对所述第二操作系统的系统时间进行同步,包括:
所述第二操作系统响应于所述时间同步命令,使用验证通过后的所述时间戳信息对所述第二操作系统的系统时间进行同步。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第二操作系统每隔预设周期对所述处理器的实时时钟进行时间同步;
所述第二操作系统每当监测到关机或重启事件时,即时对所述处理器的所述实时时钟进行时间同步。
5.根据权利要求1所述的方法,其特征在于,所述第一操作系统为所述处理器具有可信执行环境的操作系统;所述第二操作系统为所述处理器具有富执行环境的操作系统;所述根据所述处理器内部的通信机制,向所述第二操作系统传递解码完所述单位时间编码帧时触发的时间同步命令包括:
通过所述可信执行环境和所述富执行环境之间符合安全标准的中断通信方式,向所述第二操作系统传递解码完所述单位时间编码帧时触发的时间同步命令。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述根据所述处理器内部的通信机制,向所述处理器上运行的第二操作系统传递所述时间戳信息包括:
在获得所述时间戳信息时,通过所述第一操作系统和第二操作系统之间的中断通信方式,即时向所述处理器的第二操作系统传递所述时间戳信息;或者,在获得所述时间戳信息时,即时向所述处理器的第一操作系统和第二操作系统间的共享内存写入所述时间戳信息,使得所述第二操作系统从所述共享内存读取所述时间戳信息;
所述向所述第二操作系统传递解码完所述单位时间编码帧时触发的时间同步命令包括:
通过所述第一操作系统和第二操作系统之间的中断通信方式,向所述处理器的第二操作系统传递解码完所述单位时间编码帧时触发的时间同步命令。
7.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
在所述第二操作系统提供的面向用户层的控制接口被调用的情况下,所述第二操作系统向所述第一操作系统传递调用参数,以触发所述第一操作系统按照所述调用参数控制对所述串行编码信号的解码。
8.一种时间同步装置,其特征在于,所述装置包括:
第一模块,用于指示处理器上运行的第一操作系统获取授时器件提供的串行编码信号;对所述串行编码信号进行解码得到所述串行编码信号中单位时间编码帧的时间戳信息;根据所述处理器内部的通信机制,向所述处理器上运行的第二操作系统传递所述时间戳信息,向所述第二操作系统传递解码完所述单位时间编码帧时触发的时间同步命令;
第二模块,用于指示所述第二操作系统在接收到所述时间同步命令时,根据所述时间戳信息对所述第二操作系统的系统时间进行同步。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210600234.4A CN115102653A (zh) | 2022-05-30 | 2022-05-30 | 时间同步方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210600234.4A CN115102653A (zh) | 2022-05-30 | 2022-05-30 | 时间同步方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115102653A true CN115102653A (zh) | 2022-09-23 |
Family
ID=83289792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210600234.4A Pending CN115102653A (zh) | 2022-05-30 | 2022-05-30 | 时间同步方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115102653A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115642978A (zh) * | 2022-10-14 | 2023-01-24 | 上海飞机制造有限公司 | 一种系统时钟同步方法、装置、设备及存储介质 |
CN117896035A (zh) * | 2024-03-14 | 2024-04-16 | 杭州义益钛迪信息技术有限公司 | 边缘控制器的数据获取方法和设备 |
-
2022
- 2022-05-30 CN CN202210600234.4A patent/CN115102653A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115642978A (zh) * | 2022-10-14 | 2023-01-24 | 上海飞机制造有限公司 | 一种系统时钟同步方法、装置、设备及存储介质 |
CN117896035A (zh) * | 2024-03-14 | 2024-04-16 | 杭州义益钛迪信息技术有限公司 | 边缘控制器的数据获取方法和设备 |
CN117896035B (zh) * | 2024-03-14 | 2024-06-04 | 杭州义益钛迪信息技术有限公司 | 边缘控制器的数据获取方法和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115102653A (zh) | 时间同步方法、装置、计算机设备和存储介质 | |
CN110750592B (zh) | 数据同步的方法、装置和终端设备 | |
CN110597814B (zh) | 结构化数据的序列化、反序列化方法以及装置 | |
CN109189749B (zh) | 文件同步方法及终端设备 | |
CN111209343B (zh) | 节点数据同步方法、装置、设备以及存储介质 | |
CN112527414B (zh) | 一种基于前端的数据处理方法、装置、设备及存储介质 | |
WO2021164462A1 (zh) | 一种数据加密方法、数据解密方法、计算机设备和介质 | |
CN111563016A (zh) | 日志采集分析方法、装置、计算机系统及可读存储介质 | |
CN110061844B (zh) | 基于区块链的电子签名方法、电子装置及可读存储介质 | |
CN112905668B (zh) | 基于分布式数据流处理引擎的数据库导数方法、设备和介质 | |
CN117632166A (zh) | 文件烧录方法、装置、设备以及存储介质 | |
CN112883369A (zh) | 一种可信虚拟化系统 | |
CN117474124A (zh) | 一种基于联邦学习的模型训练方法、装置、设备及介质 | |
CN110990229A (zh) | 一种系统信息采集方法及装置 | |
CN111310206A (zh) | 一种数据加密方法、节点设备及存储介质 | |
CN113900855B (zh) | 一种交换机异常状态的主动热启动方法、系统及装置 | |
CN104536892A (zh) | 一种软件在线调试方法和系统 | |
CN111459899B (zh) | 日志共享方法、装置及终端设备 | |
CN115202946A (zh) | 自动化测试方法、装置、设备、存储介质及程序产品 | |
US11128480B2 (en) | Information distribution device, distribution target device, information distribution system, information distribution method, and non-transitory computer-readable medium | |
CN115525935B (zh) | 多安全芯片的并发数据运算方法、装置、设备及存储介质 | |
CN108777601B (zh) | 一种时钟同步方法、装置及网络设备 | |
CN117992126B (zh) | 一种基于软件lockstep的处理器协同工作方法及系统 | |
CN114969211B (zh) | 一种基于区块链的民航数据处理系统 | |
CN116578446B (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 |