CN115543017A - 时间校准方法、装置、电子设备及存储介质 - Google Patents
时间校准方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115543017A CN115543017A CN202211212177.9A CN202211212177A CN115543017A CN 115543017 A CN115543017 A CN 115543017A CN 202211212177 A CN202211212177 A CN 202211212177A CN 115543017 A CN115543017 A CN 115543017A
- Authority
- CN
- China
- Prior art keywords
- time
- time point
- sof
- frame
- interrupt
- 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 19
- 230000004044 response Effects 0.000 abstract description 3
- 238000001514 detection method Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/14—Time supervision arrangements, e.g. real time clock
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/24—Interrupt
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Electric Clocks (AREA)
Abstract
本申请实施例提供了一种时间校准方法、装置、电子设备及存储介质。该方法包括:确定当前设备的帧起始中断周期,当前设备已建立通用串行总线连接;确定预定个数的帧起始中断周期在当前设备对应的第一时间点和第二时间点,第一时间点为预定个数的帧起始中断周期中的第一次帧起始中断对应的时间点,第二时间点为预定个数的帧起始中断周期中的最后一次帧起始中断对应的时间点;基于帧起始中断周期、预定个数、第一时间点和第二时间点,对当前设备进行时间校准。本申请实施例依赖于帧起始中断的高时钟精度,在帧起始中断中进行时间校准处理,能够实现有效地校准时间,改变当前设备时间偏差大的问题,且响应速度非常快。
Description
技术领域
本申请涉及USB(Universal Serial Bus,通用串行总线)设备的时间校准技术领域,具体而言,本申请涉及一种时间校准方法、装置、电子设备及存储介质。
背景技术
USB技术在近几十年来逐渐发展成熟,支持的设备越来越多,其凭借使用方便、稳定性高与价格合理等特性,已完全融入到了我们的日常工作与生活当前中。
现有技术中,USB设备的时间校准,可以依赖于PLL(Phase Locked Loop,锁相环)、RC(Resistance、Capacitance,电阻、电容)振荡器等高精度时钟源。
然而,考虑到成本问题,很多无高精度时钟源的USB设备应运而生,对于这类USB设备的时间校准,仍没有足够有效的解决方案。
发明内容
本申请实施例的目的旨在能解决无高精度时钟源的USB设备的时间校准问题。
根据本申请实施例的一个方面,提供了一种时间校准方法,该方法包括:
确定当前设备的SOF(Start Of Frame,帧起始)中断周期,当前设备已建立USB连接;
确定预定个数的SOF中断周期在当前设备对应的第一时间点和第二时间点,第一时间点为预定个数的SOF中断周期中的第一次SOF中断对应的时间点,第二时间点为预定个数的SOF中断周期中的最后一次SOF中断对应的时间点;
基于SOF中断周期、预定个数、第一时间点和第二时间点,对当前设备进行时间校准。
在一种可选的实施方式中,基于SOF中断周期、预定个数、第一时间点和第二时间点,对当前设备进行时间校准,包括:
根据SOF中断周期和预定个数,确定第一次SOF中断和最后一次SOF中断之间的SOF信号时间间隔;
根据第一时间点和第二时间点,确定时间点差值;
基于SOF信号时间间隔和时间点差值,对当前设备进行时间校准。
在一种可选的实施方式中,基于SOF信号时间间隔和时间点差值,对当前设备进行时间校准,包括:
确定SOF信号时间间隔和时间点差值之间的时间偏差;
基于时间偏差,对当前设备进行时间校准。
在一种可选的实施方式中,对当前设备进行时间校准,包括以下情形中的至少一种:
按照确定出的基准时刻,对当前设备的时间进行校准;
对当前设备的时钟频率进行校准。
在一种可选的实施方式中,SOF中断包括以下情形中的至少一种:
接收到SOF信号时产生的SOF中断;
发送SOF信号时产生的SOF中断。
在一种可选的实施方式中,确定当前设备的SOF中断周期,包括:
获取已建立USB连接的从设备的设备信息;
根据设备信息,确定从设备是否为高速设备;
根据从设备是否为高速设备,确定当前设备的SOF中断周期。
在一种可选的实施方式中,确定预定个数的SOF中断周期在当前设备对应的第一时间点和第二时间点,包括:
针对每一次SOF中断,确定该次SOF中断对应的SOF中断周期的周期标识,周期标识为预定个数的SOF中断周期中的该次SOF中断对应的中断次数的值减去1;
根据周期标识的值为0的SOF中断,确定第一时间点;
根据周期标识的值为预定个数的值的SOF中断,确定第二时间点。
根据本申请实施例的另一个方面,提供了一种时间校准装置,该装置包括:
周期确定模块,用于确定当前设备的SOF中断周期,当前设备已建立USB连接;
时间点确定模块,用于确定预定个数的SOF中断周期在当前设备对应的第一时间点和第二时间点,第一时间点为预定个数的SOF中断周期中的第一次SOF中断对应的时间点,第二时间点为预定个数的SOF中断周期中的最后一次SOF中断对应的时间点;
时间校准模块,用于基于SOF中断周期、预定个数、第一时间点和第二时间点,对当前设备进行时间校准。
在一种可选的实施方式中,时间校准模块在用于基于SOF中断周期、预定个数、第一时间点和第二时间点,对当前设备进行时间校准时,具体用于:
根据SOF中断周期和预定个数,确定第一次SOF中断和最后一次SOF中断之间的SOF信号时间间隔;
根据第一时间点和第二时间点,确定时间点差值;
基于SOF信号时间间隔和时间点差值,对当前设备进行时间校准。
在一种可选的实施方式中,时间校准模块在用于基于SOF信号时间间隔和时间点差值,对当前设备进行时间校准时,具体用于:
确定SOF信号时间间隔和时间点差值之间的时间偏差;
基于时间偏差,对当前设备进行时间校准。
在一种可选的实施方式中,时间校准模块在用于对当前设备进行时间校准时,具体用于以下情形中的至少一种:
按照确定出的基准时刻,对当前设备的时间进行校准;
对当前设备的时钟频率进行校准。
在一种可选的实施方式中,SOF中断包括以下情形中的至少一种:
接收到SOF信号时产生的SOF中断;
发送SOF信号时产生的SOF中断。
在一种可选的实施方式中,周期确定模块在用于确定当前设备的SOF中断周期时,具体用于:
获取已建立USB连接的从设备的设备信息;
根据设备信息,确定从设备是否为高速设备;
根据从设备是否为高速设备,确定当前设备的SOF中断周期。
在一种可选的实施方式中,时间点确定模块在用于确定预定个数的SOF中断周期在当前设备对应的第一时间点和第二时间点时,具体用于:
针对每一次SOF中断,确定该次SOF中断对应的SOF中断周期的周期标识,周期标识为预定个数的SOF中断周期中的该次SOF中断对应的中断次数的值减去1;
根据周期标识的值为0的SOF中断,确定第一时间点;
根据周期标识的值为预定个数的值的SOF中断,确定第二时间点。
根据本申请实施例的又一个方面,提供了一种电子设备,该电子设备包括:存储器、处理器及存储在存储器上的计算机程序,处理器执行计算机程序以实现本申请实施例提供的时间校准方法。
根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本申请实施例提供的时间校准方法。
根据本申请实施例的还一个方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本申请实施例提供的时间校准方法。
本申请实施例提供的时间校准方法、装置、电子设备及存储介质,依赖于SOF中断的高时钟精度,在SOF中断中进行时间校准处理,能够实现有效地校准时间,有效改变当前设备时间偏差大的问题,且响应速度非常快。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种时间校准方法的流程示意图;
图2为本申请实施例提供的时间校准数据的示意图;
图3为本申请实施例提供的时间校准方法的另一种流程示意图;
图4为本申请实施例提供的时间校准方法的执行逻辑的示意图;
图5为本申请实施例提供的一种时间校准装置的结构示意图;
图6为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请涉及的几个名词进行介绍和解释:
(1)USB设备:通过USB接口进行连接的设备可统称为USB设备,其中,USB设备可以包括USB主设备(HOST)以及USB从设备(SLAVE),USB主设备也可以称为USB主机,主要执行控制功能,USB从设备也可以称为USB从机,主要执行被控制功能。另外,USB设备还可以包括USB OTG(On-The-Go,一种主从兼容方式标准)设备,能够直接控制和传输功能,即USB OTG设备可以通过主、从切换,达到即做可USB主设备也做可USB从设备的目的。
(2)SOF:USB主从机建立USB连接之后,主机会定期地发送SOF包到USB从机,介于2个SOF包之间的时间,即称为帧(frame),通常USB设备都利用SOF包来辨识帧的起点,用于等时传输,即利用SOF激活并达到同步传输的作用。
(3)SOF中断:主机在发送SOF包或者从机在接收到SOF包时,均会产生SOF中断,中断指示一个USB帧的结束和/或一个新的USB帧的开始。
现有技术中,USB设备的时间校准可以依赖于高精度时钟源和/或网络,然而对于无高精度时钟源的USB设备,也难免发生无网络的情况,例如位于户外等情况下,可能产生***时间偏差较大的现象。本申请提供的时间校准方法、装置、电子设备及存储介质,旨在针对没有高精度时钟源,或者没有网络等其他时间校准机制的***,提供有效的解决方案。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
本申请实施例中提供了一种时间校准方法,如图1所示,该方法包括:
步骤S101:确定当前设备的SOF中断周期,当前设备已建立USB连接。
其中,对于一部分设备来说,SOF中断周期也可理解为SOF周期(也可称为USB时隙,即两个USB SOF信号之间的间隔),即一个SOF中断周期可能对应一个SOF周期,主机按照SOF周期以额定速率发出SOF包,主机在发送SOF包时会产生SOF中断,从机在接收到SOF包时会产生SOF中断。例如以USB2.0为例,对于全速(Full Speed)总线、低速(Low Speed)总线,主机以每1.00ms一次的额定速率发出SOF包,则SOF周期和SOF中断周期均为1.00ms。对于大部分高速(High Speed)总线,主机以每125μs一次的额定速率发出SOF包,则SOF周期和SOF中断周期均为125μs。
或者,对于一部分设备来说,一个SOF中断周期可能对应多个SOF周期。主机按照SOF周期以额定速率发出SOF包,主机在发送预定数量的SOF包后会产生SOF中断,从机在接收到预定数量的SOF包时会产生SOF中断。例如以USB2.0为例,对于部分高速总线,主机以每125μs一次的额定速率发出SOF包,8个SOF周期产生有一次SOF中断,则SOF周期为125μs,SOF中断周期为1.00ms。
本领域技术人员应能理解上述SOF周期和SOF中断周期仅为举例,可以根据不同版本的USB进行适当变化,例如USB3.0或其他版本,也可适用于本申请实施例的技术方案,故也应包含在本申请保护范围以内。
本申请实施例中,SOF中断包括以下情形中的至少一种:接收到SOF信号时产生的SOF中断,发送SOF信号时产生的SOF中断等,但不限于此。即当前设备可以是USB主设备、或USB从设备,或可以进行主、从转换的设备等。也就是说,只要是能够进行数据传输并周期性产生SOF中断的设备,均可使用于本申请实施例的技术方案,故均应包含在本申请的保护范围以内。
步骤S102:确定预定个数的SOF中断周期在当前设备对应的第一时间点和第二时间点。
其中,第一时间点为预定个数的SOF中断周期中的第一次SOF中断对应的时间点,第二时间点为预定个数的SOF中断周期中的最后一次SOF中断对应的时间点。
实际应用中,本领域技术人员可以根据情况对于预定个数的值进行设置,本申请实施例在此不做限定。一些实施例中,预定个数的值也可以是实时设置的。
本申请实施例中,预定个数的SOF中断周期可以是连续预定个数的SOF中断周期。可以理解,假设将预定个数的值设置为N,则N个SOF中断周期会对应N+1次SOF中断。其中,第一时间点为预定个数的SOF中断周期中的第一次SOF中断对应的时间点,即N个SOF中断周期中的第1次SOF中断对应的时间点,也就是第1个SOF中断周期的开始时间点,第二时间点为预定个数的SOF中断周期中的最后一次SOF中断对应的时间点,即N个SOF中断周期中的第N+1次SOF中断对应的时间点,也就是第N个SOF中断周期的结束时间点,如图2所示。
其他实施例中,预定个数的SOF中断周期也可以是非连续预定个数的SOF中断周期,例如等间隔的SOF中断周期,则对应预定个数的值两倍次数的SOF中断,或者也可以是其他离散的SOF中断周期,本领域技术人员可以进行适当的扩展,本申请实施例在此不做限定。
步骤S103:基于SOF中断周期、预定个数、第一时间点和第二时间点,对当前设备进行时间校准。
其中,第一时间点和第二时间点是衡量当前设备的时间的相关信息,SOF中断周期和预定个数是基于SOF包的时钟精度的时间衡量标准。由于SOF包的时钟精度可达到99.95%,将这些信息进行比较,能够较为精准地衡量当前设备(主控芯片)的***时间与实际时间的偏差,以便于更精确地进行校准。
本申请实施例提供的时间校准方法,依赖于SOF中断的高时钟精度,在SOF中断中进行时间校准处理,能够实现有效地校准时间,改变***时间偏差大的问题,且响应速度非常快。
本申请实施例中,为步骤S103提供了一种可选的实现方式,具体而言,可以包括步骤:
步骤S1031:根据SOF中断周期和预定个数,确定第一次SOF中断和最后一次SOF中断之间的SOF信号时间间隔;
继续以连续N个SOF中断周期为例,假设SOF中断周期的时间长度为T,第一次SOF中断和最后一次SOF中断之间的SOF信号时间间隔,即第1次SOF中断和第N+1次SOF中断之间的SOF信号时间间隔,也就是N个SOF中断周期的总时间长度N×T。
非连续SOF中断周期对应的上述SOF信号时间间隔可以以此类推,例如以T为间隔的等间隔SOF中断周期对应的上述SOF信号时间间隔为(2N-1)×T等。本领域技术人员可以进行适当的扩展,本申请实施例在此不做限定。
步骤S1032:根据第一时间点和第二时间点,确定时间点差值;
具体而言,可以将第二时间点的值减去第一时间点的值,得到时间点差值,但不限于此,也可以采用其他计算方式来确定第一时间点和第二时间点之间的时间点差值,例如结合时间单位的换算等。
步骤S1033:基于SOF信号时间间隔和时间点差值,对当前设备进行时间校准。
其中,基于SOF信号时间间隔和时间点差值分别是对应同一时间段的实际结果和当前设备的***结果。将这些结果进行比较,便能够有效衡量当前设备的***时间与实际时间的偏差,以便于更精确地进行校准。
在一种可选的实施方式中,该步骤S1033可以包括:确定SOF信号时间间隔和时间点差值之间的时间偏差;基于时间偏差,对当前设备进行时间校准。
具体而言,可以计算SOF信号时间间隔和时间点差值之间的差值,即可得到相应的时间偏差,但不限于此,也可以采用其他方式来计算该时间偏差,例如计算时间点差值和SOF信号时间间隔之间的差值,又例如计算SOF信号时间间隔和时间点差值之间的差值的绝对值,以及确定偏差方向(快或慢)等,还例如可以结合时间单位的换算等。本领域技术人员可以根据实际情况来设置该时间偏差的计算方式,本申请实施例在此不做限定。
在计算得到SOF信号时间间隔和时间点差值之间的时间偏差后,便可基于该时间偏差,对当前设备进行时间校准。
本申请实施例中,对当前设备进行时间校准,包括以下情形中的至少一种:
1、按照确定出的基准时刻,对当前设备的时间进行校准;
其中,基准时刻是指被看作与实际时间对准的用于进行时间校准的时刻。例如,基准时刻可以是***记录的最后一个与实际时间已对准的时刻(例如断网前的某一个时刻),或者,基准时刻可以是***实时确定的。本领域技术人员可以根据实际情况来设置基准时刻的确定方式,本申请实施例在此对用于进行时间校准的基准时刻不做具体限定。
进一步地,根据确定出的基准时刻和计算得到的上述时间偏差,计算与基准时刻的基准时间偏差,从而按照基准时刻和基准时间偏差,对当前时刻进行调整。
可以理解的是,只要持续采用本申请实施例提供的技术方案对当前设备的时间进行校准,就能保证当前设备的时间是相对准确的。
一个示例中,假设上述第一时间点与实际时间是对准的为例,在计算出上述时间偏差后,便能够以第一时间点为基准时刻,对第二时间点进行时间校准(时间偏差和基准时间偏差相同),进而将第二时间点作为新一轮的第一时间点,在计算出新一轮的时间偏差后,对新一轮的第二时间点进行校准,依次类推,从而保障当前设备时间的准确性。
2、对当前设备的时钟频率进行校准。
其中,时钟频率也可以理解为时钟速度。
在计算得到上述时间偏差后,便可知晓对应同一时间段,当前设备的时钟和实际时钟相比时快还是慢,以及快或慢的速率,从而可以将当前设备的时钟调整为与实际时钟相同的速率。
可以理解的是,只要持续采用本申请实施例提供的技术方案对当前设备的时间进行校准,就能保证当前设备的时间是相对准确的。
其中,持续进行时间校准的方案可以应用于时钟较为不稳定的设备,以保证设备的***时间的稳定性。
相应地,对于时钟较为稳定,只是准确性欠佳的设备,可以按照本申请实施例的方案进行规定次数的时间校准,仅利用少量计算资源便可完成时间的有效校准。
本申请实施例中,为步骤S101提供了一种可行的实现方式,具体地,可以包括以下步骤:
步骤S1011:获取已建立USB连接的从设备的设备信息;
其中,若当前设备为已建立USB连接的从设备,则该步骤就是获取当前设备的设备信息;
若当前设备是已建立USB连接的主设备,则该步骤就是获取该主设备相连接的从设备的设备信息。
其中,设备信息可以包括控制器信息等,但不限于此。
步骤S1012:根据设备信息,确定从设备是否为高速设备;
其中,全速设备或低速设备可能对应一种SOF中断周期,而高速设备可能对应同一种SOF中断周期(例如由上文的介绍可知,部分高速设备控制器会8个SOF周期产生有一次SOF中断,以和全速设备、低速设备保持一致),也可能对应另一种SOF中断周期。
步骤S1013:根据从设备是否为高速设备,确定当前设备的SOF中断周期。
以USB2.0为例,若从设备不是高速设备,即可能是全速设备或低速设备,则根据从设备不是高速设备,可以确定当前设备(即该从设备或与该从设备建立USB连接的主设备)的SOF中断周期为1ms。
若从设备是高速设备,则根据从设备是高速设备,可以确定当前设备的SOF中断周期为125μs。
若从设备是高速设备,不过是特殊高速设备(例如上述8个SOF周期产生有一次SOF中断的部分高速设备)可以根据这些高速设备的特殊配置,确定SOF中断周期为1ms。
其他实施例中,有些设备也可以直接根据获取的已建立USB连接的从设备的设备信息,确定当前设备的SOF中断周期,例如,直接根据从设备的设备信息读取其SOF中断周期为125μs还是1ms,而无需确定当前设备是否为高速设备。
本申请实施例中,为步骤S102提供了一种可行的实现方式,具体地,可以包括以下步骤:
步骤S1021:针对每一次SOF中断,确定该次SOF中断对应的SOF中断周期的周期标识,周期标识为预定个数的SOF中断周期中的该次SOF中断对应的中断次数的值减去1;
继续以连续N个SOF中断周期为例,即针对第n(1≤n≤N+1)次中断,该次SOF中断对应的周期标识为n-1。
简单来说,针对第1次SOF中断,该次SOF中断对应的周期标识为0,针对第2次SOF中断,该次SOF中断对应的周期标识为1,以此类推,则针对第N+1次中断,该次SOF中断对应的周期标识为N。
步骤S1022:根据周期标识的值为0的SOF中断,确定第一时间点;
即第1次SOF中断对应当前设备的时间点为第一时间点。
步骤S1023:根据周期标识的值为预定个数的值的SOF中断,确定第二时间点。
即第N+1次SOF中断对应当前设备的时间点为第二时间点。
对于本申请实施例,根据周期标识的设置和检测,可以达到快速定位第一时间点和第二时间点的目的。
基于上述至少一个实施例相同的构思,如图3所示,本申请实施例的技术方案也可按照以下步骤执行:
步骤S201、连续检测N+1次数的SOF中断,计算出N+1次SOF中断的总间隔时间;
步骤S202、记录检测开始(即第一次SOF中断)的***时间点;
步骤S203、记录检测结束(即第N+1次SOF中断)的***时间点;
步骤S204、计算检测到的***时间点的差值和SOF中断的总间隔时间的时间偏差;
步骤S205、根据时间偏差的值来校准***时间。
可选地,具体的执行逻辑可以如图4所示:
1、开始校准时间,获取设定的检测SOF中断周期(对于SOF周期和SOF中断周期相同的设备,检测SOF中断也可以实施例为采集SOF信号)的总周期数为N(N>2);
2、判断当前连接的USB2.0设备是高速设备,还是全速设备或低速设备。部分高速设备每间隔1ms产生一次SOF中断,部分高速设备每间隔125μs产生一次SOF中断,视所使用的USB控制器而定;全速设备或低速设备每间隔1ms产生一次SOF中断。记当前连接的设备的SOF中断周期为T;
3、检测SOF中断,每次SOF中断可以判断当前SOF中断是否是校准开始后的第一次SOF中断,即已采集的SOF周期数n是否为0,如果是,则进行第4步的过程;否则记已采集SOF周期数n=n+1,执行第5步的过程;
4、读取***时间,记录下校准开始的***时间点S1,执行第5步的过程;
5、判断检测是否完毕,即当前已采集SOF周期数n等于设定的采集SOF中断周期数N时检测完毕。未完则继续执行第3步的过程,否则执行第6步的过程;
6、读取***时间,记录下校准结束的***时间点S2;
7、计算S2-S1与n*T的时间差值W,根据W的值来校准***时间。
本申请实施例提供的基于USB(例如2.0)SOF包的时间校准方法,可以有效校准***时间,改变***时间偏差较大的问题。
需要说明的是,当上述当前设备为USB从设备时,本申请实施例的执行主体可以为USB主设备或USB从设备,当上述当前设备为USB主设备时,本申请实施例的执行主体可以为USB主设备。
本申请实施例提供的技术方案,除了可以应用于没有高精度时钟源和/或没有网络等时间校准机制的***,还可以应用各种USB设备,以辅助***时间的校准。
本申请实施例提供了一种时间校准装置,如图5所示,该时间校准装置50可以包括:周期确定模块501、时间点确定模块502以及时间校准模块503,其中,
周期确定模块501用于确定当前设备的SOF中断周期,当前设备已建立USB连接;
时间点确定模块502用于确定预定个数的SOF中断周期在当前设备对应的第一时间点和第二时间点,第一时间点为预定个数的SOF中断周期中的第一次SOF中断对应的时间点,第二时间点为预定个数的SOF中断周期中的最后一次SOF中断对应的时间点;
时间校准模块503用于基于SOF中断周期、预定个数、第一时间点和第二时间点,对当前设备进行时间校准。
在一种可选的实施方式中,时间校准模块503在用于基于SOF中断周期、预定个数、第一时间点和第二时间点,对当前设备进行时间校准时,具体用于:
根据SOF中断周期和预定个数,确定第一次SOF中断和最后一次SOF中断之间的SOF信号时间间隔;
根据第一时间点和第二时间点,确定时间点差值;
基于SOF信号时间间隔和时间点差值,对当前设备进行时间校准。
在一种可选的实施方式中,时间校准模块503在用于基于SOF信号时间间隔和时间点差值,对当前设备进行时间校准时,具体用于:
确定SOF信号时间间隔和时间点差值之间的时间偏差;
基于时间偏差,对当前设备进行时间校准。
在一种可选的实施方式中,时间校准模块503在用于对当前设备进行时间校准时,具体用于以下情形中的至少一种:
按照确定出的基准时刻,对当前设备的时间进行校准;
对当前设备的时钟频率进行校准。
在一种可选的实施方式中,SOF中断包括以下情形中的至少一种:
接收到SOF信号时产生的SOF中断;
发送SOF信号时产生的SOF中断。
在一种可选的实施方式中,周期确定模块501在用于确定当前设备的SOF中断周期时,具体用于:
获取已建立USB连接的从设备的设备信息;
根据设备信息,确定从设备是否为高速设备;
根据从设备是否为高速设备,确定当前设备的SOF中断周期。
在一种可选的实施方式中,时间点确定模块502在用于确定预定个数的SOF中断周期在当前设备对应的第一时间点和第二时间点时,具体用于:
针对每一次SOF中断,确定该次SOF中断对应的SOF中断周期的周期标识,周期标识为预定个数的SOF中断周期中的该次SOF中断对应的中断次数的值减去1;
根据周期标识的值为0的SOF中断,确定第一时间点;
根据周期标识的值为预定个数的值的SOF中断,确定第二时间点。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述以及产生的有益效果具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现前述各方法实施例的步骤,其中,电子设备可以是指已建立USB连接的从设备,也可以是指已建立USB连接的主设备,还可以是同时指从设备和主设备。
在一个可选实施例中提供了一种电子设备,如图6所示,图6所示的电子设备600包括:处理器601和存储器603。其中,处理器601和存储器603相连,如通过总线602相连。可选地,电子设备600还可以包括收发器604,收发器604可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器604不限于一个,该电子设备600的结构并不构成对本申请实施例的限定。
处理器601可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器601也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线602可包括一通路,在上述组件之间传送信息。总线602可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线602可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器603可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器603用于存储执行本申请实施例的计算机程序,并由处理器601来控制执行。处理器601用于执行存储器603中存储的计算机程序,以实现前述方法实施例所示的步骤。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“1”、“2”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (10)
1.一种时间校准方法,其特征在于,包括:
确定当前设备的帧起始中断周期,所述当前设备已建立通用串行总线连接;
确定预定个数的所述帧起始中断周期在所述当前设备对应的第一时间点和第二时间点,所述第一时间点为所述预定个数的所述帧起始中断周期中的第一次帧起始中断对应的时间点,所述第二时间点为所述预定个数的所述帧起始中断周期中的最后一次帧起始中断对应的时间点;
基于所述帧起始中断周期、所述预定个数、所述第一时间点和所述第二时间点,对所述当前设备进行时间校准。
2.根据权利要求1所述的时间校准方法,其特征在于,所述基于所述帧起始中断周期、所述预定个数、所述第一时间点和所述第二时间点,对所述当前设备进行时间校准,包括:
根据所述帧起始中断周期和所述预定个数,确定所述第一次帧起始中断和所述最后一次帧起始中断之间的帧起始信号时间间隔;
根据所述第一时间点和所述第二时间点,确定时间点差值;
基于所述帧起始信号时间间隔和所述时间点差值,对所述当前设备进行时间校准。
3.根据权利要求2所述的时间校准方法,其特征在于,所述基于所述帧起始信号时间间隔和所述时间点差值,对所述当前设备进行时间校准,包括:
确定所述帧起始信号时间间隔和所述时间点差值之间的时间偏差;
基于所述时间偏差,对所述当前设备进行时间校准。
4.根据权利要求1-3任一项所述的时间校准方法,其特征在于,所述对所述当前设备进行时间校准,包括以下情形中的至少一种:
按照确定出的基准时刻,对所述当前设备的时间进行校准;
对所述当前设备的时钟频率进行校准。
5.根据权利要求1所述的时间校准方法,其特征在于,所述帧起始中断包括以下情形中的至少一种:
接收到帧起始信号时产生的帧起始中断;
发送帧起始信号时产生的帧起始中断。
6.根据权利要求1所述的时间校准方法,其特征在于,所述确定当前设备的帧起始中断周期,包括:
获取已建立通用串行总线连接的从设备的设备信息;
根据所述设备信息,确定所述从设备是否为高速设备;
根据所述从设备是否为高速设备,确定当前设备的帧起始中断周期。
7.根据权利要求1所述的时间校准方法,其特征在于,所述确定预定个数的所述帧起始中断周期在所述当前设备对应的第一时间点和第二时间点,包括:
针对每一次帧起始中断,确定该次帧起始中断对应的帧起始中断周期的周期标识,所述周期标识为所述预定个数的所述帧起始中断周期中的该次帧起始中断对应的中断次数的值减去1;
根据所述周期标识的值为0的帧起始中断,确定所述第一时间点;
根据所述周期标识的值为所述预定个数的值的帧起始中断,确定所述第二时间点。
8.一种时间校准装置,其特征在于,包括:
周期确定模块,用于确定当前设备的帧起始中断周期,所述当前设备已建立通用串行总线连接;
时间点确定模块,用于确定预定个数的所述帧起始中断周期在所述当前设备对应的第一时间点和第二时间点,所述第一时间点为所述预定个数的所述帧起始中断周期中的第一次帧起始中断对应的时间点,所述第二时间点为所述预定个数的所述帧起始中断周期中的最后一次帧起始中断对应的时间点;
时间校准模块,用于基于所述帧起始中断周期、所述预定个数、所述第一时间点和所述第二时间点,对所述当前设备进行时间校准。
9.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211212177.9A CN115543017A (zh) | 2022-09-30 | 2022-09-30 | 时间校准方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211212177.9A CN115543017A (zh) | 2022-09-30 | 2022-09-30 | 时间校准方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115543017A true CN115543017A (zh) | 2022-12-30 |
Family
ID=84731300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211212177.9A Pending CN115543017A (zh) | 2022-09-30 | 2022-09-30 | 时间校准方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115543017A (zh) |
-
2022
- 2022-09-30 CN CN202211212177.9A patent/CN115543017A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10833805B2 (en) | BISS protocol data decoding method and interface system | |
AU2008251024B2 (en) | USB based synchronization and timing system | |
CN103365757B (zh) | 时钟检测方法及装置 | |
CN113009961B (zh) | 一种跨时钟同步电路及SoC*** | |
CN109005002B (zh) | 传感器数据处理装置、传感器***和在使用传感器***的情况下确定换算参数的方法 | |
CN111130510B (zh) | 一种输出秒脉冲信号的方法及装置 | |
CN103197139A (zh) | 时钟频率测试方法和时钟频率测试电路 | |
CN110781121B (zh) | 一种参考时钟源配置方法与端设备 | |
CN104283531A (zh) | 时钟抖动和电源噪声分析 | |
CN117388673A (zh) | Ate设备及其芯片测试方法、电子设备、存储介质 | |
CN113836075B (zh) | 一种基于fpga平台的spi接口信号消除毛刺的方法 | |
CN115543017A (zh) | 时间校准方法、装置、电子设备及存储介质 | |
CN113495225B (zh) | 一种电源稳定性测试方法、***及设备 | |
CN109256998A (zh) | 控制电机电流高精度采样的方法及***和伺服电机 | |
CN114528998A (zh) | 用于量子测控***的多板卡信号同步方法、设备及介质 | |
KR20140092547A (ko) | 유에스비 오티지 자동 변경 장치 | |
CN107703462B (zh) | 一种控制器 | |
CN107632787B (zh) | 数据读取方法、装置及*** | |
CN116361095B (zh) | 功耗验证方法、***、设备及存储介质 | |
US10146367B2 (en) | Synchronization method and touch signal processing system using the same | |
WO2011039577A1 (en) | Memory access performance diagnosis | |
KR102414408B1 (ko) | 이종의 직렬통신 프로토콜을 위한 제어 집적회로 및 이를 포함하는 시스템 제어 장치 | |
JP2003263404A (ja) | シリアル通信方式とそれを用いたマイクロコンピュータ | |
CN118259068A (zh) | 一种电压检测电路、模拟比较器和芯片 | |
CN115642978A (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 |