CN117252138A - 面向片上系统的实时时钟补偿方法、装置、设备和介质 - Google Patents
面向片上系统的实时时钟补偿方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN117252138A CN117252138A CN202311211515.1A CN202311211515A CN117252138A CN 117252138 A CN117252138 A CN 117252138A CN 202311211515 A CN202311211515 A CN 202311211515A CN 117252138 A CN117252138 A CN 117252138A
- Authority
- CN
- China
- Prior art keywords
- real
- time clock
- compensation
- register
- count
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000004590 computer program Methods 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 abstract description 8
- 239000013078 crystal Substances 0.000 description 12
- 230000001360 synchronised effect Effects 0.000 description 6
- 239000003990 capacitor Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000005259 measurement Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000000295 complement effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
- G06F30/367—Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
- G06F30/373—Design optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/02—System on chip [SoC] design
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Electric Clocks (AREA)
Abstract
本申请涉及一种面向片上系统的实时时钟补偿方法、装置、设备和介质。通过获取SOC芯片的高频计数值,根据高频计数值计算实时时钟的计时误差;根据计时误差计算实时时钟的配置值,根据配置值对实时时钟的补偿寄存器进行配置;根据配置好的补偿寄存器,对实时时钟的计数寄存器进行补偿。大大提高了实时时钟RTC的时间精度和稳定性。此外,利用SOC自身硬件资源进行补偿计算和控制,避免增加外部硬件成本和复杂度。
Description
技术领域
本申请涉及集成电路技术领域,特别是涉及一种面向片上系统的实时时钟补偿方法、装置、设备和介质。
背景技术
随着电子产品的普及和技术的进步,集成电路技术不断更新换代。传统的分立式专用芯片已逐步被片上系统(System On a Chip,SOC)所取代。在科学技术的发展和芯片设计制造技术的进步下,SOC系统中逐渐丰富了各种各样的实用功能。
实时时钟(Real_Time Clock,RTC),为设备应用运行提供一个时间基准。在SOC系统中,它的主要功能是提供实时时间与CPU休眠后的定时唤醒。由于RTC需要在CPU休眠后对其进行唤醒,因此,它需要提供一个独立的外部晶振时钟作为时钟来源。然而,晶体振荡频率会随温度的变化漂移,且如今的集成电路芯片被要求适应各种高温、高压、低温或低压等多种应用场景。其次,集成电路自身由于集成了大量的元器件也会产生大量的热量,这些应用场景往往使得晶振产生的时钟频率出现不稳定情况。因此,SOC系统在运行过程中,及时根据当前环境对RTC进行时钟补偿成为一个必须解决的问题。
多年以来,从添加外围电路进行时钟补偿,到软件层进行时钟补偿,多种技术手段层出不穷。
有学者提出,采用温敏电阻进行温度采样,获取其两端的电压并进行AD转换,得各温度下温敏电阻两端电压对应的ADC值,后根据获取的ADC值经过后向微控制器的校准寄存器写入温度补偿值。又一学者提出,在晶振系统外添加多个相互并联的电容组成的电容阵列。通过计算频率偏差值对应的频率调整量,控制所对应的电容阵列中需闭合的电容的目标个数来实现时钟校准。还有学者提出,通过预先对三个温度点进行测试,并进行二次曲线拟合,得出二次曲线参数,并写入对应的寄存器内。再根据预定的粗调步进调幅和精调步进调幅,计算粗调调节步进数和精调调节步进数。粗调需要对晶振外的调频器进行调整,细调需要对外围的电容阵列进行控制,以提高测量精度和可补偿范围宽。
上述方法,均采用外围电路进行校准。也有些工程师,尝试在片内进行时钟校准设计。例如:为了降低设备功耗,在片内额外添加了一个温度传感器和一个高频输入晶振。同时提前测试与高频晶振的补偿关系后定制了一个温度补偿表格存储在片内存储空间。每次进行校准时,获取当前温度,直接根据该数据对晶振进行时钟补偿。
然而,上述传统的时钟补偿方法存在补偿精度低和成本造价高的技术问题。
发明内容
基于此,有必要针对上述技术问题,提供一种面向片上系统的实时时钟补偿方法、一种面向片上系统的实时时钟补偿装置、一种计算机设备和一种计算机可读存储介质。
为了实现上述目的,本发明实施例采用以下技术方案:
一方面,提供一种面向片上系统的实时时钟补偿方法,包括:
获取SOC芯片的高频计数值,根据高频计数值计算实时时钟的计时误差;
根据计时误差计算实时时钟的配置值,根据配置值对实时时钟的补偿寄存器进行配置;
根据配置好的补偿寄存器,对实时时钟的计数寄存器进行补偿。
另一方面,还提供一种面向片上系统的实时时钟补偿装置,包括:
误差模块,用于获取SOC芯片的高频计数值,根据高频计数值计算实时时钟的计时误差;
配置模块,用于根据计时误差计算实时时钟的配置值,根据配置值对实时时钟的补偿寄存器进行配置;
RTC模块,用于根据配置好的补偿寄存器,对实时时钟的计数寄存器进行补偿。
又一方面,还提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述的面向片上系统的实时时钟补偿方法的步骤。
再一方面,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的面向片上系统的实时时钟补偿方法的步骤。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
上述面向片上系统的实时时钟补偿方法、装置、设备和介质,利用SOC芯片内部的高频计数器进行精确计数,作为计时基准;通过计算RTC计数值与高频计数值之间的误差,可以得到RTC的定时补偿值。将计算所得的补偿值写入RTC的补偿寄存器进行配置,根据补偿寄存器的配置值,对RTC的计数寄存器进行修正,完成闭环补偿。从而实现对RTC计时的自动校准,大大提高了实时时钟RTC的时间精度和稳定性。此外,利用SOC自身硬件资源进行补偿计算和控制,避免增加外部硬件成本和复杂度。
附图说明
为了更清楚地说明本申请实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中面向片上系统的实时时钟补偿方法的流程示意图;
图2为一个实施例中计算实时时钟的计时误差步骤的流程示意图;
图3为一个实施例中对实时时钟进行补偿步骤的流程示意图;
图4为另一个实施例中对实时时钟进行补偿步骤的流程示意图;
图5为一个实施例中SOC芯片的系统结构示意图;
图6为一个实施例中RTC模块的内部结构示意图;
图7为一个实施例中面向片上系统的实时时钟补偿装置的模块结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。
需要说明的是,在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。
针对现有时钟补偿方法存在补偿精度低的技术问题,本发明提供了一种面向片上系统的实时时钟补偿方法,利用SOC芯片内部的高频计数器进行精确计数,作为计时基准;通过计算RTC计数值与高频计数值之间的误差,可以得到RTC的定时补偿值。将计算所得的补偿值写入RTC的补偿寄存器进行配置,根据补偿寄存器的配置值,对RTC的计数寄存器进行修正,完成闭环补偿。从而实现对RTC计时的自动校准,大大提高了实时时钟RTC的时间精度和稳定性。此外,利用SOC自身硬件资源进行补偿计算和控制,避免增加外部硬件成本和复杂度。
下面将结合本发明实施例图中的附图,对本发明实施方式进行详细说明。
在一个实施例中,如图1所示,本申请实施例提供了一种面向片上系统的实时时钟补偿方法,包括如下处理步骤S12-16:
S12,获取SOC芯片的高频计数值,根据高频计数值计算实时时钟的计时误差。
可以理解,从芯片结构分析,在SOC系统中,必不可少的模块有CPU控制模块和计数器模块。芯片内部自带的计数器模块采用系统主频(高频)计数器进行计数,RTC内部设置有计数寄存器。利用SOC芯片内集成的高频计数器进行精确计数,获取高频计数值;再将RTC的计数值与高频计数值进行对比,其差值就是RTC的计时误差。可以通过启动和停止高频计数进行RTC计时误差的测量和计算;也可以采用持续同步计数,连续比较RTC和高频计数,实时计算误差;还可以使用时间间隔计数器单独测量RTC和高频时钟周期差,从而计算计时误差。
S14,根据计时误差计算实时时钟的配置值,根据配置值对实时时钟的补偿寄存器进行配置。
可以理解,可以根据计时误差判断RTC目前的计时情况是快于理论值还是滞后于理论值,根据RTC晶振的标称频率参数,可以计算出RTC每秒钟计数的理论周期数。结合计时误差情况,可以得出RTC每秒钟实际计时快了或慢了的周期数。然后,将该周期误差数值折算为需要写入补偿寄存器的数字配置值,运算关系可以通过预存函数确定。如果RTC计时偏快,其配置值为负数,以减慢RTC的计时;如果RTC计时偏慢,其配置值为正数,以提升RTC的计时速度。如果计时误差为0,则配置值为0。
S16,根据配置好的补偿寄存器,对实时时钟的计数寄存器进行补偿。
可以理解,配置值是根据计时误差计算得到的补偿参数,并写入补偿寄存器。计数寄存器是实时时钟用于进行时间计数累加的硬件寄存器,根据补偿寄存器的配置值,对计数寄存器执行增加或减少计数的操作,从而对计数寄存器当前的值进行修正,完成闭环补偿。可以设计数字补偿逻辑电路,实时对计数寄存器进行补偿控制;也可以通过软件循环定时地读取配置值,并写入计数寄存器进行修正。
上述面向片上系统的实时时钟补偿方法中,利用SOC芯片内部的高频计数器进行精确计数,作为计时基准;通过计算RTC计数值与高频计数值之间的误差,可以得到RTC的定时补偿值。将计算所得的补偿值写入RTC的补偿寄存器进行配置,根据补偿寄存器的配置值,对RTC的计数寄存器进行修正,完成闭环补偿。从而实现对RTC计时的自动校准,大大提高了实时时钟RTC的时间精度和稳定性。此外,利用SOC自身硬件资源进行补偿计算和控制,避免增加外部硬件成本和复杂度。
在一个实施例中,如图2所示,获取SOC芯片的高频计数值,根据高频计数值计算实时时钟的计时误差的步骤,也即计算实时时钟的计时误差的步骤,包括如下处理子步骤S121-S124:
S121,获取SOC芯片的高频计数频率。
可以理解,SOC芯片内集成有高频计数器,其计数频率需要作为计算RTC计时误差的参数之一,因此需要先获取该高频计数器的准确频率值。高频计数器频率一般固定,可以直接从SOC的数据手册中获取该参数的数值;也可以通过读取高频计数器控制寄存器得到它的设置频率。如果高频计数器频率可配置,还可以在初始化时,通过校准来测量获得准确的计数频率。
S122,读取实时时钟第一时刻,并同时启动SOC芯片的高频计数器。
可以理解,需要记录下计算RTC计时误差时的起始时刻,同时启动高频计数器进行计数。在微处理器或者控制逻辑电路中,读取RTC的当前计数寄存器值,获得第一时刻的时间计数数据。同时,通过设定控制位,启动SOC芯片内部的高频计数器开始运行计数。RTC的计数值可以写入指定寄存器保持;高频计数器在启动后会自动按其频率计数。读取RTC计数值的时序可以和启动高频计数器同步进行,使两者时间对齐。
S123,读取实时时钟第二时刻,并同时停止SOC芯片的高频计数器,获得高频计数值。
可以理解,需要记录下计算RTC计时误差时的结束时刻,同时停止高频计数器,获取计数总值。在微处理器或控制逻辑电路中,读取RTC的当前计数寄存器值,获得第二时刻的时间数据。同时,通过暂停控制位,停止SOC芯片内部的高频计数器。然后读取高频计数器的计数总值寄存器,获得停止时刻的计数值。RTC的第二计数值和高频计数值可保存在指定寄存器,读取RTC计数值和停止高频计数的时序可以同步进行。
S124,根据高频计数频率、第一时刻、第二时刻和高频计数值计算实时时钟的计时误差。
可以理解,根据高频计数器的高频计数频率,在第一时刻和第二时刻之间的计数值,可以算出两时刻之间的实际时间间隔实际值。再与RTC的两时刻读数之差的时间间隔作比较,可以计算出RTC的计时误差。例如,高频计数频率为200MHz,即计数一次为5ns,读取第一时刻的RTC时钟,为1分01秒,同时启动计数。一段时间后,停止高频计数器,读取第二时刻的RTC时钟,此时读到为1分05秒,同时读取高频计数器计数值。当前计数值为,9*10^8,原则上来说,RTC时间前进4秒,内部计数器也应该计数为4秒,计数值为8*10^8次。但实际值为9*10^8次,即RTC时钟在4秒内慢了1*10^8次,也就是慢了0.5秒,折算下来每秒慢了0.125秒。若RTC时钟为32.768KHz,则其内部计数为1秒为0x7FFF。在当前环境下每秒慢了0.125秒,若每秒都进行补偿,即计时误差为0.125秒。
上述面向片上系统的实时时钟补偿方法中,利用了SOC芯片中已经集成的高频计数器,避免了增加额外的计时参考源,降低了设计难度和成本;高频计数器具有很高的计数精度,可以提供一个准确可靠的时间基准,提高了误差测量的分辨率;可以通过启动停止计数的方法来计算时间间隔和误差,计算方式灵活,不依赖持续同步计数;实时补偿快速测量误差和补偿可以一次性快速完成,无需长时间累积观测,实时性较好;主要通过读取寄存器计数值和控制计数动作来实现,软件或硬件实现都较为简单;只需要读取SOC现有资源的计数值,对系统运行影响很小。
在一个实施例中,如图3所示,根据配置好的补偿寄存器,对实时时钟的计数寄存器进行补偿的步骤,也即对实时时钟进行补偿的步骤,包括如下处理子步骤S161-S162:
S161,当配置值指示不需要进行补偿或需要进行负补偿时,使计数寄存器进行正常计数并向实时时钟的内部中控模块发出忙信号;计数寄存器的计数值小于理论计数值时为需要进行负补偿。
可以理解,当计数寄存器的计数值小于理论计数值时定义为需要进行负补偿,RTC模块可以包括一个全局控制寄存器,用于根据配置值决定是否需要进行补偿。当不需要进行补偿或者RTC时钟过慢需要负补偿时,在到达设定值之前,先保持计数寄存器正常计数,并发忙信号防止被中断。设定值可以根据补偿频率进行确定,例如RTC时钟每1秒都进行补偿,那么设定值即为计数寄存器在1秒时的计时值。
S162,当计数寄存器的计数值达到设定值时,将配置值赋值给计数寄存器,同时向内部中控模块发出秒更新请求。
可以理解,当RTC的计数寄存器计数达到一个秒计数周期时,需要进行秒计数的更新。可以设置计数寄存器的满值计数为RTC的标称频率,当计数值达到满值时,表明一个计时秒已经计数完成。此时将补偿配置值赋值给计数寄存器,完成秒内的补偿。同时发出秒更新请求信号给RTC内部的内部中控模块,内部中控模块接到请求后,会进行通用计数器的秒计数递增。
上述面向片上系统的实时时钟补偿方法中,在不需要补偿时,让计数寄存器继续正常计数,保证了RTC的时间计数连续性;向中控模块发送忙信号,可以防止计数被意外中断,提高计时准确性;在每个计时秒结束时进行补偿,可以立即校正计时误差,确保补偿的实时性;直接对计数寄存器赋值配置值,可以准确输入补偿量,补偿精确;秒更新请求可以自动驱动整个RTC系统进行辅助计数的协调控制;控制逻辑简单,通过选择器和加法器即可实现,确保稳定可靠;补偿控制都是在RTC内部完成,对系统其他部分无影响。
在一个实施例中,如图4所示,根据配置好的补偿寄存器,对实时时钟的计数寄存器进行补偿的步骤,也即对实时时钟进行补偿的步骤,包括如下处理子步骤S161A-S164A:
S161A,当配置值指示需要进行正补偿时,计数寄存器进行正常计数至设定值。
可以理解,当RTC计时偏快时,定义为需要进行正补偿,先在到达设定值之前,先保持计数寄存器正常计数,并发忙信号防止被中断。设定值可以根据补偿频率进行确定,例如RTC时钟每1秒都进行补偿,那么设定值即为计数寄存器在1秒时的计时值。
S162A,将配置值的非最高位赋值给计数寄存器,同时对补偿提示信号进行置位。
可以理解,当RTC计时偏快时,需要在秒更新之前增加计数值,因此在正常计数至设定值时并不直接进入下一秒,而且在秒更新之前先增加计数值。由于RTC计时偏快,此时配置值为负数(表示为补码),正好配置值的非高位组(非最高位表示配置值的除最高位之外的剩余位)即为需要增加的计数值初始值。例如,如果此时RTC计数为快了0.125秒,即配置参数为0xF001(0x0FFF的补码)。计数器在计数到0x7FFF后会继续从0x7001计数至0x7FFF后为1秒结束,这样可以将过快的计数减慢,完成正补偿。
在对计数寄存器进行补偿赋值的时候,同时置位一个提示信号(补偿提示信号),用来指示这次的计数寄存器赋值是进行补偿调整的操作。
S163A,使计数寄存器进行正常计数,并向实时时钟的内部中控模块发出忙信号。
可以理解,根据上一步,计数寄存器为非最高位的值继续开始正常计数,并向实时时钟的内部中控模块发出忙信号防止被中断。
S164A,当计数寄存器的计数值再次达到设定值时,向内部中控模块发出秒更新请求,将补偿提示信号进行清零。
可以理解,当计数寄存器的计数值再次达到设定值时,也即完成了从非最高位到设定值的计数,完成了正补偿过程,此时需要通知RTC的中控模块进行通用计数器的秒计数递增。清零补偿提示信号,表示本次的补偿调整过程已经结束,清除置位状态,使得下次补偿时可以再次置位。防止提示信号一直保持置位状态导致重复触发补偿操作。确保每次补偿的独立性,不互相干扰。
上述面向片上系统的实时时钟补偿方法中,通过让计数寄存器根据晶振时钟源连续进行计数,并在计数满值时产生秒更新计时信号,可以实现精确的秒计时,确保时间序列的连续性;根据配置值对计数寄存器的累加计数进行增加或减少,可以准确地对秒脉冲计数进行补偿调整,提高计时精度;使用补码表示的配置值可以区分正负补偿情况,当配置值为正时表示需要增加计数实现负补偿;当配置值为负时表示需要减少计数实现正补偿;在补偿过程中通过控制忙信号等机制尽量减少对计数的中断,可以最大程度保证计时的连续性;通过配置不同配置值可控制补偿粒度,可以实现对计时偏差的精确补偿。
在一些实施方式中,为了更直观且全面地说明上述面向片上系统的实时时钟补偿方法,下面是对该面向片上系统的实时时钟补偿方法的应用示例。需要说明的是,本说明书中给出的实施案例仅为示意性的,并非为本发明具体实施案例的唯一限定,本领域技术人员可以在本发明提供的实施案例的示意下,可采用上述面向片上系统的实时时钟补偿方法,实现补偿精度的提高。
从芯片结构分析,在SOC系统中,必不可少的模块有CPU控制模块,计数器模块。芯片内部自带的计数器模块采用系统主频(高频)时钟进行计数。而对于RTC逻辑来说,必不可少的需要一个外部晶振输入时钟源,而这个外部时钟源为32.768KHz的低频时钟。一般来说,低频时钟相对于高频时钟来说更容易产生漂移,因此可以考虑用内部计数器进行时钟参考值校准。总体框图如图5所示,RTC模块的内部结构示意图如图6所示。
用户使用该补偿模块的方法如下。
第一步,我们需要知道高频计数器的采样时钟,如高频计数器采样时钟为200MHz,即计数一次为5ns。
第二步,读取当前时刻的RTC时钟,如当前为1分01秒,同时启动计数。
第三步,一段时间后,停止高频计数器。再次读取RTC的时钟,此时读到为1分05秒,同时读取高频计数器计数值。
第四步,计算差值。当前计数值为,9*10^8。原则上来说,RTC时间前进4秒,内部计数器也应该计数为4秒,计数值为8*10^8次。但实际值为9*10^8次,即RTC时钟在4秒内慢了1*10^8次,也就是慢了0.5秒,折算下来每秒慢了0.125秒。由于RTC时钟为32.768KHz,则其内部计数为1秒为0x7FFF。在当前环境下慢了0.125秒,即配置参数为0x0FFF即可。
第四步,通过计算值,判定应该进行正补偿还是负补偿。
第五步,配置参数进行补偿。当前计数值较慢,我们定义为需要负补偿,每次秒钟更新时,计数时不从0开始,从0xFFF开始即可将RTC计数提速。反之,如果此时RTC计数为快了0.125秒,即配置参数为0xF001(0x0FFF的补码)。计数器在计数到0x7FFF后会继续从0x7001计数至0x7FFF后为1秒结束,这样可以将过快的计数减慢,完成正补偿。
当前环境进行一次配置后,RTC将按照补偿值,持续正常工作。
应该理解的是,虽然图1-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种面向片上系统的实时时钟补偿装置200,包括:
误差模块22,用于获取SOC芯片的高频计数值,根据高频计数值计算实时时钟的计时误差。配置模块24,用于根据计时误差计算实时时钟的配置值,根据配置值对实时时钟的补偿寄存器进行配置。RTC模块26,用于根据配置好的补偿寄存器,对实时时钟的计数寄存器进行补偿。
上述面向片上系统的实时时钟补偿装置200中,利用SOC芯片内部的高频计数器进行精确计数,作为计时基准;通过计算RTC计数值与高频计数值之间的误差,可以得到RTC的定时补偿值。将计算所得的补偿值写入RTC的补偿寄存器进行配置,根据补偿寄存器的配置值,对RTC的计数寄存器进行修正,完成闭环补偿。从而实现对RTC计时的自动校准,大大提高了实时时钟RTC的时间精度和稳定性。此外,利用SOC自身硬件资源进行补偿计算和控制,避免增加外部硬件成本和复杂度。
在一个实施例中,上述面向片上系统的实时时钟补偿装置200,误差模块22包括:获取子模块,用于获取SOC芯片的高频计数频率。第一读取子模块,用于读取实时时钟第一时刻,并同时启动SOC芯片的高频计数器。第二读取子模块,用于读取实时时钟第二时刻,并同时停止SOC芯片的高频计数器,获得高频计数值。计算子模块,用于根据高频计数频率、第一时刻、第二时刻和高频计数值计算实时时钟的计时误差。
在一个实施例中,上述面向片上系统的实时时钟补偿装置200,RTC模块包括:计数寄存器子模块,用于当配置值指示不需要进行补偿或需要进行负补偿时,使计数寄存器进行正常计数并向实时时钟的内部中控模块发出忙信号;计数寄存器的计数值小于理论计数值时为需要进行负补偿。第一补偿子模块,用于当计数寄存器的计数值达到设定值时,将配置值赋值给计数寄存器,同时向内部中控模块发出秒更新请求。
在一个实施例中,上述面向片上系统的实时时钟补偿装置200,RTC模块包括:第一计数子模块,用于当配置值指示需要进行正补偿时,使计数寄存器进行正常计数至设定值。置位子模块,用于将配置值的非最高位赋值给计数寄存器,同时对补偿提示信号进行置位。第二计数子模块,用于使计数寄存器进行正常计数,并向实时时钟的内部中控模块发出忙信号。第二补偿子模块,用于当计数寄存器的计数值再次达到设定值时,向内部中控模块发出秒更新请求,将补偿提示信号进行清零。
关于面向片上系统的实时时钟补偿装置200的具体限定可以参见上文中对于面向片上系统的实时时钟补偿方法的限定,在此不再赘述。上述面向片上系统的实时时钟补偿装置200中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取SOC芯片的高频计数值,根据高频计数值计算实时时钟的计时误差;根据计时误差计算实时时钟的配置值,根据配置值对实时时钟的补偿寄存器进行配置;根据配置好的补偿寄存器,对实时时钟的计数寄存器进行补偿。
可以理解,上述计算机设备除上述述及的存储器和处理器外,还包括其他本说明书未列出的软硬件组成部分,具体可以根据不同应用场景下的具体计算机设备的型号确定,本说明书不再一一列出详述。
在一个实施例中,处理器执行计算机程序时还可以实现上述面向片上系统的实时时钟补偿方法各实施例中增加的步骤或者子步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取SOC芯片的高频计数值,根据高频计数值计算实时时钟的计时误差;根据计时误差计算实时时钟的配置值,根据配置值对实时时钟的补偿寄存器进行配置;根据配置好的补偿寄存器,对实时时钟的计数寄存器进行补偿。
在一个实施例中,计算机程序被处理器执行时,还可以实现上述面向片上系统的实时时钟补偿方法各实施例中增加的步骤或者子步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种面向片上系统的实时时钟补偿方法,其特征在于,包括步骤:
获取SOC芯片的高频计数值,根据所述高频计数值计算实时时钟的计时误差;
根据所述计时误差计算所述实时时钟的配置值,根据所述配置值对所述实时时钟的补偿寄存器进行配置;
根据配置好的所述补偿寄存器,对所述实时时钟的计数寄存器进行补偿。
2.根据权利要求1所述的面向片上系统的实时时钟补偿方法,其特征在于,获取SOC芯片的高频计数值,根据所述高频计数值计算实时时钟的计时误差的步骤,包括:
获取所述SOC芯片的高频计数频率;
读取所述实时时钟第一时刻,并同时启动所述SOC芯片的高频计数器;
读取所述实时时钟第二时刻,并同时停止所述SOC芯片的高频计数器,获得高频计数值;
根据所述高频计数频率、所述第一时刻、所述第二时刻和所述高频计数值计算实时时钟的计时误差。
3.根据权利要求1所述的面向片上系统的实时时钟补偿方法,其特征在于,根据配置好的所述补偿寄存器,对所述实时时钟的计数寄存器进行补偿的步骤,包括:
当所述配置值指示不需要进行补偿或需要进行负补偿时,使所述计数寄存器进行正常计数并向所述实时时钟的内部中控模块发出忙信号;所述计数寄存器的计数值小于理论计数值时为需要进行负补偿;
当所述计数寄存器的计数值达到设定值时,将所述配置值赋值给所述计数寄存器,同时向所述内部中控模块发出秒更新请求。
4.根据权利要求1所述的面向片上系统的实时时钟补偿方法,其特征在于,根据配置好的所述补偿寄存器,对所述实时时钟的计数寄存器进行补偿的步骤,包括:
当所述配置值指示需要进行正补偿时,使所述计数寄存器进行正常计数至设定值;
将所述配置值的非最高位赋值给所述计数寄存器,同时对补偿提示信号进行置位;
使所述计数寄存器进行正常计数,并向所述实时时钟的内部中控模块发出忙信号;
当所述计数寄存器的计数值再次达到所述设定值时,向所述内部中控模块发出秒更新请求,将所述补偿提示信号进行清零。
5.一种面向片上系统的实时时钟补偿装置,其特征在于,包括:
误差模块,用于获取SOC芯片的高频计数值,根据所述高频计数值计算实时时钟的计时误差;
配置模块,用于根据所述计时误差计算所述实时时钟的配置值,根据所述配置值对所述实时时钟的补偿寄存器进行配置;
RTC模块,用于根据配置好的所述补偿寄存器,对所述实时时钟的计数寄存器进行补偿。
6.根据权利要求5所述的面向片上系统的实时时钟补偿装置,其特征在于,所述误差模块包括:
获取子模块,用于获取所述SOC芯片的高频计数频率;
第一读取子模块,用于读取所述实时时钟第一时刻,并同时启动所述SOC芯片的高频计数器;
第二读取子模块,用于读取所述实时时钟第二时刻,并同时停止所述SOC芯片的高频计数器,获得高频计数值;
计算子模块,用于根据所述高频计数频率、所述第一时刻、所述第二时刻和所述高频计数值计算实时时钟的计时误差。
7.根据权利要求5所述的面向片上系统的实时时钟补偿装置,其特征在于,所述RTC模块包括:
计数寄存器子模块,用于当所述配置值指示不需要进行补偿或需要进行负补偿时,使所述计数寄存器进行正常计数并向所述实时时钟的内部中控模块发出忙信号;所述计数寄存器的计数值小于理论计数值时为需要进行负补偿;
第一补偿子模块,用于当所述计数寄存器的计数值达到设定值时,将所述配置值赋值给所述计数寄存器,同时向所述内部中控模块发出秒更新请求。
8.根据权利要求5所述的面向片上系统的实时时钟补偿装置,其特征在于,所述RTC模块包括:
第一计数子模块,用于当所述配置值指示需要进行正补偿时,使所述计数寄存器进行正常计数至设定值;
置位子模块,用于将所述配置值的非最高位赋值给所述计数寄存器,同时对补偿提示信号进行置位;
第二计数子模块,用于使所述计数寄存器进行正常计数,并向所述实时时钟的内部中控模块发出忙信号;
第二补偿子模块,用于当所述计数寄存器的计数值再次达到所述设定值时,向所述内部中控模块发出秒更新请求,将所述补偿提示信号进行清零。
9.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述权利要求1至4任一项所述的面向片上系统的实时时钟补偿方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4任一项所述的面向片上系统的实时时钟补偿方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311211515.1A CN117252138A (zh) | 2023-09-19 | 2023-09-19 | 面向片上系统的实时时钟补偿方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311211515.1A CN117252138A (zh) | 2023-09-19 | 2023-09-19 | 面向片上系统的实时时钟补偿方法、装置、设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117252138A true CN117252138A (zh) | 2023-12-19 |
Family
ID=89130682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311211515.1A Pending CN117252138A (zh) | 2023-09-19 | 2023-09-19 | 面向片上系统的实时时钟补偿方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117252138A (zh) |
-
2023
- 2023-09-19 CN CN202311211515.1A patent/CN117252138A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110380724B (zh) | Rtc时钟频率温度补偿芯片 | |
EP2369438B1 (en) | Calibration method of a real time clock signal | |
US9484894B2 (en) | Self-adjusting duty cycle tuner | |
RU2451391C2 (ru) | Схемное устройство и способ измерения дрожания тактового сигнала | |
CN106505996B (zh) | 一种结合可变电容的rtc芯片高精度频偏补偿方法 | |
US8721174B2 (en) | Temperature sensing system for supporting single-point calibration | |
US9134752B2 (en) | Time measurement device, micro-controller and method of measuring time | |
CN105573106A (zh) | 一种智能电表中对rtc计时精度的修正电路及其方法 | |
CN102830748B (zh) | 芯片的内部时钟偏差的校准方法及系统 | |
CN102981551B (zh) | 一种实时时钟温度补偿系统及方法 | |
CN112506266B (zh) | 芯片时钟源的计时校准方法、装置及带有时钟源的芯片 | |
CN106569544A (zh) | 实时时钟芯片及其时钟校准方法、装置 | |
US9344101B2 (en) | Semiconductor device, electronic device and sensing method | |
CN101452307A (zh) | 实时时钟校准系统及其方法 | |
CN107219884B (zh) | 一种自动校准时钟频率的方法和系统 | |
CN104297716A (zh) | 一种智能电表rtc校准方法 | |
CN110968148A (zh) | 一种定时校准方法、装置及定时器 | |
US9966900B2 (en) | Apparatus for oscillator with improved precision and associated methods | |
CN101995816B (zh) | 一种钟表自动校准方法和钟表自动校准装置 | |
CN113970698A (zh) | 一种校准片外晶振的方法与系统 | |
CN103973266A (zh) | 振荡器校正电路与方法以及集成电路 | |
CN113922813A (zh) | 一种数控振荡器的频率校准方法 | |
CN117252138A (zh) | 面向片上系统的实时时钟补偿方法、装置、设备和介质 | |
CN115733489B (zh) | 一种芯片原子钟驯服方法、装置和系统 | |
TW202101908A (zh) | 用於產生具有可控脈衝寬度之脈衝輸出的電路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |