发明内容
本发明的目的在于提供一种快速且精确的时间同步方法及系统。
本发明的另一目的在于提供一种时间同步方法,用以同步一区域网络中的一第一播放装置与一第二播放装置,其中区域网络包括一基地台,且第一播放装置具有一第一系统时钟,而第二播放装置具有一第二系统时钟,该方法包括步骤:
(A).使第一播放装置传送一封包至基地台;
(B).使基地台分别传送封包至第一播放装置以及第二播放装置;
(C).于第二播放装置接收封包后,使第二系统时钟的时间增加或减少一误差值而得到一更新时间,其中误差值是第一播放装置传送封包至基地台的时间与第二播放装置自基地台接收封包的时间的差值;
(D).计算多个第一差值是否皆小于一第一预设值,并于多个第一差值皆小于第一预设值时执行一步骤(E),其中每一第一差值是第一播放装置连续传送的多个封包中的同一封包自第一播放装置被传送至基地台的时间与被第二播放装置接收的时间的差值;其中第一播放装置使用第一系统时钟的时间,而第二播放装置使用更新时间;
(E).计算多个第二差值,并计算每一第二差值是否小于一第二预设值,并于一第二差值小于第二预设值时执行一步骤(F),其中每一第二差值是第一播放装置与第二播放装置接收来自基地台的同一封包的时间的差值;其中第一播放装置使用第一系统时钟的时间,而第二播放装置使用更新时间;以及
(F).使更新时间增加或减少第二差值而得到一同步时间,以同步第一系统时钟的时间与同步时间。
本发明的另一目的在于提供一种时间同步系统,用以同步一区域网络中的一第一播放装置与一第二播放装置,其中区域网络包括一基地台,且第一播放装置具有一第一系统时钟,而第二播放装置具有一第二系统时钟,该系统包括:
第一播放装置,包括:
一封包传送模块,用以传送多个封包至基地台;
基地台,用以传送多个封包至第一播放装置以及第二播放装置;以及
第二播放装置,包括:
一同步模块,用以于第二播放装置接收一封包后,使第二系统时钟的时间增加或减少一误差值而得到一更新时间,其中误差值是第一播放装置传送封包至基地台的时间与第二播放装置自基地台接收封包的时间的差值;以及
一运算补偿模块,用以计算多个第一差值是否皆小于一第一预设值,并于多个第一差值皆小于第一预设值时计算多个第二差值及每一第二差值是否小于一第二预设值,其中,于一第二差值小于第二预设值时,同步模块使更新时间增加或减少第二差值而得到一同步时间,以同步第一系统时钟的时间与同步时间;
其中,每一第一差值是第一播放装置连续传送的多个封包中的同一封包自第一播放装置被传送至基地台的时间与被第二播放装置接收的时间的差值,每一第二差值是第一播放装置与第二播放装置接收来自基地台的同一封包的时间的差值,且第一播放装置使用第一系统时钟的时间,而第二播放装置使用更新时间。
具体实施方式
依据本发明的一较佳实施例提供一种时间同步方法及系统。首先说明本例的时间同步系统2,请参照至图2,图2是本发明时间同步系统的方框图。
时间同步系统2包括第一播放装置20、基地台21、第二播放装置22、数字媒体服务器23(Digital Media Server,DMS)以及数字媒体控制器24(Digital Media Controller,DMC)。第一播放装置20包括第一系统时钟201、封包传送模块202、第一记录模块203以及第一播放模块204,第二播放装置22则包括第二系统时钟221、同步模块222、运算补偿模块223、第二记录模块224以及第二播放模块225。
其中,封包传送模块202用以每间隔一固定时间,例如0.3毫秒(ms)传送一封包至基地台21,再由基地台将封包分别广播至第一播放装置20及第二播放装置22。第一记录模块203用以记录第一播放装置20接收封包时第一系统时钟201的时间。第二记录模块224则用以记录第一播放装置20接收封包时第一系统时钟201的时间、第一播放装置20传送封包时第一系统时钟201的时间以及第二播放装置22接收封包时第二系统时钟221的时间。
于本例中第一播放装置20及第二播放装置22皆为数字媒体渲染器(Digital Media Render,DMR),且第一播放装置20、第二播放装置22、数字媒体服务器23以及数字媒体控制器24连线至基地台21所在的区域网络。由于同步一第一播放装置20与一第二播放装置22的时间的操作可轻易延伸至同步一第一播放装置20与多个第二播放装置22的时间的操作,因此,在不影响本发明的技术揭露之下,为了简洁起见,于本例中仅以两个播放装置的情况进行说明,实际上,时间同步系统2亦可设置有两个以上的播放装置。
于本发明中数字媒体服务器23将以无线方式提供一音讯文件的至少一音讯数据予第一播放装置20及第二播放装置22。而后第一播放装置20的第一播放模块204与第二播放装置22的第二播放模块225会分别基于音讯文件的至少一音讯数据进行音讯播放。
由于第一播放装置20与第二播放装置22的系统时间并不一定相同,故无法保证第一播放装置20与第二播放装置22将同步进行音讯播放,因此,于本发明中在开始音讯播放的前需先使第二播放装置22的时间同步于第一播放装置20的时间,以确保两者可以同步进行音讯播放。
接下来说明本发明的时间同步方法,请同时参照图2至图4,图3是本发明时间同步方法的流程图,图4是本发明数字媒体控制器的播放群组设定介面示意图。
首先,当使用者开启数字媒体控制器24的一应用程序并选择一群组设定选项后,将显示如图4所示的播放群组设定介面25。于本例中数字媒体控制器24可以是,例如手机或平板电脑,应用程序可以是内建于数字媒体控制器24或者由使用者额外安装,但不以此为限。此外,图4所示的播放群组设定介面25仅为例示说明之用,并非用以限定本发明的播放群组设定介面的形式。
播放群组设定介面25中将显示同一区域网络中的所有符合DLNA规范的播放装置,例如图4所示的第一播放装置20、第二播放装置22以及其他播放装置26,于是使用者可选择将任意播放装置加入播放群组G并设定主播放装置。
于本例中使用者将选择第一播放装置20以及第二播放装置22加入播放群组G,并设定第一播放装置20为主播放装置。由于第一播放装置20为主播放装置,因此第二播放装置22将以第一播放装置20为基准进行时间同步。
当使用者完成播放群组设定后,如步骤(A)所示,第一播放装置20的封包传送模块202传送封包P_0至基地台21,其中封包P_0包括第一播放装置20广播封包P_0至基地台21时第一系统时钟201的时间Tm_0。而后基地台21分别广播封包P_0至第一播放装置20及第二播放装置22,如步骤(B)所示。其中封包P_0代表第一个封包。
接下来,如步骤(C)所示,于第二播放装置22接收封包P_0后,运算补偿模块223首先计算一误差值E0。其中误差值E0为第一播放装置20传送封包P_0至基地台21时第一系统时钟201的时间Tm_0与第二播放装置22自基地台21接收封包P_0时第二系统时钟221的时间ts_0的差值∣Tm_0-ts_0∣。举例来说,若第一系统时钟201的时间Tm_0为1分10秒,第二系统时钟221的时间ts_0为1分11秒,则误差值E0即为1秒钟。
接着误差值E0被传送至同步模块222。为使第二播放装置22接收封包P_0的时间与第一系统时钟201传送封包P_0的时间Tm_0相同以令第二播放装置22与第一播放装置20的时间差缩小至仅剩封包P_0被广播至基地台21及从基地台21广播至第一播放装置20与第二播放装置22的时间,同步模块222将第二系统时钟221的时间ts_0增加或减少误差值E0而得到更新时间ts_a_0。举例来说,若第一系统时钟201的时间Tm_0为1分10秒,第二系统时钟221的时间ts_0为1分11秒,则更新时间ts_a_0即为第二系统时钟221的时间ts_0减少误差值E0而得的1分10秒。
于第二播放装置22接收来自基地台21的封包P_0的下一封包P_1后,运算补偿模块223首先计算第二播放装置22接收封包P_1时第二系统时钟221的时间ts_1与误差值E0之和或差值而得到第二播放装置22接收封包P_1时的更新时间ts_a_1。其中封包P_1代表第二个封包,包括第一播放装置20广播封包P_1至基地台21时第一系统时钟201的时间Tm_1以及第一播放装置20自基地台21接收封包P_1的前一封包P_0时第一系统时钟201的时间tm_0。
举例来说,若更新时间ts_a_0为第二系统时钟221的时间ts_0减少误差值E0计算而得,则更新时间ts_a_1亦为第二系统时钟221的时间ts_1减少误差值E0计算而得。
如前所述,第二播放装置22自基地台21接收封包P_0时的更新时间ts_a_0与第一播放装置20传送封包P_0至基地台21时第一系统时钟201的时间Tm_0相同,因此可以理解的,理想状态下第二播放装置22接收封包P_1时的更新时间ts_a_1与封包P_1被广播至基地台21时第一系统时钟201的时间Tm_1应该相同。
但基于系统及网络不稳定等因素,两者可能不相同,因此为确保系统及网络处于稳定状态,运算补偿模块223接着需计算封包P_1被广播至基地台21时第一系统时钟201的时间Tm_1与第二播放装置22接收封包P_1时的更新时间ts_a_1的差值∣Tm_1-ts_a_1∣而得到第一差值E1并判断第一差值E1是否小于第一预设值,如步骤(D)及步骤(D1)所示。
若第一差值E1大于第一预设值,例如8毫秒(ms),则可判断系统及网络暂时处于不稳定状态,此时可重新执行步骤(C)直至系统及网络处于稳定状态为止。而若第一差值E1小于第一预设值,例如8毫秒(ms),则可判断系统及网络暂时处于稳定状态。
但为确保系统及网络持续处于稳定状态,于本发明中将于接收来自基地台21的封包P_1的下一封包P_2后,由运算补偿模块223再次计算封包P_2被广播至基地台21时第一系统时钟201的时间Tm_2与第二播放装置22接收封包P_2时的更新时间ts_a_2的差值∣Tm_2-ts_a_2∣而得到第一差值E2并判断第一差值E2是否小于第一预设值。其中封包P_2代表第三个封包。
其中,更新时间ts_a_2由运算补偿模块223依第二播放装置22接收封包P_2时第二系统时钟221的时间ts_2增加或减少误差值E0计算而得,其中若更新时间ts_a_1为第二系统时钟221的时间ts_1减少误差值E0计算而得,更新时间ts_a_2亦将为第二系统时钟221的时间ts_2减少误差值E0计算而得。
此外,封包P_2包括第一播放装置20广播封包P_2至基地台21时第一系统时钟201的时间Tm_2以及第一播放装置20自基地台21接收封包P_2的前一封包P_1时第一系统时钟201的时间tm_1。
如前所述,第二播放装置22自基地台21接收封包P_0时的更新时间ts_a_0与第一播放装置20传送封包P_0至基地台21时第一系统时钟201的时间Tm_0相同,因此第二播放装置22接收封包P_2时的更新时间ts_a_2与封包P_2被广播至基地台21时第一系统时钟201的时间Tm_2亦应相同,故在系统及网络处于稳定状态时,第一差值E2亦应小于第一预设值而趋近或等于0。若第一差值E2大于第一预设值,则可判断系统及网络暂时处于不稳定状态,此时可重新执行步骤(C)直至系统及网络处于稳定状态为止。
当第一差值E1及第一差值E2皆小于第一预设值时,即可判断系统及网络持续处于稳定状态而可继续进行后续步骤。需要说明的是,第一预设值可因应各种不同的状况而设定,并不以8毫秒为限,且步骤(D)的执行次数(所使用的封包个数)亦可因应各种不同的状况而设定,并不以两次为限。
完成前述步骤后,于第二播放装置22接收来自基地台21的封包P_2的下一封包P_3时,运算补偿模块223首先计算第二播放装置22接收封包P_3时第二系统时钟221的时间ts_3与误差值E0之和或差值而得到第二播放装置22接收封包P_3时的更新时间ts_a_3。其中封包P_3代表第四个封包,包括第一播放装置20广播封包P_3至基地台21时第一系统时钟201的时间Tm_3以及第一播放装置20自基地台21接收封包P_3的前一封包P_2时第一系统时钟201的时间tm_2。
需要说明的是,若更新时间ts_a_1为第二系统时钟221的时间ts_1减少误差值E0计算而得,则更新时间ts_a_3亦将为第二系统时钟221的时间ts_3减少误差值E0计算而得。
而后如步骤(E)所示,运算补偿模块223将计算第一播放装置20与第二播放装置22接收来自基地台21的同一封包的时间的第二差值。如前所述,封包P_3包括第一播放装置20自基地台21接收封包P_3的前一封包P_2时第一系统时钟201的时间tm_2,因此运算补偿模块223得以于接收封包P_3后计算第一播放装置20接收封包P_2时第一系统时钟201的时间tm_2与第二播放装置22接收封包P_2时的更新时间ts_a_2的差值∣tm_2-ts_a_2∣而得到第二差值E3。举例来说,若第一播放装置20接收封包P_2时第一系统时钟201的时间tm_2为1分20秒,第二播放装置22接收封包P_2时的更新时间ts_a_2为1分21秒,则第二差值E3即为1秒钟。
由于基地台21同时将封包P_2广播至第一播放装置20及第二播放装置22,因此第二差值E3即代表了第一播放装置20的第一系统时钟201的时间与第二播放装置22的更新时间(由第二系统时钟221的时间增加或减少误差值E0而得)的时间差,故同步模块222使第二播放装置22的第二系统时钟221的时间增加或减少误差值E0并增加或减少第二差值E3所得的一同步时间Ta即能同步于第一播放装置20的第一系统时钟201的时间,如步骤(F)所示。
举例来说,若第一播放装置20广播封包P_0时的第一系统时钟201的时间Tm_0为1分10秒,第二播放装置22接收封包P_0时的第二系统时钟221的时间ts_0为1分11秒,且第一播放装置20接收封包P_2时第一系统时钟201的时间tm_2为1分20秒,第二播放装置22接收封包P_2时的更新时间ts_a_2为1分21秒,则同步时间Ta即为第二系统时钟221的时间减少误差值E0并减少第二差值E3所得的时间,其中误差值E0及第二差值E3皆为1秒钟。
此外,如步骤(E1)所示,当第二差值E3大于第二预设值,例如8毫秒时,将重复步骤(E)而不续行步骤(F),且当第二差值E3大于第二预设值超过一定次数,例如20次时,将重新执行步骤(C)以确保系统及网络处于稳定状态。
需要说明的是,前述步骤(C)、步骤(D)及步骤(E)并不需使用连续的封包,例如步骤(C)可使用第二个封包,步骤(D)可使用第四个封包及第五个封包,步骤(E)可使用第七个封包等,但不以此为限。
完成上述同步流程后,于使用者使用数字媒体控制器24控制播放群组G进行音讯播放时,第一播放装置20的第一播放模块204及第二播放装置22的第二播放模块225即可分别使用第一系统时钟201的时间及同步时间Ta(第二系统时钟221的时间增加或减少误差值E0并增加或减少第二差值E3)同步进行音讯播放。
需要说明的是,第一播放装置20及第二播放装置22各自利用其内部的振荡器(Oscillator)所提供的时钟信号而产生第一系统时钟201及第二系统时钟221,依据振荡器的精确度的不同,第一系统时钟201及第二系统时钟221每经过一定时间后将产生时间上的误差,例如精确度1ppm的振荡器在经过1,000,000秒后会有1秒的误差,且网络传输速率亦非固定不变的,因此于本发明中将重复执行步骤(E)及步骤(F),以计算接收最近一个封包时的第二差值以实时更新同步时间(由第二系统时钟221的时间增加或减少误差值E0并增加或减少第二差值计算而得)。
此外,基于上述因素且接收不同封包时计算而得的第二差值并非固定不变的,因此二同步时间的时间间隔很可能并不等于第二系统时钟221的二时间点的时间间隔,故于本发明中可依据第二系统时钟221的时间调整同步时间的时间偏移以提高时间同步的精确度,如步骤(G)所示。
请同时参照图3及图5,图5是本发明时间同步方法的步骤(G)的流程图。首先,第二记录模块224记录接收封包P_i时第二系统时钟221的第一时间ts_i,以及对应第一时间ts_i的同步时间Ti,如步骤(G1)所示。其中封包P_i代表第i个封包。
其中,应第一时间ts_i的同步时间Ti为第二系统时钟221的时间增加或减少误差值E0并增加或减少第二差值Ei计算而得,且第二差值Ei为第一播放装置20接收封包P_i的前一封包时第一系统时钟201的时间tm_(i-1)与第二播放装置22接收封包P_i的前一封包时的更新时间ts_a_(i-1)的时间差∣tm_(i-1)-ts_a_(i-1)∣。
接下来,第二记录模块224记录接收封包P_j时第二系统时钟221的第二时间ts_j,以及对应第二时间ts_j的同步时间Tj,如步骤(G2)所示。其中封包P_j代表第j个封包。
其中,第一时间ts_i及第二时间ts_j相差第一时间间隔ts_j-ts_i,对应第二时间ts_j的同步时间Tj为第二系统时钟221的时间增加或减少误差值E0并增加或减少第二差值Ej计算而得,且第二差值Ej为第一播放装置20接收封包P_j的前一封包时第一系统时钟201的时间tm_(j-1)与第二播放装置22接收封包P_j的前一封包时的更新时间ts_a_(j-1)的时间差∣tm_(j-1)-ts_a_(j-1)∣。
而后运算补偿模块223计算二同步时间Ti、Tj的差值Tj-Ti而得到第二时间间隔,如步骤(G3)所示。
举例来说,若第一时间间隔为300秒,第二时间间隔为299秒,则代表经过300秒后的同步时间Tj产生了1秒的偏移,故将1秒除以300秒后,即可得到同步时间Tj需要补偿的校正值OFFSET,如步骤(G4)所示。
最后,同步模块222使同步时间Tj加上校正值OFFSET即可调整同步时间的时间偏移,如步骤(G5)所示。
藉由以上说明可知,本发明所广播的封包包括第一播放装置20传送该封包时第一系统时钟201的时间以及第一播放装置20接收该封包的前一封包时第一系统时钟201的时间,而令第二播放装置22不需另外向第一播放装置20请求取得接收封包的时间而减少了流程复杂度。
再者,本发明更于接收封包P_0后,使第二播放装置22使用一更新时间,而令第二播放装置22与第一播放装置20的时间差缩小至仅剩封包P_0被广播至基地台21及从基地台21广播至第一播放装置20与第二播放装置22的时间。
此外,本发明更藉由计算多个封包被广播至基地台21时第一系统时钟201的时间与被第二播放装置22接收时的更新时间的差值是否小于第一预设值而判断系统及网络是否处于稳定状态,以达到快速收敛系统及网络因素造成的时间误差的目的,因而提供了一种快速且精确的时间同步方法及系统。
以上所述的实施例仅为说明本发明的技术思想与特点,其目的在使本技术领域的技术人员能够了解本发明的内容并据以实施,当不能以的限定本发明的专利范围,即大凡依本发明所揭示的精神所作的均等变化或修饰,仍应涵盖在本发明的专利范围内。