CN113194528A - 同步控制方法、芯片、电子设备及存储介质 - Google Patents
同步控制方法、芯片、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113194528A CN113194528A CN202110291510.9A CN202110291510A CN113194528A CN 113194528 A CN113194528 A CN 113194528A CN 202110291510 A CN202110291510 A CN 202110291510A CN 113194528 A CN113194528 A CN 113194528A
- Authority
- CN
- China
- Prior art keywords
- slave device
- time
- connection event
- count value
- slave
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W56/00—Synchronisation arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W56/00—Synchronisation arrangements
- H04W56/001—Synchronization between nodes
- H04W56/0015—Synchronization between nodes one node acting as a reference for the others
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/3625—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a time dependent access
-
- 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/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/405—Coupling between buses using bus bridges where the bridge performs a synchronising function
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明实施例涉及无线通信技术领域,公开了一种同步控制方法、芯片、电子设备及存储介质。由主设备端执行的方法包括:为与主设备端无线连接的多个从设备端选定参考时间;针对多个从设备端中的每个从设备端,确定从设备端的连接事件的目标计数值K和偏移时间;其中,从设备端的偏移时间是指参考时间与从设备端的第K个连接事件的起始时间的时间差;向多个从设备端分别发送对应的连接事件的目标计数值和偏移时间,供多个从设备端分别基于对应的连接事件的目标计数值和偏移时间进行控制,以在参考时间到达时执行任务。本申请实施例提供的技术方案可以提高网络中多个设备执行任务的同步性。
Description
技术领域
本发明实施例涉及无线通信技术领域,特别涉及同步控制方法、芯片、电子设备及存储介质。
背景技术
蓝牙低功耗(Bluetooth low energy,简称BLE)技术,是目前常用到的近距离无线通信技术。BLE设备之间通常会组成一个微微网,在一个微微网里面有一个主设备和一个或多个从设备;主设备可以同时跟多个从设备分别建立蓝牙连接,但是各从设备之间是没有任何连接的。通常的,主设备和从设备之间可以基于异步无连接(AsynchronousConnectionless,简称ACL)链路进行通信。
虽然主设备可以同时跟多个从设备分别建立蓝牙连接,但同一时刻,主设备只能与一个从设备进行数据传输;即,主设备无法同时向多个从设备发送控制信息,也无法同时接收多个从设备发送的数据。因此,在该微微网中,多个从设备的同步性不是很好。
发明内容
本发明实施方式的目的在于提供一种同步控制方法、芯片、电子设备及存储介质,可以提高网络中多个设备执行任务的同步性。
为解决上述技术问题,第一方面,本发明实施例提供了一种同步控制方法,应用于主设备端,该方法包括:计算步骤和发送步骤;所述计算步骤包括:为与主设备端无线连接的多个从设备端选定参考时间;针对多个从设备端中的每个从设备端,确定从设备端的连接事件的目标计数值K和偏移时间;其中,从设备端的偏移时间是指参考时间与从设备端的第K个连接事件的起始时间的时间差;或者,所述计算步骤,包括:从多个从设备端中选定一个从设备端,对被选定从设备端的连接事件的目标计数值K进行设定,并将被选定从设备端的偏移时间设定为零;其中,将被选定从设备端的第K个连接事件的起始时间作为所述参考时间;针对多个从设备端中的每个未被选定从设备端,确定未被选定从设备端的连接事件的目标计数值K和偏移时间;其中,未被选定从设备端的偏移时间是指参考时间与从设备端的第K个连接事件的起始时间的时间差;所述发送步骤,包括:针对多个从设备端中的每个从设备端,向从设备端发送从设备端的连接事件的目标计数值K和偏移时间,供从设备端分别基于从设备端的连接事件的目标计数值和偏移时间进行控制,以在参考时间到达时执行任务。
第二方面,本发明实施例提供了一种同步控制方法,应用于从设备端,该方法包括:接收主设备端发送的从设备端的连接事件的目标计数值K和偏移时间;其中,从设备端的偏移时间是指主设备端预先选定的参考时间与从设备端的第K个连接事件的起始时间的时间差;根据连接事件的目标计数值校验参考时间是否过期;当参考时间未过期时,基于连接事件的目标计数值和偏移时间进行控制,以在参考时间到达时,执行任务。
第三方面,本发明实施例提供了一种同步控制方法,包括:主设备端执行计算步骤;计算步骤,包括:为与主设备端无线连接的多个从设备端选定参考时间;针对多个从设备端中的每个从设备端,确定从设备端的连接事件的目标计数值K和偏移时间;其中,从设备端的偏移时间是指参考时间与从设备端的第K个连接事件的起始时间的时间差;或者,计算步骤,包括:从多个从设备端中选定一个从设备端,对被选定从设备端的连接事件的目标计数值K进行设定,并将被选定从设备端的偏移时间设定为零;其中,将被选定从设备端的第K个连接事件的起始时间作为参考时间;针对多个从设备端中的每个未被选定从设备端,确定未被选定从设备端的连接事件的目标计数值K和偏移时间;其中,未被选定从设备端的偏移时间是指参考时间与从设备端的第K个连接事件的起始时间的时间差;主设备端执行发送步骤;发送步骤,包括:针对多个从设备端中的每个从设备端,向从设备端发送从设备端的连接事件的目标计数值K和偏移时间;从设备端执行如下步骤:接收主设备端发送的从设备端的连接事件的目标计数值K和偏移时间;根据连接事件的目标计数值校验参考时间是否过期;当参考时间未过期时,基于连接事件的目标计数值和偏移时间进行控制,以在参考时间到达时,执行任务。
第四方面,本发明实施例提供了一种芯片,包括:处理模块和存储模块;存储模块存储有可被处理模块执行的指令,指令被所述处理模块执行,以使处理模块能够执行:上述同步控制方法,其中,芯片为主设备端或从设备端。
第五方面,本发明实施例提供了一种电子设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行:上述同步控制方法,其中,电子设备为主设备端或从设备端。
第六方面,本发明实施例提供了一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现上述同步控制方法。
本发明实施例相对于现有技术而言,主设备端与多个从设备端建立连接后,为多个从设备端选定一个共同的参考时间,为每个从设备端确定连接事件的目标计数值K和偏移时间。由于从设备端的偏移时间是指参考时间与该从设备端的第K个连接事件的起始时间的时间差,因此,对于每个从设备端而言,该从设备端的第K个连接事件的起始时间与该从设备端的偏移时间叠加后的时间点可以指示出该主设备端选定的该参考时间。即,每个从设备端只需要基于接收的目标计数值K和偏移时间进行控制,可以确定出参考时间何时到达,并都在参考时间到达时开始执行任务,从而可以提高多个从设备端执行任务的同步性。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本申请一个实施例中由主设备端执行的同步控制方法的流程图;
图2是本申请一个实施例中由从设备端执行的同步控制方法的流程图;
图3A和图3B是多音源提供数据的场景中,主设备端未设定参考时间和设定参考时间的两种情况下,从设备端采集并传输数据帧的过程的示意图;
图4是一个实施例中主设备端计算目标计数值K和偏移时间的流程图;
图5是一个实施例中主设备端计算目标计数值K和偏移时间的流程图;
图6是一个实施例中主设备端选定参考时间的流程图;
图7A和图7B是主设备端选定参考时间的两种情况的示意图;
图8是一个实施例中主设备端计算目标计数值K和偏移时间的流程图;
图9是一个实施例中从设备端对本地采样时钟进行校准的流程图;
图10是一个实施例中主设备端对各从设备端的连接事件进行排布的流程图;
图11A和图11B是各从设备端的连接事件被排布前和排布后的示意图;
图12A和图12B是从设备端在校验出参考时间已过期,重新得到目标计数值K和偏移时间的两种方式的流程图;
图13是与图12B中从设备端的处理方式对应的主设备端的处理方法的流程图;
图14是一个实施例中的从设备端传输数据帧和现有技术中的从设备端传输数据帧的对比示意图;
图15是一个实施例中,各从设备端在执行任务过程中使数据帧传输保持同步的流程图;
图16A和图16B是一个实施例中,各从设备端在执行任务过程中与主设备端配合以使数据帧传输保持同步的流程图;
图17是一个实施例中由主设备端执行的同步控制方法的流程图;
图18是一个实施例中由主设备端执行的同步控制方法的流程图;
图19是一个实施例中由主设备端执行的同步控制方法的流程图;
图20是一个实施例中由从设备端执行的同步控制方法的流程图;
图21是一个实施例中由从设备端执行的同步控制方法的流程图;
图22是本申请实施例中芯片的结构示意图;
图23是本申请实施例中电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
在BLE设备建立的微微网中,主设备端与从设备端可以基于传统BLE ACL链路通信。具体的,基于ACL链路的连接事件进行通信。主设备端和从设备端建立连接后,会不断发生跳频,每发生一次跳频,就发生一次连接事件,且连接事件的计数值就增加一次;从设备端和主设备端内都有连接事件计数器,从设备端和主设备端内的连接事件计数器会对该ACL链路的连接事件同步计数。每一次连接事件都具有持续时长,主设备端和从设备端在每一次连接事件的持续时长内传输数据。两次连接事件之间存在时间间隔,该时间间隔称为该ACL链路的连接事件周期。在微微网中,主设备端与每个从设备端都建立一条独立的ACL链路,即对于每个从设备端而言,唯一对应一条ACL链路;因此,从设备端所在ACL链路的连接事件,也可称之为该从设备端的连接事件;从设备端所在ACL链路的连接事件周期,也可称之为该从设备端的连接事件周期。
BLE设备基于ACL链路建立微微网的应用场景很多。
例如,多人语音对话、多人唱歌等多音源提供数据的场景中,每人持有一个收音设备如麦克风,采集音频数据并将音频数据以数据帧的形式发送给主机;主机将从多个收音设备接收的音频数据进行合成并播放出来;其中,多个收音设备是多个从设备端,主机是主设备端。由于多个收音设备很难做到同时开始采集;因此,多个收音设备发送给主机的相同序号的数据帧,可能不是同一时间段内采集的数据;主机对不同收音设备发送的相同序号的数据帧进行合成并播放,很可能无法较好地还原现场真实声音。
又例如,多媒体教学系统中,每个学生持有一个播放音/视频的终端设备,接收主机发送的教学音/视频数据。由于多个终端设备很难做到同时接收主机发送的教学音/视频数据,因此也很难做到将教学音/视频数据同步播放出来;尤其是终端设备数量较多时(即学生数量较多时),所有终端设备的同步性可能较差。
本申请实施例中,主设备端和多个从设备端相互配合,实现主设备端对从设备端的同步控制。多个从设备端是指两个或两个以上的从设备端;主设备端与从设备端可以基于BLE ACL链路进行通信。需要说明的是,本申请实施例中虽然是以基于BLE ACL链路进行通信的情况下进行说明的,但是并不以此为限,基于面向无连接、连接事件进行通信的任何通信协议进行通信的方式中,均适用于本申请的同步控制方法。
在一个实施例中,如图1所示的同步控制方法,应用于主设备端,包括计算步骤和发送步骤。计算步骤包括步骤101和步骤102;发送步骤包括步骤103。
步骤101:为与主设备端无线连接的多个从设备端选定参考时间。
步骤102:针对多个从设备端中的每个从设备端,确定该从设备端的连接事件的目标计数值K和偏移时间;其中,该从设备端的偏移时间是指参考时间与该从设备端的第K个连接事件的起始时间的时间差。
步骤103:针对多个从设备端中的每个从设备端,向从设备端发送从设备端的连接事件的目标计数值和偏移时间。
在一个实施例中,如图2所示的同步控制方法,应用于从设备端,包括如下步骤。
步骤201:接收主设备端发送的该从设备端的连接事件的目标计数值和偏移时间;其中,该从设备端的偏移时间是指主设备端预先选定的参考时间与该从设备端的第K个连接事件的起始时间的时间差。
步骤202:根据连接事件的目标计数值校验参考时间是否过期。
步骤203:当参考时间未过期时,基于连接事件的目标计数值和偏移时间进行控制,以在参考时间到达时,执行任务。
本申请实施例中,主设备端与多个从设备端建立连接后,为多个从设备端选定一个共同的参考时间,为每个从设备端确定连接事件的目标计数值K和偏移时间。由于从设备端的偏移时间是指参考时间与该从设备端的第K个连接事件的起始时间的时间差,因此,对于每个从设备端而言,该从设备端的第K个连接事件的起始时间与该从设备端的偏移时间叠加后的时间点可以指示出该主设备端选定的该参考时间。即,每个从设备端只需要基于接收的目标计数值K和偏移时间进行控制,可以确定出参考时间何时到达,并都在参考时间到达时开始执行任务,从而可以提高多个从设备端执行任务的同步性。
例如,上面提到的多人语音对话、多人唱歌等多音源提供数据的场景中,各收音设备可以基于主设备端发送的目标计数值和偏移时间进行控制,以在参考时间到达时,同时开始采集音频数据帧,并将采集的音频数据帧按照采集顺序依次上传给主设备端。这样,可以尽可能保证相同序号的数据帧是在同一时间段内采集的,从而主机对不同收音设备发送的相同序号的数据帧进行合成并播放,能够较好地还原现场真实声音。
又例如,在上面提到的多媒体教学系统中,各终端设备虽然无法在同一时刻接收到完全相同的教学音/视频数据,但是,可以基于主设备端发送的目标计数值和偏移时间进行控制,以在参考时间到达时,同时开始播放接收到的教学音/视频数据;从而实现同步教学。
示例的,如图3A和图3B所示为多音源提供数据的场景中,主设备端未设定参考时间和设定参考时间的两种情况下,从设备端采集并传输数据帧的过程。该多音源提供数据的场景例如是两个人唱歌的场景,两个人手中的麦克风分别为两个从设备端slave1、slave2,主机为主设备端master。slave1与master之间的ACL链路记作ACL1,slave1与master之间的ACL链路记作ACL2;slave1、slave2的连接事件周期相同且均为7.5ms。slave1、slave2分别独立采样音频数据帧并将音频数据帧发送至master;采样和传输过程为:在采样开始后,采样得到Date0、Date1、Date3……,其中,Date0表示第0帧音频数据,Date1表示第1帧音频数据,Date2表示第2帧音频数据(图中仅示意出了Date0、Date1),每一帧音频数据所需的采集时间等于从设备端的连接事件周期,如图中标注的采样一帧数据7.5ms;采样得到一帧音频数据后,在下一个连接事件周期内将该帧音频数据发送至主设备端,如图中slave1的传输过程中,由虚线两端指示的两个Date0所在的位置,分别是采样得到该Date0所对应的连接事件周期和发送该Date0所在的连接事件周期。其中,本申请后续的示意图中提及的slave1与ACL1、slave2与ACL2,均表示两个从设备端及其对应的链路;master均表示主设备端。
图3A中,在主设备端未设定参考时间的情况下,slave1、slave2开始采样第0帧的时间点是不同的,即,slave1、slave2并非同时开始采样;这导致后面的每一帧开始采样的时间点都不同。因此,slave1的Date0与slave2的Date0对应的采样时间段、slave1的Date1与slave2的Date1对应的采样时间段均是不同的。即,同样是第i帧音频数据,即Datei,不同从设备端对应的采样时间段是不同的,其中,i=0,1,2,……。如果master直接将slave1和slave2的Datei合并处理并播放,播放出来的声音可能会出现与真实声音不一致的情况;比如,同一句歌词,播放出来后听到一个声音先唱、另一个声音后唱;而实际上两个人是同时唱的。如果master为了要使得合并处理后的数据与实际完全相符,就要对从slave1、slave2接收的每一帧音频数据进行拆解并分析,例如通过比对波形等方式,识别出属于同一时间段采样的音频数据,然后再进行合成。但这显然会增加master的处理时间,使得从音频数据采集到输出声音的整个等待时间变长,而且,这还会增加主机的处理复杂度,加重了其处理负担。
图3B中,在主设备端设定了参考时间的情况下,slave1、slave2均在参考时间到达时开始采样,即,开始采样第0帧的时间点是相同的,后面的每一帧开始采样的时间点都是相同的。因此,slave1的Date0与slave2的Date0对应的采样时间段、slave1的Date1与slave2的Date1对应的采样时间段都是相同的。即,同样是第i帧音频数据,即Datei,不同从设备端对应的采样时间段是相同的。因此,master接收到slave1和slave2的第i帧音频数据直接合并处理并播放,不会出现由于开始采样时间不同而导致播放出来的声音与真实声音不一致的情况。
由上述分析可知,在多个从设备端需要采集数据并发送至主设备端进行合成处理的场景下,统一采样开始时刻,可以提高多个从设备端采集数据的同步性,从而可以提高主设备端合并处理后还原出的声音的真实性;另外,可以避免由于多个从设备端采样数据不够同步而使得主设备端需要花费额外的处理成本的问题,同时提高主设备端的处理速度,即可以提高整个微微网中数据传输的及时性。
各从设备端要在一个共同的参考时间到达时开始执行任务,该参考时间应当是一个未来的时间点。在一个实施例中,主设备端选定的该参考时间晚于主设备端的当前时间,即选定的该参考时间是一个未来的时间点。进一步的,对于每一个从设备端而言,该参考时间晚于该从设备端的第K个连接事件的起始时间;即,在第K个连接事件的起始时间上延迟该偏移时间后,到达该参考时间。由于主设备端为每个从设备端确定的连接事件的目标计数值和偏移时间是指示选定的该参考时间的;因此,该目标计数值和偏移时间被发送至从设备端后,从设备端可以直接基于接收到的该目标计数值和偏移时间进行控制。具体的,从设备端在检测到连接事件的当前计数值到达该目标计数值后,开始基于本地时钟进行时间监测,并在监测到延迟该偏移时间时,认为主设备端设定的参考时间已到达,此时开始执行任务。
更进一步的,该从设备端的偏移时间小于该从设备端的连接事件周期。其中,从设备端在基于连接事件的目标计数值和偏移时间进行控制时,连接事件的增加是与主设备端同步的,即与主设备端的时钟对齐的,基本不会出现偏差。而偏移时间的控制时由从设备端本地时钟来监测实现的;由于不同从设备端的本地时钟可能存在微小偏差,因此,偏移时间越短,由于本地时钟的偏差引起的不同步的可能性就越低。示例的,如果一个从设备端的周期T为1秒,目标计数值112和偏移时间1500毫秒指示的参考时间,等同于,目标计数值113和偏移时间500毫秒指示的参考时间;但是,该从设备端在基于目标计数值113和偏移时间500毫秒进行控制时,受本地时钟偏差影响而导致不同步的可能性更小。在其他实施例中,主设备端设定的参考时间也可以是过去的一个时间点;参考时间也可以晚于从设备端的第K个连接事件的起始时间。
不管主设备端设定参考时间是否为一个未来的时间点,对于每个从设备端而言,如图2所示,在接收到主设备端发送的连接事件的目标计数值和偏移时间后,都需要根据该目标计数值校验该参考时间是否过期,以确保可以基于接收的目标计数值和偏移时间进行控制。因此,即使主设备端设定参考时间时,设定的是一个未来的时间点,也可能由于在将目标计数值和偏移时间发送给该从设备端的过程中,延误了时间,导致该从设备端接收到该目标计数值和偏移时间的时刻已经过了该参考时间。
另外,即使该目标计数值和偏移时间指示的参考时间是一个未来时间,如果主设备端设定的参考时间早于从设备端的第K个连接事件的起始时间,那么表示,第K个连接事件的起始时间向前推算该偏移时间后的时间点,才是参考时间。此时,从设备端需要重新调整该目标计数值K的取值和该偏移时间的取值,将该目标计数值K更新为K-1,该偏移时间更新为连接事件周期减去该偏移时间后的值。示例的,从设备端的连接事件周期为1秒;调整前,即参考时间早于该从设备端的第K个连接事件的起始时间的设定方式下:目标计数值K为135,偏移时间为第K个连接事件的起始时间往前推300毫秒;调整后,目标计数值K更新为K=K-1=135-1=134,偏移时间offset更新为offset=1秒-300毫秒=700毫秒,即,偏移时间offset为第K个连接事件的起始时间往后推700毫秒。
在一个实施例中,提供了各从设备端的连接事件的目标计数值K和偏移时间的一种计算方式。如图4所示,步骤102具体为,针对多个从设备端中的每个从设备端,执行如下子步骤。
子步骤1021:获取预存的从设备端的连接建立时间,并计算连接建立时间与参考时间的时间差;其中,连接建立时间是指从设备端与主设备端建立连接的时间;
子步骤1022:根据连接建立时间与参考时间的时间差、从设备端的连接事件周期,计算从设备端的连接事件的目标计数值K和偏移时间。
具体的,主设备端在与每个从设备端建立连接时,会记录与该从设备端建立连接的时间,记作该从设备端的连接建立时间。对于每一个从设备端,连接建立时间与参考时间的时间差记作Δt1,则Δt1=t-t0,其中,t表示参考时间;t0表示连接建立时间;并计算Δt1除以连接事件周期T得到的商K和余数offset,列式为Δt1/T=K……offset;其中,K表示连接事件的目标计数值;offset表示偏移时间,且由于offset是Δt1/T的余数,offset小于连接事件周期T。
示例的,主设备端master与两个从设备端slave1、slave2分别建立连接。master与slave1在master时间的10分00秒建立连接,连接事件周期为1s;master与slave2在master时间的11分05秒建立连接,连接事件周期为2s。
假设情况一,master选定11分55秒作为参考时间。对于slave1来说,Δt1为115秒,目标计数值K为115,偏移时间offset为0;对于slave2来说,Δt1为50秒,目标计数值为25,偏移时间offset为0。
假设情况二,master选定11分54秒500毫秒作为参考时间。对于slave1来说,Δt1为114秒500毫秒,目标计数值K为114,offset为500毫秒;对于slave2来说,Δt1为49秒500毫秒,目标计数值K为24,偏移时间offset为1500毫秒。
在一个实施例中,提供了各从设备端的连接事件的目标计数值K和偏移时间的另一种计算方式。如图5所示,步骤102具体为,针对多个从设备端中的每个从设备端,执行如下子步骤。
子步骤1023:计算该参考时间与主设备端的当前时间的时间差。
子步骤1024:根据该参考时间与主设备端的当前时间的时间差、从设备端的连接事件周期、从设备端的连接事件的当前计数值,计算从设备端的目标计数值K和偏移时间。
具体的,参考时间t与主设备端的当前时间t1的时间差记作Δt2;在参考时间t晚于当前时间t1的情况下,Δt2=t-t1。对于每一个从设备端,计算Δt2除以连接事件周期T得到的商Δk和余数offset,列式为Δt2/T=Δk……offset;并计算目标计数值K=K0+Δk;其中,K0表示连接事件的当前计数值,Δk可以理解为表示参考时间t与当前时间t1的时间差中包含连接事件周期的个数;offset表示偏移时间,且由于offset是Δt2/T的余数,offset小于连接事件周期T。
示例的,主设备端master与两个从设备端slave1、slave2已建立连接。主设备端的当前时间是10分20秒;slave1的连接事件周期为1秒,当前计数值是35;slave2的连接事件周期为2秒,当前计数值是64。
假设情况一,master选定11分55秒作为参考时间。此时,参考时间和主设备端的当前时间的时间差Δt2为95秒。对于slave1来说,目标计数值K为130,偏移时间offset为0;对于slave2来说,目标计数值为111,偏移时间offset为1秒。
假设情况一,master选定11分54秒500毫秒作为参考时间。此时,参考时间和主设备端的当前时间的时间差Δt2为94秒500毫秒。对于slave1来说,目标计数值K为129,偏移时间offset为500毫秒;对于slave2来说,目标计数值为111,偏移时间offset为500毫秒。
在一个实施例中,如图6所示,包括步骤601~步骤603。
步骤601:从多个从设备端中选定一个从设备端,对被选定从设备端的连接事件的目标计数值K进行设定,并将被选定从设备端的偏移时间设定为零;其中,将被选定从设备端的第K个连接事件的起始时间作为参考时间。
步骤602:针对多个从设备端中的每个未被选定从设备端,确定未被选定从设备端的连接事件的目标计数值K和偏移时间;其中,未被选定从设备端的偏移时间是指参考时间与从设备端的第K个连接事件的起始时间的时间差。
步骤603:针对多个从设备端中的每个从设备端,向从设备端发送从设备端的连接事件的目标计数值K和偏移时间,供从设备端基于从设备端的连接事件的目标计数值K和偏移时间进行控制,以在参考时间到达时执行任务。
该实施例中,该被选定从设备端的连接事件的目标计数值和偏移时间都是预先设定的,后续只要计算多个从设备端中每个未被选定从设备端的连接事件的目标计数值和偏移时间,可以减少数据计算量。其中,计算每个未被选定从设备端的目标计数值和偏移时间,可采用如图4或图5中所述的方式;即,步骤602与图4或图5中的步骤102类似,步骤603与图4或图5中的步骤103类似。
示例的,如图7A所示,存在两个从设备端的情况下,slave1为被选定从设备端,slave2为未被选定从设备端。图中,第n-1个连接事件、第n个连接事件用于表示ACL1中任意相邻的两个连接事件,其中的n为大于或等于1的自然数。同理,第m-1个连接事件、第m个连接事件用于表示ACL2中任意相邻的两个连接事件,其中的m为大于或等于1的自然数。ACL1、ACL2的连接事件周期均为7.5ms,连接事件的持续时长均为3.75ms。master将slave1的目标计数值K进行设定,如图中表示参考时间的虚线所在的位置,与slave1的一个连接事件的起始时间所在位置重合;假设目标计数值K的取值被设定为148,即此时图中n=148,则第148个连接事件的起始时间为参考时间;并且直接得到slave1的偏移时间为0。此时,只需要计算slave2的连接事件的目标计数值和偏移时间offset2。
在一个例子中,计算slave2的连接事件的目标计数值和偏移时间的方式,可以采用图4中的步骤102所述的方式。在slave1的目标计数值K被设定的具体值K1大于slave1的当前计数值K0的情况下,首先,主设备端可以先根据slave1的目标计数值K的取值、slave1的当前计数值K0、slave1的连接事件周期T1、主设备端的当前时间t1,计算出参考时间t;其中,t=t1+(K1-K0)*T1。其次,主设备端可以获取预存的连接建立时间t0,并计算出连接建立时间与参考时间的时间差记作Δt1,则Δt1=t-t0。再次,计算slave2的目标计数值K2和偏移时间offset2;Δt1除以slave2的连接事件周期T2得到的商K2和余数offset2,计算公式为Δt1/T2=K2……offset2;从而得到slave2的连接事件的目标计数值K2和偏移时间offset2。
在一个例子中,计算slave2的连接事件的目标计数值和偏移时间的方式,可以采用图5中的步骤102所述的方式。在slave1的目标计数值K被设定的具体值K1大于slave1的当前计数值K0的情况下,首先,主设备端可以先计算参考时间t与主设备端的当前时间t1的时间差Δt2;Δt2=(K1-K0)*T1,其中,T1是slave1的连接事件周期。其次,计算slave2的目标计数值K2和偏移时间offset2;Δt2除以slave2的连接事件周期T2得到的商Δk和余数offset2,slave2的目标计数值K2等于slave2的当前计数值K02与商Δk的和;计算公式包括:Δt2/T2=Δk……offset2,K2=K02+Δk;从而可得到slave2的目标计数值K2和偏移时间offset2。
如图7B所示,对于图7A中的slave1、slave2,master任意选定了一个时间点作为参考时间,此时,需要计算slave1的连接事件的目标计数值即图中n的数值,以及slave1的偏移时间offset1;还要计算slave2的目标计数值即图中m的数值和偏移时间offset2。具体计算方法如图4或图5中的步骤102所述,此处不再赘述。
在一个实施例中,如图8所示,在如图6的基础上,步骤602可以包括如下子步骤。
子步骤6021:根据被选定从设备端的已设定的连接事件的目标计数值、被选定从设备端的连接事件的当前计数值、被选定从设备端的连接事件周期,计算参考时间与主设备端的当前时间的时间差。
具体的,被选定从设备端的已设定的目标计数值k1与当前计数值k0的计数差值记作Δk,在已设定的目标计数值k1大于当前计数值k0的情况下,Δk=k1-k0;参考时间与主设备端的当前时间的时间差Δt2=(k1-k0)*T1;其中,T1表示被选定从设备端的连接事件周期。其中,子步骤6021与子步骤6023均是要计算出参考时间与主设备端的当前时间的时间差,只是计算方式不同。
子步骤6022:根据参考时间与主设备端的当前时间的时间差、多个从设备端中每个未被选定从设备端的连接事件周期、每个未被选定从设备端的连接事件的当前计数值,计算每个未被选定从设备端的连接事件的目标计数值和偏移时间。
其中,子步骤6022与子步骤1024的不同之处仅在于,子步骤1024中需要计算每个从设备端的目标计数值和偏移时间,而子步骤6022,无需计算被选定从设备端的目标计数值和偏移时间。对于从设备端的目标计数值和偏移时间的具体计算过程,子步骤6022与子步骤1024相同,此处不再赘述。
示例的,主设备端master与三个从设备端slave1、slave2、slave3分别建立连接。slave1的连接事件周期为1秒;slave2的连接事件周期为2秒;slave3的连接事件周期为3秒。slave1的当前计数值为13,slave2的当前计数值为23,slave3的当前计数值为56。
假设情况一,master选定slave1,即slave1为被选定从设备端。master将slave1的连接事件的目标计数值K设定为116,可以直接确定slave1的offset为0。此时,参考时间与主设备端的当前时间的时间差值Δt2=(116-13)*1秒=103秒。根据Δt2/T=Δk……offset,目标计数值K=K0+Δk可知,对于slave2来说,103秒/2秒=51……1,目标计数值K=23+51=74,offset为1秒;对于slave3来说,103秒/3秒=34……1,目标计数值K=56+34=90,offset为1秒。
假设情况二,master选定slave2,即slave2为被选定从设备端。master将slave2的连接事件的目标计数值K设定为100,可以直接确定slave2的offset为0。此时,参考时间与主设备端的当前时间的时间差值Δt2=(100-23)*2秒=154秒。根据Δt2/T=Δk……offset,目标计数值K=K0+Δk可知,对于slave1来说,154秒/1秒=154,目标计数值K=13+154=167,offset为0;对于slave3来说,154秒/3秒=51……1,目标计数值K=56+51=107,offset为1秒。
该实施例中,主设备端不仅能够不用计算被选定从设备端的目标计数值和偏移时间,即能够减少数据计算量,而且主设备端在计算未被选定从设备端的目标计数值和偏移时间的过程中,可以无需计算出具体的参考时间,使得计算更为简便快速。
在步骤103中,主设备端将每个从设备端的连接事件的目标计数值和偏移时间计算出来后,可以等待该从设备端的下一个连接事件的到来,并在下一个连接事件中将目标计数值和偏移时间发送至该从设备端。或者,主设备端也可以在设定在任意一个连接事件中将目标计数值和偏移时间发送至该从设备端。其中,主设备端可以将目标计数值和偏移时间封装在控制信令中发送至从设备端。
进一步的,考虑到目标计数值和偏移时间被计算出来后,在下一个连接事件中被传输至从设备端的。因此,主设备端在设定未来的时间点作为参考时间时,可以预留至少一个连接事件周期的时间段;即参考时间与当前时间的时间差大于或等于一个连接事件周期;从而尽可能确保从设备端接收到该目标计数值和偏移时间时,该参考时间依然还未到达;从设备端可以直接基于接收到的目标计数值和偏移时间进行控制,并在该参考时间到达时执行任务。
多个从设备端同步采样数据,除了与开始采样的时刻是否同步有关,还跟各从设备端的本地采样时钟是否同步有关。由于各从设备端采样数据是完全独立的过程,均是由本地采样时钟控制的,所以,如果本地采样时钟不一致,也会导致采样数据不同步。因此,各从设备端还可以对本地采样时钟进行校准,该校准可以在执行任务的过程中进行,或者在建立连接后就进行;即从设备端执行的同步控制方法中,还包括对本地采样时钟进行校准的步骤。
在一个实施例中,如图9所示,从设备端对本地采样时钟进行校准包括如下步骤。
步骤204:获取本地采样时钟在从设备端的L个连接事件周期内的实际脉冲个数;L为大于或等于1的整数。
步骤205:根据实际脉冲个数与本地采样时钟在L个连接事件周期内的理想脉冲个数,识别本地采样时钟是否存在偏差;其中,理想脉冲个数根据本地采样时钟的采样频率、连接事件周期、L的取值确定。
步骤206:当识别出本地采样时钟存在偏差时,对本地采样时钟进行校准。
各从设备端与主设备端基于BLE ACL链路通信中,各从设备端的BLE时钟都是和主设备端的BLE时钟对齐的,因此可以使用主设备端的BLE时钟作为参考源来对从设备端的本地采样时钟进行纠正。具体的,BLE时钟控制着连接事件周期,所以,可以比较L个连接事件周期内,本地采样时钟的实际脉冲个数和理论脉冲个数是否匹配,如果不匹配,表示本地采样时钟存在偏差;其中,实际脉冲个数和理论脉冲个数不匹配,可以理解为实际脉冲个数和理论脉冲个数不相同、或者两者的差值超过了预设的误差范围。本地采样时钟在L个连接事件周期内的实际脉冲个数,可以在采样过程中进行实时统计。本地采样时钟在L个连接事件周期内的理想脉冲个数,由本地采样时钟的采样频率、连接事件周期、L三者的乘积决定;其中,连接事件周期以秒为单位。L可以根据实际需要取值,如,L可以取值为1。示例的,本地采样时钟的采样频率为48KHz,其中,该采样频率可以理解为该本地采样时钟的理想采样频率;如果连接事件周期是1s,那么一个连接事件周期内本地采样时钟的理想脉冲个数是48;如果连接事件周期是2s,那么一个连接事件周期内本地采样时钟的理想脉冲个数是96。
当本地采样时钟存在偏差时,从设备端对本地采样时钟进行校准;具体的,可以通过调整本地采样时钟的时钟因子(时钟因子可以控制时钟快慢)来进行校准,使得本地采样时钟和主设备端的BLE时钟对齐。其中,调整时钟因子的方法可以引入成熟的算法比如PID算法或者模糊控制算法等,此处不再赘述。
该实施例中,将各从设备端的本地采样时钟都和主设备端的BLE时钟对齐,从而使得各从设备端的本地采样时钟保持一致。因此,各从设备端不仅能够使得开始采样时刻一致;而且由于本地采样时钟的采样频率也一致,可以使得数据过程中也尽可能保持一致,即尽可能避免由于各从设备端的本地采样时钟不一致而导致各从设备端采样的第i帧数据对应的采样时间段不一致。因此,该实施例的技术方案可以极大程度地保证各从设备端的整个数据采集过程的同步性。
对于主设备端和多个从设备端构成的微微网而言,除了要求数据具有同步性,还要求数据具有及时性。各从设备端执行任务的同步性提高,可以降低主设备端为提高同步性而花费额外的处理成本,进而可以提高该微微网中数据传输的及时性。另外,数据传输的及时性还跟主设备端接收各从设备端发送的同序号数据帧的时间差有关。在各从设备端执行任务的同步性相同的情况下,主设备端接收各从设备端发送的同编号数据帧的时间差越短,主设备端在数据处理中需要等待的时间越短,数据同步的及时性就越高。以下实施例可以提高数据同步的及时性。
在一个实施例中,如图10所示,主设备端执行的同步控制方法中,还包括步骤101-1:按照预设要求对各从设备端的连接事件进行排布;其中,预设要求包括:各从设备端的连接事件周期相同,且在每一个连接事件周期内,各从设备端的连接事件在该连接事件周期内的不同时段发生。其中,步骤101-1与步骤101的执行顺序不限,只要在主设备端与各从设备端分别建立连接后且在步骤102之前执行即可。
其中,每一个连接事件周期内,各从设备端的连接事件在该连接事件周期内的不同时段发生,可以理解为:在每一个连接事件周期内,各从设备端的连接事件分别发生一次;并且在该连接事件周期内,时间上相邻发生的两个连接事件中,后一个连接事件的起始时间晚于或等于前一个连接事件的终止时间,时间上最后一个发生的连接事件的终止时间早于或等于该连接事件周期的结束时间。亦可以理解为,每一个连接事件周期内,各从设备端的连接事件不冲突。由于在每个连接事件周期内,各从设备端的连接事件均会发生一次,因此,对于每个从设备端而言,该从设备端发送数据帧的时刻与主设备端接收该数据帧的时刻之间的时间差不超过一个连接事件周期,即从设备端发送数据帧到主设备端,数据帧传输过程导致的时间延迟一般不会超过一个连接事件周期。
在各从设备端实时采样数据帧,并将数据帧发送至主设备端的场景中,各从设备端一般在一个连接事件周期内持续采集数据可以得到一个数据帧,并在采集得到该数据帧后的下一个连接事件(即下一个连接事件周期内发生的连接事件)中将该数据帧发送至主设备端;即,在从设备端实时采样数据帧并将数据帧发送至主设备端的整个过程中,数据帧采集花费的时间长度一般为一个连接事件周期、数据帧传输花费的时间长度一般不超过一个连接事件周期;因此,整个数据同步过程的延时不会超过两个连接事件周期的时间长度。在其他场景中,如数据帧是预先储存在从设备端的存储器中的,即从设备端不是实时采集获取该数据帧,而是从存储器中获取该数据帧并发送至主设备端,由于从存储器中获取该数据帧的时间相对于一个连接事件周期而言是极短的,可以忽略,那么,整个数据同步过程的延时一般不会超过一个连接事件周期的时间长度。
进一步的,预设要求还可以包括:在每一个连接事件周期内,时间上相邻发生的两个连接事件之间的时间间隔等于或小于预设时长。其中,该时间间隔即是指,每一个连接事件周期内时间上相邻发生的两个连接事件中,后一个连接事件的起始时间与前一个连接事件的终止时间之间的时间差。该预设时长可以等于或稍大于主设备端切换链路所需时间。这种紧密排布的排布方式,可以尽可能减小主设备端接收到所有从设备端发送的数据帧的等待时长,从而最大程度上提高同步过程中的及时性。
示例的,请参考图11A、图11B,分别为两个从设备端的连接事件在排布前、排布后的示意图。从设备端slave1与主设备端master的链路记作ACL1,从设备端slave2与主设备端master的链路记作ACL2。ACL1、ACL2的连接事件周期T相同,均为7.5ms;ACL1、ACL2的连接事件的持续时长也相同,均为3.75ms。需要说明的是,该示例中,由于slave1、slave2的连接事件的持续时长之和正好等于连接事件周期,所以,在一个连接事件周期中,排布后的slave1、slave2的连接事件之间的时间间隔等于零,即后一个连接事件的起始时间等于前一个连接事件的终止时间。如图11B中所示,在一个连接事件周期中,slave1的连接事件event1、slave2的连接事件event2依次发生,且event2的起始时间等于event1的终止时间;但是,在其他示例中,如果各从设备端的连接事件的持续时长之和小于连接事件周期,那么,排布后,各从设备端的连接事件之间的时间间隔也可以不为零。
如图11A中所示,排布前,在同一个连接事件周期内,slave1、slave2的连接事件会存在冲突。即,在同一个连接周期中,slave1将要传输的Data1会和slave2正在传输的Data0冲突,图中阴影表示的为冲突部分;为了避免该冲突,slave1在该周期内无法发送Data1,而是要等到下一个连接事件周期中再发送Data1。同理,在该下一个连接事件周期中,slave2将要传输的Data1会和slave 2正在传输的Data1冲突,为了避免该冲突,slave2在该下一个周期内无法发送Data1,而是要等到再下一个连接事件周期中再发送Data1。即,同一个连接事件周期内,各从设备端的连接事件分别完整地发生一次。因此,slave1、slave2的Data0从发送到被主设备端全部接收,需要花费两个连接事件周期;slave1、slave2的Data1从发送到被主设备端全部接收,需要花费两个连接事件周期;……。即,slave1、slave2发送的相同编号的数据帧,从发送到被主设备端全部接收,需要花费两个连接事件周期的时间;而采集一帧数据也需要花费一个连接事件周期的时间;因此,每一帧数据,从采集到被主设备端接收到,要花费三个连接事件周期的时间。即,音频数据从开始被采集到被主设备端播放出来,大约延迟三个连接事件周期的时间。
如图11B中所示,排布后,slave1、slave2的连接事件被排布在同一个连接事件周期的不同时间段内;因此,在每一个连接事件周期内,slave1、slave2的连接事件不冲突;即在同一个连接事件周期内,各从设备端可以分别完成一次连接事件,主设备端可以在同一个连接事件内接收到slave1、slave2发送的Data0,在同一个连接事件内接收到slave1、slave2发送的Data1,……。slave1、slave2的Data0从发送到被主设备端全部接收,需要花费一个连接事件周期;slave1、slave2的Data1从发送到被主设备端全部接收,需要花费一个连接事件周期;……。即,slave1、slave2发送的相同编号的数据帧,从发送到被主设备端全部接收,需要花费一个连接事件周期的时间;而采集一帧数据也需要花费一个连接事件周期的时间;因此,每一帧数据,从采集到被主设备端接收到,要花费两个连接事件周期的时间。即,音频数据从开始被采集到被主设备端播放出来,大约延迟两个连接事件周期的时间。
由此可知,对各从设备端的连接事件进行合理排布,可以避免以下问题:由于两个链路冲突而使得一个数据帧的传输周期变长,导致主设备端收到多个从设备端发送的同步数据的时间变长,即导致同步等待时间增加,从而导致数据同步不够及时。
在一个实施例中,如图12A所示,从设备端执行的步骤202,具体为,比较连接事件的目标计数值与连接事件的当前计数值的大小关系。若大小关系是目标计数值大于或等于当前计数值,表示接收的目标计数值和偏移时间所指示的参考时间未过期,则直接执行步骤203。具体的,从设备端实时监控当前计数值,在当前计数值达到该目标计数值时,再延时该偏移时间后,开始执行预设的任务。
进一步的,若大小关系是目标计数值小于当前计数值,表示接收的目标计数值和偏移时间所指示的参考时间已过期;从设备端无法基于接收的目标计数值和偏移时间进行控制。从设备端可以主动地去获取能够指示一个未来的参考时间的目标计数值和偏移时间,以继续实现同步控制。为此,有如下两种方式。
方式一,如图12A中所示,在大小关系是目标计数值小于当前计数值的情况下,执行步骤207和步骤208。
步骤207:根据当前计数值更新目标计数值,得到更新后的目标计数值;其中,更新后的目标计数值和偏移时间指示的参考时间尚未过期。
步骤208:基于更新后的目标计数值和偏移时间进行控制,以在更新后的目标计数值和偏移时间指示的参考时间到达时,执行任务。
具体的,从设备端计算当前计数值与更新前的目标计数值的差值,将当前计数值与该差值之和作为更新后的目标计数值。或者,从设备端计算当前计数值与更新前的目标计数值的差值后,将当前计数值、该差值、预设数值这三者之和作为更新后的目标计数值;其中,各从设备端中的该预设数值相同,可以由出厂设定,或者由主设备端设定并在建立连接后发送给各从设备端。
通常的,如果该参考时间已过期,那么各从设备端均会检验出来,各从设备端在检验出参考时间已过期时均会执行步骤207和步骤208。
方式二,如图12B所示,在大小关系是目标计数值小于当前计数值的情况下,执行步骤209,向主设备端发送重设请求。其中,从设备端在向主设备端发送重设请求后,等待重新接收主设备端发送的目标计数值和偏移时间;即返回步骤201和步骤202;当步骤202中判断出参考时间未过期,执行步骤203;否则,重新执行本步骤209。其中,从设备端内可以预设一个最大等待时长,在发出重设请求,如果在最大等待时长后还是没有接收到主设备端重新发送的目标计数值和偏移时间,那么再次向主设备端发送重设请求。
如图13所示为,对应于从设备端发送的重设请求,主设备端执行的方法,还包括步骤104:判断是否接收到至少一从设备端发送的重设请求。如果步骤104的判断结果为是,则重新执行上述步骤101~103,即重新为多个从设备端选定参考时间,针对多个从设备端中的每个从设备端,重新确定从设备端的连接事件的目标计数值K和偏移时间,并重新向多个从设备端分别发送对应的连接事件的目标计数值和偏移时间。其中,重新确定目标计数值K和偏移时间,指示的是该重新选定的参考时间。如果步骤104的判断结果为否,则等待接收从设备端发送的数据帧。由此可知,主设备端执行步骤101~103的触发条件为:主设备端与多个从设备端分别建立好连接;或者,在向多个从设备端分别发送对应的连接事件的目标计数值和偏移时间的步骤之后,接收到多个从设备端中的至少一个从设备端发送的重设请求。
上述方式一和上述方式二是两种并列的实现方式。方式一中,当参考时间已过期时,各从设备端可以自己完成重设任务,相较于方式二中需要请求主设备端重设而言,可以减轻主设备端的处理负担,并且可以更加快速地得到重设后的目标计数值和偏移时间。方式二中,由主设备端为多个从设备端统一进行重设,相较于方式一中各从设备端自己更新目标计数值和偏移时间而言,同步控制的准确性相对较高;且对与该主设备端连接的各从设备端的处理性能的要求较低。
通常来说,如果该参考时间已过期,那么各从设备端均会检验出来,各从设备端会分别向主设备端发送重设请求。主设备端接收到各从设备端发送的重设请求的时间可能存在先后,主设备端接收到任意一个从设备端发送的重设请求后,就会开始进行重设。另外,即使某个从设备端没有检验出参考时间已过期,但是如果由于其他从设备端发送了重设请求至主设备端而使得主设备端为各从设备端重新设定了参考时间并重新计算了目标计数值和偏移时间,该从设备端也会重新收到主设备端发送的目标计数值和偏移时间,此时,该从设备端会以重新接收的目标计数值和偏移时间为准来进行控制。
在其他方式中,还可以是:从设备端检验出该参考时间已过期时,向主设备端发送重设请求;主设备端在接收到任意一个从设备端发送的重设请求时,向各从设备端发送重设通知;各从设备端接收到主设备端发送的重设通知时,会根据预设的重设方式重设目标计数值和偏移时间,并基于重设的目标计数值和偏移时间进行控制,该重设方式可以为与上述图12A中所示的步骤207相同。
由于无线传输本身是不可靠的,特别是有干扰或者距离拉远的时候,所以需要考虑丢包的处理。相关技术中,主从设备端通信中设定了重传机制。即,从设备端将数据帧发送出去后,会先将该数据帧缓存在本地;当接收到主设备端反馈的本次接收成功的通知时,丢弃该数据包,并在下一个连接事件中发送下一个数据包;当接收到主设备端反馈的本次接收失败的通知时,会在下一个连接事件中再次发送该数据帧,直至接收到主设备端反馈的本次接收成功的通知时,才会丢弃该数据帧,并在下一个连接事件中发送下一个数据帧。这种重传机制能够保证主设备端能够接收到从设备端发送的数据包;但是对于多个从设备端同步传输数据是有影响的。
针对这一问题,本申请提出了两种解决方式。
第一种方式,由从设备端执行。在从设备端执行的同步控制方法中,从设备端在执行任务过程中:在当前的数据帧发送出去后,丢弃该当前的数据帧。如图14为使用该种方式的从设备端和现有技术的从设备端执行任务过程的示意图,如图15所示为使用该种方式的从设备端执行任务的步骤流程图。
步骤301:采样数据帧,并按照采样顺序对数据帧进行编号。
步骤302:将携带编号的数据帧发送给主设备端,并在当前的数据帧发送出去后,丢弃该当前的数据帧。
具体的,从设备端按照采样顺序对采样的数据帧进行编号,该编号可以封装到数据帧的帧头中。从设备端在一个连接事件周期中采样得到一个数据帧,并在下一个连接事件周期中将该携带编号的数据帧发送出去。在该下一个连接事件周期中,该携带编号的数据帧为当前的数据帧,从设备端将该当前的数据帧发送出去后,直接丢弃该当前的数据帧。从设备端每次发送出去一个数据帧后,均直接将该数据帧丢弃;而不会等到接收到主设备端反馈的本次接收成功的通知时才丢弃该数据帧。亦即,可以认为,即使主设备端向该从设备端发送本次接收失败的通知,从设备端对该本次接收失败的通知不作任何反应,不管主设备端反馈的是本次接收成功的通知还是本次接收失败的通知,均会丢弃该数据帧。
示例的,如图14中所示,slave1表示使用该第一种方式工作的从设备端,slave1表示现有技术中基于重传机制工作的从设备端。从设备端从参考时间到达开始,对数据帧进行编号并将编号后的数据帧发送至主设备端;该编号可以携带在数据帧的帧头中。其中,在一个连接事件中,master与slave交互存在交互;PDU n表示交互过程中master发送给slave的数据,Data n表示交互过程中slave发送给master的数据。slave1和slave2同步开始对数据帧编号并发送至主设备端,具体过程如下。
在第n个连接事件周期中,slave1和slave2分别接收到主设备端发送的PDU n,表示主设备端正在等待接收第n帧数据;因此slave1向主设备端发送第n帧数据Data n,并在发送出去后丢弃Data n;slave2向主设备端发送Data n后,暂时放在缓存。
在第n+1个连接事件周期中,slave1和slave2分别接收到主设备端发送的PDU n+1,表示主设备端已成功接收Data n,正在等待接收第n+1帧数据;因此slave1向主设备端发送在第n个连接事件周期中刚采集得到的第n帧数据Data n+1,并在发送出去后丢弃Data n+1,此时slave1的缓存中没有任何数据帧;slave2向主设备端发送在第n个连接事件周期中刚采集得到的Data n+1,并丢弃Data n,此时slave2的缓存中包括Data n+1。
在第n+2个连接事件周期中,slave1和slave2分别接收到主设备端发送的PDU n+1,表示主设备端未成功接收Data n+1,依然等待接收第n+1帧数据;即主设备端是基于重传机制工作的;slave1与slave2对PDU n+1的处理方式不同,具体的:slave1已经将Data n+1丢弃了,所以继续向主设备端发送在第n+1个连接事件周期中刚采集得到的Data n+2,并在发送出去后丢弃Data n+2;此时slave1的缓存中没有任何数据帧;而slave2基于主设备端发送的PDU n+1,继续向主设备端发送缓存中的Data n+1,并将在第n+1个连接事件周期中刚采集得到的Data n+2也放入缓存。此时,slave2的缓存中包括Data n+1、Data n+2。
在第n+3个连接事件周期中,对主设备端而言,即使在第n+2个连接事件周期中成功接收到slave1发送的Data n+2,但仍然未接收到slave1发送的Data n+1,所以依然会向slave1发送PDU n+1;slave1的缓存中没有任何数据帧,所以slave1继续向主设备端发送刚采集得到的Data n+3,并在发送出去后丢弃Data n+3;此时slave1的缓存中依然没有任何数据帧;另外,主设备端依然没有成功接收slave2在第n+2个连接事件周期中发送的Data n+1,所以依然会向slave2发送PDU n+1;slave2基于主设备端发送的PDU n+1,继续向主设备端发送位于缓存中的Data n+1;并将在第n+2个连接事件周期中刚采集得到的Data n+3放入缓存;此时,slave2的缓存中包括Data n+1、Data n+2、Data n+3。
其中,在后续的连接事件周期中,slave1和slave2的工作方式依次类推。
由图14的示例可知,slave1在每个连接事件发送出去的数据帧,均是最新采集的;而slave2不是;因此,该第一种方式中,与主设备端连接的每个从设备端可以保证每个连接事件发送出去的数据帧均是最新采集的,那么,可以保证各从设备端上传的数据帧都是同步数据帧,即编号相同的数据帧;从而避免由于重传机制导致各从设备端发送数据帧时出现不同步,而增加主设备端的同步等待时长的问题,可以提高数据同步的及时性。另外,该实施例中的方法中,仅由各从设备端来执行即可减小主设备端同步等待时间,简单易行;且对于主设备端而言,不会增加额外的处理负担。
第二种方式,由主设备端和从设备端配合,以使数据帧传输保持同步。请参考图16A所示,为主设备端执行的方法,其中还包括如下步骤。
步骤105:接收多个从设备端分别发送的携带编号的数据帧;其中,从设备端执行的任务包括:将携带编号的数据帧按照编号顺序依次发送至主设备端。
步骤106:根据数据帧携带的编号,识别同一个连接事件周期内接收的数据帧中是否存在非同步数据帧。若是,进入步骤107和步骤108;若否,直接进入步骤108。
步骤107:通知发送非同步数据帧的从设备端进行重新同步,并进入步骤108。
步骤108:对同一个连接事件周期内接收的数据帧中的同步数据帧进行处理。
如图16B所示,为对应于主设备端发送的重新同步的通知,从设备端执行的同步控制方法,其中还包括步骤210:当接收到主设备端发送的重新同步的通知时,进行重新同步。
该实施例中,各从设备端的连接事件被按照预设要求排布;因此,在同一个连接事件周期中,主设备端可以接收到各从设备端发送的数据帧。主设备端对同一连接事件周期内接收的多个数据帧进行识别,如果多个数据帧的编号不完全相同,表示各从设备端的数据帧不同步。请参考图14中的slave2,slave2在基于现有的重传机制工作的情况下,在第n+2个连接事件周期中,slave2发送的数据帧编号较小,相较于未出现重传数据帧的其他从设备端而言出现了不同步,即slave2在第n+2个连接事件周期中发送的数据帧是非同步数据帧,所以,基于该第二种方式,主设备端会向slave2发送重新同步的通知,该重新同步的通知可以以控制信令的形式发送。其中,该连接事件周期内,主设备端可以将接收后的各从设备端的数据帧一起做合并处理,但是由于包括非同步数据帧,处理后得到的数据帧播放时可能会出现与真实声音不符的情况。因此,在一个例子中,主设备端可以仅对该连接事件周期内的同步数据帧进行处理,而丢弃非同步数据帧,从而可以避免不同步的数据帧合成并播放出来后,与真实声音不符的问题。另外,步骤107和步骤108的执行顺序不限。
其中,步骤106中,根据数据帧携带的编号识别出非同步数据帧,具体为:当数据帧是按照从小到大顺序的顺序进行编号的,那么,在一个连接事件周期内,编号最大的为同步数据帧,其他都为非同步数据帧;当数据帧是按照从大到小顺序的顺序进行编号的,那么,同一连接事件周期内,编号最小的为同步数据帧,其他都为非同步数据帧。然并不以此为限,如果数据帧是按照其他预设规律编号的,可以基于该预设规律来识别非同步数据帧。如图14的示例中,数据帧是有大到小编号的,在第n个连接事件周期内,主设备端分别接收到slave1和slave2上传的编号为n的数据帧Data n,说明Data n为同步数据帧;在第n+3个连接事件周期内,主设备端接收到slave1上传的编号为n+3的数据帧Data n+3,且接收到slave2上传的编号为n+1的数据帧Data n+1的数据帧,其中,编号较大的Data n+3为同步数据帧,编号较小的Data n+1为非同步数据帧。另外,在第n+1个连接事件周期内,主设备端接收到slave1上传的编号为n+1的数据帧Data n+1,且没有成功接收到slave2上传的编号为n+1的数据帧Data n+1,此时,主设备端认为接收到slave1上传的Data n+1且接收到slave2上传的Data n(由于本次slave2发送的Data n+1没有接收成功,所以依然认为从slave2处仅接收到Data n);因此,在第n+1个连接事件周期内,编号较大的Data n+1为同步数据帧,编号较小的Data n为非同步数据帧。其中,在第n+2个连接事件周期内的情况与第n+1个连接事件周期类似,此处不再赘述。
在从设备端实时采集数据帧并发送给主设备端的场景中,从设备端进行重新同步的具体方式,可以为:丢弃位于缓存区域的数据帧。即,发送非同步数据帧的从设备端会丢弃缓存在本地的所有数据帧。如图14中,当slave2在第n+3个连接事件周期内接收到重新同步的通知时,会丢弃缓存在本地的Data n+1、Data n+2、Data n+3,并在第n+4个连接事件周期发送在第n+3个连接事件周期中采样得到的第n+4帧数据Data n+4,即,从第n+4个连接事件周期开始,可以与其他没有发生过重传的从设备端重新实现同步。
在其他场景中,如数据帧是预存在各从设备端的存储器中的。此时,图16A的步骤107中,主设备端可以根据当前连接事件周期中的同步数据帧的编号y1,计算出X个连接事件周期后的同步数据帧的编号y2=y1+X+1;并将该X的值以及编号y2发送给从设备端,该从设备端根据该X的值以及编号y2进行重新同步,重新同步的具体方式可以为:等待该X个连接事件周期后,发送编号为y2的数据帧。其中,该X的值可以由主设备端设定。
该实施例中,由主设备端和从设备端配合,以使数据帧传输保持同步,从而减少主设备端的同步等待时间,提高数据的及时性。另一方面,在数据帧传输保持同步的情况下,master无需做复杂处理(比如对每帧数据拆分开,进行波形比对等来识别出相同时间段采样的数据),来保证合并得到的数据的准确性。
上述两种方式均可以克服主从设备通信中的重传机制带来的数据不同步的问题;主设备端可以根据需要选择其中一种方式,并通知从设备端。或者,主设备端与从设备端中可以在出厂时就预先设定好使用其中的一种方式。
以上各实施例可以相互结合相互引用,例如下面是各实施例结合后的例子,然并不以此为限;各实施例在不矛盾的前提下可以任意结合成为一个新的实施例。
在一个实施例中,如图17所示为由主设备端执行的同步控制方法,包括如下步骤。
步骤101-1:按照预设要求对各从设备端的连接事件进行排布;其中,预设要求包括:各从设备端的连接事件周期相同,且在每一个连接事件周期内,各从设备端的连接事件不冲突。
步骤101:为与主设备端无线连接的多个从设备端选定参考时间。
步骤102:针对多个从设备端中的每个从设备端,确定该从设备端的连接事件的目标计数值K和偏移时间;其中,该从设备端的偏移时间是指参考时间与该从设备端的第K个连接事件的起始时间的时间差。
步骤103:向多个从设备端分别发送对应的连接事件的目标计数值和偏移时间。
步骤104:判断是否接收到至少一从设备端发送的重设请求。如果步骤104的判断结果为是,则重新执行上述步骤101~103;如果步骤104的判断结果为否,则等待接收从设备端发送的数据帧。
在一个实施例中,如图18所示为由主设备端执行的同步控制方法,包括如下步骤。
步骤101-1:按照预设要求对各从设备端的连接事件进行排布;其中,预设要求包括:各从设备端的连接事件周期相同,且在每一个连接事件周期内,各从设备端的连接事件不冲突。
步骤101:为与主设备端无线连接的多个从设备端选定参考时间。
步骤102:针对多个从设备端中的每个从设备端,确定该从设备端的连接事件的目标计数值K和偏移时间;其中,该从设备端的偏移时间是指参考时间与该从设备端的第K个连接事件的起始时间的时间差。
步骤103:向多个从设备端分别发送对应的连接事件的目标计数值和偏移时间。
步骤105:接收多个从设备端分别发送的携带编号的数据帧;其中,从设备端执行的任务包括:将携带编号的数据帧按照编号顺序依次发送至主设备端。
步骤106:根据数据帧携带的编号,识别同一个连接事件周期内接收的数据帧中是否存在非同步数据帧。若是,进入步骤107和步骤108;若否,直接进入步骤108。
步骤107:通知发送非同步数据帧的从设备端进行重新同步,并进入步骤108。
步骤108:对同一个连接事件周期内接收的数据帧中的同步数据帧进行处理。
在一个实施例中,如图19所示为由主设备端执行的同步控制方法,包括如下步骤。
步骤101-1:按照预设要求对各从设备端的连接事件进行排布;其中,预设要求包括:各从设备端的连接事件周期相同,且在每一个连接事件周期内,各从设备端的连接事件不冲突。
步骤101:为与主设备端无线连接的多个从设备端选定参考时间。
步骤102:针对多个从设备端中的每个从设备端,确定该从设备端的连接事件的目标计数值K和偏移时间;其中,该从设备端的偏移时间是指参考时间与该从设备端的第K个连接事件的起始时间的时间差。
步骤103:向多个从设备端分别发送对应的连接事件的目标计数值和偏移时间。
步骤104:判断是否接收到至少一从设备端发送的重设请求。如果步骤104的判断结果为是,则重新执行上述步骤101~103;如果步骤104的判断结果为否,则等待接收从设备端发送的数据帧。
步骤105:接收多个从设备端分别发送的携带编号的数据帧;其中,从设备端执行的任务包括:将携带编号的数据帧按照编号顺序依次发送至主设备端。
步骤106:根据数据帧携带的编号,识别同一个连接事件周期内接收的数据帧中是否存在非同步数据帧。若是,进入步骤107和步骤108;若否,直接进入步骤108。
步骤107:通知发送非同步数据帧的从设备端进行重新同步,并进入步骤108。
步骤108:对同一个连接事件周期内接收的数据帧中的同步数据帧进行处理。
在一个实施例中,如图20所示为由从设备端执行的同步控制方法,包括如下步骤。
步骤201:接收主设备端发送的该从设备端的连接事件的目标计数值和偏移时间;其中,该从设备端的偏移时间是指主设备端预先选定的参考时间与该从设备端的第K个连接事件的起始时间的时间差。
步骤202:比较连接事件的目标计数值与连接事件的当前计数值的大小关系。若大小关系是目标计数值大于或等于当前计数值,表示接收的目标计数值和偏移时间所指示的参考时间未过期,则直接执行步骤203。若大小关系是目标计数值小于当前计数值,表示接收的目标计数值和偏移时间所指示的参考时间已过期,执行步骤207和步骤208。
步骤203:当参考时间未过期时,基于连接事件的目标计数值和偏移时间进行控制,以在参考时间到达时,执行任务。
步骤207:根据当前计数值更新目标计数值,得到更新后的目标计数值;其中,更新后的目标计数值和偏移时间指示的参考时间尚未过期。
步骤208:基于更新后的目标计数值和偏移时间进行控制,以在更新后的目标计数值和偏移时间指示的参考时间到达时,执行任务。
步骤210:当接收到主设备端发送的重新同步的通知时,进行重新同步。
在一个实施例中,如图21所示为由从设备端执行的同步控制方法,包括如下步骤。
步骤201:接收主设备端发送的该从设备端的连接事件的目标计数值和偏移时间;其中,该从设备端的偏移时间是指主设备端预先选定的参考时间与该从设备端的第K个连接事件的起始时间的时间差。
步骤202:比较连接事件的目标计数值与连接事件的当前计数值的大小关系。若大小关系是目标计数值大于或等于当前计数值,表示接收的目标计数值和偏移时间所指示的参考时间未过期,则直接执行步骤203。若大小关系是目标计数值小于当前计数值,表示接收的目标计数值和偏移时间所指示的参考时间已过期,执行步骤209。
步骤203:当参考时间未过期时,基于连接事件的目标计数值和偏移时间进行控制,以在参考时间到达时,执行任务。
步骤209:向主设备端发送重设请求。并等待重新接收主设备端发送的目标计数值和偏移时间,即返回步骤201和步骤202;当步骤202中判断出参考时间未过期,执行步骤203以及步骤210;否则,重新执行本步骤209。其中,从设备端内可以预设一个最大等待时长,在发出重设请求,如果在最大等待时长后还是没有接收到主设备端重新发送的目标计数值和偏移时间,那么再次向主设备端发送重设请求。
步骤210:当接收到主设备端发送的重新同步的通知时,进行重新同步。
在一个实施例中,主设备端和从设备端进行交互的步骤如下。
主设备端为与所述主设备端无线连接的多个从设备端选定参考时间;
主设备端针对所述多个从设备端中的每个从设备端,确定所述从设备端的连接事件的目标计数值K和偏移时间;其中,所述从设备端的偏移时间是指所述参考时间与所述从设备端的第K个连接事件的起始时间的时间差;
主设备端针对所述多个从设备端中的每个从设备端,向所述从设备端发送所述从设备端的连接事件的目标计数值K和偏移时间;
各从设备端接收主设备端发送的所述从设备端的连接事件的目标计数值K和偏移时间;
各从设备端根据所述连接事件的目标计数值校验所述参考时间是否过期;当所述参考时间未过期时,基于所述连接事件的目标计数值和偏移时间进行控制,以在所述参考时间到达时,执行任务。
其中,该例子中的各步骤,在上述对从设备端和主设备端的工作过程中已经分别详细介绍过,此处不再赘述。
在一个实施例中,主设备端和从设备端进行交互的步骤如下。
主设备端从所述多个从设备端中选定一个从设备端,对被选定从设备端的连接事件的目标计数值K进行设定,并将所述被选定从设备端的偏移时间设定为零;其中,将所述被选定从设备端的第K个连接事件的起始时间作为所述参考时间;
主设备端针对所述多个从设备端中的每个未被选定从设备端,确定所述未被选定从设备端的连接事件的目标计数值K和偏移时间;其中,所述未被选定从设备端的偏移时间是指所述参考时间与所述从设备端的第K个连接事件的起始时间的时间差;
主设备端针对所述多个从设备端中的每个从设备端,向所述从设备端发送所述从设备端的连接事件的目标计数值K和偏移时间;
各从设备端接收主设备端发送的所述从设备端的连接事件的目标计数值K和偏移时间;
各从设备端根据所述连接事件的目标计数值校验所述参考时间是否过期;当所述参考时间未过期时,基于所述连接事件的目标计数值和偏移时间进行控制,以在所述参考时间到达时,执行任务。
其中,该例子中的各步骤,在上述对从设备端和主设备端的工作过程中已经分别详细介绍过,此处不再赘述。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明实施例还提供一种芯片,如图22所示,包括:处理模块701和存储模块702;所述存储模块702存储有可被所述处理模块701执行的指令,所述指令被所述处理模块701执行,以使所述处理模块701能够执行上述方法实施例。该芯片可以为主设备端或从设备端。
本申请实施例还提供一种电子设备,如图23所示,包括:至少一个处理器801;以及与所述至少一个处理器801通信连接的存储器802;其中,所述存储器存储有可被所述至少一个处理器801执行的指令,所述指令被所述至少一个处理器801执行,以使所述至少一个处理器801能够执行上述方法实施例。该电子设备可以为主设备端或从设备端。
其中,存储器802和处理器801采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器801和存储器802的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器801处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器801。
处理器801负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器802可以被用于存储处理器801在执行操作时所使用的数据。
本申请实施例还提供一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (25)
1.一种同步控制方法,其特征在于,应用于主设备端,所述方法包括:计算步骤和发送步骤;
所述计算步骤,包括:
为与所述主设备端无线连接的多个从设备端选定参考时间;
针对所述多个从设备端中的每个从设备端,确定所述从设备端的连接事件的目标计数值K和偏移时间;其中,所述从设备端的偏移时间是指所述参考时间与所述从设备端的第K个连接事件的起始时间的时间差;
或者,所述计算步骤,包括:
从所述多个从设备端中选定一个从设备端,对被选定从设备端的连接事件的目标计数值K进行设定,并将所述被选定从设备端的偏移时间设定为零;其中,将所述被选定从设备端的第K个连接事件的起始时间作为所述参考时间;
针对所述多个从设备端中的每个未被选定从设备端,确定所述未被选定从设备端的连接事件的目标计数值K和偏移时间;其中,所述未被选定从设备端的偏移时间是指所述参考时间与所述从设备端的第K个连接事件的起始时间的时间差;
所述发送步骤,包括:
针对所述多个从设备端中的每个从设备端,向所述从设备端发送所述从设备端的连接事件的目标计数值K和偏移时间,供所述从设备端基于所述从设备端的连接事件的目标计数值K和偏移时间进行控制,以在所述参考时间到达时执行任务。
2.根据权利要求1所述的同步控制方法,其特征在于,所述针对所述多个从设备端中的每个未被选定从设备端,确定所述未被选定从设备端的连接事件的目标计数值K和偏移时间,包括:
根据所述被选定从设备端的已设定的连接事件的目标计数值、所述被选定从设备端的连接事件的当前计数值、所述被选定从设备端的连接事件周期,计算所述参考时间与所述主设备端的当前时间的时间差;
根据所述参考时间与所述主设备端的当前时间的时间差、每个所述未被选定从设备端的连接事件周期、每个所述未被选定从设备端的连接事件的当前计数值,计算每个所述未被选定从设备端的连接事件的目标计数值K和偏移时间。
3.根据权利要求2所述的同步控制方法,其特征在于,在所述参考时间晚于所述主设备端的当前时间的情况下,对于每个所述未被选定从设备端:所述连接事件的目标计数值为,所述参考时间与所述主设备端的当前时间的时间差除以所述连接事件周期的商与所述连接事件的当前计数值之和;所述偏移时间为,所述参考时间与所述主设备端的当前时间的时间差除以所述连接事件周期的余数。
4.根据权利要求1所述的同步控制方法,其特征在于,所述针对所述多个从设备端中的每个从设备端,确定所述从设备端的连接事件的目标计数值K和偏移时间之前,或,所述针对所述多个从设备端中的每个未被选定从设备端,确定所述未被选定从设备端的连接事件的目标计数值K和偏移时间之前,还包括:
按照预设要求对各所述从设备端的连接事件进行排布;
其中,所述预设要求包括:各所述从设备端的连接事件周期相同,且在每一个连接事件周期内,各所述从设备端的连接事件在所述连接事件周期内的不同时段发生。
5.根据权利要求4所述的同步控制方法,其特征在于,所述发送步骤之后,还包括:
接收所述多个从设备端分别发送的携带编号的数据帧;其中,所述从设备端执行的任务包括:将携带编号的数据帧按照编号顺序依次发送至所述主设备端;
根据所述数据帧携带的编号,识别同一个连接事件周期内接收的数据帧中是否存在非同步数据帧;
当同一个连接事件周期内接收的数据帧中存在非同步数据帧时,通知发送所述非同步数据帧的从设备端进行重新同步。
6.根据权利要求5所述的同步控制方法,其特征在于,所述通知发送所述非同步数据帧的从设备端重新进行同步,包括:
通知发送所述非同步数据帧的从设备端丢弃位于缓存区域的数据帧。
7.根据权利要求5所述的同步控制方法,其特征在于,当同一个连接事件周期内接收的数据帧中存在非同步数据帧时,所述方法还包括:对所述同一个连接事件周期内接收的数据帧中的同步数据帧进行处理。
8.根据权利要求1所述的同步控制方法,其特征在于,所述计算步骤,在下列条件下被触发执行:
所述主设备端与所述多个从设备端分别建立好连接;或者,
所述主设备端接收到所述多个从设备端中的至少一个从设备端发送的重设请求,其中,所述从设备端在接收到所述主设备端发送的所述从设备端的连接事件的目标计数值K和偏移时间,并根据所述连接事件的目标计数值校验出所述参考时间已过期时发送所述重设请求。
9.根据权利要求1所述的同步控制方法,其特征在于,所述针对所述多个从设备端中的每个从设备端,确定所述从设备端的连接事件的目标计数值K和偏移时间,包括:针对所述多个从设备端中的每个从设备端,
获取预存的所述从设备端的连接建立时间,并计算所述连接建立时间与所述参考时间的时间差;其中,所述连接建立时间是指所述从设备端与所述主设备端建立连接的时间;
根据所述连接建立时间与所述参考时间的时间差、所述从设备端的连接事件周期,计算所述从设备端的连接事件的目标计数值K和偏移时间。
10.根据权利要求9所述的同步控制方法,其特征在于,在所述参考时间晚于所述主设备端的当前时间的情况下,对于每个所述从设备端:所述连接事件的目标计数值为,所述连接建立时间与所述参考时间的时间差除以所述连接事件周期的商与所述连接事件的当前计数值之和;所述偏移时间为,所述连接建立时间与所述参考时间的时间差除以所述连接事件周期的余数。
11.根据权利要求1至10中任一项所述的同步控制方法,其特征在于,所述参考时间晚于所述主设备端的当前时间;所述参考时间等于或晚于所述从设备端的第K个连接事件的起始时间,且所述从设备端的偏移时间小于所述从设备端的连接事件周期。
12.根据权利要求11所述的同步控制方法,其特征在于,所述参考时间与所述主设备端的当前时间的时间差大于或等于每个所述从设备端的连接事件周期。
13.一种同步控制方法,其特征在于,应用于从设备端,所述方法包括:
接收主设备端发送的所述从设备端的连接事件的目标计数值K和偏移时间;其中,所述从设备端的偏移时间是指所述主设备端预先选定的参考时间与所述从设备端的第K个连接事件的起始时间的时间差;
根据所述连接事件的目标计数值校验所述参考时间是否过期;
当所述参考时间未过期时,基于所述连接事件的目标计数值和偏移时间进行控制,以在所述参考时间到达时,执行任务。
14.根据权利要求13所述的同步控制方法,其特征在于,所述执行任务包括:在本地采样时钟的控制下采集数据帧;所述方法还包括:
获取所述本地采样时钟在所述从设备端的L个连接事件周期内的实际脉冲个数;L为大于或等于1的整数;
根据所述实际脉冲个数与所述本地采样时钟在L个所述连接事件周期内的理想脉冲个数,识别所述本地采样时钟是否存在偏差;其中,所述理想脉冲个数根据所述本地采样时钟的采样频率、所述连接事件周期、所述L的取值确定;
当识别出所述本地采样时钟存在偏差时,对所述本地采样时钟进行校准。
15.根据权利要求13或14所述的同步控制方法,其特征在于,所述执行任务包括:在本地采样时钟的控制下采集数据帧,并将采集的数据帧依次发送至所述主设备端;所述执行任务过程中:
在当前的数据帧发送出去后,直接丢弃所述当前的数据帧。
16.根据权利要求13或14所述的同步控制方法,其特征在于,所述执行任务包括:在本地采样时钟的控制下采集数据帧,并将采集的数据帧编号后依次发送至所述主设备端;所述执行任务过程中:
当接收到所述主设备端发送的重新同步的通知时,进行重新同步;
其中,所述主设备端接收所述多个从设备端分别发送的携带编号的数据帧,当根据所述数据帧携带的编号,识别出同一个连接事件周期内接收的数据帧中存在非同步数据帧时,向发送所述非同步数据帧的从设备端发送所述重新同步的通知。
17.根据权利要求16所述的同步控制方法,其特征在于,所述进行重新同步,包括:丢弃位于缓存区域的数据帧。
18.根据权利要求13所述的同步控制方法,其特征在于,所述参考时间等于或晚于所述从设备端的第K个连接事件的起始时间,且所述从设备端的偏移时间小于所述从设备端的连接事件周期;所述根据所述连接事件的目标计数值校验所述参考时间是否过期,包括:
比较所述连接事件的目标计数值与所述连接事件的当前计数值的大小关系;其中,当所述大小关系为所述目标计数值大于或等于所述当前计数值时,表示所述参考时间未过期。
19.根据权利要求13所述的同步控制方法,其特征在于,所述根据所述连接事件的目标计数值校验所述参考时间是否过期之后,还包括:
当所述参考时间已过期时,根据所述当前计数值更新所述目标计数值,得到更新后的目标计数值;其中,所述更新后的目标计数值和所述偏移时间指示的参考时间尚未过期;
基于所述更新后的目标计数值和所述偏移时间进行控制,以在所述更新后的目标计数值和所述偏移时间指示的参考时间到达时,执行任务。
20.根据权利要求19所述的同步控制方法,其特征在于,所述根据所述当前计数值更新所述目标计数值,得到更新后的目标计数值,包括:
计算所述当前计数值与更新前的所述目标计数值的差值,并将所述当前计数值与所述差值之和作为所述更新后的目标计数值。
21.根据权利要求13所述的同步控制方法,其特征在于,所述根据所述连接事件的目标计数值校验所述参考时间是否过期之后,还包括:
当所述参考时间已过期时,向所述主设备端发送重设请求;
其中,所述主设备端接收到所述重设请求后,重新为所述多个从设备端选定参考时间,针对所述多个从设备端中的每个从设备端,重新确定所述从设备端的连接事件的目标计数值K和偏移时间,并重新向所述多个从设备端分别发送对应的连接事件的目标计数值和偏移时间。
22.一种同步控制方法,其特征在于,包括:
主设备端执行计算步骤;
所述计算步骤,包括:为与所述主设备端无线连接的多个从设备端选定参考时间;针对所述多个从设备端中的每个从设备端,确定所述从设备端的连接事件的目标计数值K和偏移时间;其中,所述从设备端的偏移时间是指所述参考时间与所述从设备端的第K个连接事件的起始时间的时间差;
或者,所述计算步骤,包括:从所述多个从设备端中选定一个从设备端,对被选定从设备端的连接事件的目标计数值K进行设定,并将所述被选定从设备端的偏移时间设定为零;其中,将所述被选定从设备端的第K个连接事件的起始时间作为所述参考时间;针对所述多个从设备端中的每个未被选定从设备端,确定所述未被选定从设备端的连接事件的目标计数值K和偏移时间;其中,所述未被选定从设备端的偏移时间是指所述参考时间与所述从设备端的第K个连接事件的起始时间的时间差;
所述主设备端执行发送步骤;所述发送步骤,包括:针对所述多个从设备端中的每个从设备端,向所述从设备端发送所述从设备端的连接事件的目标计数值K和偏移时间;
所述从设备端执行如下步骤:接收主设备端发送的所述从设备端的连接事件的目标计数值K和偏移时间;根据所述连接事件的目标计数值校验所述参考时间是否过期;当所述参考时间未过期时,基于所述连接事件的目标计数值和偏移时间进行控制,以在所述参考时间到达时,执行任务。
23.一种芯片,其特征在于,包括:处理模块和存储模块;所述存储模块存储有可被所述处理模块执行的指令,所述指令被所述处理模块执行,以使所述处理模块能够执行:
如权利要求1至12中任一项所述的同步控制方法,其中,所述芯片为所述主设备端;或者,如权利要求13至21中任一项所述的同步控制方法,其中,所述芯片为所述从设备端。
24.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行:
如权利要求1至12中任一项所述的同步控制方法,其中,所述电子设备为所述主设备端;或者,如权利要求13至21中任一项所述的同步控制方法,其中,所述电子设备为所述从设备端。
25.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1至12中任一项所述的同步控制方法、或者实现如权利要求13至21中任一项所述的同步控制方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110291510.9A CN113194528B (zh) | 2021-03-18 | 2021-03-18 | 同步控制方法、芯片、电子设备及存储介质 |
EP21217869.3A EP4061069B1 (en) | 2021-03-18 | 2021-12-27 | Synchronization control method, electronic device and storage medium |
US17/562,736 US11853242B2 (en) | 2021-03-18 | 2021-12-27 | Synchronization control method, chip, electronic device and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110291510.9A CN113194528B (zh) | 2021-03-18 | 2021-03-18 | 同步控制方法、芯片、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113194528A true CN113194528A (zh) | 2021-07-30 |
CN113194528B CN113194528B (zh) | 2023-01-31 |
Family
ID=76973434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110291510.9A Active CN113194528B (zh) | 2021-03-18 | 2021-03-18 | 同步控制方法、芯片、电子设备及存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11853242B2 (zh) |
EP (1) | EP4061069B1 (zh) |
CN (1) | CN113194528B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115515004A (zh) * | 2022-11-04 | 2022-12-23 | 之江实验室 | 一种基于Android的多屏控制系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7154395B2 (ja) * | 2019-04-19 | 2022-10-17 | 三菱電機株式会社 | 通信システム、マスタ装置、スレーブ装置、およびサブマスタ装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130198292A1 (en) * | 2012-01-31 | 2013-08-01 | Nokia Corporation | Method and apparatus for synchronization of devices |
CN110932815A (zh) * | 2019-12-18 | 2020-03-27 | 锐捷网络股份有限公司 | 一种时间同步方法、装置、网络设备及存储介质 |
CN111819891A (zh) * | 2020-04-01 | 2020-10-23 | 深圳市汇顶科技股份有限公司 | 时间同步及广播设定方法、芯片、电子设备及存储介质 |
RU2738446C1 (ru) * | 2020-05-18 | 2020-12-14 | федеральное государственное бюджетное образовательное учреждение высшего образования "МИРЭА-Российский технологический университет" | Синхронизация сетевого устройства для беспроводной связи, в частности сетевого терминала, в беспроводной сети |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4906344B2 (ja) * | 2003-04-04 | 2012-03-28 | 株式会社Jvcケンウッド | オーディオ/ビデオ記録装置、記録方法、再生装置、再生方法 |
US20130311581A1 (en) * | 2012-05-18 | 2013-11-21 | Andrew Milburn | Transmission of command execution messages for providing a shared experience to both internal, at-venue participants, and external, networked participants |
CN105532053B (zh) * | 2013-09-27 | 2019-05-10 | 苹果公司 | 通过蓝牙进行设备同步 |
CN115426064A (zh) | 2018-12-28 | 2022-12-02 | 华为技术有限公司 | 音频数据的同步方法及设备 |
CN112105005B (zh) * | 2019-08-30 | 2024-05-03 | 炬力(珠海)微电子有限公司 | 一种控制蓝牙设备播放的方法及装置 |
-
2021
- 2021-03-18 CN CN202110291510.9A patent/CN113194528B/zh active Active
- 2021-12-27 EP EP21217869.3A patent/EP4061069B1/en active Active
- 2021-12-27 US US17/562,736 patent/US11853242B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130198292A1 (en) * | 2012-01-31 | 2013-08-01 | Nokia Corporation | Method and apparatus for synchronization of devices |
CN110932815A (zh) * | 2019-12-18 | 2020-03-27 | 锐捷网络股份有限公司 | 一种时间同步方法、装置、网络设备及存储介质 |
CN111819891A (zh) * | 2020-04-01 | 2020-10-23 | 深圳市汇顶科技股份有限公司 | 时间同步及广播设定方法、芯片、电子设备及存储介质 |
RU2738446C1 (ru) * | 2020-05-18 | 2020-12-14 | федеральное государственное бюджетное образовательное учреждение высшего образования "МИРЭА-Российский технологический университет" | Синхронизация сетевого устройства для беспроводной связи, в частности сетевого терминала, в беспроводной сети |
Non-Patent Citations (1)
Title |
---|
刘大?等: "无线自组织网络协作时间同步优化算法", 《兵工学报》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115515004A (zh) * | 2022-11-04 | 2022-12-23 | 之江实验室 | 一种基于Android的多屏控制系统 |
Also Published As
Publication number | Publication date |
---|---|
US20220300444A1 (en) | 2022-09-22 |
EP4061069B1 (en) | 2023-06-21 |
US11853242B2 (en) | 2023-12-26 |
CN113194528B (zh) | 2023-01-31 |
EP4061069A1 (en) | 2022-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113194528B (zh) | 同步控制方法、芯片、电子设备及存储介质 | |
JP5818872B2 (ja) | 聴覚システムのための無線ネットワークプロトコル | |
JP4856382B2 (ja) | ネットワーク端末のクロック同期化の方法およびシステム | |
EP3883276B1 (en) | An audio rendering system | |
CN108462991B (zh) | 处理器时钟同步方法、设备及系统 | |
CN112771941B (zh) | 数据同步方法、装置、设备、系统及存储介质 | |
CN109996325B (zh) | 一种无线传感器网络的时钟同步系统及方法 | |
CN111107526A (zh) | 标准时隙的双无线蓝牙设备主从切换方法、设备和系统 | |
CN109274402B (zh) | 跳频通信复原方法、电子装置及非暂态电脑可读取媒体 | |
CN105406955A (zh) | 数据输出的控制方法和系统 | |
EP4054205B1 (en) | Audio system data synchronization method and audio component | |
CN115865765A (zh) | 一种基于多数据源的远程仿真同步测试系统及方法 | |
CN113329382A (zh) | 一种基于蓝牙的同步时间点方法、装置及系统 | |
EP3474515B1 (en) | A method of improving synchronization of the playback of audio data between a plurality of audio sub-systems | |
JP3571218B2 (ja) | 同期動作システム | |
CN114364010B (zh) | 同步关系建立方法、芯片、电子设备及存储介质 | |
JPH11223687A (ja) | 複数計算機間の内部時計同期方式 | |
US20230269155A1 (en) | A wireless conference system with early packet loss detection | |
JPH05161181A (ja) | 時刻同期方式 | |
CN117560757A (zh) | 一种用于多个终端设备之间全双工通信的方法、装置及终端设备 | |
CN117040677A (zh) | 多通道数据传输的同步方法、同步装置及设备 | |
JP2002217959A (ja) | 送信タイミング制御装置および送信タイミング制御方法 | |
CN117651266A (zh) | 通信锚点变更方法、装置、设备、系统及存储介质 | |
CN115499675A (zh) | 基于通信网络视频直播的多机位音视频合成方法及系统 | |
JPH02107028A (ja) | 移動無線システムにおけるデータ収集方式 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |