一种基于软硬件协同的多时钟域切换方法与流程

文档序号:33296738发布日期:2023-02-28 21:45阅读:23来源:国知局
一种基于软硬件协同的多时钟域切换方法与流程

1.本发明涉及通信技术领域,特别涉及一种基于软硬件协同的多时钟域切换方法。


背景技术:

2.tsn网络可能用在自动驾驶或者工业网络,当时间同步精度不高,可能会出现两方处理突发事件存在时间差,例如自动驾驶发现前方路况不好,减速系统反应慢了,危险会很大。在tsn网络中,时间同步是通过带有时间信息的报文进行同步,当其中一个时钟域同步报文因为某种原因导致不能继续保持时钟同步的情况,可能设备因为某种事件导致不能正常发送时间同步报文,或者丢弃这类报文,需要有一个更安全的机制来保证时间高精度同步。
3.假设第一时间计算模块和第二时间计算模块分别代表两个时钟域的时间,现有技术中,如果此类事件发生,上层控制系统可以很快获取到问题事件,但是需要检查流程,然后再做处理,这个流程会比较慢;如果第一时间计算模块在规定时间内没有接收到时间同步报文,直接切换到第二时间计算模块,这样时间精度是不准确的;因此,如果此类事件发生,需要有能够临时处理能力,给控制系统时间来应对此事件。


技术实现要素:

4.针对现有技术的不足,本发明提供了一种基于软硬件协同的多时钟域切换方法,该方法流程块,时间精度高。
5.本发明通过以下技术方案实现:
6.一种基于软硬件协同的多时钟域切换方法,包括以下步骤:
7.将时间同步报文做成至少两个虚拟通道,每个虚拟通道代表一个时钟域;
8.当检测到作为输出的主时钟域的时间同步报文丢失时,将主时钟域中的当前时间同步到备份时钟域,同时调整备份时钟域的步进,使得备份时钟域和主时钟域同步;
9.控制信号切换,选择备份时钟域的时间进行输出。
10.进一步的,所述时钟域内具有时间计算模块,所述时间计算模块用于接收时间同步报文,结合当前时间计算出最终的输出时间。
11.进一步的,所述时间计算模块为比例积分控制器,所述比例积分控制器可以保持所述时钟域长期趋于稳定。
12.进一步的,所述步骤:当检测到作为输出的主时钟域的时间同步报文丢失时,将主时钟域中的当前时间同步到备份时钟域,同时调整备份时钟域的步进,使得备份时钟域和主时钟域同步,具体包括以下步骤:
13.当软件系统检测到作为输出的主时钟域的时间同步报文丢失时,做出主时钟域中第一时间计算模块出现故障的判断;
14.将主时钟域中第一时间计算模块的当前时间同步到备份时钟域中的第二时间计算模块;
15.通过软件系统计算第一时间计算模块和第二时间计算模块中存在的步进差值,并调整第二时间计算模块的步进,使得备份时钟域和主时钟域同步。
16.进一步的,所述步进为每个时钟周期增加的时间。
17.进一步的,所述步骤:控制信号切换,选择备份时钟域的时间进行输出,具体包括:
18.当第二时间计算模块的完成步进的同步后,硬件通过软件系统配置的控制信号将时钟域切换到第二时间计算模块。
19.相比于现有技术,本发明的优点在于:
20.1、当软件系统检测到作为输出的主时钟域的时间同步报文丢失时,将主时钟域中第一时间计算模块的当前时间同步到备份时钟域中的第二时间计算模块,并且通过软件系统计算第一时间计算模块和第二时间计算模块中存在的步进差值,并调整第二时间计算模块的步进,使得备份时钟域和主时钟域同步,控制信号切换,选择备份时钟域的时间进行输出,该过程通过软硬件协同的方法迅速切换到另一时钟域,流程块且保证时间依然是高精度。
附图说明
21.图1为本发明一实施例的一种基于软硬件协同的多时钟域切换方法的流程图;
22.图2为本发明一实施例的流程框图。
具体实施方式
23.以下结合较佳实施例及其附图对发明技术方案作进一步非限制性的详细说明。在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
24.如图1和图2所示,本发明一实施例的一种基于软硬件协同的多时钟域切换方法,包括以下步骤:
25.s1:将时间同步报文做成至少两个虚拟通道,每个虚拟通道代表一个时钟域。
26.其中,时钟域内具有时间计算模块,所述时间计算模块用于接收时间同步报文,结合当前时间计算出最终的输出时间。时间计算模块为比例积分控制器,多时钟域会带来时间上的延迟,也就会出现每个时间计算模块之间有微小偏差,通过比例积分控制器可以保持每个时间计算模块长期趋于稳定,通过调节比例系数和积分系数计算得到pi增量,然后输出最终的time值。
27.本实施例中,假设将时间同步报文做成两个虚拟通道,每个虚拟通道代表一个时钟域,分别为主时钟域和备份时钟域。系统一开始选择主时钟域作为同步时钟,出现故障时选用备份时钟域作为同步时钟。
28.s2:当检测到作为输出的主时钟域的时间同步报文丢失时,将主时钟域中的当前时间同步到备份时钟域,同时调整备份时钟域的步进,使得备份时钟域和主时钟域同步。
29.s20:当软件系统检测到作为输出的主时钟域的时间同步报文丢失时,做出主时钟域中第一时间计算模块出现故障的判断。
30.具体的,当软件系统检测到接收不到同步报文时,判断第一时间计算模块出现故障,此时需要启动备用系统rtc2。
31.本实施例中,主时钟域中有第一时间计算模块,备份时钟域中有第二时间计算模块,假设第一时间计算模块出现了故障,故障来自外部,例如第一时间计算模块没有在规定时间接收到的时间同步报文,则主时钟域出现故障。
32.s21:将主时钟域中第一时间计算模块的当前时间同步到备份时钟域中的第二时间计算模块。
33.本实施例中,将出现故障前,其中的第一时间计算模块的最终时间复制到第二时间计算模块。最终时间包括8bit秒时间、32bit纳秒时间,26bit小数纳秒时间。
34.s22:通过软件系统计算第一时间计算模块和第二时间计算模块中存在的步进差值,并调整第二时间计算模块的步进,使得备份时钟域和主时钟域同步。
35.其中,步进指的是每个时钟周期增加的时间。
36.第一时间计算模块与第二时间计算模块为两套完全相同的硬件系统,互为备份。第一时间计算模块正常运行时,通过软件算法计算得到其具体步长,使得第一时间计算模块在每个时钟进行步进值的累加,累加值表示第一时间计算模块计算时间,通过发送的同步报文,完成网络系统的同步。系统正常运行时,第一时间计算模块和第二时间计算模块各自运行,但是两个系统所处的环境存在差异,如温度,导致两个系统通过软件计算得到的步进存在一定差值。因此不能直接切换到第二时间计算模块,需要将第二时间计算模块的时钟同步到第一时间计算模块,使系统在无感知的情况下完成切换。
37.例如当需要切换时第一时间计算模块中代表时间的累加器为10000,第二时间计算模块中代表时间的累加器为8000,软件系统通过计算差值并调整第二时间计算模块的步进,使得第二时间计算模块中的累加器尽快的向第一时间计算模块靠近。
38.s3:控制信号切换,选择备份时钟域的时间进行输出。
39.当第二时间计算模块的完成步进的同步后,硬件通过软件系统配置的控制信号将时钟域切换到第二时间计算模块,最终完成系统的高精度同步切换。
40.具体的,控制信号切换,通过数据选择器选择正常接收时间同步报文的时间计算模块的输出时间。对于两个时钟域的时间计算模块,相当于一个控制信号为0是选择第一时间计算模块,出现故障之后,控制信号变为1,开始选择第二时间计算模块。
41.本发明中,当某一个时钟域的时间同步报文丢失情况下,能够快速并且高精度的切换时间计算模块,在备份时钟域依然维持时间高精度同步,不需要上层控制系统立即响应来处理第一个时钟域丢失报文的问题。
42.以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1