一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于实时总线的板卡间时间同步方法、装置和电子设备与流程

2021-10-24 04:22:00 来源:中国专利 TAG:板卡 同步 时间 总线 电子设备


1.本发明涉及板卡时间同步技术领域,尤其涉及一种基于实时总线的板卡间时间同步方法、装置和电子设备。


背景技术:

2.在现有的安全计算机平台系统环境运行时,采用请求响应机制,由于主机板卡和从机板卡之间的周期运行相互独立,不能保证主机板卡及时的读取到从机板卡产生的速度信息,并及时使用,导致速度获取延时不稳定,主机板卡计算距离产生较大误差。主机板卡无法知道速度信息产生的确定的时刻,导致主机板卡无法根据时间做补偿。需要设计一种通用的时间同步机制,完成主机板卡与从机板卡的时间同步。
3.现有技术中的主机板卡与从机板卡之间的时间同步存在如下两个缺点:
4.缺点一,独立设备之间通信,采用请求响应机制,便于主机板卡在合适的时刻接收其他外围设备信息,但仅适合处理一些对时间不敏感的数据,如果出现对时间比较敏感的数据,请求响应机制就会产生极其不稳定的延时;
5.缺点二,在请求响应机制中,为保证外围设备及时响应,且收到最新的响应数据,主机板卡的周期应大于外围设备的周期。缺点就是会导致出现丢包现象,不适用对数据连续性较敏感的数据。
6.因此,如何避免现有的主机板卡和从机板卡之间同步不精确导致的处理数据不稳定的延时,以及由于主机板卡从机板卡周期不同导致的两者之间传输数据存在丢包现象,仍然是本领域技术人员亟待解决的问题。


技术实现要素:

7.本发明提供一种基于实时总线的板卡间时间同步方法、装置和电子设备,用以解决现有的主机板卡和从机板卡之间同步不精确导致的处理数据不稳定的延时,以及由于主机板卡从机板卡周期不同导致的两者之间传输数据存在丢包现象的问题,通过将从机板卡的两个中央处理器(central processing unit,cpu)时钟的周期和主机板卡的cpu时钟周期设定为相同,可以保证避免传输数据的丢包发生,然后再基于主机板卡上两个cpu分别实时发送的第一时间同步帧和第二时间同步帧对从机板卡上的两个cpu进行实时时钟更新,保证从机板卡上的两个cpu相互同步的同时还与主机板卡cpu同步,主机板卡和从机板卡都有两个cpu可以进一步实现双实时总线冗余网络,降低网络中断的概率。
8.本发明提供一种基于实时总线的板卡间时间同步方法,包括:
9.从机板卡上的第一中央处理器cpu接收主机板卡上的第一cpu发来的第一时间同步帧;
10.所述从机板卡上的第二cpu接收所述主机板卡上的第二cpu发来的第二时间同步帧;其中,所述主机板卡上第一cpu与第二cpu的时钟周期一致,且所述第一时间同步帧和所述第二时间同步帧周期性发送;
11.基于所述第一时间同步帧和所述第二时间同步帧更新所述从机板卡上的第一cpu和第二cpu的时钟周期,使得所述从机板卡上的第一cpu和第二cpu的时钟周期,实时与所述主机板卡上的第一cpu和第二cpu的时钟周期保持一致。
12.根据本发明提供的一种基于实时总线的板卡间时间同步方法,所述基于所述第一时间同步帧和所述第二时间同步帧更新所述从机板卡上的第一cpu和第二cpu的时钟周期,包括:
13.以最早到达从机板卡上的任一cpu的最早时间同步帧更新从机板卡上的第一cpu和第二cpu;
14.其中,所述最早时间同步帧为所述第一时间同步帧或者所述第二时间同步帧。
15.根据本发明提供的一种基于实时总线的板卡间时间同步方法,所述以最早到达从机板卡上的任一cpu的最早时间同步帧更新从机板卡上的第一cpu和第二cpu,包括:
16.若从机板卡上的第一cpu和第二cpu的时钟显示时刻相同,且从机板卡上的第一cpu接收到第一时间同步帧和从机板卡上的第二cpu接收到第二时间同步帧的时刻相同,
17.则从机板卡上的第一cpu以第一时间同步帧进行时钟更新,从机板卡上的第二cpu以第二时间同步帧进行时钟更新;否则,
18.最早收到时间同步帧的从机板卡上的任一cpu以串行外围设备接口spi交互帧,将所述时间同步帧转发至另一cpu以供其同步时钟。
19.根据本发明提供的一种基于实时总线的板卡间时间同步方法,若从机板卡上的第一cpu不是第一次接收第一时间同步帧,且从机板卡上的第二cpu不是第一次接收第二时间同步帧,则还包括网络环境检查;
20.其中,所述网络环境检查为:
21.基于所述第一时间同步帧和所述第二时间同步帧,确定预计用于更新所述从机板卡上的第一cpu时钟的预计更新时刻;
22.比较所述预计更新时刻和所述从机板卡上的任一cpu时钟的本地时刻;
23.若两者差值超过预设阈值,则发出主机板卡和从机板卡间网络故障报警。
24.根据本发明提供的一种基于实时总线的板卡间时间同步方法,若发生主机板卡和从机板卡之间网络中断,
25.则从恢复网络后主机板卡运行的第二个周期开始,进行所述网络环境检查。
26.根据本发明提供的一种基于实时总线的板卡间时间同步方法,还包括:
27.若发生主机板卡和从机板卡之间网络中断,
28.则从恢复网络后主机板卡运行的第二个周期开始,进行所述网络环境检查。
29.根据本发明提供的一种基于实时总线的板卡间时间同步方法,所述第一时间同步帧和第二时间同步帧均携带主机板卡的主机板卡类型、周期号和周期时间。
30.根据本发明提供的一种基于实时总线的板卡间时间同步方法,所述基于所述第一时间同步帧和所述第二时间同步帧,确定预计用于更新所述从机板卡上的第一cpu时钟的预计更新时刻,包括:
31.基于最早时间同步帧的周期号和周期时间,以及预设的所述最早时间同步帧发送接收双方之间的时间同步帧传输时间,确定预计用于更新所述从机板卡上的第一cpu时钟的预计更新时刻;
32.其中,所述最早时间同步帧为所述第一时间同步帧和所述第二时间同步帧中最早达到从机板卡对应cpu的时间同步帧。
33.本发明还提供一种基于实时总线的板卡间时间同步装置,包括:
34.第一接收单元,用于从机板卡上的第一中央处理器cpu接收主机板卡上的第一cpu发来的第一时间同步帧;
35.第二接收单元,用于所述从机板卡上的第二cpu接收所述主机板卡上的第二cpu发来的第二时间同步帧;其中,所述主机板卡上第一cpu与第二cpu的时钟周期一致,且所述第一时间同步帧和所述第二时间同步帧周期性发送;
36.更新单元,用于基于所述第一时间同步帧和所述第二时间同步帧更新所述从机板卡上的第一cpu和第二cpu的时钟周期,使得所述从机板卡上的第一cpu和第二cpu的时钟周期,实时与所述主机板卡上的第一cpu和第二cpu的时钟周期保持一致。
37.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述的基于实时总线的板卡间时间同步方法的步骤。
38.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述的基于实时总线的板卡间时间同步方法的步骤。
39.本发明提供的基于实时总线的板卡间时间同步方法、装置和电子设备,通过从机板卡上的第一中央处理器cpu接收主机板卡上的第一cpu发来的第一时间同步帧;所述从机板卡上的第二cpu接收所述主机板卡上的第二cpu发来的第二时间同步帧;其中,所述主机板卡上第一cpu与第二cpu的时钟周期一致,且所述第一时间同步帧和所述第二时间同步帧周期性发送;基于所述第一时间同步帧和所述第二时间同步帧更新所述从机板卡上的第一cpu和第二cpu的时钟周期,使得所述从机板卡上的第一cpu和第二cpu的时钟周期,实时与所述主机板卡上的第一cpu和第二cpu的时钟周期保持一致。将从机板卡的两个cpu时钟的周期和主机板卡的cpu时钟周期设定为相同,可以避免数据传输时丢包的发生,然后再基于主机板卡上两个cpu分别实时发送的第一时间同步帧和第二时间同步帧,第一时间同步帧和第二时间同步帧能够对从机板卡上的两个cpu进行实时时钟更新,从而保证了从机板卡上的两个cpu相互同步,并且还保证了从机板卡上的cpu与主机板卡的cpu同步。进一步的,主机板卡和从机板卡都有两个cpu,能够实现双实时总线冗余网络,降低网络中断的概率。因此,本发明提供的方法、装置和电子设备,解决了同一实时总线上的独立设备之间周期运行交互对时间和连续性敏感的数据的延时、丢包和不连续的问题,实现了独立设备之间数据能够固定延时和稳定传输。
附图说明
40.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
41.图1为本发明提供的一种基于实时总线的板卡间时间同步方法的流程示意图;
42.图2为本发明提供的初始化时间同步流程示意图;
43.图3为本发明提供的包括周期时间校准的时间同步流程图;
44.图4为本发明提供的基于实时总线的板卡间时间同步装置的结构示意图;
45.图5为本发明提供的一种电子设备的实体结构示意图。
具体实施方式
46.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
47.由于现有的主机板卡和从机板卡之间普遍存在同步不精确导致的处理数据不稳定的延时,以及由于主机板卡从机板卡周期不同导致的两者之间传输数据存在丢包现象的问题。下面结合图1

图3描述本发明的一种基于实时总线的板卡间时间同步方法。
48.此处需要说明的是,为了保证主机板卡和从机板卡之间的通信可靠性,采用双网通信,即主机板卡上有两个cpu,从机板卡上也有两个cpu,主机板卡上的第一cpu和从机板卡上的第二cpu通信接入powerlink绿网,主机板卡上的第二cpu和从机板卡上的第二cpu通信接入powerlink紫网,任一板卡上自身的两个cpu构成二取关系,如此可以实现双实时总线冗余网络保证在其中只有一个powerlink网络通信断开时还可以通过另外一个正常工作的powerlink网络继续主机板卡和从机板卡之间的通信;而主机板卡或者从机板卡的板卡上自身的两个cpu通过串行外围设备接口(serial perripheral interface,spi)进行连接,即自身的两个cpu通过spi交互帧进行同步以实现板卡内部的时间同步。
49.图1为本发明提供的一种基于实时总线的板卡间时间同步方法的流程示意图,如图1所示,该方法包括:
50.步骤110,从机板卡上的第一cpu接收主机板卡上的第一cpu发来的第一时间同步帧。
51.可选的,本发明提供的基于实时总线的板卡间时间同步方法是在需要进行通信的主机板卡和从机板卡之间实现,更进一步地,主机板卡向从机板卡下发同步信息,从机板卡基于主机板卡提供的同步信息实现自身板卡上两个cpu的时钟同步。由于主机板卡和从机板卡上的两个cpu均一个接入powerlink绿网,一个接入powerlink紫网,那么主机板卡上的任一cpu有与其对应的从机板卡上的cpu,将任一板卡上自身含有的cpu区分成第一cpu和第二cpu,例如,主机板卡和从机板卡上的第一cpu均接入powerlink绿网,主机板卡和从机板卡上的第二cpu均接入powerlink紫网;或者,主机板卡和从机板卡上的第一cpu均接入powerlink紫网,主机板卡和从机板卡上的第二cpu均接入powerlink绿网。因此,从机板卡上的第一cpu接收与其接入相同powerlink网络的主机板卡上的第一cpu发来的第一时间同步帧,通常,从机板卡接收到主机板卡的时间同步帧会先进行数据有效性的校验,因此,从机板卡上的第一cpu会对接收到的第一时间同步帧进行数据校验查看数据的有效性,然后再在中断处理中记录接收到的第一时间同步帧的时刻以及第一时间同步数据内容,以便在同一周期内的空闲时刻处理。
52.此处需要说明的是,常用的主机板卡的时钟周期都在100ms

