掌桥专利:专业的专利平台
掌桥专利
首页

时间同步方法、装置及系统

文献发布时间:2024-01-17 01:19:37


时间同步方法、装置及系统

技术领域

本申请涉及通信领域,尤其涉及时间同步方法、装置及系统。

背景技术

跨设备进行数据处理时,通常期望处理流程的整体耗时越短越好。示例性地,在分布式相机业务场景下,例如网络电视直播或实时监控,摄像头获取的图像经由网络传递到电视、智能手机或大屏端的屏幕上显示。如果处理流程的整体耗时高于某一阈值,用户看到的显示画面就会产生延迟或卡顿,从而为用户带来不流畅的观看体验。为了定位和分析哪些处理环节的耗时过高而导致整体耗时过高,系统会在每个处理环节输出用于分析耗时情况的日志信息,该日志信息包括数据进入该处理环节的时间戳以及数据离开该处理环节的时间戳,或者包括数据进入该处理环节的时间戳以及数据在该处理环节的处理时长。这种基于时间戳来分析跨设备数据处理耗时的方法需要各个设备的系统时间保持同步。

现有技术中,通常采用网络时间协议(network time protocol,NTP)来同步局域网中各个设备的系统时间。然而在分布式相机业务场景下,由于摄像头或智能手机等物联网(internet of things,IOT)设备的系统资源受限,并且要求低功耗,因此,不适合启用NTP协议。

发明内容

本申请实施例提供时间同步方法、装置及系统,用于提高分布式相机业务场景下设备间系统时间的同步精度。

为达到上述目的,本申请的实施例采用如下技术方案:

第一方面,提供了一种应用于分布式相机业务场景的时间同步方法,执行该时间同步方法的装置可以为第一设备,可以为应用于第一设备中的模块,例如芯片或芯片系统。下面以执行主体为第一设备为例进行描述。第一设备接收来自第二设备的第一消息,该第一消息包括第一时间戳和第二时间戳,该第一时间戳是该第二设备中的第二无线保真WIFI模组在第一时刻的时间戳,该第二时间戳是该第二设备中的第二主芯片在第二时刻的系统时间戳;该第一设备根据该第一时间戳、该第二时间戳、第三时间戳和第四时间戳,调整该第一设备中的第一主芯片的系统时间;其中,该第三时间戳是该第一设备中第一WIFI模组在第三时刻的时间戳,该第四时间戳是该第一主芯片在第四时刻的系统时间戳,该第一时刻与该第二时刻的时间差等于该第三时刻与该第四时刻的时间差,该第一WIFI模组和该第二WIFI模组在该第一时刻之前已实现时间同步。

在本申请实施例提供的时间同步方法中,第一WIFI模组和第二WIFI模组实现时间同步之后,第一设备根据第一时间戳、第二时间戳、第三时间戳和第四时间戳,调整第一设备中的第一主芯片的系统时间。相比于现有技术中使用的NTP协议,一方面,由于WIFI协议所占用的系统资源更小,造成的设备功耗更低,可以广泛应用于IOT设备,因此,本申请实施例提供的时间同步方法更适用于分布式相机业务场景。另一方面,由于第一设备与第二设备之间WIFI模组的时间能够实现微秒级别的时间同步,因此,本申请实施例提供的时间同步方法能够提高时间同步的精度。

结合上述第一方面,在一种可能的实现方式中,在该第一设备接收来自第二设备的第一消息之前,该方法还包括:该第一设备接收来自该第二设备的第五时间戳,该第五时间戳是该第二WIFI模组在该第五时刻的时间戳,该第五时刻早于该第一时刻;该第一设备将该第五时间戳作为该第一WIFI模组当前的时间戳;或者,该第一设备向该第二设备发送第六时间戳,该第六时间戳是该第一WIFI模组在该第五时刻的时间戳。

结合上述第一方面,在一种可能的实现方式中,该第一设备根据该第一时间戳、该第二时间戳、第三时间戳和第四时间戳,调整该第一设备中的第一主芯片的系统时间,包括:该第一设备根据该第一时间戳、该第二时间戳、该第三时间戳和该第四时间戳,确定该第一设备的系统时间相对于该第二设备的系统时间的偏差时间;若该偏差时间的绝对值大于第一阈值,该第一设备将当前的系统时间加上该偏差时间,得到同步后的该第一主芯片当前的系统时间。在该方案中,以第二设备的系统时间为基准,若第一设备的系统时间与第二设备的系统时间有偏差且偏差的绝对数值大于第一阈值,则对第一设备的系统时间进行调整。

