车载ECU时间同步方法、装置、车载ECU及存储介质与流程

文档序号:31604349发布日期:2022-09-21 10:03阅读:161来源:国知局
车载ECU时间同步方法、装置、车载ECU及存储介质与流程
车载ecu时间同步方法、装置、车载ecu及存储介质
技术领域
1.本发明涉及时间同步领域,尤其涉及一种车载ecu时间同步方法、装置、车载ecu及存储介质。


背景技术:

2.随着车载ecu的运算能力需求的增加,ecu的架构的复杂性与日俱增,不仅不同的车载ecu之间需要时间同步,ecu内部多个模块之间同样需要进行时间同步。传统的时间同步方案,针对的是不同ecu间的方案。因为每个模块内部的硬件定时器的计时精度都有差异,随着计时的时间越长,各模块计时出来的时间差异会越大,为了解决这个问题,所以需要ecu内部各模块执行时间同步。


技术实现要素:

3.有鉴于此,本技术提供了一种车载ecu时间同步方法,包括主单元和至少一个从单元,所述主单元和每个所述从单元之间分别通过通讯接口和一个io接口连接;所述方法包括:所述主单元记录当前本地时间作为同步时间,并通过连接的所述io接口向所述从单元发送同步开始信号,同时将所述同步时间通过所述通讯接口发送给所述从单元,然后通过所述io接口向所述从单元发送同步完成信号;所述从单元在接收到所述主单元发送的同步开始信号时,记录当时的本地时间为第一校正时间,并在接收到所述同步时间时,记录当时的本地时间为第二校正时间;所述从单元根据所述同步时间、所述第一校正时间和所述第二校正时间进行本地时间的校正。
4.进一步的,在时间同步次数大于1的情况下,所述从单元在校正本地时间时,还包括:根据当前时间同步和上一次时间同步时各自产生的所述同步时间和所述第一校正时间,所述从单元计算与所述主单元之间的当前偏差率;根据所述当前偏差率、当前同步时间和当前第一校正时间进行本地时间的校正。
5.进一步的,还包括:每执行预设次数的时间同步后,计算一次所述从单元与所述主单元之间的所述偏差率,以用于校正当前本地时间。
6.进一步的,所述偏差率的计算公式为:rrcn=(tm
n-tm
n-1
)/(ts
2*n-ts
2*n-2
);式中,rrcn为第n+1次时间同步时的偏差率,n≥0,tmn为第n+1次时间同步时的同步时间,tm
n-1
为n次时间同步的同步时间,ts
2*n
为第n+1次时间同步的第一校正时间,ts
2*n-2
为第n次时间同步的第一校正时间。
7.进一步的,根据所述当前偏差率、当前同步时间和当前第一校正时间进行所述本
地时间的校正的计算公式为:t
now
=tmn+( ts
now
ꢀ‑
ts
2*n
)*rrcn式中,t
now
为校正后的本地时间,ts
now
为进行校正时所述从单元的本地时间,rrcn为第n+1次时间同步时的偏差率,tmn为第n+1次时间同步时的同步时间,ts
2*n
为第n+1次时间同步时的第一校正时间。
8.进一步的,所述从单元根据所述同步时间、所述第一校正时间和所述第二校正时间进行本地时间的校正的计算公式为:t
now
=tm+(ts
2-ts1)式中,t
now
代表校正后的本地时间,ts2代表所述第二校正时间,ts1代表所述第一校正时间,tm为所述同步时间;若进行本地时间校正时的时间在所述第二校正时间之后,则进行本地时间的校正的计算公式为:t
now
=tm+( ts
now
ꢀ‑
ts1)式中,ts
now
为进行校正时所述从单元的本地时间。
9.进一步的,所述通讯接口是uart;所述同步开始信号和所述同步完成信号均为一个电平状态变化信号;所述从单元接收到所述同步开始信号时,记录当时的本地时间为第一校正时间包括;当所述从单元检测到io接口从低电平变为高电平或从高电平变为低电平时,记录下当前本地时间为第一校正时间。
10.进一步的,本技术还提供一种车载ecu时间同步装置,包括:同步时间发送模块,用于主单元记录当前本地时间作为同步时间,并通过连接的所述io接口向所述从单元发送同步开始信号,同时将所述同步时间通过所述通讯接口发送给所述从单元,然后通过所述io接口向所述从单元发送同步完成信号;同步时间记录模块,用于从单元在接收到所述主单元发送的同步开始信号时,记录当时的本地时间为第一校正时间,并在接收到所述同步时间时,记录当时的本地时间为第二校正时间;同步时间校正模块,用于所述从单元根据所述同步时间、所述第一校正时间和所述第二校正时间进行本地时间的校正。
11.进一步的,本技术还提供一种车载ecu,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行上述实施例中任一所述的车载ecu时间同步方法。
12.进一步的,本技术还提供一种可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行上述实施例中任一所述的车载ecu时间同步方法。
13.本发明实施例公开了车载ecu时间同步方法、装置、车载ecu及存储介质,包括主单元和至少一个从单元,所述主单元和每个所述从单元之间通过通讯接口和一个io接口连接;所述方法包括:所述主单元记录当前本地时间作为同步时间,并通过io向所述从单元发送同步开始信号,同时将所述同步时间通过所述通讯接口发送给所述从单元,然后通过io向所述从单元发送同步完成信号;当所述从单元接收到所述主单元发送的同步开始信号
时,记录当时的本地时间为第一校正时间,当所述从单元接收到所述同步时间,记录当时的本地时间为第二校正时间;所述从单元根据所述同步时间、所述第一校正时间和所述第二校正时间校正当前本地时间,完成一次时间同步。不依托专用接口和通讯协议,对资源使用少,适用范围广,使得车载ecu内部各个单元模块可以通过简单的结构来进行时间同步。
附图说明
14.为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
15.图1示出了本技术一种车载ecu内部结构示意图;图2示出了本技术一种车载ecu时间同步方法流程图;图3示出了本技术又一种车载ecu时间同步方法流程图;图4示出了本技术一种车载ecu时间同步方法时序图;图5示出了本技术一种车载ecu时间同步装置示意图。
具体实施方式
16.下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
17.通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
18.在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
19.此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
20.除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
21.接下来以具体实施例来解释本技术的技术方案。
22.实施例1本实施例的车载ecu系统内部有多个功能模块,模块之间需要进行时间同步,本技术通过选取一个主单元来实现与多个从单元之间的时间同步,具体地,该主单元和各个从单元之间分别通过通讯接口和一个io接口连接,例如,通讯接口可以是uart(通用异步收发
传输器)等能够传输数据的接口。
23.具体的连接关系如图1所示。在一个车载ecu内可以是一个主单元通过上述方式连接三个从单元,uart作为数据传输通道,而io接口则作为中断信号的传输通道,双通道的方式使得同步过去的时间和发送同步开始的信号可以几乎同步发出,减小同步时的信号传输时延。
24.其中,上述主单元可以是一个单独专门用来进行时间同步的模块单元,其他的从单元可以是具体的功能单元,如驱动模块、显示模块、悬挂模块等车载ecu系统内部的功能模块。
25.本技术提供一种车载ecu系统内时间同步方法,该方法步骤如图2所示。
26.步骤s100,所述主单元记录当前本地时间作为同步时间,并通过io向所述从单元发送同步开始信号,同时将所述同步时间通过所述通讯接口发送给所述从单元,然后通过io向所述从单元发送同步完成信号。
27.时间同步可以按照预定的循环周期进行,当ecu内部模块刚上电时,主单元和从单元都会启动内部的硬件定时器进行定时,然后就可以执行第一次同步。执行第一次同步时,主单元记录下当前时间,并从io接口发送一个同步开始信号给从单元,该同步开始信号可以是一个电平信号,例如高电平或低电平,如果在不同步的时候,从单元的io接口是低电平,则同步开始信号为高电平,通过将从单元的io电平拉高来产生电平变化。同理,若在不同步时,从单元的io接口是高电平,则同步开始信号为低电平。
28.因为同步开始信号和发送同步时间的接口不同,因此在到达循环周期时,发送同步开始信号的同时,就可以发送主单元记录的当前本地时间,将该当前本地时间作为同步时间发送给从单元,该同步时间记为tm。
29.当发送完同步时间后,主单元的任务结束,需要将从单元的io接口电平复位,因此需要发送一个同步完成信号,该同步完成信号与同步刚开始信号相反,同步开始信号为高电平,则同步完成信号为低电平。同时开始信号为低电平,则同步完成信号为高电平。
30.步骤s200,所述从单元在接收到所述主单元发送的同步开始信号时,记录当时的本地时间为第一校正时间,当所述从单元接收到所述同步时间,记录当时的本地时间为第二校正时间。
31.从单元在io接口接收到同步开始信号时,立刻记录下本地时间ts1作为第一校正时间,当接收到同步时间tm时,则再记录一个当前本地时间ts2作为第二校正时间。
32.可见,上述的第一校正时间和同步时间忽略掉io接口的信号传递时延,理论上应该是同一时间点的时间,而同步时间通过通讯接口传输过来,会有一定的传输时延,因此通过记录第二校正时间可以得到这个时延来确保同步时间的一个准确性。
33.步骤s300,所述从单元根据所述同步时间、所述第一校正时间和所述第二校正时间校正当前本地时间,完成一次时间同步。
34.得到同步时间,第一校正时间和第二校正时间之后,就可以校正从单元的本地时间,这样就完成了一次时间同步,具体的校正公式如下:tnow=tm+(ts2-ts1)式中,tnow代表校正后的本地时间,ts2代表所述第二校正时间,ts1代表所述第一校正时间。
35.上式计算出的本地时间是从单元在第二校正时间点对应的主设备时间,以得到的校正后的本地时间,若进行本地时间校正时的时间在所述第二校正时间之后,则进行本地时间的校正的计算公式为:tnow=tm+( tsnow
ꢀ‑
ts1)式中,tsnow为进行校正时从单元的本地时间。
36.具体而言,tsnow为完成一次时间同步后任意采样本地时间,由此计算得到的tnow为从单元在tsnow时间点对应的主设备时间。
37.通过同步时间与两个校正时间之差做和以得到一个更为精准的tnow来校正从模块的本地时间。
38.进一步的,每隔一段时间都需要进行一次时间同步,以此保证不同模块设备之间的时间准确性,因此在进行到至少第二此事件循环时,可以通过计算一个偏差率来确保校准的时间tnow更加精准。
39.因此,如图3所示,本技术的时间同步方法,在时间同步次数大于1的情况下,所述从单元在校正当前本地时间时还包括以下步骤:步骤s301,根据当前时间同步和上一次时间同步时各自产生的所述同步时间和所述第一校正时间,所述从单元计算与所述主单元之间的当前偏差率。
40.结合图4的时序图可知,每当执行一次时间同步,主单元处会产生一个同步时间,而从单元会产生两个校正时间,当进行第一次同步时,记同步时间为tm0,第一校准时间和第二校准时间分别是ts0和ts1,则有当执行第n+1次时间同步时,存在同步时间tmn,和第一校正时间ts2*n和第二校正时间ts2*n+1。
41.在进行至少第二次时间同步时,可以直接依靠上述记载的公式计算tnow,也可以计算偏差率,以对tnow进行进一步精细化计算,其中偏差率的计算公式为:rrcn=(tmn-tmn-1)/(ts2*n-ts2*n-2);式中,rrcn为第n+1次时间同步时的偏差率,n≥0,tmn为第n+1次时间同步时的同步时间,tmn-1为n次时间同步的同步时间,ts2*n为第n+1次时间同步的第一校正时间,ts2*n-2为第n次时间同步的第一校正时间。
42.从上述公式可知,该偏差率的计算方式需要当前时间同步所产生的第一校正时间、同步时间与上一次时间同步时所产生的第一校正时间、同步时间进行计算,因此只要是相邻两次的时间同步,都可以进行上述计算,具体而言,当执行第二次时间同步时,可以通过第二次和第一次时间同步的时间,算第二次时间同步时的偏差率rrc1,当执行第三次时间同步时,则可以通过第三次时间同步所产生的上述参数与第二次时间同步的上述参数进行计算得到第三次时间同步时的偏差率rrc2。由此可知当进行第n+1次时间同步时,当前的偏差率为rrcn。
43.考虑到从第二次时间同步时每次都进行偏差率的计算,可能占用大量的计算资源,同时也占用了计算机算力和功耗,因此也可以不同每一步都进行偏差率的计算,可以每间隔预设次数的时间同步再执行一次偏差率的计算,如当进行第二次、第四次、第六次同步时才进行偏差率的计算,以得到偏差率rrcn。为了统一,使用间隔时间同步来进行偏差率计算时,偏差率的下标n和同步时间tmn保持一致。即rrcn表示第n+1次时间同步时的偏差率。
44.具体的,上述偏差率也可以间隔两次或者三次时间同步后再进行一次计算。
45.步骤s302,根据所述当前偏差率、当前同步时间和当前第一校正时间进行所述本地时间的校正。
46.得到偏差率后,通过偏差率计算tnow的公式为:正的计算公式为:tnow=tmn+( tsnow
ꢀ‑
ts2*n)*rrcn式中,tnow为校正后的本地时间,tsnow为进行校正时所述从单元的本地时间,rrcn为第n+1次时间同步时的偏差率,tmn为第n+1次时间同步时的同步时间,ts2*n为第n+1次时间同步时的第一校正时间。
47.可见,上述偏差率是用于计算第一校准时间和第二校准时间的时间差是否准确,以得到更准确的同步时间传输时延,这样在第二校准时间之后进行本地时间的校准,也可以通过该偏差率,将误差减小甚至消除,以计算得到更为精准的tnow。同样的,该本地时间也是从单元在第二校准时间点对应的主设备时间。
48.本技术通过一个主单元对所有从单元进行时间同步控制,并且主单元和从单元之间通过io和通讯接口的双接口连接方式进行连接,使得同步开始信号与同步时间可以几乎同时发送给从单元,并且从单元通过计算两个校正时间,来对传输过来的同步时间进行校正,消除通讯延迟,使得同步结果更精准,并且在进行至少第二次时间同步时,还可以计算偏差率,以更进一步保证同步时间的准确,保证同步结果的有效性,实现了车载ecu系统内部各个单元模块之间的时间同步。
49.实施例2本技术实施例还提供一种车载ecu时间同步装置,如图5所示,该装置包括:同步时间发送模块10,用于所述主单元记录当前本地时间作为同步时间,并通过io向所述从单元发送同步开始信号,同时将所述同步时间通过所述通讯接口发送给所述从单元,然后通过io向所述从单元发送同步完成信号。
50.同步时间记录模块20,用于当所述从单元接收到所述主单元发送的同步开始信号时,记录当时的本地时间为第一校正时间,当所述从单元接收到所述同步时间,记录当时的本地时间为第二校正时间。
51.同步时间校正模块30,用于所述从单元根据所述同步时间、所述第一校正时间和所述第二校正时间进行本地时间的校正。
52.进一步的,本技术还提供一种车载ecu,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行上述实施例中任一所述的车载ecu时间同步方法。
53.进一步的,本技术还提供一种可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行上述实施例中任一所述的车载ecu时间同步方法。
54.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于
附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
55.另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
56.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
57.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1