首页 / 专利分类库 / 测时学 / 无线电控制的计时器[2013.01] / 系统时钟的恢复方法、装置、交通工具及存储介质

系统时钟的恢复方法、装置、交通工具及存储介质

申请号 CN202311553636.4 申请日 2023-11-20 公开(公告)号 CN117687291A 公开(公告)日 2024-03-12
申请人 小米汽车科技有限公司; 发明人 郝清清;
摘要 本公开提供了一种系统时钟的恢复方法、装置、交通工具及存储介质。具体方案包括:在微控制单元MCU从休眠状态切换至唤醒状态时,读取 实时时钟 RTC的时间;响应于RTC的时间读取成功,基于读取到的RTC的时间恢复MCU的系统时钟;或者,响应于所述RTC的时间读取失败,获取所述MCU的状态切换补偿时间和系统时间,根据所述状态切换补偿时间和所述系统时间,恢复所述MCU的系统时钟,这样可以快速且精准地恢复MCU的系统时钟,提高MCU的系统时钟的时间恢复效率,提高授时系统的效率。
权利要求

1.一种系统时钟的恢复方法,其特征在于,包括:
在微控制单元MCU从休眠状态切换至唤醒状态时,读取实时时钟RTC的时间;
响应于所述RTC的时间读取成功,基于读取到的所述RTC的时间恢复所述MCU的系统时钟;或者,
响应于所述RTC的时间读取失败,获取所述MCU的状态切换补偿时间和系统时间,根据所述状态切换补偿时间和所述系统时间,恢复所述MCU的系统时钟。
2.如权利要求1所述的方法,其特征在于,所述系统时间包括以下至少一项:
所述MCU本次进入休眠状态的休眠时刻对应的系统时间;
所述MCU本次处于所述休眠状态时的休眠持续时间。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
将所述MCU本次进入休眠状态的休眠时刻对应的系统时间写入至存储单元;所述存储单元在所述MCU处于所述休眠状态时维持数据不丢失。
4.如权利要求3所述的方法,其特征在于,获取所述MCU本次进入所述休眠状态的休眠时刻对应的系统时间,包括:
从所述存储单元中获取所述MCU本次进入所述休眠状态的休眠时刻对应的系统时间。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
在所述MCU休眠期间,控制所述MCU以最小系统运行;所述最小系统包括所述MCU内软件层面所运行的内部软时钟模
6.如权利要求5所述的方法,其特征在于,获取所述MCU本次处于所述休眠状态时的休眠持续时间,包括:
从所述内部软时钟模块中获取所述MCU本次处于所述休眠状态时的休眠持续时间。
7.如权利要求1所述的方法,其特征在于,所述MCU的状态切换补偿时间是通过对MCU样本从唤醒状态进入休眠状态和/或从休眠状态进入唤醒状态过程的所需时长进行测量得到的标定值。
8.如权利要求1‑7中任一项所述的方法,其特征在于,所述根据所述状态切换补偿时间和所述系统时间,恢复所述MCU的系统时钟,包括:
将所述状态切换补偿时间和所述系统时间进行求和运算,得到总和时间;
基于所述总和时间,恢复所述MCU的系统时钟。
9.一种系统时钟的恢复装置,其特征在于,包括:
读取模块,用于在微控制单元MCU从休眠状态切换至唤醒状态时,读取实时时钟RTC的时间;
恢复模块,用于响应于所述RTC的时间读取成功,基于读取到的所述RTC的时间恢复所述MCU的系统时钟;或者,
所述恢复模块,还用于响应于所述RTC的时间读取失败,获取所述MCU的状态切换补偿时间和系统时间,根据所述状态切换补偿时间和所述系统时间,恢复所述MCU的系统时钟。
10.一种交通工具,其特征在于,包括:微控制单元MCU、实时时钟RTC和存储单元,其中,所述RTC通过总线与所述MCU通信连接;
所述存储单元设于所述MCU外,所述存储单元用于存储所述MCU进入休眠状态的休眠时刻对应的系统时间;
所述MCU包括:一个或多个处理器,其中,所述MCU用于执行权利要求1‑8中任一项所述的方法。
11.一种存储介质,所述存储介质存储有指令,其特征在于,当所述指令在微控制单元MCU上运行时,使得所述MCU执行权利要求1‑8中任一项所述的方法。

说明书全文