结合上述第一方面,在一种可能的实现方式中,该偏差时间为第一时间差减去第二时间差的差值,该第一时间差为该第四时间戳减去该第二时间戳的差值,该第二时间差为该第三时间戳减去该第一时间戳的差值。

结合上述第一方面,在一种可能的实现方式中,该第一设备将当前时刻之前采集到的该第一主芯片的系统时间戳加上该偏差时间,得到同步后的该当前时刻之前采集到的该第一主芯片的系统时间戳。该方案中,同步系统时间可以发生在采集数据之前或者采集数据之中,从而能够提高时间同步的灵活度。具体地,若同步系统时间发生在采集数据之前,那么第一设备可以校正第一设备的系统时间,以使得之后第一设备采集到的数据与第二设备采集到的数据基于同一时间标准。若同步系统时间发生在采集数据之中,那么第一设备可以校正已经采集到的时间数据以及第一设备的系统时间。

第二方面,提供了一种通信装置用于实现上述方法。该通信装置包括实现上述方法相应的模块、单元、或手段(means),该模块、单元、或means可以通过硬件实现,软件实现,或者通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块或单元。

结合上述第二方面,在一种可能的实现方式中,该通信装置应用于分布式相机业务场景,该通信装置包括:第一主芯片和第一WIFI模组;该第一主芯片,用于接收来自第二设备的第一消息,该第一消息包括第一时间戳和第二时间戳,该第一时间戳是该第二设备中的第二无线保真WIFI模组在第一时刻的时间戳,该第二时间戳是该第二设备中的第二主芯片在第二时刻的系统时间戳;该第一主芯片,还用于根据该第一时间戳、该第二时间戳、第三时间戳和第四时间戳,调整该通信装置中该第一主芯片的系统时间;其中,该第三时间戳是该第一WIFI模组在第三时刻的时间戳,该第四时间戳是该第一主芯片在第四时刻的系统时间戳,该第一时刻与该第二时刻的时间差等于该第三时刻与该第四时刻的时间差,该第一WIFI模组和该第二WIFI模组在该第一时刻之前已实现时间同步。

结合上述第二方面,在一种可能的实现方式中,该第一WIFI模组,用于接收来自该第二设备的第五时间戳,该第五时间戳是该第二WIFI模组在该第五时刻的时间戳,该第五时刻早于该第一时刻;该第一WIFI模组,还用于将该第五时间戳作为该第一WIFI模组当前的时间戳;或者,该第一WIFI模组,用于向该第二设备发送第六时间戳,该第六时间戳是该第一WIFI模组在该第五时刻的时间戳。

结合上述第二方面,在一种可能的实现方式中,该第一主芯片,具体用于:根据该第一时间戳、该第二时间戳、该第三时间戳和该第四时间戳,确定该通信装置的系统时间相对于该第二设备的系统时间的偏差时间;若该偏差时间的绝对值大于第一阈值,将当前的系统时间加上该偏差时间,得到同步后的该第一主芯片当前的系统时间。

结合上述第二方面,在一种可能的实现方式中,该偏差时间为第一时间差减去第二时间差的差值,该第一时间差为该第四时间戳减去该第二时间戳的差值,该第二时间差为该第三时间戳减去该第一时间戳的差值。

结合上述第二方面,在一种可能的实现方式中,该第一主芯片,还用于将当前时刻之前采集到的该第一主芯片的系统时间戳加上该偏差时间,得到同步后的该当前时刻之前采集到的该第一主芯片的系统时间戳。

第三方面,提供了一种通信装置,包括:处理器;该处理器用于与存储器耦合,并读取存储器中存储的计算机指令之后,根据该指令执行如上述第一方面所述的方法。

结合上述第三方面,在一种可能的实现方式中,通信装置还包括存储器;该存储器用于存储计算机指令。

结合上述第三方面,在一种可能的实现方式中,通信装置还包括通信接口;该通信接口用于该通信装置与其它设备进行通信。示例性的,该通信接口可以为收发器、输入/输出接口、接口电路、输出电路、输入电路、管脚或相关电路等。

结合上述第三方面,在一种可能的实现方式中,该通信装置可以是芯片或芯片系统。其中,当该通信装置是芯片系统时,该通信装置可以由芯片构成,也可以包含芯片和其他分立器件。

第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面所述的方法。

第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述第一方面所述的方法。

第六方面,提供了一种通信系统,包括第一设备和第二设备;该第二设备,用于向该第一设备发送第一消息,该第一消息包括第一时间戳和第二时间戳,该第一时间戳是该第二设备中的第二无线保真WIFI模组在第一时刻的时间戳,该第二时间戳是该第二设备中的第二主芯片在第二时刻的系统时间戳;该第一设备,用于接收来自该第二设备的该第一消息,并根据该第一时间戳、该第二时间戳、第三时间戳和第四时间戳,调整该第一设备中的第一主芯片的系统时间;其中,该第三时间戳是第一设备中的第一WIFI模组在第三时刻的时间戳,该第四时间戳是第一主芯片在第四时刻的系统时间戳,该第一时刻与该第二时刻的时间差等于该第三时刻与该第四时刻的时间差,该第一WIFI模组和该第二WIFI模组在该第一时刻之前已实现时间同步。

其中,第二方面至第六方面中任一种可能的实现方式所带来的技术效果可参见上述第一方面或第一方面的不同实现方式所带来的技术效果,此处不再赘述。

附图说明

图1为现有技术中分布式相机业务场景下数据处理的流程示意图;

图2为现有技术中基于时间戳分析跨设备数据处理过程中耗时情况的示意图;

图3为现有技术中使用NTP协议同步系统时间的示意图;

图4为本申请实施例提供的一种通信系统的架构示意图;

图5为本申请实施例提供的通信装置的结构示意图一;

图6为本申请实施例提供的一种时间同步方法的流程图;

图7为本申请提供的基于时间戳分析跨设备数据处理过程中耗时情况的示意图;

图8为本申请实施例提供的一种时间戳的获取方式示意图;

图9为本申请实施提供的通信装置的结构示意图二。

具体实施方式

为了方便理解本申请实施例的技术方案,首先给出本申请相关技术或名词的简要介绍如下。

第一,分布式相机业务场景下的数据处理。

图1示出了分布式相机业务场景下进行数据处理所包括的主要步骤。其中,在摄像头端,对真实场景进行图像采集、图像处理以及图像编码;经过编码后的图像数据通过网络由摄像头端传输至大屏端;在大屏端,进行图像解密、图像解码、帧率控制(或帧缓冲)以及图像渲染,形成用户最终看到的图像。其中,数据的处理涉及不同的设备,即摄像头和大屏端。

结合图1,图2示出了基于时间戳分析跨设备数据处理过程中耗时情况的示意图。在图2中,将摄像头端的数据处理流程简化为先经过模块1’,再经过模块2’,最后经过模块3’,将大屏端的数据处理流程简化为先经过模块1,再经过模块2,最后经过模块3。需要说明的是,作为示例,图2中摄像头端的数据处理涉及3个模块,即模块1’,模块2’,模块3’。实际上,摄像头端的数据处理可以涉及至少一个模块。同样地,作为示例,图2中大屏端的数据处理也涉及3个模块,即模块1,模块2和模块3。实际上,大屏端的数据处理可以涉及至少一个模块,并且摄像头和大屏端具有的模块的数量不一定相等。此外,摄像头还具有第二数据采集模块,大屏端还具有第一数据采集模块。如背景技术所述,第二数据采集模块可以采集数据进入模块1’,模块2’和模块3’中每个模块的时间戳以及数据离开模块1’,模块2’和模块3’中每个模块的时间戳;第一数据采集模块可以采集数据进入模块1,模块2和模块3中每个模块的时间戳以及数据离开模块1,模块2和模块3中每个模块的时间戳。或者,第二数据采集模块可以采集数据进入模块1’,模块2’和模块3’中每个模块的时间戳以及数据在模块1’,模块2’和模块3’中每个模块的处理时长;第一数据采集模块可以采集数据进入模块1,模块2和模块3中每个模块的时间戳以及数据在模块1,模块2和模块3中每个模块的处理时长。系统开发或调测人员根据采集到的数据,按照时间线分析耗时情况。只有摄像头与大屏端的系统时间保持同步,才能保证两个设备上采集的数据能够按照时间的先后顺序排序,进而系统开发或调测人员可以基于排序后的数据分析模块1,模块2,模块3,模块1’,模块2’和模块3’中每个模块的耗时情况。