200ms的范围内,为了
保证不会发生丢包现象,现在将主机板卡和从机板卡的时钟周期设置为相同,例如,若主机板卡的时钟周期为200ms,即主机板卡上的分别接入不同powerlink的两个cpu的时钟周期都是200ms,那么也会将从机板卡的时钟周期设置为200ms,即从机板卡上的分别接入不同powerlink的两个cpu的时钟周期都是200ms。主机板卡和从机板卡的时钟周期设定为相同,可以避免在主机板卡的同一周期内发送的获取数据请求,当获取数据请求被从机板卡接收时,由于从机板卡的周期小,所以从机板卡已经完成多次数据更新,返回的数据已经是最新的数据而无法提供主机板卡请求对应时刻的被更新覆盖掉的数据,导致的主机板卡从机板卡之间数据传输的丢包现象。
53.步骤120,所述从机板卡上的第二cpu接收所述主机板卡上的第二cpu发来的第二时间同步帧;其中,所述主机板卡上第一cpu与第二cpu的时钟周期一致,且所述第一时间同步帧和所述第二时间同步帧周期性发送。
54.可选的,从机板卡上的第二cpu接收与其接入相同powerlink网络的主机板卡上的第二cpu发来的第二时间同步帧,通常,从机板卡接收到主机板卡的时间同步帧糊会先进行数据有效性的校验,因此,从机板卡上的第二cpu会对接收到的第二时间同步帧进行数据校验查看数据的有效性,然后再在中断记录中记录接收到的第二时间同步帧的时刻以及第二时间同步数据内容,以便在同一周期内的空闲时刻处理。此处需要说明的是,主机板卡上的第一cpu和第二cpu的时钟周期一致,才能保证第一时间同步帧和第二时间同步帧的冗余双网时间同步机制的实施,即在接入一个powerlink网络对应的主机板卡和从机板卡之间cpu的时钟同步出现故障时,可以采用接入另一个powerlink网络对应的主机板卡和从机板卡之间cpu的时钟同步进行从机板卡和主机板卡之间的时钟同步,那么作为提供时钟同步标准参考时钟源的主机板卡的第一cpu和第二cpu,它们的时钟周期需要保持一致。而且,主机板卡上的两个cpu都是持续周期性地向从机板卡上各自对应的cpu发送时间同步帧,以保证从机板卡能持续实时校准时钟,与主机板卡实时同步。
55.步骤130,基于所述第一时间同步帧和所述第二时间同步帧更新所述从机板卡上的第一cpu和第二cpu的时钟周期,使得所述从机板卡上的第一cpu和第二cpu的时钟周期,实时与所述主机板卡上的第一cpu和第二cpu的时钟周期保持一致。
56.可选的,从机板卡上的两个cpu都会在自身周期的特定时期去获取存储在中断记录中的时间同步帧,然后从机板卡上的两个cpu以第一时间同步帧和第二时间同步帧中的最优时间进行时间同步,此处需要说明的是,最优时间的判定标准则是最先到达从机板卡cpu的时间同步帧,由于在从机板卡上的任一cpu在中断处理中会记录收到时间同步帧的时刻,因此,以收到时间同步帧的时刻最早的从机板卡上的cpu接收的时间同步帧中携带的时间信息作为最优时间对从机板卡上的两个cpu进行时钟的同步。例如,此处可以将最优时间定义为最早到达从机板卡中任一cpu的时间同步帧所携带的时间信息。由于板卡上自身的两个cpu之间会持续互发spi交互帧广播自身时间,因此,一旦一个cpu接收到主机板卡对应cpu发送过来的时间同步帧并进行时钟同步的更新后,就会将自身最新的时间通过spi交互帧分享给对方,而对方若此时还没有收到自己对应的主机板卡cpu的时间同步帧,则直接采用自身板卡上另一个cpu分享的最新时间更新自身的时钟时间,从机板卡上的两个cpu都完成自身时钟时间的更新后则不再变化,等待下一周期的时间同步帧的达到进行下一周期的时间同步。如果仅有一个cpu收到网络上的时间同步帧则默认使用该数据进行时间同步。如
果双cpu均未收到时间同步帧则不进行时间同步。
57.此处需要说明的是,由于从机板卡自身的两个cpu之间使用更高频的spi交互帧互相分享自身时钟时刻,因此,从机板卡自身的两个cpu之间的时间默认保持同步且时刻一致,因为除开时间同步初始化的前两个周期,上一个周期中无论从机板卡中哪一个cpu先接收到时间同步帧进行了自身cpu时钟的更新,都会将更新后的时间分享给自身板卡上的另一个,即从机板卡上的两个cpu在接收主机板卡发送的同步信息完成自身时钟更新的时候,它们的时钟是一致的,再下一周期的主机板卡时间同步信息达到之前,它们之间可以通过spi交互帧维持时钟同步一致。若一个cpu接收到主机板卡对应cpu发送过来的时间同步帧并进行时钟同步的更新后,将自身最新的时间通过spi交互帧分享给对方,而对方此时已经收到自己对应的主机板卡cpu的时间同步帧并也完成了自身时钟的更新,那么对方无需基于spi交互帧分享的时间信息继续进行时钟的更新,因为这种情况说明,两个powerlink网络之间的时间同步都非常准确,从机板卡的两个cpu可以同时收到主机板卡的两个cpu分别发送过来的时间同步帧并进行各自的时间同步更新,当然这是在本发明默认主机板卡的两个cpu都是在每个周期的同一固定时刻向从机板卡的对应cpu发送各自的时间同步帧,且默认主机板卡第一cpu到从机板卡第一cpu的时间同步帧的传输耗时和主机板卡第二cpu到从机板卡第二cpu的时间同步帧的传输耗时相等。
58.此处还需要说明的是,设置从机板卡上的第一cpu和第二cpu的周期和主机板卡上的任意cpu保持一致,其中,所述任意cpu的范围默认为主机板卡上的第一cpu和第二cpu,即板卡自身上两个cpu的周期是默认相同,而设置两个板卡上的cpu周期也相同,即主机板卡和从机板卡两个板卡上一共四个cpu的周期都相同。
59.本发明提供的方法,通过从机板卡上的第一中央处理器cpu接收主机板卡上的第一cpu发来的第一时间同步帧;从机板卡上的第二cpu接收主机板卡上的第二cpu发来的第二时间同步帧;基于所述第一时间同步帧和所述第二时间同步帧更新所述从机板卡上的第一cpu和第二cpu的时钟;其中,所述从机板卡上的第一cpu和第二cpu的周期和主机板卡上的任意cpu保持一致。由于将从机板卡的两个cpu时钟的周期和主机板卡的cpu时钟周期设定为相同,可以保证避免传输数据的丢包发生,然后再基于主机板卡上两个cpu分别实时发送的第一时间同步帧和第二时间同步帧对从机板卡上的两个cpu进行实时时钟更新,保证从机板卡上的两个cpu相互同步的同时还与主机板卡cpu同步,主机板卡和从机板卡都有两个cpu可以进一步实现双实时总线冗余网络,降低网络中断的概率。因此,本发明提供的方法,解决了同一实时总线上的独立设备之间周期运行交互对时间和连续性较敏感的数据的延时、丢包和不连续的问题,实现了独立设备之间数据能够固定延时稳定传输。
60.基于上述实施例,该方法中,所述基于所述第一时间同步帧和所述第二时间同步帧更新所述从机板卡上的第一cpu和第二cpu的时钟周期,包括:
61.以最早到达从机板卡上的任一cpu的最早时间同步帧更新从机板卡上的第一cpu和第二cpu;
62.其中,所述最早时间同步帧为所述第一时间同步帧或者所述第二时间同步帧。
63.可选的,此处进一步将基于第一时间同步帧和所述第二时间同步帧更新所述从机板卡上的第一cpu和第二cpu的时钟的处理方式限定为基于以最早到达从机板卡上的任一cpu的最早时间同步帧更新从机板卡上的第一cpu和第二cpu。这种限定方式,从时间同步帧
的传输耗时方面认定时间同步帧的优劣性,可以更方便快捷的选出两个时间同步帧之中的最优时间。由于在只有一个cpu的板卡之间的时间同步的同步算法是将在主控方发出的时间同步帧携带的时间信息的基础上加上时间同步帧的传输时间作为受控方需要更新的接收时刻,因此,传输时间通常会是一个预先测试得到平均值或者设定的经验值,然后默认每次同步帧的传输都耗费相同的该预先测试得到平均值或者设定的经验值的时间。现在存在两对cpu之间的时间同步帧耗时的比较,显然最先到达的时间同步帧的耗时会更大概率与该预先测试得到平均值或者设定的经验值的时间相同,而晚到通常被认为是传输过程中遇到某些障碍导致其时间同步帧的传输耗时超过该预先测试得到平均值或者设定的经验值的时间。因此,从机板卡上的两个cpu进行时钟时间同步更新的策略则是以最早收到主机板卡上对应cpu发送来的时间同步帧中携带的时间信息进行更新。例如,最早接收到的时间同步帧上的时间信息是时间同步帧的发送时刻是t1(以主机板卡对应cpu的时钟进行计时得到),预设的时间同步数据帧在两个板卡对应cpu之间的传输耗时为t,而该时间同步帧到达从机板卡上对应cpu的时间为t2(以从机板卡对应cpu的时钟进行计时得到),那么可以确定,从机板卡相对于主机板卡在时间上的偏差为t2

t1

t,以该最早收到主机板卡上对应cpu发送来的时间同步帧中携带的时间信息进行更新时,则用t2

t1

t的偏差以对应的正负方向去修正从机板卡对应cpu上的时钟时刻进行更新,然后对应cpu再将更新后的时间通过spi交互帧分享给自身板卡上的另一个cpu。
64.基于上述实施例,该方法中,所述以最早到达从机板卡上的任一cpu的最早时间同步帧更新从机板卡上的第一cpu和第二cpu,包括:
65.若从机板卡上的第一cpu和第二cpu的时钟显示时刻相同,且从机板卡上的第一cpu接收到第一时间同步帧和从机板卡上的第二cpu接收到第二时间同步帧的时刻相同,
66.则从机板卡上的第一cpu以第一时间同步帧进行时钟更新,从机板卡上的第二cpu以第二时间同步帧进行时钟更新;否则,
67.最早收到时间同步帧的从机板卡上的任一cpu以串行外围设备接口spi交互帧,将所述时间同步帧转发至另一cpu以供其同步时钟。
68.可选的,此处将以最早到达从机板卡上的任一cpu的最早时间同步帧更新从机板卡上的第一cpu和第二cpu分两种情况进行说明,为从机板卡上两个cpu的时钟同步提供细节原理上的过程描述证实其可以通过板卡之间以及板卡内部的特定通信协议实现,以提供识别最早到达从机板卡上的最早时间帧的方法,以及更新从机板卡上两个cpu时钟的最便捷的更新逻辑:
69.一种情况是接入powerlink绿网的一对cpu和接入powerlink紫网中的一对cpu的时间严格同步,连从机板卡上的第一cpu和第二cpu接收各自的时间同步帧的时刻都一致,那么它们各自通过自身接收的时间同步帧进行各自cpu的时钟同步,无需对方通过spi交互帧分享的时间进行自身时钟的同步,因为在第一次接收到对方携带有更新后时间的spi交互帧时,其自身也已经基于收到的时间同步帧完成时钟更新,与对方发送的spi交互帧分享的最新时间相同,因此无需依靠spi交互帧来更新从机板卡上其中一个cpu;
70.另一种情况是接入powerlink绿网的一对cpu和接入powerlink紫网中的一对cpu的时间未严格同步,例如当前同步周期里其中一对cpu之间的时间同步帧的传输遇到故障,导致必须以晚于提前预设的经验值或者测试平均值很多的时间到达从机板卡对应的cpu,
那么此时再拿提前预设的经验值或者测试平均值以该时间同步帧携带的时间信息和到达时刻计算更新从机板卡对应cpu的时钟时间是显然不准确的。由于两对cpu之间的时间同步帧的传输都遇到故障导致传输耗时均偏离的概率极低,因此,以最早到达从机板卡上的任一cpu的最早时间同步帧更新从机板卡上的第一cpu和第二cpu的具体操作则是,最早收到时间同步帧的从机板卡上的任一cpu以串行外围设备接口spi交互帧将所述时间同步帧转发至另一cpu以供其同步时钟。
71.基于上述实施例,该方法中,若从机板卡上的第一cpu不是第一次接收第一时间同步帧,且从机板卡上的第二cpu不是第一次接收第二时间同步帧,则还包括网络环境检查;
72.其中,所述网络环境检查为:
73.基于所述第一时间同步帧和所述第二时间同步帧,确定预计用于更新所述从机板卡上的第一cpu时钟的预计更新时刻;
74.比较所述预计更新时刻和所述从机板卡上的任一cpu时钟的本地时刻;
75.若两者差值超过预设阈值,则发出主机板卡和从机板卡间网络故障报警。
76.可选的,为了避免两对cpu之间时间同步帧的传输都遇到故障导致传输耗时均偏离的极端情况,所述极端情况为:即使以最早收到的时间同步帧对从机板卡的两个cpu进行时钟同步,所述最早收到的时间同步帧仍然耗费的传输时间偏离预设的统一传输时间过多,导致时钟同步也不准,因此,在本发明的其他实施例中,增加网络环境检查步骤,即在从机板卡上的第一cpu不是第一次接收第一时间同步帧且从机板卡上的第二cpu不是第一次接收第二时间同步帧的情况下,比较基于所述第一时间同步帧和所述第二时间同步帧中用于更新所述从机板卡上的第一cpu时钟的时刻和所述从机板卡上的任一cpu时钟的本地时刻,若两者差值超过预设阈值,则发出主机板卡和从机板卡间网络故障报警。如果基于当前周期最早接收到的时间同步帧更新的时间与以从机板卡自身cpu本地时钟计时得到的时间的误差超过一定阈值,则说明当前周期内两个powerlink的网络环境都出现故障,需要发出报警,提示网络不稳定,导向安全处理。更进一步地,将本发明提供的方法分为两个阶段,第一个阶段是时间同步初始化阶段,图2为本发明提供的初始化时间同步流程示意图,如图2所示,对于主机板卡和从机板卡开始时间同步的第一个周期,主机板卡第一cpu将第一时间同步帧发往从机板卡第一cpu,主机板卡第二cpu将第二时间同步帧发往从机板卡第二cpu,从机板卡的两个cpu通过spi交互帧选出所述第一时间同步帧和所述第二时间同步帧中携带的时间信息中的最优时间用于更新自身cpu时钟时间;第二阶段是周期时间校准阶段,图3为本发明提供的包括周期时间校准的时间同步流程图,如图3所示,在从机板卡的第一cpu和第二cpu根据各自接收的时间同步帧确定将要更新的时间或者根据相互之间的spi交互帧共享最早接收到的时间同步帧确定的将要更新的时间后,计算将要更新的时间与从机板卡cpu本地跑的时间之间的误差te,完成时间校准即完成网络环境检查,若te超出预设阈值,则发出网络故障报警。图3中的接收前tb时刻表示,从机板卡应与主机板卡保持固定节奏,即应考虑从机板卡处理完数据的最大时间,并在处理完数据时发送到主机板卡,在主机板卡接收数据前tb时刻将数据发送到主机板卡。
77.基于上述实施例,该方法中,还包括:
78.若发生主机板卡和从机板卡之间网络中断,
79.则从恢复网络后主机板卡运行的第二个周期开始,进行所述网络环境检查。
80.可选的,如果出现网络中断时,可按照历史时刻继续运行不进行时间校准,但是当网络恢复时,可能存在累积误差,所以在网络恢复的第一个时间同步周期,不需要判断时间同步误差阈值te,一是因为累积误差大,没有判断计算误差然后判定的必要性,而是因为计算误差必须是在至少连续接收两个周期的时间同步帧的基础上进行,而恢复网络的第一个周期只接收到该周期的一个时间同步帧,即进行网络环境检查的连续两个周期的时间同步帧都没有,那么网络环境检查时,需要作为数据源,用于计算更新从机板卡上的任一cpu时钟的时刻的两个连续周期的所述第一时间同步帧和所述第二时间同步帧也就没有,故无法进行网络环境检查,而误差的计算只能在恢复网络后的第二个周期开始进行。因此,如图3所示,在第二个周期开始以后的后续的正常周期时间校准时继续判断时间同步误差阈值te。如此,可以避免在网络中断后恢复的第一个周期就进行网络环境检查造成的计算资源浪费。
81.基于上述实施例,该方法中,所述第一时间同步帧和第二时间同步帧均携带主机板卡的主机类型、周期号和周期时间。
82.可选的,此处进一步限定时间同步帧中的数据内容,包括主机板卡类型、周期号和周期时间,所述主机板卡类型用于从机板卡cpu校验接收到的时间同步帧的有效性,是否来自对应的主机板卡cpu,周期号i表明发送该时间同步帧的主机板卡上的cpu时钟计时的该时间同步帧的发射时间对应的第i个周期,周期号表明发送该时间同步帧的主机板卡上的cpu时钟计时的该时间同步帧的发射时间对应的第i个周期内的第j毫秒,例如,主机板卡cpu的周期为200ms,那么其上任一cpu发出的目标时间同步帧内携带的周期号为6,周期时间为89表示所述目标时间同步帧的发送时刻为(6

1)
×
200 89=1089ms,即所述目标时间同步帧的发送时刻为初始时刻开始计时后的1089ms。
83.基于上述实施例,该方法中,所述基于所述第一时间同步帧和所述第二时间同步帧,确定预计用于更新所述从机板卡上的第一cpu时钟的预计更新时刻,包括:
84.基于最早时间同步帧的周期号和周期时间,以及预设的所述最早时间同步帧发送接收双方之间的时间同步帧传输时间,确定预计用于更新所述从机板卡上的第一cpu时钟的预计更新时刻;
85.其中,所述最早时间同步帧为所述第一时间同步帧和所述第二时间同步帧中最早达到从机主板对应cpu的时间同步帧。
86.可选的,如前文所述的,例如,最早接收到的时间同步帧上的时间信息是时间同步帧的发送时刻是t1(以主机板卡对应cpu的时钟进行计时得到),预设的时间同步数据帧在两个板卡对应cpu之间的传输耗时为t,而该时间同步帧到达从机板卡上对应cpu的时间为t2(以从机板卡对应cpu的时钟进行计时得到),那么可以确定,从机板卡相对于主机板卡在时间上的偏差为t2