系统时钟的恢复方法、装置、交通工具及存储介质

技术领域

[0001] 本公开涉及系统中时间同步领域,尤其涉及一种系统时钟的恢复方法、装置、交通工具及存储介质。

背景技术

[0002] 随着智能交通技术的发展,交通工具的电子系统越来越复杂。微控制单元(Microco ntroller Unit,MCU)是电子系统内部运算和处理的核心。在交通工具处于休眠状态时,可以通过实时时钟(Real Time Clock,RTC)维持时钟计时。在交通工具被唤醒后,通过MCU读取RTC的时间用于恢复硬件系统时间。
[0003] MCU在读取RTC的时刻,偶发会出现异常情况,如RTC时间丢失、MCU读取RTC时间出现异常等场景,导致MCU系统的时间无法被恢复,只能等待通过其他途径被授时,如获取网络时间协议(Network Time Protocol,NTP)或全球导航卫星系统(Global Navigation Satellite System,GNSS)等时间源进行系统时钟的恢复。但是,获取NTP、GNSS等时间源所需时间较长,在此期间,上层应用将无法获得有效时间,导致授时系统的效率低。发明内容
[0004] 本公开提供一种系统时钟的恢复方法、装置、交通工具及存储介质。
[0005] 根据本公开实施例的第一方面,提供一种系统时钟的恢复方法,包括:
[0006] 在微控制单元MCU从休眠状态切换至唤醒状态时,读取实时时钟RTC的时间;
[0007] 响应于RTC的时间读取成功,基于读取到的RTC的时间恢复MCU的系统时钟;或者,[0008] 响应于RTC的时间读取失败,获取所述MCU的状态切换补偿时间和系统时间,根据所述状态切换补偿时间和所述系统时间,恢复所述MCU的系统时钟。
[0009] 在本公开的一些实施例中,系统时间包括以下至少一项:
[0010] MCU本次进入休眠状态的休眠时刻对应的系统时间;
[0011] MCU本次处于休眠状态时的休眠持续时间。
[0012] 在本公开的一些实施例中,所述方法还包括:
[0013] 将MCU本次进入休眠状态的休眠时刻对应的系统时间写入至存储单元;存储单元在MCU处于休眠状态时维持数据不丢失。
[0014] 在本公开的一些实施例中,获取MCU本次进入休眠状态的休眠时刻对应的系统时间,包括:
[0015] 从存储单元中获取MCU本次进入休眠状态的休眠时刻对应的系统时间。
[0016] 在本公开的一些实施例中,方法还包括:
[0017] 在MCU休眠期间,控制MCU以最小系统运行;最小系统包括MCU内软件层面所运行的内部软时钟模
[0018] 在本公开的一些实施例中,获取MCU本次处于休眠状态时的休眠持续时间,包括:
[0019] 从内部软时钟模块中获取MCU本次处于休眠状态时的休眠持续时间。
[0020] 在本公开的一些实施例中,MCU的状态切换补偿时间是通过对MCU样本从唤醒状态进入休眠状态和/或从休眠状态进入唤醒状态过程的所需时长进行测量得到的标定值。
[0021] 在本公开的一些实施例中,根据状态切换补偿时间和系统时间,恢复MCU的系统时钟,包括:
[0022] 将状态切换补偿时间和系统时间进行求和运算,得到总和时间;
[0023] 基于总和时间,恢复MCU的系统时钟。
[0024] 根据本公开实施例的第二方面,提供一种系统时钟的恢复装置,包括:
[0025] 读取模块,用于在微控制单元MCU从休眠状态切换至唤醒状态时,读取实时时钟RTC的时间;
[0026] 恢复模块,用于响应于RTC的时间读取成功,基于读取到的RTC的时间恢复MCU的系统时钟;或者,
[0027] 恢复模块,还用于响应于RTC的时间读取失败,获取MCU的状态切换补偿时间和系统时间,根据状态切换补偿时间和系统时间,恢复MCU的系统时钟。
[0028] 在本公开的一些实施例中,所述装置还包括存储模块,用于将MCU本次进入休眠状态的休眠时刻对应的系统时间写入至存储单元;存储单元在MCU处于休眠状态时维持数据不丢失。
[0029] 在本公开的一些实施例中,所述装置还包括控制模块,用于在MCU休眠期间,控制MCU以最小系统运行。
[0030] 在本公开的一些实施例中,恢复模块包括获取单元和恢复单元。
[0031] 其中,获取单元用于获取MCU的状态切换补偿时间和系统时间。
[0032] 在本公开的一些实施例中,获取单元所获取到的系统时间包括以下至少一项:
[0033] MCU本次进入休眠状态的休眠时刻对应的系统时间;
[0034] MCU本次处于休眠状态时的休眠持续时间。
[0035] 恢复单元用于根据状态切换补偿时间和系统时间,恢复MCU的系统时钟。
[0036] 在本公开的一些实施例中,获取单元还用于从存储单元中获取MCU本次进入休眠状态的休眠时刻对应的系统时间。
[0037] 在本公开的一些实施例中,获取单元还用于从内部软时钟模块中获取MCU本次处于休眠状态时的休眠持续时间。
[0038] 在本公开的一些实施例中,恢复单元具体用于将状态切换补偿时间和系统时间进行求和运算,得到总和时间;基于总和时间,恢复MCU的系统时钟。
[0039] 根据本公开实施例的第三方面,提供一种交通工具,包括:微控制单元MCU、实时时钟RTC和存储单元。其中,RTC通过总线与MCU通信连接;存储单元设于MCU外,存储单元用于存储MCU进入休眠状态的休眠时刻对应的系统时间;MCU包括:一个或多个处理器,其中,MCU用于执行上述第一方面的方法。
[0040] 根据本公开实施例的第四方面,提供一种存储介质,存储介质存储有指令,当指令在微控制单元MCU上运行时,使得MCU执行第一方面的方法。
[0041] 根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时可实现上述第一方面的方法。
[0042] 本公开的实施例提供的技术方案可以包括以下有益效果:在微控制单元MCU从休眠状态切换至唤醒状态时,读取实时时钟RTC的时间。在RTC的时间读取成功的情况下,可以直接利用读取到的RTC的时间,快速恢复MCU的系统时钟。在RTC的时间读取失败的情况下,可以利用MCU的状态切换补偿时间和系统时间,估算出MCU从休眠状态切换至唤醒状态的唤醒时刻对应的系统时间,利用该唤醒时刻对应的系统时间,真实且精准的快速恢复MCU的系统时钟。因此即使出现RTC的时间丢失、MCU读取RTC的时间出现异常等场景,也能够快速且精准的恢复MCU的系统时钟,解决了相关技术中通过NTP、GNSS等时间源授时导致所需时间较长等问题,从而可以提高MCU的系统时钟的时间恢复效率,提高授时系统的效率。
[0043] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明
[0044] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
[0045] 图1是根据本公开实施例提供的一种系统时钟的恢复方法的流程图
[0046] 图2是根据本公开实施例提供的另一种系统时钟的恢复方法的流程图。
[0047] 图3是根据本公开实施例提供的又一种系统时钟的恢复方法的流程图。
[0048] 图4是根据本公开实施例提供的一种系统时钟的恢复系统的结构框图
[0049] 图5是根据本公开实施例提供的一种系统时钟的恢复装置的框图。
[0050] 图6是根据本公开实施例提供的一种交通工具的框图。

具体实施方式

[0051] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
[0052] 在本公开的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
[0053] 图1是根据本公开实施例提供的一种系统时钟的恢复方法的流程图,需要说明的是,本公开实施例提供的系统时钟的恢复方法的执行主体可以是MCU。该系统时钟的恢复方法可以应用在本公开实施例提供的系统时钟的恢复装置上。示例性的,该系统时钟的恢复装置可配置于本公开实施例提供的交通工具上。
[0054] 如图1所示,该系统时钟的恢复方法,包括但不限于以下步骤:
[0055] 在步骤S101中,在MCU从休眠状态切换至唤醒状态时,读取RTC的时间。
[0056] 需要说明的是,在一些实施例中,RTC设于MCU的外部,可以通过总线(例如,CAN(Controller Area Network,控制器局域网)总线)与MCU进行通信连接,以便将RTC的时间发送给MCU。示例性的,MCU为交通工具(如车辆)上的MCU,RTC设于MCU的外部,RTC可以通过CAN总线与MCU进行通信连接。示例性的,MCU可以通过总线读取RTC的时间。
[0057] 在步骤S102中,确定RTC的时间是否读取成功。
[0058] 需要说明的是,步骤S102是可选的。
[0059] 可选的,在一些实施例中,在从RTC获取到时间并且所获取到的时间不是默认值时,确定RTC的时间读取成功。示例性的,默认值可以为设备出厂设置的默认时间。例如,在从RTC获取到时间并且所获取到的时间不是设备出厂设置的默认时间时,确定RTC的时间读取成功。
[0060] 可选的,在一些实施例中,在无法从RTC获取到时间或者所获取到的时间是默认值时,确定RTC的时间读取失败。
[0061] 在步骤S103中,响应于RTC的时间读取成功,基于读取到的RTC的时间恢复MCU的系统时钟。
[0062] 在步骤S104中,响应于RTC的时间读取失败,获取MCU的状态切换补偿时间和系统时间,根据状态切换补偿时间和系统时间,恢复MCU的系统时钟。
[0063] 其中,在一些实施例中,该MCU的状态切换补偿时间可以通过对MCU样本从唤醒状态进入休眠状态和/或从休眠状态进入唤醒状态过程的所需时长进行测量方式获得。
[0064] 在一些实施例中,系统时间包括以下至少一项:MCU本次进入休眠状态的休眠时刻对应的系统时间;MCU本次处于休眠状态时的休眠持续时间。
[0065] 在一些实施例中,上述MCU本次进入休眠状态的休眠时刻对应的系统时间可以通过以下方式获得:在MCU进入休眠状态时,记录MCU本次进入休眠状态的休眠时刻对应的系统时间。
[0066] 在一些实施例中,上述MCU本次处于休眠状态时的休眠持续时间可以是通过MCU系统上软时钟计算的。
[0067] 在本公开的实施例中,在RTC的时间读取失败的情况下,可以利用MCU的状态切换补偿时间、MCU本次进入休眠状态的休眠时刻对应的系统时间和MCU本次处于休眠状态时的休眠持续时间,估算出MCU从休眠状态切换至唤醒状态的唤醒时刻对应的系统时间,利用该唤醒时刻对应的系统时间,快速恢复MCU的系统时钟。由于在估算出MCU从休眠状态切换至唤醒状态的唤醒时刻对应的系统时间,考虑了MCU本次进入休眠状态的休眠时刻对应的系统时间、MCU本次处于休眠状态时的休眠持续时间,且考虑了MCU从唤醒状态切换至休眠状态以及从休眠状态切换至唤醒状态的时间,所以使得估算出系统时间更加具有真实性和精准性。
[0068] 通过实施本公开实施例,在微控制单元MCU从休眠状态切换至唤醒状态时,读取实时时钟RTC的时间。在RTC的时间读取成功的情况下,可以直接利用读取到的RTC的时间,快速恢复MCU的系统时钟。在RTC的时间读取失败的情况下,可以利用MCU的状态切换补偿时间和系统时间,估算出MCU从休眠状态切换至唤醒状态的唤醒时刻对应的系统时间,利用该唤醒时刻对应的系统时间,真实且精准的快速恢复MCU的系统时钟。因此即使出现RTC的时间丢失、MCU读取RTC的时间出现异常等场景,也能够快速且精准的恢复MCU的系统时钟,解决了相关技术中通过NTP、GNSS等时间源授时导致所需时间较长等问题,从而可以提高MCU的系统时钟的时间恢复效率,提高授时系统的效率。
[0069] 图2是根据本公开实施例提供的另一种系统时钟的恢复方法的流程图。如图2所示,该系统时钟的恢复方法,包括但不限于以下步骤:
[0070] 在步骤S201中,在MCU进入休眠状态时,将MCU本次进入休眠状态的休眠时刻对应的系统时间写入至存储单元。
[0071] 需要说明的是,在一些实施例中,该存储单元可以是MCU的外部存储单元。该存储单元在MCU处于休眠状态时可以维持数据不丢失。
[0072] 在步骤S202中,在MCU从休眠状态切换至唤醒状态时,读取RTC的时间。
[0073] 在本公开的实施例中,步骤S202可以分别采用本公开的各实施例中的任一种方式实现,本公开实施例并不对此作出限定,也不再赘述。
[0074] 在步骤S203中,确定RTC的时间是否读取成功。
[0075] 可以理解的是,在读取到RTC的时间后,可以基于RTC的时间和总和时间进行计算,得到RTC的时间与总和时间的差值;基于该差值对RTC的时间进行验证,确定RTC的时间是否存在异常。
[0076] 可选的,在一些实施例中,在确定RTC的时间读取成功后,获取MCU的状态切换补偿时间、MCU本次进入休眠状态的休眠时刻对应的系统时间和MCU本次处于休眠状态时的休眠持续时间;根据状态切换补偿时间、休眠时刻对应的系统时间和休眠持续时间进行求和计算,确定总和时间;基于读取到的RTC的时间与总和时间进行差值计算,确定RTC的时间是否读取成功;响应于RTC的时间读取成功,基于读取到的RTC的时间恢复MCU的系统时钟,或者,响应于RTC的时间读取失败,获取MCU的状态切换补偿时间、MCU本次进入休眠状态的休眠时刻对应的系统时间和MCU本次处于休眠状态时的休眠持续时间,根据状态切换补偿时间、休眠时刻对应的系统时间和休眠持续时间,恢复MCU的系统时钟。
[0077] 可选的,在一些实施例中,基于读取到的RTC的时间与总和时间进行差值计算,得到时间差值;当时间差值小于或者等于第一阈值时,确定RTC的时间读取成功,或者,当时间差值大于第一阈值时,确定RTC的时间读取失败。
[0078] 在步骤S204中,响应于RTC的时间读取成功,基于读取到的RTC的时间恢复MCU的系统时钟。
[0079] 在步骤S205中,响应于RTC的时间读取失败,从存储单元中获取MCU本次进入休眠状态的休眠时刻对应的系统时间。
[0080] 在步骤S206中,获取MCU的状态切换补偿时间和MCU本次处于休眠状态时的休眠持续时间。
[0081] 可选地,在RTC的时间读取失败的情况下,可以获取MCU的状态切换补偿时间和MCU本次处于休眠状态时的休眠持续时间。
[0082] 需要说明的是,在一些实施例中,步骤S205、步骤S206可以同步执行的。
[0083] 在步骤S207中,根据状态切换补偿时间、休眠时刻对应的系统时间和休眠持续时间,恢复MCU的系统时钟。
[0084] 可选的,在一些实施例中,响应于RTC的时间读取失败,获取MCU的状态切换补偿时间、MCU本次进入休眠状态的休眠时刻对应的系统时间和MCU本次处于休眠状态时的休眠持续时间;将状态切换补偿时间、休眠时刻对应的系统时间和休眠持续时间进行求和运算,得到总和时间;基于总和时间,恢复MCU的系统时钟。示例性的,该总和时间可以通过以下公式(1)计算得到:
[0085] t=t1+t2+t3(1)
[0086] 其中,t是指总和时间;t1是指MCU的状态切换补偿时间;t2是指MCU本次进入休眠状态的休眠时刻对应的系统时间;t3是指MCU本次处于休眠状态时的休眠持续时间。
[0087] 可选的,在一些实施例中,MCU的状态切换补偿时间是通过对MCU样本从唤醒状态进入休眠状态和/或从休眠状态进入唤醒状态过程的所需时长进行测量得到的标定值。
[0088] 示例性的,MCU样本可以是指该MCU(本文中所涉及的MCU),即对该MCU的状态切换的历史数据进行分析,得到该标定值。示例性的,MCU可以通过该MCU状态切换的历史数据进行分析,得到该MCU的状态切换补偿时间。
[0089] 需要说明的是,状态转换的历史数据可以包括从唤醒状态进入休眠状态和/或从休眠状态进入唤醒状态过程的所需时长。示例性的,状态切换的历史数据可以包括从唤醒状态进入休眠状态过程的所需时长;或者,状态切换的历史数据可以包括从休眠状态进入唤醒状态过程的所需时长;或者,状态切换的历史数据可以包括从唤醒状态进入休眠状态过程的所需时长和从休眠状态进入唤醒状态过程的所需时长。
[0090] 示例性的,MCU样本还可以是指与该MCU型号相同、功能(或用途)相同的MCU,例如,相同车型上的MCU。示例性的,可以基于大数据技术,获取相同车型上的MCU的状态转换的历史数据,通过对状态转换的历史数据进行分析,得到该标定值。
[0091] 通过实施本公开实施例,利用存储单元在MCU处于休眠状态时可以维持数据不丢失的特性,使用存储单元记录MCU本次进入休眠状态的休眠时刻对应的系统时间,这样,在RTC的时间读取失败的情况下,可以通过MCU的状态切换补偿时间、MCU本次处于休眠状态时的休眠持续时间和从存储单元中获取的MCU本次进入休眠状态的休眠时刻对应的系统时间,估算出MCU从休眠状态切换至唤醒状态的唤醒时刻对应的系统时间,利用该唤醒时刻对应的系统时间,快速恢复MCU的系统时钟,这样可以进一步提高所估算出系统时间的真实性和精准性。
[0092] 图3是根据本公开实施例提供的又一种系统时钟的恢复方法的流程图。如图3所示,该系统时钟的恢复方法,包括但不限于以下步骤:
[0093] 在步骤S301中,在MCU进入休眠状态时,将MCU本次进入休眠状态的休眠时刻对应的系统时间写入至存储单元。
[0094] 在本公开的实施例中,步骤S301可以分别采用本公开的各实施例中的任一种方式实现,本公开实施例并不对此作出限定,也不再赘述。
[0095] 在步骤S302中,在MCU休眠期间,控制MCU以最小系统运行。
[0096] 可选的,在一些实施例中,最小系统包括MCU内软件层面所运行的内部软时钟模块。其中,该内部软时钟模块可以通过MCU中的处理器(例如,中央处理器CPU)的运行频率计算得到该MCU处于休眠状态时的休眠持续时间。
[0097] 在步骤S303中,在微控制单元MCU从休眠状态切换至唤醒状态时,读取实时时钟RTC的时间。
[0098] 在本公开的实施例中,步骤S303可以分别采用本公开的各实施例中的任一种方式实现,本公开实施例并不对此作出限定,也不再赘述。
[0099] 在步骤S304中,确定RTC的时间是否读取成功。
[0100] 在本公开的实施例中,步骤S304可以分别采用本公开的各实施例中的任一种方式实现,本公开实施例并不对此作出限定,也不再赘述。
[0101] 在步骤S305中,响应于RTC的时间读取成功,基于读取到的RTC的时间恢复MCU的系统时钟。
[0102] 在步骤S306中,响应于RTC的时间读取失败,从内部软时钟模块中获取MCU本次处于休眠状态时的休眠持续时间。
[0103] 在步骤S307中,从存储单元中获取MCU本次进入休眠状态的休眠时刻对应的系统时间。
[0104] 可选地,在RTC的时间读取失败的情况下,可以从存储单元中获取MCU本次进入休眠状态的休眠时刻对应的系统时间。
[0105] 在步骤S308中,获取MCU的状态切换补偿时间。
[0106] 需要说明的是,在一些实施例中,步骤S306、步骤S307和步骤S308可以同步执行的。
[0107] 在步骤S309中,根据状态切换补偿时间、休眠时刻对应的系统时间和休眠持续时间,恢复MCU的系统时钟。
[0108] 在本公开的实施例中,步骤S309以分别采用本公开的各实施例中的任一种方式实现,本公开实施例并不对此作出限定,也不再赘述。
[0109] 通过实施本公开实施例,在MCU休眠期间,控制MCU以最小系统运行,可以降低功耗。另外通过该最小系统中的内部软时钟模块计算得到该MCU处于休眠状态时的休眠持续时间,这样,在RTC的时间读取失败的情况下,从内部软时钟模块中获取MCU本次处于休眠状态时的休眠持续时间,利用该休眠持续时间结合MCU本次进入休眠状态的休眠时刻对应的系统时间以及休眠时刻对应的系统时间,恢复系统时钟,可以提高MCU的系统时钟的时间恢复速度,进一步提高所恢复的MCU的系统时间的准确度和MCU的可靠性。
[0110] 在一些实施例中,MCU可以是交通工具上的MCU。示例性的,该交通工具可以是车辆。在车辆的MCU进入休眠状态时,将车辆的MCU本次进入休眠状态对应的系统时间写入至存储单元。在车辆的MCU休眠期间,控制车辆的MCU以最小系统运行。该最小系统包括车辆MCU内软件层面所运行的内部软时钟模块。通过该内部软时钟模块基于车辆MCU中的处理器的运行频率计算得到MCU处于休眠状态时的休眠持续时间。在车辆MCU从休眠状态切换至唤醒状态时,读取RTC的时间。
[0111] 示例性的,在RTC的时间读取成功的情况下,基于读取到的RTC的时间恢复车辆MCU的系统时钟。
[0112] 示例性的,在RTC的时间读取失败的情况下,从存储单元中获取MCU本次进入休眠状态的休眠时刻对应的系统时间;从内部软时钟模块中获取MCU本次处于休眠状态时的休眠持续时间;根据对MCU样本从唤醒状态进入休眠状态和/或从休眠状态进入唤醒状态过程的所需时长进行测量,得到车辆MCU的状态切换补偿时间;将状态切换补偿时间、休眠时刻对应的系统时间和休眠持续时间进行求和运算,得到总和时间;基于总和时间,恢复MCU的系统时钟。
[0113] 图4是根据本公开实施例提供的一种系统时钟的恢复系统的结构框图。如图4所示,该系统时钟的恢复系统包括但不限于:MCU 400、RTC 601、存储单元602。其中,MCU 400包括处理器401、系统时钟402和内部软时钟模块403。RTC通过总线与MCU通信连接。存储单元602设于MCU 400外,存储单元602用于存储MCU 400进入休眠状态的休眠时刻对应的系统时间。为方便理解该系统时钟的恢复方法,根据图4进行举例说明。
[0114] 举例而言,在MCU 400进入休眠状态前,MCU 400将本次进入休眠状态的休眠时刻对应的系统时间写入至存储单元602中。在MCU 400处于休眠状态下,该存储单元602存储的数据不会丢失。
[0115] 在MCU 400休眠期间,控制MCU 400以最小系统运行。该最小系统包括MCU 400内软件层面所运行的内部软时钟模块403。在MCU 400休眠期间,该内部软时钟模块403可以利用MCU 400中的处理器401的运行频率进行计算,得到MCU 400本次处于休眠状态时的休眠持续时间。
[0116] 在MCU 400从休眠状态切换至唤醒状态时,读取RTC 601的时间。
[0117] 当能够获取到RTC 601的时间并且所获取到的RTC 601的时间不是默认值(例如,出厂设置的默认时间)时,确定RTC 601的时间读取成功。
[0118] 在一些实施例中,在获取到RTC 601的时间后,可以基于RTC 601的时间和总和时间进行计算,得到RTC 601的时间与总和时间的时间差值;当该时间差值小于或者等于第一阈值时,确定RTC 601的时间读取成功。
[0119] 响应于RTC 601的时间读取成功,基于读取到的RTC 601的时间恢复MCU 400的系统时钟402。
[0120] 当无法获取到RTC 601的时间或者所获取到的RTC 601的时间是默认值(例如,出厂设置的默认时间)时,确定RTC 601的时间读取失败。
[0121] 在一些实施例中,在获取到RTC 601的时间后,可以基于RTC 601的时间和总和时间进行计算,得到RTC 601的时间与总和时间的时间差值;当该时间差值大于第一阈值时,确定RTC 601的时间读取失败。
[0122] 响应于RTC 601的时间读取失败,获取MCU 400的状态切换补偿时间、MCU 400本次进入休眠状态的休眠时刻对应的系统时间和MCU400本次处于休眠状态时的休眠持续时间,根据状态切换补偿时间、休眠时刻对应的系统时间和休眠持续时间,恢复MCU 400的系统时钟402。
[0123] 图5是根据本公开实施例提供的一种系统时钟的恢复装置的框图。如图5所示,该系统时钟的恢复装置包括但不限于读取模块501、恢复模块502。
[0124] 其中,读取模块501,用于在微控制单元MCU从休眠状态切换至唤醒状态时,读取实时时钟RTC的时间。
[0125] 恢复模块502,用于响应于RTC的时间读取成功,基于读取到的RTC的时间恢复MCU的系统时钟。
[0126] 恢复模块502,还用于响应于RTC的时间读取失败,获取MCU的状态切换补偿时间和系统时间,根据状态切换补偿时间和系统时间,恢复MCU的系统时钟。
[0127] 可选的,在一些实施例中,该系统时钟的恢复装置还包括存储模块503。该存储模块503用于将MCU本次进入休眠状态的休眠时刻对应的系统时间写入至存储单元。其中,存储单元在MCU处于休眠状态时维持数据不丢失。
[0128] 可选的,在一些实施例中,该系统时钟的恢复装置还包括控制模块504。该控制模块504用于在MCU休眠期间,控制MCU以最小系统运行;最小系统包括MCU内软件层面所运行的内部软时钟模块。
[0129] 可选的,在一些实施例中,恢复模块502包括获取单元和恢复单元。
[0130] 其中,获取单元用于获取MCU的状态切换补偿时间和系统时间。
[0131] 在本公开的一些实施例中,获取单元所获取到的系统时间包括以下至少一项:
[0132] MCU本次进入休眠状态的休眠时刻对应的系统时间;
[0133] MCU本次处于休眠状态时的休眠持续时间。
[0134] 恢复单元用于根据状态切换补偿时间和系统时间,恢复MCU的系统时钟。
[0135] 可选的,在一些实施例中,获取单元还用于从存储单元中获取MCU本次进入休眠状态的休眠时刻对应的系统时间。
[0136] 可选的,在一些实施例中,获取单元还用于从内部软时钟模块中获取MCU本次处于休眠状态时的休眠持续时间。
[0137] 可选的,在一些实施例中,恢复单元具体用于将状态切换补偿时间和系统时间进行求和运算,得到总和时间;基于总和时间,恢复MCU的系统时钟。
[0138] 关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0139] 图6是根据本公开实施例提供的一种交通工具的框图。例如,该交通工具可以包括但不限于车辆,如燃油车辆、新能源车辆、无人机、电动自行车等交通工具。在一些实施例中,该交通工具可以为车辆。如图6所示,该交通工具包括但不限于:微控制单元MCU400、实时时钟RTC 601和存储单元602。
[0140] 其中,RTC 601通过总线与微控制单元MCU 400通信连接。存储单元602设于微控制单元MCU 400外,存储单元602用于存储微控制单元MCU 400进入休眠状态的休眠时刻对应的系统时间。
[0141] 微控制单元MCU 400通常控制交通工具的整体操作,诸如与车身、行车控制、信息娱乐、智能驾驶以及系统时钟相关联的操作。微控制单元MCU 400可以包括一个或多个处理器(例如,中央处理器CPU)来执行指令,以完成上述的方法的全部或部分步骤。图6中以微控制单元MCU 400包括一个处理器401为例。微控制单元MCU 400可以包括一个或多个模块,便于微控制单元MCU 400进行其他组件之间的交互。例如,微控制单元MCU 400可以包括通信模块,以方便通信组件和微控制单元MCU 400之间的交互。
[0142] 存储单元602被配置为存储各种类型的数据以支持在交通工具的操作。这些数据的示例包括用于在交通工具上操作的任何应用程序或方法的指令,系统时钟信息,状态切换补偿时间信息、微控制单元MCU 400本次处于休眠状态时的休眠持续时间信息等。存储单元602可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
[0143] 可选的,该交通工具还可以包括以下一个或多个组件:电力组件603、多媒体组件604、输入/输出(I/O)的接口605、传感器组件606以及通信组件607。
[0144] 电力组件603为交通工具的各种组件提供电力。电力组件603可以包括电源管理系统,一个或多个电源,及其他与为交通工具生成、管理和分配电力相关联的组件。
[0145] 多媒体组件604包括在所述交通工具和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
[0146] I/O接口605为微控制单元MCU 400和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮。
[0147] 传感器组件606包括一个或多个传感器,用于为交通工具提供各个方面的状态评估。例如,传感器组件606可以检测到交通工具的打开/关闭状态。传感器组件606还可以检测交通工具的位置改变,交通工具的方位或加速/减速和交通工具内外的温度变化。传感器组件606可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件606还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件606还可以包括加速度传感器,陀螺仪传感器,磁传感器压力传感器或温度传感器。
[0148] 通信组件607被配置为便于交通工具和其他设备之间有线或无线方式的通信。交通工具可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件607经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件607还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
[0149] 在示例性实施例中,交通工具可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程阵列(FPGA)、控制器、微控制器微处理器或其他电子元件实现,用于执行本公开实施例提供的系统时钟的恢复方法。
[0150] 可选的,在一些实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储单元602,上述指令可由交通工具的微控制单元MCU 400执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD‑ROM、磁带、软盘和光数据存储设备等。
[0151] 可选的,在一些实施例中,还提供了一种计算机程序产品,包括计算机程序,计算机程序在被微控制单元MCU400执行时可实现本公开实施例提供的系统时钟的恢复方法。
[0152] 本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
[0153] 应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
QQ群二维码
意见反馈