时间校正方法及装置与流程

文档序号:38026805发布日期:2024-05-17 13:02阅读:10来源:国知局
时间校正方法及装置与流程

本技术涉及通信领域,尤其涉及时间校正方法及装置。


背景技术:

1、在以虚拟化技术支持的嵌入式系统里,各个虚拟机执行着各自的功能任务,相互之间互不干涉,从而能够确保某个虚拟机出现故障的时候不会影响其他虚拟机的正常运行。但虚拟机之间需要进行频繁的实时数据传输来进行特定的复杂功能操作。例如,在汽车中,刹车系统(虚拟机1)需要根据雷达系统(虚拟机2)获取到车距等数据来判断当前是否刹车。

2、虚拟机之间的实时通信功能需要保证消息传输过程的低时延性及高可靠性。部分时间精度要求高的应用场景中,例如先进驾驶辅助系统(advanced driver assistancesystem,adas)应用场景,要求虚拟机之间的时间误差是不允许低于微秒级别的。因此,需要对主机与虚拟机之间进行时间同步操作,将两者之间的时间偏差降低到微秒级别,以满足多虚拟机之间实时通信的需求。然而,现有的时间同步方法精度较低。


技术实现思路

1、本技术提供一种时间校正方法及装置,用于解决现有的时间同步方法精度较低的问题。

2、为达到上述目的,本技术采用如下技术方案:

3、第一方面,提供了一种时间校正方法,应用于计算设备的从时钟模块,该计算设备还包括主时钟模块,该方法包括:

4、获取主时钟模块和从时钟模块至少两次互相发送时间消息时,主时钟模块和从时钟模块分别收发时间消息的多个时间戳;主时钟模块与从时钟模块通过第一通道收发时间消息;第一通道通过主时钟模块安装的尤内克斯域套接字文件与从时钟模块安装的虚拟串口之间的映射实现,虚拟串口由主时钟模块在从时钟模块中启动virtio驱动得到;根据多个时间戳,确定从时钟模块相对主时钟模块的时间误差;根据时间误差校正从时钟模块的系统时间。

5、第一方面中,从时钟模块与主时钟模块通过由尤内克斯域套接字文件与虚拟串口之间的映射构成的第一通道收发时间消息,进而使从时钟模块获取到多个时间戳。然后从时钟模块根据多个时间戳确定从时钟模块相对主时钟模块的时间误差,再根据时间误差校正从时钟模块的系统时间。采用virtio驱动构建第一通道,而virtio是一种基于i/o虚拟化的共享物理内存通信方式,不依赖网络通信,无需进行协议处理,通过文件映射实现数据复制的作用,减少了从时钟模块与主时钟模块收发时间消息的负载消耗以及网络延迟带来的影响,进而实现资源层面轻量化的时间校正,能够满足资源受限的虚拟化平台的时间校正要求。并且将从时钟模块与主时钟模块之间的时间误差从毫秒级别降低到微秒级别。

6、在一种可能的实现中,获取多个时间戳包括:

7、接收第一时间消息,第一时间消息携带表征主时钟模块发送第一时间消息的时刻的第一时间戳;记录表征主时钟模块接收第一时间消息的时刻的第二时间戳;响应于第一时间消息,向主时钟模块发送第二时间消息,并记录表征从时钟模块发送第二时间消息的时刻的第三时间戳;接收主时钟模块响应于第二时间消息向从时钟模块发送的第三时间消息,第三时间消息包括表征主时钟模块接收第二时间消息的时间的第四时间戳。

8、在该实现中,通过设计时间消息的应答机制使得从时钟模块能够获取到多个时间戳,获取到的多个时间戳准确性较高。

9、在一种可能的实现中,主时钟模块为主操作系统的时钟模块,从时钟模块为从操作系统中的时钟模块,其中,主操作系统是计算设备的操作系统,从操作系统是运行于计算设备的虚拟机的操作系统。

10、在一种可能的实现中,从时钟模块的启动配置可扩展标记语言文件中设置有virtio serial字段和尤内克斯字段;虚拟串口由主时钟模块根据添加了virtio serial字段和尤内克斯字段的启动配置可扩展标记语言文件,在从时钟模块中启动virtio驱动得到;其中,一个虚拟串口对应一个尤内克斯域套接字文件。

11、在该实现中,采用virtio驱动构建第一通道,而virtio是一种基于i/o虚拟化的共享物理内存通信方式,不依赖网络通信,无需进行协议处理,通过文件映射实现数据复制的作用,减少了从时钟模块与主时钟模块收发时间消息的负载消耗以及网络延迟带来的影响,进而实现资源层面轻量化的时间校正,能够满足资源受限的虚拟化平台的时间校正要求。

12、在一种可能的实现中,根据时间误差校正从时钟模块的系统时间,包括:

13、将时间误差输入预设计算机函数以校正从时钟模块的系统时间。

14、在该实现中,通过预设计算机函数基于时间误差校正从时钟模块的系统时间,校正效率较高。

15、在一种可能的实现中,在从时钟模块根据时间误差校正从时钟模块的时间之后,方法还包括:

16、在预设计算机函数输出的结果表征从时钟模块的系统时间校正失败的情况下,重新获取多个时间戳,以重新校正所述从时钟模块的系统时间。

17、在该实现中,设计了一种从时钟模块的系统时间校正失败情况下的再校正机制,能够在从时钟模块的系统时间校正失败的情况下,重新获取多个时间戳,以重新校正所述从时钟模块的系统时间,进而提升时间校正精度。

18、第二方面,提供了一种时间校正方法,应用于计算设备,计算设备包括主时钟模块和从时钟模块,方法应用于主时钟模块,方法包括:

19、通过第一通道向从时钟模块发送至少两个时间戳,时间戳用于校正获取到至少两个时间戳的从时钟模块的系统时间;至少两个时间戳包括表征主时钟模块向从时钟模块发送时间消息的时刻的时间戳,以及包括表征主时钟模块从从时钟模块接收到时间消息的时刻的时间戳;第一通道包括主时钟模块安装的尤内克斯域套接字文件与从时钟模块安装的虚拟串口之间的映射,虚拟串口由主时钟模块在从时钟模块中启动virtio驱动得到。

20、第二方面中,从时钟模块与主时钟模块通过由尤内克斯域套接字文件与虚拟串口之间的映射构成的第一通道收发时间消息,进而使从时钟模块获取到多个时间戳。采用virtio驱动构建第一通道,而virtio是一种基于i/o虚拟化的共享物理内存通信方式,不依赖网络通信,无需进行协议处理,通过文件映射实现数据复制的作用,减少了从时钟模块与主时钟模块收发时间消息的负载消耗以及网络延迟带来的影响,进而实现资源层面轻量化的时间校正,能够满足资源受限的虚拟化平台的时间校正要求。

21、在一种可能的实现中,通过第一通道向从时钟模块发送至少两个时间戳,包括:向从时钟模块发送第一时间消息,第一时间消息携带表征主时钟模块向从时钟模块发送第一时间消息的时刻的时间戳;接收来自从时钟模块的第二时间消息,第二时间消息是从时钟模块响应于第一时间消息向主时钟模块发送的时间消息;响应于第二时间消息,向从时钟模块发送第三时间消息,第三时间消息包括表征主时钟模块接收第二时间消息的时刻的时间戳。

22、在该实现中,通过设计时间消息的应答机制使得从时钟模块能够获取到多个时间戳,获取到的多个时间戳准确性较高。

23、在一种可能的实现中,主时钟模块为主操作系统的时钟模块,从时钟模块为从操作系统中的时钟模块,其中,主操作系统是计算设备的操作系统,从操作系统是运行于计算设备的虚拟机的操作系统。

24、在一种可能的实现中,从时钟模块的启动配置可扩展标记语言文件中设置有virtio serial字段和尤内克斯字段;虚拟串口由主时钟模块根据添加了virtio serial字段和尤内克斯字段的启动配置可扩展标记语言文件,在从时钟模块中启动virtio驱动得到;其中,一个虚拟串口对应一个尤内克斯域套接字文件。

25、在该实现中,采用virtio驱动构建第一通道,而virtio是一种基于i/o虚拟化的共享物理内存通信方式,不依赖网络通信,无需进行协议处理,通过文件映射实现数据复制的作用,减少了从时钟模块与主时钟模块收发时间消息的负载消耗以及网络延迟带来的影响,进而实现资源层面轻量化的时间校正,能够满足资源受限的虚拟化平台的时间校正要求。

26、第三方面,本技术提供一种时间校正装置,该时间校正装置可以为从时钟模块或者从时钟模块中的芯片或者片上系统。该时间校正装置可以实现上述第一方面或者第一方面可能的设计中从时钟模块所执行的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。

27、第四方面,本技术提供一种时间校正装置,该时间校正装置可以为主时钟模块或者主时钟模块中的芯片或者片上系统。该时间校正装置可以实现上述第二方面或者第二方面可能的设计中主时钟模块所执行的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。

28、第五方面,本技术提供一种时间校正装置,时间校正装置包括处理器,处理器用于支持时间校正装置执行第一方面或第二方面的方法。进一步的,该时间校正装置还可以包括存储器,该存储器存储有计算机指令,当处理器可以运行该计算机指令执行第一方面或者第二方面的方法。

29、第六方面,本技术提供一种计算机可读存储介质,计算机可读存储介质存储计算机指令,当计算机指令运行时,第一方面或第二方面的方法被执行。

30、第七方面,本技术提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述第一方面或第二方面的方法。

31、第八方面,本技术提供一种芯片,该芯片包括处理器和收发器,处理器和收发器用于支持时间校正装置执行第一方面或第二方面的方法。

32、第九方面,本技术提供一种时间校正系统,该时间校正系统包括主时钟模块和从时钟模块;其中,主时钟模块,用于执行第二方面的方法;从时钟模块,用于执行第一方面的方法。

33、其中,本技术中第三方面至第九方面描述的有益效果,可以对应参考第一方面或第二方面的有益效果分析,此处不再赘述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1