无线设备之间的时间同步方法及系统的制作方法_3

文档序号:9768264阅读:来源:国知局
T1、T2、T3、T4按照以下公式计算第一无线设备A与第二无线设备B之间的时间差:
[0065]Το = (Τ2-Τ1+Τ3-Τ4)/2
[0066]可以理解的是,当局域网内有多个无线设备时,作为时间客户端的每一台第一无线设备均按照上述方式获取与作为时间服务器的第二无线设备之间的时间差,其中,时间差有正负之分,若时间差为正数,则说明时间客户端的时间慢于时间服务器的时间,若时间差为负,则说明时间客户端的时间快于时间服务器的时间,在获取到时间差之后,第一无线设备可以存储该时间差,并在音视频播放时根据设定的播放时间与时间差计算正确的系统播放时间,例如某一无线设备与作为时间服务器的无线设备之间的时间差为+5s,说明该无线设备的系统时间相对于参考时间慢了5s,而系统设定在19:00时同步播放音乐,那么该无线设备会在系统时间为18:55时开始播放音乐,以达到与作为时间服务器的第二无线设备同步播放音乐;在其他的实施例中,第一无线设备也可以根据计算得到的时间差,调整本机的系统时间。
[0067]参照图5所示,为本实施例的时间流程示意图,时间客户端设备A将本机当前系统时间(900)通过UDP广播给时间服务器设备B,将该时间标记为Tl = 900;时间服务器设备B会在一段时间后接收到时间客户端设备A发送的UDP广播包,假设传输时间为2,则时间服务器设备B接收到该UDP广播包的时间为标记为Τ2 = 1002;这个时候时间服务器设备B会立即回复一个UDP广播包给时间客户端设备A,该UDP广播包的内容包含Tl,Τ2,Τ3,其中Τ3为时间服务器设备B回复UDP广播包给时间客户端设备A时的时间,通常时间服务器设备B会立即回复UDP广播包给A,所以这一个步骤的时间非常的短,这里假设Τ3 = 1003;时间客户端设备A会在一段时间后接收到时间服务器设备B发送的UDP广播包,将时间客户端设备A接收到该UDP广播包的时间定义为Τ4,假设传输时间也为2,则Τ4 = 905。则根据上述公式,To = 100。
[0068]本实施例将局域网内的第二无线设备作为时间服务器,在局域网内确定一台无线设备作为时间服务器,以该无线设备的系统时间作为参考时间,其他的无线设备作为时间客户端,将包含有当前第一时间点的第一数据包发送至时间服务器,时间服务器向时间客户端发送第二数据包,第二数据包包含有第一时间点、接收到第一数据包的第二时间点和发送第二数据包的第三时间点,时间客户端接收到上述第二数据包时,获取接收到第二数据包的第四时间点,并且根据上述第一时间点、第二时间点、第三时间点和第四时间点计算出时间服务器与时间客户端之间的时间差,这样,在无线设备进行播放时就可以根据上述时间差调整播放时间,实现了多个无线设备之间能够同步播放。
[0069]进一步地,基于本发明无线设备之间的时间同步方法的第一实施例提出第二实施例。在本实施例中,在步骤S40之前,该无线设备之间的时间同步方法还包括步骤:
[0070]所述时间客户端根据所述第一时间点、所述第二时间点、所述第三时间点、所述第四时间点和所述时间差计算延迟时长,并判断所述延迟时长是否大于预设时长;
[0071]若所述延迟时长大于所述预设时长,则时间客户端重新执行步骤S20,直至计算得到的延迟时长小于或等于所述预设时长。
[0072]在本实施例中,为了提升时间同步的准确性,先计算第一数据包和第二数据包在传输过程中占用的时间的差,即延迟时长,通过以下公式计算延迟时长:
[0073]Td=(T2-Tl)-(T3-T4)
[0074]上述【具体实施方式】,按照该公式计算得到Td= O,由于该实施方式是假定在理想状态下,因此每一台无线设备发送数据包占用的时间是相同的,因此得到的Td值为零,但是在实际实施该方法的过程中,由于网络环境等因素的影响,往往会有数据传输上的时间差,导致延迟时长并不为零,并且该数值往往较大。
[0075]需要说明的是,通过上述公式计算出Td后,取绝对值,即延迟时长为正值,判断计算得到的延迟时长Td是否大于预设时长,其中,延迟时长为第一数据传输过程占用的时长与第二数据包传输过程占用的时长之差,若Td小于或者等于预设时长,则认为得到的时间差为有效值,若Td大于预设时长,则认为第一数据包和第二数据包在传输的过程中占用的时间差别较大,导致得到的时间差准确度较低,导致时间同步的精准度较低,此时,重新执行步骤S20,直至得到的延迟时长小于预设时长,进一步提高了时间同步的精准度。
[0076]本发明还提出一种无线设备之间的时间同步系统。
[0077]参照图6所示,为本发明无线设备之间的时间同步系统第一实施例中无线设备的功能t旲块不意图。
[0078]在该实施例中,该无线设备之间的时间同步系统中的无线设备包括:
[0079]确定模块10,用于在无线局域网内的无线设备之间确定出一个无线设备作为时间服务器,所述无线局域网内的其他无线设备均作为时间客户端;
[0080]发送模块20,用于向作为时间服务器的无线设备发送包含当前第一时间点的第一数据包,以供所述时间服务器在接收到所述第一数据包后,向所述时间客户端发送第二数据包,其中,所述第二数据包中包含有所述第一时间点、所述时间服务器接收到所述第一数据包的第二时间点以及发送所述第二数据包的第三时间点;
[0081]本实施例可以实现多台无线设备之间的音频、视频等的同步播放,或者其他格式文件的播放,例如PPT文件的同步播放等,因此上述无线设备可以是如Wifi音箱,蓝牙音箱等无线音箱,或者无线视频播放设备,或者能够实现其他格式文件播放的无线设备。当有多台无线设备相互连接,并需要同步播放时,需要确定局域网中的一台无线设备作为时间服务器,其他的无线设备作为时间客户端,将时间服务器的系统时间作为参考时间以进行时间同步,其中,确定时间服务器可以有多种实施方式,在一实施方式中,可以将固定的一台无线设备作为时间服务器,在另一实施方式中,可以根据仲裁机制将开启时间最早的无线设备作为时间服务器,或者将无线信号最好的无线设备作为时间服务器,具体地,确定模块10可以包括以下单元:
[0082]发送单元,用于发送包含有第一物理地址的查询数据包,其中,所述第一物理地址为所述发送模块所在的无线设备的物理地址;
[0083]确定单元,用于当接收到所述局域网内其他无线设备发送的响应信息时,则将发送所述响应信息的无线设备作为时间服务器,所述发送单元所在的无线设备作为时间客户端。
[0084]进一步地,确定模块10还包括:
[0085]判断单元,用于未接收到所述局域网内其他无线设备发送的响应信息时,检测是否接收到所述局域网内其他无线设备发送的包含有第二物理地址的查询数据包;以及,当接收到所述局域网内其他无线设备发送的包含有第二物理地址的查询数据包时,判断所述第一物理地址是否大于所述第二物理地址;
[0086]所述确定单元,还用于若所述第一物理地址小于所述第二物理地址,则所述确定模块所在的无线设备作为时间客户端,所述第二物理地址对应的无线设备作为时间服务器。
[0087]当无线局域网内有无线设备开启时,发送单元发送包含有本机物理地址的查询数据包,可以以广播的形式发送,这样局域网内其他开启的无线设备都能收到,例如UDP(UserDatagram Protocol,用户数据报协议)的形式进行广播,所述数据包为UDP广播包。若此时没有收到任何回复信息,则说明此时局域网内只有一台无线设备开启,则确定单元确定该无线设备作为时间服务器,当后续有其他的无线设备开启时,同样会进行查询数据包的发送,那么此时,上述作为时间服务器的无线设备就可以向其他无线设备发送响应信息,以告知自己就是时间服务器。若无线局域网内有多台无线设备同时开启,则每台无线设备都会收到其他同时开启的无线设备的发送单元发
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1