第二,NTP协议。

通常,NTP协议用于同步局域网中设备的系统时间。NTP协议可以采用客户端(client)-服务器(server)结构。具体地,客户端从服务器同步系统时间,服务器又从其上层设备同步系统时间,顶层设备是一个高精度的时钟源。示例性的,如图3所示,设备3和设备4从设备1同步系统时间,设备4和设备5从设备2同步系统时间,设备1和设备2从同一时钟源同步时间。通过这种方式,网络中的设备1至5基本可保持系统时间的同步。然而,这种方案需要各个设备均连接到网络中,并都采用NTP协议。

一方面,如背景技术所述,IOT设备不适于启用NTP协议。另一方面,由于NTP协议采用网络层次结构来同步系统时间,因此,时间同步精度通常只能精确到毫秒级别。然而,某些场景下需要更高精度的时间同步。例如在分布式相机业务场景下,处理流程的整体耗时低于200毫秒,才能让用户看到的显示画面没有延迟和卡顿,因此,对时间同步精度提出了更高的要求。

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。同时,在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。

如图4所示,为本申请实施例提供的一种通信系统40。该通信系统40包括第一设备401和第二设备402,第一设备401包括第一主芯片4011和第一同步无线保真(wirelessfidelity,WIFI)模组4012,第二设备402包括第二主芯片4021和第二WIFI模组4022。其中,第二设备402,用于向第一设备401发送第一消息,第一消息包括第一时间戳和第二时间戳,第一时间戳是第二设备中的第二无线保真WIFI模组4022在第一时刻的时间戳,第二时间戳是第二设备中的第二主芯片4021在第二时刻的系统时间戳;第一设备401,用于接收来自第二设备402的第一消息;第一设备401,还用于根据第一时间戳、第二时间戳、第三时间戳和第四时间戳,调整第一设备中的第一主芯片4011的系统时间;其中,第三时间戳是第一设备中第一WIFI模组4012在第三时刻的时间戳,第四时间戳是第一主芯片4011在第四时刻的系统时间戳,第一时刻与第二时刻的时间差等于第三时刻与第四时刻的时间差,第一WIFI模组4012和第二WIFI模组4022在第一时刻之前已实现时间同步。该方案的具体实现及技术效果将在后续方法实施例中详细描述,在此不予赘述。

可选的,本申请实施例中的第一设备或者第二设备的相关功能可以由一个设备实现,也可以由多个设备共同实现,还可以是由一个设备内的一个或多个功能模块实现,本申请实施例对此不作具体限定。可以理解的是,上述功能既可以是硬件设备中的网络元件,也可以是在专用硬件上运行的软件功能,或者是硬件与软件的结合,或者是平台(例如,云平台)上实例化的虚拟化功能。

例如,本申请实施例中的第一设备或者第二设备的相关功能可以通过图5中的通信装置500来实现。

图5所示为本申请实施例提供的通信装置500的结构示意图。该通信装置500包括一个或多个处理器501,通信线路502,以及至少一个通信接口(图5中仅是示例性的以包括通信接口504,以及一个处理器501为例进行说明),可选的还可以包括存储器503。

处理器501可以是一个CPU,微处理器,特定应用集成电路(application-specificintegrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。

通信线路502可包括一通路,用于连接不同组件。

通信接口504,可以是收发模块用于与其他设备或通信网络通信,如以太网,RAN,WLAN等。例如,所述收发模块可以是收发器、收发机一类的装置。可选的,所述通信接口504也可以是位于处理器501内的收发电路,用以实现处理器的信号输入和信号输出。

存储器503可以是具有存储功能的装置。例如可以是只读存储器(read-onlymemory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路502与处理器相连接。存储器也可以和处理器集成在一起。

其中,存储器503用于存储执行本申请方案的计算机执行指令,并由处理器501来控制执行。处理器501用于执行存储器503中存储的计算机执行指令,从而实现本申请实施例中提供的时间同步方法。

或者,本申请实施例中,也可以是处理器501执行本申请下述实施例提供的时间同步方法中的处理相关的功能,通信接口504负责与其他设备或通信网络通信,本申请实施例对此不作具体限定。

本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。

在具体实现中,作为一种实施例,处理器501可以包括一个或多个CPU,例如图5中的CPU0和CPU1。

在具体实现中,作为一种实施例,通信装置500可以包括多个处理器,例如图5中的处理器501和处理器507。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。

在具体实现中,作为一种实施例,通信装置500还可以包括输出设备505和输入设备506。输出设备505和处理器501通信,可以以多种方式来显示信息。

上述的通信装置500可以是一个通用装置或者是一个专用装置。例如通信装置500可以是台式机、便携式电脑、网络服务器、掌上电脑(personal digital assistant,PDA)、移动手机、平板电脑、无线终端装置、车载终端装置、嵌入式设备或具有图5中类似结构的设备。本申请实施例不限定通信装置500的类型。

下面将结合图1至图5对本申请实施例提供的时间同步方法进行具体阐述。

如图6所示,为本申请实施例提供的一种时间同步方法,该时间同步方法应用于分布式相机业务场景,包括如下步骤:

S601、第二设备向第一设备发送第一消息,其中,第一消息包括第一时间戳和第二时间戳,第一时间戳是第二设备中的第二WIFI模组在第一时刻的时间戳,第二时间戳是第二设备中的第二主芯片在第二时刻的系统时间戳。相应地,第一设备接收来自第二设备的第一消息。

结合图1或图2,第一设备可以为大屏端,第二设备可以为摄像头;或者,第一设备可以为摄像头,第二设备可以为大屏端,本申请实施例对此不作任何限定。

结合图2,图7示出了本申请实施例提供的通信系统的结构示意图。相比于图2,图7所示的第二设备还具有第二WIFI模组、第二时间同步模块以及第二主驱动器,其中,第二时间同步模块、第二数据采集模块、第二主驱动器以及用于数据处理的模块1’、模块2’和模块3’位于第二主芯片上,第二时间同步功能(timing synchronization function,TSF)寄存器位于第二WIFI模组中。类似地,相比于图2,图7所示的第一设备还具有第一WIFI模组、第一时间同步模块以及第一主驱动器,其中,第一时间同步模块、第一数据采集模块、第一主驱动器以及用于数据处理的模块1、模块2和模块3位于第一主芯片上,第一TSF寄存器位于第一WIFI模组中。

本申请实施例中,第一时间同步模块和第二时间同步模块可以用于第一设备与第二设备之间的系统时间同步;第一主驱动器可以用于获取第一设备的系统时间,第二主驱动器可以用于获取第二设备的系统时间;第一WIFI模组和第二WIFI模组可以用于第一设备与第二设备之间的WIFI通信;第一TSF寄存器和第二TSF寄存器可以用于第一WIFI模组与第二WIFI模组之间的同步。各模块的具体功能将在后续方法实施例中详细描述,在此不予赘述。

示例性地,第一消息可以包括如下报文:

typedef time_sync_req{

unsigned char ver;  //协议版本号

uint64_t sys_time     //系统时间戳

uint64_t tsf_time     //TSF时间戳

}

结合图7,一种可能的实现方式中,步骤S601可以通过如下方式实现:第二时间同步模块在第一时刻从第二TSF寄存器获取第二WIFI模组的时间戳,在第二时刻从第二主驱动器获取第二设备的系统时间。之后,第二时间同步模块经由第二WIFI模组和第一WIFI模组,向第一时间同步模块发送第一消息。相应地,第一时间同步模块经由第一WIFI模组和第二WIFI模组,接收来自第二时间同步模块的第一消息。示例性地,第二时间同步模块可以将第一消息发送至第二WIFI模组的增强型分布式信道访问(enhanced distributed channelaccess,EDCA)高优先级队列,从而第二WIFI模组将优先向第一WIFI模组发送EDCA高优先级队列中的第一消息。或者,第二时间同步模块经由其他通信接口,例如第二时间同步模块侧的网口和第一时间同步模块侧的网口,向第一时间同步模块发送第一消息。

S602、第一设备根据第一时间戳、第二时间戳、第三时间戳和第四时间戳,调整第一设备中的第一主芯片的系统时间。其中,第三时间戳是第一设备中第一WIFI模组在第三时刻的时间戳,第四时间戳是第一主芯片在第四时刻的系统时间戳,第一时刻与第二时刻的时间差等于第三时刻与第四时刻的时间差,第一WIFI模组和第二WIFI模组在第一时刻之前已实现时间同步。

可以理解的是,在本申请实施例中,第一设备与第二设备之间需要建立WIFI连接,以实现第一WIFI模组和第二WIFI模组的时间同步。

一种可能的实现方式中,在步骤S601之前,本申请实施例提供的时间同步方法还包括:第二设备向第一设备发送第五时间戳,第五时间戳是第二WIFI模组在第五时刻的时间戳,第五时刻早于第一时刻。相应地,第一设备接收来自第二设备的第五时间戳,并且将第五时间戳作为第一WIFI模组当前的时间戳。

另一种可能的实现方式中,在步骤S601之前,本申请实施例提供的时间同步方法还包括:第一设备向第二设备发送第六时间戳,第六时间戳是第一WIFI模组在第五时刻的时间戳。相应地,第二设备接收来自第一设备的第六时间戳,并且将第六时间戳作为第二WIFI模组当前的时间戳。

示例性地,本申请实施例中的第五时间戳或第六时间戳可以携带在信标帧或者探测应答帧中。上述两种可能的实现方式中所阐述的过程利用了WIFI模组的TSF特性,由于WIFI模组的TSF特性能够实现微秒级别的时间同步,因此,相比于现有技术中使用的NTP协议,该方案能够提高时间同步的精度。

结合图7,第一WIFI模组与第二WIFI模组实现时间同步后,第一TSF寄存器中的时间戳与第二TSF寄存器中的时间戳相同。

在本申请实施例中,第一设备可以同时获取第一WIFI模组的时间戳和第一设备的系统时间戳,第二设备可以同时获取第二WIFI模组的时间戳和第二设备的系统时间戳;或者,第一设备可以先获取第一WIFI模组的时间戳再获取第一设备的系统时间戳,第二设备可以先获取第二WIFI模组的时间戳再获取第二设备的系统时间戳,并且第一设备获取的两个时间戳的间隔与第二设备获取的两个时间戳的间隔相等;或者,第一设备可以先获取第一设备的系统时间戳再获取第一WIFI模组的时间戳,第二设备可以先获取第二设备的系统时间戳再获取第二WIFI模组的时间戳,并且第一设备获取的两个时间戳的间隔与第二设备获取的两个时间戳的间隔相等。也就是说,第一设备获取第一WIFI模组的时间戳和第一设备的系统时间戳的规则与第二设备获取第二WIFI模组的时间戳和第二设备的系统时间戳的规则一致。

结合图7,可选地,在第一设备调整第一主芯片的系统时间之前,本申请实施例提供的同步方法还可以包括:第一时间同步模块在第三时刻从第一TSF寄存器获取第一WIFI模组的时间戳,在第四时刻从第一主驱动器获取第一设备的系统时间。

结合图7,示例性地,图8示出了一种时间戳的获取方式。其中,K

一种可能的实现方式中,本申请实施例中,第一设备根据第一时间戳、第二时间戳、第三时间戳和第四时间戳,调整第一设备中的第一主芯片的系统时间,包括:第一设备根据第一时间戳、第二时间戳、第三时间戳和第四时间戳,确定第一设备的系统时间相对于第二设备的系统时间的偏差时间;若偏差时间的绝对值大于第一阈值,第一设备将当前的系统时间加上偏差时间,得到同步后的第一主芯片当前的系统时间。在该方案中,以第二设备的系统时间为基准,若第一设备的系统时间与第二设备的系统时间有偏差且偏差的绝对数值大于第一阈值,则对第一设备的系统时间进行调整。

可选地,第一设备可以向第二设备反馈时间同步是否成功。结合图7,反馈的过程具体可以由第一时间同步模块和第二时间同步模块实现。其中,第一时间同步模块成功确定出第一设备的系统时间相对于第二设备的系统时间的偏差时间,可以意味着第一时间同步模块同步系统时间成功。示例性地,反馈消息可以包括如下报文:

typedeftime_sync_reply{

unsigned char ver;  //协议版本号

unsigned char status  //同步状态值:0成功,<0失败

}

可选地,偏差时间为第一时间差减去第二时间差的差值,第一时间差为第四时间戳减去第二时间戳的差值,第二时间差为第三时间戳减去第一时间戳的差值。

结合图8,偏差时间可以表示为(T

一种可能的实现方式中,本申请实施例中,第一设备将当前时刻之前采集到的第一主芯片的系统时间戳加上偏差时间,得到同步后的当前时刻之前采集到的第一主芯片的系统时间戳。该方案中,同步系统时间可以发生在采集数据之前或者采集数据之中,从而能够提高时间同步的灵活度。具体地,若同步系统时间发生在采集数据之前,那么第一设备可以校正第一设备的系统时间,以使得之后第一设备采集到的数据与第二设备采集到的数据基于同一时间标准。若同步系统时间发生在采集数据之中,那么第一设备可以校正已经采集到的时间数据以及第一设备的系统时间。

在本申请实施例提供的时间同步方法中,第一WIFI模组和第二WIFI模组实现时间同步之后,第一设备根据第一时间戳、第二时间戳、第三时间戳和第四时间戳,调整第一设备中的第一主芯片的系统时间。相比于现有技术中使用的NTP协议,一方面,由于WIFI协议所占用的系统资源更小,造成的设备功耗更低,可以广泛应用于IOT设备,因此,本申请实施例提供的时间同步方法更适用于分布式相机业务场景。另一方面,由于第一设备与第二设备之间WIFI模组的时间能够实现微秒级别的时间同步,因此,本申请实施例提供的时间同步方法能够提高时间同步的精度。

其中,由于上述实施例中的第一设备和第二设备均可以采用如图5所示的通信装置500的架构,因此,上述实施例中第一设备的动作可以由图5所示的通信装置500中的处理器501调用存储器503中存储的应用程序代码以指令第一设备执行,上述实施例中第二设备的动作可以由图5所示的通信装置500中的处理器501调用存储器503中存储的应用程序代码以指令第二设备执行,本实施例对此不作任何限制。

可以理解的是,以上各个实施例中,由第一设备实现的方法和/或步骤,也可以由可用于第一设备的部件(例如芯片或者电路)实现;由第二设备实现的方法和/或步骤,也可以由可用于第二设备的部件(例如芯片或者电路)实现。

上述主要从各个网元之间交互的角度对本申请实施例提供的方案进行了介绍。相应的,本申请实施例还提供了通信装置,该通信装置用于实现上述各种方法。该通信装置可以为上述方法实施例中的第一设备,或者包含上述第一设备的装置,或者为可用于第一设备的部件;或者,该通信装置可以为上述方法实施例中的第二设备,或者包含上述第二设备的装置,或者为可用于第二设备的部件。可以理解的是,该通信装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本申请实施例可以根据上述方法实施例中对通信装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

图9示出了一种通信装置90的结构示意图。该通信装置90包括第一主芯片901和第一WIFI模组902。可选地,该通信装置90还包括收发器903,收发器903也可以称为收发单元用以实现收发功能,例如可以是收发电路,收发机或者通信接口。

以通信装置90为上述方法实施例中的第一设备为例,则:

第一主芯片901,用于接收来自第二设备的第一消息,第一消息包括第一时间戳和第二时间戳,第一时间戳是第二设备中的第二无线保真WIFI模组在第一时刻的时间戳,第二时间戳是第二设备中的第二主芯片在第二时刻的系统时间戳;第一主芯片901,还用于根据第一时间戳、第二时间戳、第三时间戳和第四时间戳,调整通信装置90中第一主芯片901的系统时间;其中,第三时间戳是第一WIFI模组902在第三时刻的时间戳,第四时间戳是第一主芯片901在第四时刻的系统时间戳,第一时刻与第二时刻的时间差等于第三时刻与第四时刻的时间差,第一WIFI模组902和第二WIFI模组在第一时刻之前已实现时间同步。

一种可能的实现方式中,第一WIFI模组902,用于接收来自第二设备的第五时间戳,第五时间戳是第二WIFI模组在第五时刻的时间戳,第五时刻早于第一时刻;第一WIFI模组902,还用于将第五时间戳作为第一WIFI模组902当前的时间戳;或者,第一WIFI模组902,用于向第二设备发送第六时间戳,第六时间戳是第一WIFI模组902在第五时刻的时间戳。

一种可能的实现方式中,第一主芯片901,具体用于:根据第一时间戳、第二时间戳、第三时间戳和第四时间戳,确定通信装置90的系统时间相对于第二设备的系统时间的偏差时间;若偏差时间的绝对值大于第一阈值,将当前的系统时间加上偏差时间,得到同步后的第一主芯片901当前的系统时间。

一种可能的实现方式中,偏差时间为第一时间差减去第二时间差的差值,第一时间差为第四时间戳减去第二时间戳的差值,第二时间差为第三时间戳减去第一时间戳的差值。

一种可能的实现方式中,第一主芯片901,还用于将当前时刻之前采集到的第一主芯片901的系统时间戳加上偏差时间,得到同步后的当前时刻之前采集到的第一主芯片901的系统时间戳。

一种可能的实现方式中,第一主芯片901,用于接收来自第二设备的第一消息,包括:用于通过第一WIFI模组902接收来自第二设备的第一消息。

一种可能的实现方式中,第一主芯片901,用于接收来自第二设备的第一消息,包括:用于通过收发器903接收来自第二设备的第一消息。

其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

在本实施例中,该通信装置90以采用集成的方式划分各个功能模块的形式来呈现。这里的“模块”可以指特定ASIC,电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。

当通信装置90为上述方法实施例中的第一设备或第二设备时,在一个简单的实施例中,本领域的技术人员可以想到该通信装置90可以采用图5所示的通信装置500的形式。

比如,图5所示的通信装置500中的处理器501或507可以通过调用存储器503中存储的计算机执行指令,使得通信装置500执行上述方法实施例中的时间同步方法。具体的,图9中的第一主芯片901的功能/实现过程可以通过图5所示的通信装置500中的处理器501或507调用存储器503中存储的计算机执行指令来实现。图9中的第一WIFI模组902或收发器903的功能/实现过程可以通过经由图5中的通信接口504连接的通信模块来实现。

由于本实施例提供的通信装置90可执行上述时间同步方法,因此其所能获得的技术效果可参考上述方法实施例,在此不再赘述。

需要说明的是,以上模块或单元的一个或多个可以软件、硬件或二者结合来实现。当以上任一模块或单元以软件实现的时候,所述软件以计算机程序指令的方式存在,并被存储在存储器中,处理器可以用于执行所述程序指令并实现以上方法流程。该处理器可以内置于SoC(片上系统)或ASIC,也可是一个独立的半导体芯片。该处理器内处理用于执行软件指令以进行运算或处理的核外,还可进一步包括必要的硬件加速器,如现场可编程门阵列(field programmable gate array,FPGA)、PLD(可编程逻辑器件)、或者实现专用逻辑运算的逻辑电路。

当以上模块或单元以硬件实现的时候,该硬件可以是CPU、微处理器、数字信号处理(digital signal processing,DSP)芯片、微控制单元(microcontroller unit,MCU)、人工智能处理器、ASIC、SoC、FPGA、PLD、专用数字电路、硬件加速器或非集成的分立器件中的任一个或任一组合,其可以运行必要的软件或不依赖于软件以执行以上方法流程。

可选的,本申请实施例还提供了一种芯片系统,包括:至少一个处理器和接口,该至少一个处理器通过接口与存储器耦合,当该至少一个处理器执行存储器中的计算机程序或指令时,使得上述任一方法实施例中的方法被执行。在一种可能的实现方式中,该通信装置还包括存储器。可选的,该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件,本申请实施例对此不作具体限定。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。

尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。

尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

技术分类

06120116132453