t1

t,以该最早收到主机板卡上对应cpu发送来的时间同步帧中携带的时间信息进行更新时,则用t2

t1

t的偏差以对应的正负方向去修正从机板卡对应cpu上的时钟时刻进行更新,然后对应cpu再将更新后的时间通过spi交互帧分享给自身板卡上的另一个cpu。上述例子描述了基于所述第一时间同步帧和所述第二时间同步帧,确定预计用于更新所述从机板卡上的第一cpu时钟的预计更新时刻的优选实施方式。
87.下面对本发明提供的基于实时总线的板卡间时间同步装置进行描述,下文描述的基于实时总线的板卡间时间同步装置与上文描述的一种基于实时总线的板卡间时间同步
方法可相互对应参照。
88.图4为本发明提供的基于实时总线的板卡间时间同步装置的结构示意图,如图4所示,该装置包括第一接收单元410、第二接收单元420和更新单元430,其中,
89.所述第一接收单元410,用于从机板卡上的第一中央处理器cpu接收主机板卡上的第一cpu发来的第一时间同步帧;
90.所述第二接收单元420,用于所述从机板卡上的第二cpu接收所述主机板卡上的第二cpu发来的第二时间同步帧;其中,所述主机板卡上第一cpu与第二cpu的时钟周期一致,且所述第一时间同步帧和所述第二时间同步帧周期性发送;
91.所述更新单元430,用于基于所述第一时间同步帧和所述第二时间同步帧更新所述从机板卡上的第一cpu和第二cpu的时钟周期,使得所述从机板卡上的第一cpu和第二cpu的时钟周期,实时与所述主机板卡上的第一cpu和第二cpu的时钟周期保持一致。
92.本发明提供的装置,通过从机板卡上的第一中央处理器cpu接收主机板卡上的第一cpu发来的第一时间同步帧;所述从机板卡上的第二cpu接收所述主机板卡上的第二cpu发来的第二时间同步帧;其中,所述主机板卡上第一cpu与第二cpu的时钟周期一致,且所述第一时间同步帧和所述第二时间同步帧周期性发送;基于所述第一时间同步帧和所述第二时间同步帧更新所述从机板卡上的第一cpu和第二cpu的时钟周期,使得所述从机板卡上的第一cpu和第二cpu的时钟周期,实时与所述主机板卡上的第一cpu和第二cpu的时钟周期保持一致。由于将从机板卡的两个cpu时钟的周期和主机板卡的cpu时钟周期设定为相同,可以保证避免传输数据的丢包发生,然后再基于主机板卡上两个cpu分别实时发送的第一时间同步帧和第二时间同步帧对从机板卡上的两个cpu进行实时时钟更新,保证从机板卡上的两个cpu相互同步的同时还与主机板卡cpu同步,主机板卡和从机板卡都有两个cpu可以进一步实现双实时总线冗余网络,降低网络中断的概率。因此,本发明提供的装置,解决了同一实时总线上的独立设备之间周期运行交互对时间和连续性较敏感的数据的延时、丢包和不连续的问题,实现了独立设备之间数据能够固定延时稳定传输。
93.基于上述实施例,该装置中,所述基于所述第一时间同步帧和所述第二时间同步帧更新所述从机板卡上的第一cpu和第二cpu的时钟,包括:
94.以最早到达从机板卡上的任一cpu的最早时间同步帧更新从机板卡上的第一cpu和第二cpu;
95.其中,所述最早时间同步帧为所述第一时间同步帧或者所述第二时间同步帧。
96.基于上述实施例,该装置中,所述以最早到达从机板卡上的任一cpu的最早时间同步帧更新从机板卡上的第一cpu和第二cpu,包括:
97.若从机板卡上的第一cpu和第二cpu的时钟显示时刻相同,且从机板卡上的第一cpu接收到第一时间同步帧和从机板卡上的第二cpu接收到第二时间同步帧的时刻相同,
98.则从机板卡上的第一cpu以第一时间同步帧进行时钟更新,从机板卡上的第二cpu以第二时间同步帧进行时钟更新;否则,
99.最早收到时间同步帧的从机板卡上的任一cpu以串行外围设备接口spi交互帧,将所述时间同步帧转发至另一cpu以供其同步时钟。
100.基于上述实施例,该装置中,若从机板卡上的第一cpu不是第一次接收第一时间同步帧且从机板卡上的第二cpu不是第一次接收第二时间同步帧,则该装置还包括网络环境
检查模块,用于:
101.基于所述第一时间同步帧和所述第二时间同步帧,确定预计用于更新所述从机板卡上的第一cpu时钟的预计更新时刻;
102.比较所述预计更新时刻和所述从机板卡上的任一cpu时钟的本地时刻;
103.若两者差值超过预设阈值,则发出主机板卡和从机板卡间网络故障报警。
104.基于上述实施例,该装置中,还包括中断恢复模块,用于:
105.若发生主机板卡和从机板卡之间网络中断,
106.则从恢复网络后主机板卡运行的第二个周期开始,进行所述网络环境检查。
107.基于上述实施例,该装置中,所述第一时间同步帧和第二时间同步帧均携带主机板卡的主机类型、周期号和周期时间。
108.基于上述实施例,该装置中,所述基于所述第一时间同步帧和所述第二时间同步帧,确定预计用于更新所述从机板卡上的第一cpu时钟的预计更新时刻,包括:
109.基于最早时间同步帧的周期号和周期时间,以及预设的所述最早时间同步帧发送接收双方之间的时间同步帧传输时间,确定预计用于更新所述从机板卡上的第一cpu时钟的预计更新时刻;
110.其中,所述最早时间同步帧为所述第一时间同步帧和所述第二时间同步帧中最早达到从机主板对应cpu的时间同步帧。
111.图5为本发明提供的一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(communications interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行基于实时总线的板卡间时间同步方法,该方法包括:从机板卡上的第一中央处理器cpu接收主机板卡上的第一cpu发来的第一时间同步帧;所述从机板卡上的第二cpu接收所述主机板卡上的第二cpu发来的第二时间同步帧;其中,所述主机板卡上第一cpu与第二cpu的时钟周期一致,且所述第一时间同步帧和所述第二时间同步帧周期性发送;基于所述第一时间同步帧和所述第二时间同步帧更新所述从机板卡上的第一cpu和第二cpu的时钟周期,使得所述从机板卡上的第一cpu和第二cpu的时钟周期,实时与所述主机板卡上的第一cpu和第二cpu的时钟周期保持一致。
112.此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
113.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的基于实时总线的板卡间时间同
步方法,该方法包括:从机板卡上的第一中央处理器cpu接收主机板卡上的第一cpu发来的第一时间同步帧;所述从机板卡上的第二cpu接收所述主机板卡上的第二cpu发来的第二时间同步帧;其中,所述主机板卡上第一cpu与第二cpu的时钟周期一致,且所述第一时间同步帧和所述第二时间同步帧周期性发送;基于所述第一时间同步帧和所述第二时间同步帧更新所述从机板卡上的第一cpu和第二cpu的时钟周期,使得所述从机板卡上的第一cpu和第二cpu的时钟周期,实时与所述主机板卡上的第一cpu和第二cpu的时钟周期保持一致。
114.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的基于实时总线的板卡间时间同步方法,该方法包括:从机板卡上的第一中央处理器cpu接收主机板卡上的第一cpu发来的第一时间同步帧;所述从机板卡上的第二cpu接收所述主机板卡上的第二cpu发来的第二时间同步帧;其中,所述主机板卡上第一cpu与第二cpu的时钟周期一致,且所述第一时间同步帧和所述第二时间同步帧周期性发送;基于所述第一时间同步帧和所述第二时间同步帧更新所述从机板卡上的第一cpu和第二cpu的时钟周期,使得所述从机板卡上的第一cpu和第二cpu的时钟周期,实时与所述主机板卡上的第一cpu和第二cpu的时钟周期保持一致。
115.以上所描述的服务器实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
116.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
117.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