用于在网络锁定条件发生之后同步多个网络节点的通信系统和方法
【专利摘要】本文提供一种用于在网络中网络锁定条件发生之后同步多个网络节点的通信系统和方法。根据一个实施例,该方法可以通过补偿归因于多个网络节点中的每个节点的唯一的相位延迟,在多个网络节点中的每个节点处同时生成本地触发信号。如本文所述,本地触发信号可用于同步诸如多媒体设备之类的可被耦合到网络节点的设备。更具体地说,本地触发信号可用于同步发生在被耦合到网络的不同节点处的设备内的事件。
【专利说明】用于在网络锁定条件发生之后同步多个网络节点的通信系统和方法
[0001]发明背景
[0002]1.发明领域
[0003]本发明涉及通信系统,更具体地,本发明涉及用于在网络锁定条件发生之后同步多个网络节点的通信系统和方法。
[0004]2.相关领域描述
[0005]下列描述和示例仅作为背景给出。
[0006]通信系统通常为人们熟知是包含通过传输线互连的至少两个节点的。每根传输线不仅能够容纳数字数据,而且能够容纳以源自计算机域的语音数据、音频数据、视频数据,或数据突发(bursts of data)的形式到达的数据。因此,最佳的传输线是能够接收来自多媒体设备的信息的传输线,本文将多媒体设备定义为能够在网络上以任何形式传输信息的任何硬件和/或软件模块。传输线可以是铜线、光纤或无线传输介质。
[0007]有许多类型的多媒体设备。例如,多媒体设备可以包括电话机、紧致盘(CD)播放器、数字视频盘(DVD)播放器、计算机、放大器、扬声器,或能够跨越网络的传输线发送和接收不同类型数据的任何设备。
[0008]由多媒体设备所发送或接收的流行的数据类型包括流数据和分组数据。流数据是具有产生于源端口去往网络上的样本之间的时域关系的数据。必须保持该关系以防止可察觉的误差,如:在目的地端口处的间隔或被改变的频率。分组数据不需要保持数据的采样率或时域关系,替代地可以跨越传输线作为脱节的突发(disjointed bursts)被发送。
[0009]取决于源端口(或目的地端口)的本地时钟和网络帧传输率(或跨越传输线传输数据帧的速率)之间的频率差异,可以跨越网络同步或等时地发送流数据。如果节点的本地采样率(有时被标记成“fs”)与传输线的网络帧传输率(或帧同步速率“FSR”)频率相同,则可以跨越网络同步地发送流数据。在许多实例中,FSR可以与位于节点内的多媒体设备的本地采样率fs不同。因此,必须改变(或转换)本地采样率,或者必须跨越网络等时地发送流数据,其中使用等时传输协议适应频率差异以防止可察觉的间隔、误差、抖动或回波。
[0010]无论怎样跨越传输线发送数据,该数据必须参考时钟。位于一个节点内(有时被认为是主节点)的时钟(有时被称为主时钟)跨越传输线同步来自该节点的传输。网络的余下节点(有时被称为从节点)通常通过利用某种形式的时钟恢复电路(如:锁相环“PLL”、数字信号处理器“DSP”或相位比较器)以锁定到主时钟总信号的频率,尝试使剩余节点的本地时钟与主时钟信号同步。一旦网络的所有节点被锁定到主时钟信号,网络锁定条件便发生。在网络上上电、重置或失去锁定(如:解锁条件)之后,通常执行将本地时钟信号锁定或同步到主时钟信号的进程。
[0011]一旦网络锁定条件发生,从节点所接收的数据将具有正确的频率,但会相对于主节点所发送的数据产生相移。该相移是由于:归因于每个活跃节点的延迟(delay)和由于活跃节点之内的相位锁定中的容差而产生的附加的累积延迟。每当上电、重置、或解锁到锁定事件发生时,来自每个活跃节点的延迟可能在某个范围内变化。这些延迟也可以在网络上的不同节点之间变化。因此,每当网络锁定条件发生时,网络上的每个节点会具有不同固定的但不可预测的延迟量的属性。在许多网络应用中,此类不可预测的延迟是不利的。
[0012]对用于在网络锁定条件发生之后同步多个网络节点的通信系统和方法存在需求。尤其是,需要通信系统和方法以补偿每次网络锁定条件发生时,在网络节点处产生的不可预测的相位延迟。在本文中,通过在网络的一个或多个节点处同时生成同步触发信号来满足此类需求。
[0013]发明概述
[0014]下述对通信系统和方法的各种实施例的描述不应当以任何方式被解释为限制所附权利要求的主题。
[0015]根据一个实施例,本文提供一种用于在网络内网络锁定条件发生之后同步多个网络节点的方法。该方法可以通过补偿归因于多个网络节点中的每个节点的唯一的相位延迟,同时在多个网络节点处生成本地触发信号。一旦生成了本地触发信号,可将其用于同步被耦合到多个网络节点中的每个节点的一个或多个设备,或更具体地说,可将其用于同步发生在被耦合到节点的设备处的事件。如下文更详细描述的那样,本文描述的方法通常可以包括延迟估计阶段、触发同步阶段和事件同步阶段。
[0016]在延迟估计阶段,该方法可以计算在多个网络节点中的每个节点处的唯一的相位延迟。在大多数情况下,一旦网络锁定条件发生(如:在网络中的上电、重置或失去锁定之后),可以计算该唯一的相位延迟。如本文中所使用的那样,“唯一的相位延迟”可以由数据帧在网络节点的接收引脚和相同的网络节点的发送引脚之间经过所需的相位延迟量组成。一旦为一个或多个网络节点确定了唯一的相位延迟,该方法可以将累积的相位延迟存储于多个网络节点中的每个节点内。一般而言,通过合并归因于配置在网络的源节点和特定网络节点之间的所有网络节点的唯一的相位延迟,可以计算存储在特定网络节点内的累积的相位延迟。然而,计算累积的相位延迟的方法可以变化。
[0017]在一个实施例中,通过将在多个网络节点中的每个节点处计算出的唯一的相位延迟发送到所有其他的网络节点,可以计算累积的相位延迟。这使单个网络节点能够通过合并归因于配置在其自身和源节点之间的所有网络节点的唯一的相位延迟来计算该单个网络节点的累积的相位延迟。在另一个实施例中,单个网络节点可以将其自身唯一的相位延迟与从上游网络节点处所接收的累积的相位延迟合并,以生成该单个网络节点的累积的相位延迟。一旦生成了累积的相位延迟,可以将其发送到下一个下游节点,用于生成那个节点的累积的延迟。无论使用什么方法,一旦累积的相位延迟被存储于每个网络节点内,延迟估计阶段可以结束。
[0018]在触发同步阶段,该方法可以测量在源节点所接收(或在源节点内生成)的源触发信号和网络的主节点所生成的数据帧的预定字节之间的偏移值。在确定该偏移值后,该方法可以跨越网络将该偏移值发送到多个网络节点中的每个节点。在一些实施例中,该方法可以将在源节点处计算出的抖动值与偏移值相加,并且跨越网络将所合并的抖动值和偏移值传输到多个网络节点中的每个节点。在一些实施例中,可以将在数据帧的预定字节之内的偏移值(或所合并的偏移值和抖动值)发送到多个网络节点中的每个节点。在本发明的一些实施例中,预定的字节可以是MOST数据帧的触发字节,尽管当然不限于此类情况。
[0019]在事件同步阶段期间,该方法可以接收多个网络节点中的每个节点处的主节点所发送的数据帧。如果特定的网络节点检测到在所接收的数据帧的预定字节内的偏移值,则该特定网络节点所执行的该方法可以包括若干附加步骤。例如,该方法可以从预定值开始启动倒数计时器,并且一旦倒数计时器的计数值等于预定值减去该偏移值(或所合并的偏移值和抖动值)和存储于特定网络节点内的累积的相位延迟的所合并的延迟时,生成本地触发信号。一旦生成了本地触发信号,该方法可以使特定网络节点处的事件与该本地触发信号同步。
[0020]在一个实施例中,可以使用本文描述的方法,将发生在多个网络节点中的每个节点处的事件同步到公共时间标记。这些事件可以包括,但当然不限于:时钟信号生成、输入/输出信号生成和数据采样。在一些情况下,事件可以发生在耦合到多个网络节点的一个或多个多媒体设备内。例如,可以通过本文描述的方法来同步提供给多显示屏系统的音频/视频信号,以协调耦合到不同网络节点的显示屏上的信号再现。同样地,当多扬声器系统的左、右扬声器被耦合到不同的网络节点时,通过本文描述的方法,可以同步提供给左、右扬声器的音频信号,以保持高保真。此外,可以通过本文描述的方法来同步耦合到不同网络节点的多个相机,使得多个相机可以同时捕捉图像,并且这些图像被并入单一图像。在另一些实施例中,可以使用事件同步,以跨越多个网络节点协调数据采样,或在一个或多个节点处执行时钟同步。
[0021]根据另一个实施例,本文提供包括在网络内互连的多个网络节点的通信系统。一般而言,通信系统可以包括源节点和通过传输线网络被耦合到该源节点的多个网络节点。在一个实施例中,该通信系统可以包括MOST网络。然而,本文描述的通信系统不限于MOST网络,并且大体上可以包括大体具有任何网络拓扑的任何同步网络。
[0022]在一个实施例中,源节点可以配置成用于计算在源节点所接收的(或在源节点内生成的)源触发信号和源节点所接收的数据帧的预定字节之间的偏移值,以及用于跨越网络将该偏移值发送到多个网络节点。例如,源节点可以包括偏移计算电路,该偏移计算电路包括用于计算偏移值的计数器和用于在跨越网络发送偏移值之前存储该偏移值的缓冲器。在一个实施例中,可以跨越网络,发送在数据帧的预定字节之内的偏移值。
[0023]在一个实施例中,多个网络节点中的每个节点可以配置成:接收源节点所传输的数据帧;检测在所接收的一个数据帧的预定字节之内的偏移值;和生成用于同步耦合到多个网络节点的设备的本地触发信号。如上文所述,可以通过补偿归因于多个网络节点中的每个节点的唯一的相位延迟,在多个网络节点中的每个节点处生成本地触发信号。
[0024]在一些实施例中,多个网络节点和源节点可以每个节点包括用于确定和存储归因于那个节点的唯一的相位延迟的延迟计算电路。在一个实施例中,该延迟计算电路可以包括计数器、第一存储设备和第二存储设备。特定节点内的计数器可以被耦合,用于紧跟着网络锁定条件立即确定归因于该节点的唯一的相位延迟。特定节点内的第一存储设备可以被耦合,用于存储归因于该节点的唯一的相位延迟。特定节点内的第二存储设备可以被耦合,用于接收来自第一存储设备的唯一的相位延迟,和用于存储归因于该节点的累积的相位延迟。如上文所述,可以以若干方式计算在第二存储设备内的累积的相位延迟。这样,第二存储设备可以被附加地耦合,用于跨越网络接收:(a)来自其他所有网络节点的唯一的相位延迟,或(b)来自之前上游节点的累积的相位延迟。
[0025]在一些实施例中,源节点可以包括用于测量和补偿网络抖动的抖动补偿电路。为了补偿网络抖动,抖动补偿电路可以配置成接收来自被包括在源节点内的第一存储设备的多个唯一的相位延迟。尤其是,抖动补偿电路可以配置成接收先前在网络锁定条件之后所计算的唯一的相位延迟和在接收/生成源触发信号时源节点所测量的另一个唯一的相位延迟。为了计算抖动值,抖动补偿电路可以确定先前和当前所测量的唯一的相位延迟之间的差异。在计算出抖动值后,源节点可以在跨越网络在数据帧的预定字节内发送所合并的偏移值和抖动值之前,将抖动值与偏移值相加。
[0026]在一些实施例中,多个网络节点可以各自包括附加组件,例如:触发检测电路、倒数计时器、触发信号生成器电路和同步电路。触发检测电路通常可以配置成用于检测跨越网络所传输的在数据帧的预定字节内的偏移值。在一个实施例中,触发检测电路可以包括配置成用于检测预定字节内的有效数据位的逻辑门。在一些情况下,该有效数据位可以对应偏移值。在另一些情况下,该有效数据位可以对应所合并的偏移值和抖动值。
[0027]倒数计时器通常可以配置成用于一旦触发检测电路检测到偏移值(或所合并的偏移值和抖动值)就从预定值开始倒数。在一些实施例中,该预定值可以大体上等于源节点所传输的数据帧的帧尺寸的两倍。然而,该预定值不限于此类值,可以替代地包括任何被视为合适的其它值。
[0028]触发信号生成器电路通常可以配置成用于一旦倒数计时器的计数值等于诸如加法器/减法器所提供的计算结果,就生成本地触发信号。例如,可以使用加法器/减法器从预定值中减去该偏移值(或所合并的偏移值和抖动值)和存储于第二存储设备内的累积的相位延迟的所合并的延迟,以生成计算结果。然后,一旦来自倒数计时器的计数值等于由加法器/减法器提供的计算结果时,触发信号生成器电路可以生成本地触发信号。在一个实施例中,触发信号生成器电路可以包括:数字比较器,用于将计数值与计算结果进行比较并响应于该比较生成逻辑值;和选择设备(如:触发器或复用器),用于响应于逻辑值生成本地触发信号。
[0029]同步电路通常可以配置成用于将可以被耦合到每个网络节点的一个或多个设备同步到本地生成的触发信号。在一个实施例中,一个或多个设备可以包括一个或多个多媒体设备,例如但不限于:扬声器、话筒、相机、显示屏等。在一些实施例中,同步电路可以配置成同步发生在被耦合到网络节点的一个或多个设备之内的事件。此类事件可以包括,但当然不限于:时钟信号生成、输入/输出信号生成和数据米样。在一个实施例中,同步电路可以包括逻辑,用于在接收到本地生成的触发信号时同步此类事件。
[0030]在一些实施例中,延迟计算电路、触发检测电路、倒数计时器和触发信号生成器电路可以每个都被具体化在包括网络接口控制器(NIC)的单一单片基板上。在一些实施例中,同步电路也可以被具体化在包括NIC的单一单片基板上。在另一些实施例中,同步电路可以被具体化在被包括在每个多媒体设备内的分离的单片基板上。
【专利附图】
【附图说明】
[0031]一旦阅读了以下详细说明并参考附图,本发明的其它目的和优点就将变得显而易见,在附图中:
[0032]图1是框图,示出包括在网络内互连的多个节点的通信系统的一个实施例;
[0033]图2是框图,示出源触发信号在源网络的源节点处的到达和在多个网络节点处本地触发信号的生成,其中,通过补偿归因于每个节点的唯一的相位延迟(如=RX-TX延迟)在每个网络节点处同时生成本地触发信号;
[0034]图3A是流程图,示出可用于估计归因于每个网络节点的唯一的相位延迟的方法的一个实施例;
[0035]图3B是流程图,示出可用于测量源触发信号和源节点所接收的数据帧的预定字节之间的(如:在数据帧的预定字节内的)偏移值,并且跨越网络发送该偏移值的方法的一个实施例;
[0036]图4是流程图,示出可用于检测在所接收的数据帧的预定字节之内的偏移值,并在一个或多个网络节点处生成触发信号,以同步在网络节点和/或耦合到网络节点的设备处发生的事件的方法的一个实施例;
[0037]图5是时序图,示出一系列数据流,该数据流包括:(a)当没有接受到源触发信号时,在每个数据帧的预定字节内仅有的非有效数据,(b)当在相同的数据帧的预定字节前接收到源触发信号时,在数据帧的预定字节内的有效值(如:Dts偏移值)和(C)当在在前的数据帧的预定字节之后接受到源触发信号时,在数据帧的预定字节内的有效数据(如=Dts偏移值);
[0038]图6和图7是时序图,提供了如何利用图3A、图3B和图4所示的方法在多个网络节点处同时生成本地触发信号的两个不同示例;
[0039]图8是框图,示出可以被包括在所有网络节点内以用于确定归因于特定网络节点的唯一的相位延迟的示范性硬件组件;
[0040]图9是示出示范性硬件组件的框图,该示范性硬件组件可被包括在源节点内以用于测量在源触发信号和源节点所接收的数据帧的预定字节之间的偏移值,并且可选地用于补偿网络抖动;以及
[0041]图10是示出示范性硬件组件的框图,该示范性硬件组件可以被包括在所有网络节点内(除了源节点),以用于检测在所接收的数据帧的预定字节内的偏移值,生成本地触发信号,以及将事件或耦合到网络节点的设备同步到所生成的触发信号。
[0042]虽然本发明容易得出多种修改和替代形式,但通过附图中示例的方式示出本发明的特定实施例,并在本文中进行详细描述。然而,应当理解的是,附图和对其的详细描述不旨在将本发明限制为所公开的特定形式,相反,本发明旨在涵盖落在所附权利要求所限定的本发明的精神和范围内的所有修改、等效物以及替代物。
【具体实施方式】
[0043]现在转到附图,图1示出网络或网络10的通信系统的一个示例。通信系统10包括多个互连的网络节点12。为简洁起见,只示出四个节点。然而,应当理解,系统10可以包括多于四个节点,也可以包括多个互连的网络。图1所示的网络被实现成环状(ring)或环路(loop)拓扑。然而,也应当理解,网络主干(backbone)也可以实现成总线、星型或其他任何网络可用的拓扑。对应的传输线14被耦合在在节点12之间。传输线14可以是光学、声学或电学的(有线或无线的)。
[0044]每个节点12优选地被本地化到特定区域。每个节点内至少有一个多媒体设备。如节点12d中所示,节点可以具有多于一个的多媒体设备16。如果存在多于一个的本地化设备16,则可以如替代的虚线17所示以环路或总线拓扑在多媒体设备16之间使用本地传输线或本地总线。
[0045]网络接口控制器(NIC) 20被连接在设备16和节点12的网络之间。如果多个设备16被本地化到节点12,则网络接口控制器20被设置在本地总线17和网络传输线14之间。接口 20通常包括通信端口(如:双向发送和接收端口),用于在配置在节点12内的设备16之间发送通信。也可以在多媒体设备16中的每个设备中发现该通信端口,取决于所述每个设备的配置,端口可以包括时钟引脚、一个或两个信号引脚和至少一个数据引脚或数据引脚对。
[0046]如在本文中所能理解的,可以将网络接口功能置于一个或多个多媒体设备16中,或者可以将网络接口功能与多媒体设备分离。可以在单一单片基板上发现多媒体设备16,也可以在单一单片基板上发现网络接口。这样,可以在诸如网络接口控制器20的单片基板上,或在可能包含或不包含网络接口控制器的多媒体设备16的单片基板上发现通信端口。
[0047]在一些实施例中,取决于用作跨越网络发送数据的方法,网络接口控制器20可以包括锁相环(“PLL”)、数字信号处理器(“DSP”)或仅仅是相位比较器。替代地,相位比较器可以被包括在网络接口控制器20之内或之外,并且仅仅形成通信节点的部分。此外,例如,网络接口控制器20可以在多媒体设备16自身之内。
[0048]在节点内发现的一个或多个多媒体设备16是能够发送和/或接收多媒体信号的任何设备。此类信号包括语音、音频、视频、数据文件或可执行数据程序。此类设备的示例包括:电话、传感器、CD播放器、DVD播放器、视频相机、扬声器、监视器、计算机、个人数字助理(PDA)、经调频的立体声、导航系统等。在一些情况下,一个或多个多媒体设备16可以以传输线14的帧传输率(FSR)采样数据。例如,多媒体设备可以是在大约48KHz频率处采样数据的DVD播放器。但是,应当承认,一个或多个多媒体设备16能够以比传输线14的帧传输率(FSR)更高或更低的采样率(fs)采样数据。例如,多媒体设备16可以是在大约44.1KHz频率处采样数据的CD播放器。
[0049]根据一个实施例,多媒体设备16可以位于汽车内,可以在该汽车内采用通信系统10,用于将多媒体设备彼此连接,或将多媒体设备连接到相同汽车的其他节点内的多媒体设备,或将多媒体设备连接到其他汽车、卫星或固定基站。取决于数据是否在多媒体设备16处被加密或编码,通信系统10可以允许将此类信息作为流数据(同步的或等时的)、异步数据(分组的)或控制数据传输到目的地。此外,通信系统10可以允许所有四种类型的数据跨越建立在传输线14内的一个或多个通道或跨越本地总线17传输。因此,通信系统10容纳不同类型的数据,以向各种类型可使用的多媒体设备16增加通用性(versatility)。无论如何跨越传输线14发送数据,该数据必须参考时钟。
[0050]在优选实施例中,图1所示的通信系统10实现成互连节点的同步网络。在同步网络中,通信系统10的一个节点(如:节点12a)被指定为主节点,具有本地主时钟,该本地主时钟来源于内部或外部晶体振荡器18。在来自节点12a的数据以帧传输率(“FSR”)被传输到传输线14上之前,使数据与主时钟信号同步。各种方法可用作使从节点12b-12d所接收的数据与所传输的数据流同步。
[0051]在一些实施例中,时钟恢复电路可以被包括在各从节点12b_12d中的每个从节点内,以恢复主时钟信号并且使所接收的数据与所传输的数据流同步。在一个示例中,从节点内的时钟恢复电路可以包括PLL(未示出),用于生成经恢复的时钟(如:被锁定到主时钟的本地采样时钟),该经恢复的时钟可用于同步诸如多媒体设备16之类的数字子系统。时钟恢复电路,更具体地说,每个从节点中的PLL可以通过简单地重构主时钟或替代地将主时钟率转换为所需要的采样率,来生成本地采样时钟。时钟恢复电路可以包括在网络接口控制器20内或从节点12b-12d的多媒体设备16内。然而,应当注意,诸如上文所描述的时钟恢复电路不会在所有实施例中都被包括在从节点中。
[0052]在另一些实施例中,可以在从节点12b_12d内使用帧同步方法,以使本地时钟与跨越网络传输的主时钟频率同步。例如,从节点可以以大体上等于主时钟频率的帧传输率(“FSR”)接收跨越网络被同步传输的数据帧。每个数据帧可以包括多个管理字节(包括例如:前置码、一个或多个标志、描述符和/或控制数据字节),之后跟随的是若干数据字节。可以由主节点生成数据帧,并且使所发送的位流与主节点内部或外部的计时源(如:晶体振荡器18)同步。在一些情况下,从节点可以利用所接收的数据帧的前置码用于时钟再现成和同步数据。
[0053]面向媒体的系统传输(MOST)网络是同步网络的一个示例,该同步网络使用所接收的数据帧的前置码用于时钟再现成和数据同步。MOST网络是高速多媒体网络技术,该技术使用同步数据通信,以通过塑料光纤或电导体物理层输送音频、视频、语音和数据信号。尽管也可以使用其他网络拓扑,但MOST网络可以由以环状配置安排的多达64个节点组成。节点之一被指定为计时主,并且运行以向环提供MOST帧。可以以44.1kHz或48kHz的帧传输率跨越网络发送MOST帧。每个帧由三部分组成:用于流数据的同步通道、用于分组数据的异步通道和用于控制及低速数据的控制通道。
[0054]当前有三种类型的MOST网络。被称为M0ST25的第一类型使用512位的帧长度,并且为流数据(同步的)和分组数据(异步的)在光物理层上的传输提供约25兆位/秒(Mbit/s)的带宽。除帧控制位和校验位之外,M0ST25帧通常包括前置码、边界描述符、同步数据区、异步数据区和控制通道区。边界描述符指明数据帧中同步和异步数据区之间的边界。
[0055]M0ST50系统的带宽是M0ST25系统带宽的两倍(达到约50Mb/s)并且将帧长度增加到1024位。M0ST150进一步将帧长度增加到多达3072位,约是M0ST25系统带宽的六倍。除了所提供的三种所建立的通道之外,也将具有可调节带宽的以太网通道结合进其他MOST系统。虽然三种所建立的通道(同步通道、异步通道和控制通道)保持相同,但是在M0ST50和M0ST150帧中,控制通道的长度和同步及异步通道之间的边界是灵活的。
[0056]MOST帧结构被设计成通过利用用于指定网络锁定条件的数据帧的前置码,允许容易实现再同步和时钟及数据恢复。例如,在重置、上电或失去锁定发生后的正确时间接收有效前置码集合的第一次接收可以向从节点指示网络锁定已发生。一旦网络被锁定,从节点可以提取和使用来自经编码的数据流的数据。
[0057]一旦实现网络锁定,从节点内的本地时钟会被锁定到主时钟信号的频率。但是,从节点所接收的数据相对于主节点所发送的数据会产生相移。该相移是由于:归因于每个活跃的节点的延迟和归因于节点内相位锁定的容差的附加的累积延迟。虽然同步网络的节点间的固定时序关系产生每个活跃节点的固定相位延迟量,但是该延迟量是不可预测的,并且在网络的不同节点间可能变化。此外,每当上电、重置或解锁到锁定事件发生时,延迟量可能在某个范围内变化。这样,每当网络锁定条件发生时,网络上的每个节点可以贡献不同固定但不可预测的相位延迟量。在许多网络应用中,此类相位延迟是不利的。
[0058]让我们考虑这样一种情况,其中,多媒体设备16如图1的示范性网络中所示,被耦合到网络节点。如上文所讨论的那样,这些多媒体设备可以包括扬声器、话筒、DVD播放器、CD播放器、相机或大量本领域内已知的多媒体设备中的其他任何设备。在许多多媒体应用中,同步发生在附连到不同网络节点的多媒体设备内发生的某些事件通常是重要的(即使不是必要的)。这些事件可以包括,但当然不限于:时钟信号生成、输入/输出信号生成和数据采样。
[0059]例如,可能想要同步被稱合到网络节点12a_16b中的一个或多个节点的一个或多个多媒体设备16的本地时钟。例如,可能需要时钟同步以同步多媒体设备16所使用的低频本地时钟的边缘。然而,事件同步不限于时钟同步,一般还可以被应用于向多媒体设备提供的输入信号的同步和/或多媒体设备所生成的输出信号的同步。虽然下文提供了若干示例应用,但是本领域技术人员会认识到还存在其他应用,在其中,事件同步可以是有用的或所需要的。
[0060]首先,考虑一种情况,在其中,多扬声器系统的左、右扬声器被耦合到网络的不同节点。在这种情况下,同步向多扬声器系统的左、右扬声器提供的音频信号以保持高保真是很重要的。类似的情景也在音频和视频(A/V)信号被提供到多显示系统时发生,在该显示系统中,该多显示系统的显示屏被耦合到不同网络节点。在这种情况下,同步提供给不同的网络节点的A/V信号以跨越多个显示屏协调此类信号的再现是很重要的。在另一个示例中,可能需要同步耦合到不同网络节点的多个相机,使得图像能够被多个相机同时捕捉,并且能够被整合到单一图像中。这在诸如可能将同时捕捉到的图像合并成3D视图的驾驶员辅助应用中尤其有用。最后,可以使用事件同步以跨越多个网络节点,像例如可能发生在分布式话筒阵列中那样协调数据采样。如果单个话筒阵列被耦合到不同的网络节点,则可以同步在分布式阵列的各阵列处所采集的数据以消除噪声或回声。
[0061]对于在网络锁定条件发生之后用于同步同步网络的节点的通信系统和方法存在需求。尤其是,需要通信系统和方法以补偿每当网络锁定条件发生时,在网络节点处产生的不同固定但不可预测的相位延迟量。如下文所述,通过在同步网络的一个或多个节点处同时生成本地触发信号来满足此类需求。虽然下文在MOST网络的环境下进行描述,但是本文阐述的发明概念基本可应用于大体上具有任何网络拓扑的大体上任何的同步网络。
[0062]返回附图,图1中所示的通信系统10优选地实现成同步网络,在一个特定实施例中,可以实现成MOST网络。如上文所述,同步网络的所有节点具有与网络计时主节点的固定的时序关系,使得每个节点具有与网络上的其他所有节点的固定的时序关系。此外,如图2中所示,网络的每个节点可以贡献在节点的接收(“RX”)侧所接收的数据帧的固定点和在节点的发送(“TX”)侧所发送的数据帧的相同固定点之间的相位延迟(本文中称为RX-TX延迟)的固定量。虽然由于同步网络上的节点间的固定的时序关系,RX-TX延迟是固定的,但是该延迟在上电、重置和解锁/锁定条件下是不可预测的,并且对于网络上的不同节点可能是不同的。例如,从节点中的RX-TX延迟可能远小于计时主节点中的RX-TX延迟。此外,RX-TX延迟在网络的从节点之间可能不同。
[0063]为了补偿该延迟,同步触发信号可以由网络的源节点(如:图2所示的节点O)生成或接收,并且由网络的一个或多个目的地节点(如:图2所示的节点1-6中的任何节点)跨越MOST网络发送并使用,以同步发生在目的地节点处的事件。如本文中所使用的那样,“源节点”是生成或接收源触发信号的网络节点。在一些实施例中,该“源节点”可以是“主节点”,或在另一些实施例中,该“源节点”可以是“从节点”。“目的地节点”是网络节点,该网络节点被耦合到源节点,用于接收来自源节点的数据帧,以及用于使用包含在该数据帧内的信息,将源触发信号重新创建成本地触发信号。
[0064]在一个实施例中,该本地触发信号可用于使目的地节点的本地时钟在频率和相位上与跨越网络所发送的主时钟信号或帧传输率同步。在另一些实施例中,该本地触发信号可用于同步提供给目的地节点(或被耦合到该节点的多媒体设备)的输入信号或目的地节点(或被耦合到该节点的多媒体设备)所生成的输出信号。在一些情况下,该本地触发信号可用于同步发生在基本上所有网络节点内的事件。在另一些情况下,该本地触发信号可以如图2的示范性实施例中所示的那样,仅用于同步在目的地节点(如节点2、节点3和节点5)的子集内发生的事件。
[0065]有许多可以跨越MOST网络生成和发送触发信号的方法。在一些情况下,可以在网络接口控制器(NIC) 20内实现此类方法。然而,应当注意,本文描述的方法不限于NIC 20,并且在本发明的另一些实施例中,本文描述的方法可以在被耦合到NIC 20的一个或多个芯片或电路内实现。在这些实施例中,NIC 20可以将事件同步所需要的所有信息传到附加的芯片/电路上。
[0066]截止撰写本文为止,当前还没有在MOST NIC 20内用于在同步网络10的各节点处生成同步触发信号的专用逻辑(硬件或软件)。然而,可以使用和/或修改在许多当前可用的MOST NIC集成电路上(IC)上的现有逻辑,以在网络节点的本地生成同步触发信号。虽然不用对MOST NIC IC作硬件改动就可以实现此类方法,但是此类方法所生成的同步触发信号通常精度有限,这样,同步触发信号可能不是在所有情况下都令人满意。
[0067]在一种示范性方法中,可以使用MOST同步通道,以跨越MOST网络将同步触发信号发送到一个或多个目的地节点。在该方法中,可以将外部触发信号作为流端口数据输入馈送进源节点,该流端口数据输入随后跨越MOST网络在同步通道上被发送到目的地节点。一旦目的地节点(如:在目的地节点的流端口 SX引脚处)接收到该数据,目的地节点可以使用该流数据再现触发信号,用于事件同步。虽然可以通过简单的固件修改在现有的MOSTNIC 20上实现该方法,但是同步通道方法有若干缺点。例如,该方法消耗MOST网络上的一个同步通道带宽,并在源节点和每个目的地节点处消耗一个流端口。此外,同步通道方法遭受增加的延时(latency),并且产生不可预测的延时数目。该方法导致精度非常有限的触发信号。
[0068]在另一种示范性方法中,MOST NIC 20之内的锁相环(“PLL”)可用于生成同步触发信号。在源节点处,可以由PLL监测内部或外部生成的触发信号(如:源触发信号),并且可以在MOST网络上发送该触发信息。一旦接受到该触发信息,被包括在目的地节点内的PLL可以使用该触发信息,以重新创建源触发信号的版本(在与源触发相同的频率、倍频或亚倍频处),该版本可用于同步目的地节点处的事件。
[0069]与先前的方法类似,上文所描述的频率合成PLL方法可以被实现在许多现有的MOST NIC IC (具有PLL硬件的那些MOST NIC IC)内。然而,上文所描述的频率合成PLL方法仅对周期性触发信号有用,并且消耗MOST网络上的一个等时相位通道带宽。此外,该方法在每个目的地节点处需要一个可用于音频或视频时钟重新创建的频率合成PLL。此外,该方法生成在源触发信号和在目的地节点处所再现的触发信号之间的不可预测的延迟量,并且遭受在不同的目的地节点处所生成的本地触发信号之间的计时差异。这样,与上文所描述的同步通道方法类似,该频率合成PLL方法不能生成具有可接受精度的触发信号。
[0070]虽然上文所描述的方法对于一些应用是可接受的,但是其产生在目的地节点所生成的触发信号之间的不可预测的延迟量。该不可预测的延迟量减小了所生成的触发信号的计时精度,并且在多数情况下,妨碍在每个目的地节点处同时生成触发信号。此外,需要在源节点和每个目的地节点内的流端口或PLL模块以实现上述方法。为了克服这些缺点,本文提供用于同步多个网络节点的改进的通信系统和方法,在下文中详细描述。
[0071]图3-图4中示出用于同步多个网络节点的改进的方法的一个实施例。图3A示出该改进的方法的延迟估计阶段,凭借该阶段计算出归因于每个网络节点的唯一的相位延迟,并且在该阶段存储累积的相位延迟。紧接着图3A的图3B示出该改进方法的触发同步阶段,凭借该阶段,通过测量在源触发信号与网络的主节点所生成并且源节点所接收的数据帧的预定字节之间的偏移,将源节点所生成或所接收的源触发信号与主时钟信号同步。然后,在触发同步阶段,将源节点所测量的偏移值跨越网络发送到每个目的地节点。最后,图4示出该改进的方法的事件同步阶段,凭借此方法,在检测到所接收的数据帧的预定字节之内的偏移值时,在一个或多个网络节点处生成本地触发信号,用于将网络节点处的事件与本地触发信号同步。如下文更详细描述的那样,该改进的方法通过补偿归因于单个节点的唯一的相位延迟(如=RX-TX延迟)使得本地触发信号能够在每个网络节点处被同时生成。下文将讨论关于延迟估计阶段、触发同步阶段和事件同步阶段的进一步细节。
[0072]如图3A所示,该改进的方法的延迟估计阶段通常可以在检测到网络锁定条件(在步骤30中)时开始。如本文中所使用的那样,网络锁定条件可以在网络整体上电或重置之后,或者在被耦合到该网络的网络接口控制器(NIC)上电或重置之后发生。在一些情况下,网络锁定条件可以在出于若干原因可能发生的网络解锁条件之后附加或替代地发生。例如,当一个网络节点掉电或重置时,它会向下游传播解锁条件。发生这种情况时,必须在网络节点中重建网络锁定。
[0073]—旦重建了网络锁定,从节点内的本地时钟会再次被锁定到主节点所生成的主时钟信号的频率。然而,目的地节点所接收的数据相对于源节点所传输的数据会产生相移。为了补偿此类相移,每当实现网络锁定时,每个节点可以计算归因于该节点的RX-TX延迟(在步骤32中)。一旦网络被锁定,经过每个节点的RX-TX延迟除了网络抖动所产生的相对小的变化,会保持恒定。
[0074]每个节点所计算的RX-TX延迟是归因于该节点的唯一的相位延迟,其由数据帧在节点的接收(RX)引脚到相同节点的传输(TX)引脚之间经过所需要的相位延迟量组成。通常,可以计算在节点的RX引脚处所接收的数据帧的任何固定点到在相同节点的TX引脚所发送的数据帧的相同固定点之间的RX-TX延迟。该固定点可以大体上是数据帧内的任何固定点,例如:帧开始(“S0F”)处或数据帧内任何特定字节的开始或结束处。在一些实施例中,可以向RX-TX延迟增加预定量以代表在一个节点的TX引脚到下一个下游节点的RX引脚之间的传输介质中的延迟。对于连接两个相邻节点的每根传输线而言,该预定延迟量通常是固定的。向所测量的RX-TX延迟增加该预定延迟量,以产生从前一个节点的TX引脚处到当前节点的TX引脚处的总延迟。
[0075]—旦计算出每个节点的RX-TX延迟,就可以以两种方式之一分发信息。在一个实施例中,可以将在每个节点处计算出的RX-TX延迟分发到网络上其他所有的节点处(在步骤34中)。例如,可以使用数据通道向所有下游和上游节点发送每个单独计算出的RX-TX延迟。这使得每个节点能够通过合并归因于配置在源节点和当前节点之间的所有节点的单个RX-TX延迟来计算节点的累计的RX-TX延迟(Dacc)(在步骤36中)。
[0076]如下文所述,源节点是接收或生成源触发信号的节点(如图2中所示的节点O)。该源节点可以是主节点或从节点之一,通常由某个更高等级的软件指定。源触发节点下游的第N个节点的累积的RX-TX延迟被指定为RX-TX延迟_N。从源节点(如:图2中所示的节点O)下游的第一个节点(如:图2中所示的节点I)开始,网络上每个下游节点的累积的RX-TX延迟会增加。一旦计算出特定节点的累积的RX-TX延迟,会将归因于该节点的累积的RX-TX延迟存储于该节点内(如图3A中的步骤38中所示),供将来使用。
[0077]每个节点(从第一个节点开始)可以将其累积的RX-TX延迟传达到网络上的下一个下游节点(如图3A中的替代步骤37中所示),而不将每个节点的单个RX-TX延迟分配到其他所有网络节点。每个节点可以通过合并从上游节点处接受到的累积的RX-TX延迟和其自身唯一的RX-TX延迟来计算该节点自身累积的RX-TX延迟。例如,节点I (见图2)可以计算其RX-TX延迟,并将其传达到节点2。在接收到该延迟时,节点2可以通过合并从节点I接受到的RX-TX延迟(如:节点I的累积的RX-TX延迟)和其自身唯一的RX-TX延迟来计算累积的RX-TX延迟。然后,来自节点2的累积的RX-TX延迟可以传达到节点3,以此类推。在每个节点处,可以将归因于该节点的累积的RX-TX延迟存储于该节点内(在步骤38中),供将来使用。
[0078]一旦在每个节点中存储了累积的RX-TX延迟,该方法可以进入如图3B所示的触发同步阶段。在示例性实施例中,当源节点生成或接收到源触发信号(在步骤40中)时,触发同步阶段开始。然后,源节点测量源触发信号和源节点所发送的数据帧的预定字节的下一次出现之间的时间差(在步骤42中)。本文中将该时间差异称为“偏移值”,并标记为Dts。
[0079]在一个优选实施例中,预定字节可以是MOST数据帧的指定“触发字节”。例如,如果在MOST网络中实现图1所示的通信系统10,MOST数据帧的一个字节可以被指定为“触发字节”。在一些情况下,触发字节可以是MOST帧上被指定的字节,其只在本文所述的方法的触发同步阶段被启用。在其他时候,该触发字节可用于其常规功能。在一个示例中,可以将M0ST150帧的帧字节10指定为触发字节,因为其当前被指定为MOST NIC 20固件中的空闲字节。然而,触发字节不限于M0ST150帧的第10个字节,无论是否在MOST网络或其他经同步的网络中发送数据帧,该触发字节大体上可以占据数据帧的任何预定字节。
[0080]在一个实施例中,可以测量在源触发信号和源节点所传输的下一个MOST触发字节的开始处之间的Dts偏移值。如果在MOST触发字节之前接收到源触发信号,则源节点可以在相同的MOST触发字节之内将该Dts偏移值发送到下一个下游节点(在步骤46中)。然而,如果在MOST触发字节之后接收到源触发信号,则可以将在下一个数据帧的MOST触发字节之内的Dts值发送到下一个下游节点(在步骤46中),这样会通过少量延迟Dts值的发送而增加延时。在替代实施例中,可以测量在源触发信号和MOST触发字节的结束处之间的Dts偏移值,或测量在源触发信号和数据帧的某个其他预定字节之间的Dts偏移值。然而,通过总是要求发送紧跟着的触发字节内的Dts值,会进一步增加延时。
[0081]为了本公开之用,本文描述的Dts偏移值可以认为是“有效数据值”。一般而言,包含数据的有效数据值与非数据值是可区别的,非数据值可作为标识符、译码违例等在数据帧内被发送。在一个实施例中,只有在先前已经将“有效触发信号”发送到节点之后,才可以将Dts偏移值发送到下游节点。可以发送在数据帧的MOST触发字节内的有效触发信号,该有效触发信号可以包含指示下游节点在数据帧内存在有效触发信号的任何信息。该有效触发信号可以包括任何有效数据字节,例如:非零值。在发送该有效触发信号之后,可以在下一个MOST触发字节之内将Dts偏移值发送到下游节点。
[0082]在优选实施例中,通过使用在MOST触发字节之内的被发送的Dts偏移值(如:有效数据值)不仅向下游节点传送该Dts偏移值,而且向下游节点指示在数据帧内存在有效触发,从而高效地利用网络带宽。例如,在数据帧内没有待被发送的有效触发信号期间,可以发送在MOST触发字节内的非有效数据值(如:译码违例或全O串)。在图5所示的数据流60中示出这种情况。一旦源节点生成或接收到有效触发信号,可以发送在诸如图5中的数据流62和数据流64中所示的在下一个MOST触发字节内对应Dts偏移值的有效数据值。MOST触发字节包含有效数据值而不是非有效数据值的该事实指示下游节点在数据帧内存在触发信号。由于不需要分别传输Dts偏移值和有效触发的指示,有效减小了网络带宽。在围绕MOST网络传输之后,触发字节被停止穿过源节点,并且再次重复。如果在源节点处生成或接收到新的触发信号,会立即发送出在下一个数据帧上的该新触发信号。
[0083]如上文所述,优选地测量在源触发信号和源节点所接收的下一个MOST触发字节的开始处之间的Dts偏移值,以便可以在下一个MOST触发字节之内将该Dts偏移值向下游节点发送。然而,如图5所示,对Dts偏移值的测量通常取决于源触发信号的到来。如图5的数据流62中所示,如果源触发信号在数据帧的MOST触发字节之前到达源节点,则测量在该源触发信号和相同数据帧的MOST触发字节之间的Dts偏移值。另一方面,如图5的数据流64中所示,如果源触发信号在数据帧的MOST触发字节之后到达源节点,则测量在该源触发信号和下一个数据帧的MOST触发字节之间的Dts偏移值。在源触发信号在MOST触发字节期间到达的情况下(未示出),测量在该源触发信号和下一个数据帧的MOST触发字节之间的Dts偏移值。
[0084]回到图4,将源节点所生成的数据帧发送到网络上,并且由目的地节点接收该数据帧(在步骤48中)。当目的地节点检测到在所接收的数据帧的MOST触发字节之内的Dts偏移值(如:有效数据值)时,该改进的方法的事件同步阶段开始(在步骤50中)。发生上述情况时,目的地节点可以启动倒数计时器,该倒数计时器从预定值开始倒数(在步骤52中)。在一个实施例中,该预定值可以是MOST数据帧的帧尺寸的两倍(如:位数目的两倍)。例如,在M0ST50系统中,该预定值可以是2*(1024) = 2048,或者在M0ST150系统中,该预定值可以是2*(3072) = 6144。然而,应当注意,该预定值大体上可以是任何被视为合适的值。一旦计数值等于预定值减去Dts偏移值和存储于目的地节点之内的累积的RX-TX延迟的所合并的延迟时,目的地节点监测到该计数值(在步骤54中),并且在该目的地节点处生成本地触发信号(在步骤56中)。一旦生成了该本地触发信号,可以使用在目的地节点本地所生成的该触发信号将被耦合到该目的地节点的多媒体设备(或更具体地说,将在该多媒体设备之内发生的事件)与本地所生成的触发信号同步(在步骤58中)。
[0085]图3-图4所示的改进的方法通过将源触发信号与主时钟信号(通过Dts偏移值)同步和在一个或多个目的地节点处同时重新创建本地触发信号,提供在多个网络节点处的事件同步。可以通过补偿归因于在源节点和目的地节点之间的每个节点的唯一的RX-TX延迟,在每个目的地节点处同时生成触发信号。更准确地说,本文所述的方法使目的地节点能够在小的不确定度时间窗口之内大体相同的时间生成本地触发信号。该时间窗口确定了所生成的触发信号的精度,并且是两个因素的直接结果——第一是在源节点和目的地节点间每个节点处,由于在这些节点的RX点和TX点处的不同的时钟域而产生的RX-TX延迟测量的小的不确定度,第二是归因于网络上的抖动。
[0086]网络抖动是导致触发信号时序中大部分不确定度的原因。这种类型的抖动是低频抖动,可以被包括在每个网络节点之内的PLL跟踪。这意味着,在任意给定时刻,在网络上的不同节点处的瞬时抖动大体上是相同的值。这样,可以通过补偿网络抖动来去除触发信号时序中的大部分不确定度。一旦去除了网络抖动,剩余的不确定度仅归因于RX-TX延迟测量的精度。由于RX-TX延迟测量的不确定度很小(例如:在M0ST150系统中约6.5ns每节点),该不确定度在多数情况下可以忽略。
[0087]回到图3B,本文描述的方法的替代实施例通过在每次源节点生成或接收到触发信号时测量在源节点处的RX-TX延迟来补偿网络抖动。这可以意味着,为源节点所接收的每个数据帧测量RX-TX延迟,但是仅当源触发信号到达时使用该RX-TX延迟,或者仅当源触发信号到达时测量和使用该RX-TX延迟。通过确定在延迟估计阶段(如图3A中所示紧跟网络锁定条件的阶段)所计算的RX-TX延迟和当前所测量的RX-TX延迟的差异来计算在源节点处的抖动量的估计值。在计算出抖动值之后,源节点在跨越网络在MOST触发字节中发送所合并的Dts偏移值和抖动值(在步骤46中)之前,可以将抖动值加到Dts偏移值上(在图3B所示的可选的步骤44中)。在一些情况下(未示出),可以在下游节点中以相同方式计算抖动值,并且在将MOST触发字节之内的经更新的Dts+抖动值转发到下一个下游节点之前可以调节抖动值。
[0088]图6和图7是针对如何能利用本文所描述的方法在多个目的地节点处同时生成本地触发信号提供的两个不同示例。尤其是,图6和图7是时序图,示出在源节点O处源触发信号的到达,以及在每个目的地节点1-N处本地触发信号的同步生成。虽然在本发明的一些实施例中,节点1-N可以包括所有的目的地节点,但是,应当注意,在本发明的另一些实施例中,可以仅在目的地节点的选择子集处生成本地触发信号。
[0089]在图6所示的示范性时序图中,源触发信号在MOST触发字节到达Fl数据帧之前一小段时间到达源节点O处。该源节点O测量在源触发信号和Fl帧内的MOST触发字节的开始处之间的时间延迟(如:Dts偏移),并且跨越网络在相同的Fl帧的MOST触发字节之内发送该Dts偏移值。在目的地节点1-N中的每个节点处一检测到Dts偏移值时,目的地节点就启动倒数计时器,并且在一旦该计时器的计数值等于2*帧尺寸(或其他某个预定值)减去该Dts偏移值和存储于那个目的地节点之内的累积的RX-TX延迟的所合并的延迟时,生成本地触发信号。
[0090]在图6和图7中,将从源触发节点开始的每个下游节点的累积的RX_TX延迟指定为RX_TX延迟_1、RX_TX延迟_2、……RX_TX延迟_N。如上文所述,计算在节点的RX引脚处所接收的数据帧的固定点到在相同节点的TX引脚处所发送的数据帧的相同固定点之间的RX-TX延迟。一旦在特定节点处(如:节点2)计算出RX-TX延迟,可以通过合并归因于配置在源节点O和那个节点之间的所有网络节点的唯一的RX-TX延迟来计算那个节点的累积的RX-TX延迟(如=RX-TX延迟_2)。在一些实施例中,在计算累积的延迟时,可以将预定的延迟量加到RX-TX延迟中。该预定量代表在从前一个节点的TX引脚到当前节点的RX引脚之间的物理传输介质中的延迟量。
[0091]图6示出存储于每个目的地节点之内的累积的RX-TX延迟。尤其是,图6示出了在一个实施例中,如何能够计算特定节点(如:节点2的RX-TX延迟_2)在源节点O处的Fl数据帧的帧开始(“S0F”)处和在特定目的地节点处的Fl数据帧的SOF处之间的累积的RX-TX延迟。然而,应当注意,在本发明的另一些实施例中,可以以稍微不同的方式计算RX-TX延迟和累积的RX-TX延迟。
[0092]图7是另一个示范性时序图,示出如何能利用本文描述的方法在多个目的地节点处同时生成本地触发信号。然而,图7所示的时序图与图6所示的时序图在许多方面不同:
(I)在源节点处源触发信号的到达,(2)在源节点处Dts偏移值的测量和随后的Dts偏移值跨越网络的发送,和(3)在每个目的地节点处RX-TX延迟值的计算方式。下文将详细描述每一个方面的区别。
[0093]与图6所示的时序图不同,图7所示的时序图中的源触发信号在MOST触发字节到达Fl数据帧中的源节点O处之后的某个时间到达源节点O处。这使源节点O测量在源触发信号和在下一个数据帧内(如:在F2数据帧内)的MOST触发字节的开始处之间的时间延迟(如:Dts偏移),并且跨越网络在数据帧F2的MOST触发字节内传输该Dts偏移值。
[0094]除了上文所描述的区别之外,图7所示的时序图利用不同的标记或固定点来计算与每个目的地节点相关联的累积的RX-TX延迟。在图6中,计算在源节点O处的Fl数据帧的帧开始(“S0F”)处与在目的地节点1-N中的每个节点处的Fl数据帧的SOF处之间的累积的RX-TX延迟。在图7中,计算在源节点O所接收的特定数据帧(如:数据帧F2)中的MOST触发字节的开始处和目的地节点1-N所接收的相同的数据帧中的MOST触发字节的开始处之间的累积的RX-TX延迟。虽然图7可能暗示只使用包含有效数据值的MOST触发字节(如:包含数据帧F2中的Dts值的MOST触发字节)计算累积的RX-TX延迟,但是本领域技术人员会理解,如何能够替代地使用包含非有效数据值的MOST触发字节(如:F1数据帧中的MOST触发字节)来计算累积的RX-TX延迟。
[0095]现在已经参考图2-图7描述了用于在同步网络中在网络锁定条件发生后同步多个网络节点的方法的优选实施例。一般而言,该方法通过消除在每个网络节点处不可预测的相位延迟所导致的时序差异,在大体上相同的时间在一个或多个网络节点处生成本地触发信号。可以使用本地触发信号同步被耦合到网络的不同节点处的设备,更具体地说,同步发生在被耦合到不同网络节点的设备之内的事件。当所需要被生成的触发信号的频率不高于帧传输率时,本文描述的方法通常是适用的。此外,触发信号可以是异步于帧传输率的,并且不需要是周期性的。
[0096]在一些实施例中,可以在硬件、软件或硬件和软件的任何组合(如:固件)中实现本文描述的方法。然而,在优选实施例中,可以主要在硬件中实现该方法,以提供最小延迟。图8-图10示出可用于实现本文所描述方法的示范性硬件组件。然而,应当注意,也可以使用具有大体上相同功能的其他硬件和/或软件来替代图8-图10所示的示范性组件,而不背离本发明的范围。
[0097]图8示出示范性硬件组件,该示范性硬件组件可以被包括在所有的网络节点之内,以计算归因于单个网络节点的唯一的相位延迟。尤其是,图8示出延迟计算电路70的一个实施例,该延迟计算电路70可以被包括在每个网络节点内,用于在网络锁定条件发生后,确定归因于特定网络节点的唯一的相位延迟。如上文所述,唯一的相位延迟(本文中被称为RX-TX延迟)由数据帧的固定点在特定网络节点的接收(RX)引脚到相同网络节点的传输(TX)引脚之间经过所需的相位延迟量组成。
[0098]在图8所示的实施例中,延迟计算电路70包括计数器72,该计数器72在节点的RX引脚处接收到数据帧的固定点时被启动,当在节点的TX引脚处接收到相同的数据帧的固定点时被停止。一旦计数器72被停止,被包含在计数器72内的计数值(该计数值表示通过该节点的RX-TX延迟的估计)在被转发到第二存储设备76之前,被传输到第一存储设备74(如:缓冲器或寄存器)。
[0099]第二存储设备76存储与节点相关联的累积的相位延迟。如上文所述,可以用两种方式之一计算累积的相位延迟。在一个实施例中,可以跨越网络,将来自缓冲器74的RX-TX延迟发送到网络的其他所有节点。然后,每个节点可以通过给存储于其自身的缓冲器74内的RX-TX延迟加上跨越网络传输的来自配置在源节点和其自身之间的所有节点的RX-TX延迟,来计算其自身的累积的延迟。在另一个实施例中,每个节点(从源节点后的第一个节点开始)可以通过将从上游节点接收到的累积的相位延迟和存储于缓冲器74之内的其自身的RX-TX延迟合并来计算该节点的累积的相位延迟。在将累积的相位延迟存储于第二存储设备76之后,该节点可以跨越网络,将其累积的RX-TX延迟传输到下一个下游节点。
[0100]图9示出可以被包含在源节点之内以测量Dts偏移值的示范性硬件组件。尤其是,图9示出偏移计算电路80的一个实施例,该偏移计算电路80可以被包括在源节点之内,用于测量在源节点所接收的源触发信号和网络的主节点所生成和源节点所接收的数据帧的预定字节(如=MOST触发字节)之间的偏移值。
[0101]在图9所示的实施例中,偏移计算电路80包括计数器82,该计数器82在接收到源触发信号时被启动,并且在接收到数据帧的下一个MOST触发字节(或其他某个预定字节)的开始处时被停止。一旦计数器82被停止,被包含在计数器82内的MOST触发字节内的计数值(该值代表了在源触发信号和以网络的帧传输率所发送的数据字节之间的时间延迟或偏移)在在被转发到网络上之前,被传输到缓冲器(或寄存器)84。
[0102]在一些实施例中,偏移计算电路80可以包括抖动补偿电路86,用于测量并补偿网络抖动。为了补偿网络抖动,抖动补偿电路86可以配置成用于接收来自被包括在源节点内的第一存储设备74的多个唯一的相位延迟。尤其是,抖动补偿电路86可以配置成接收RX-TX延迟,该RX-TX延迟先前是源节点在网络锁定条件之后计算出的,该源节点在接收到/生成源触发信号时计算另一个RX-TX延迟。为了计算抖动值,抖动补偿电路86可以包括加法器或减法器,用于确定先前和当前所测量的RX-TX延迟之间的差异。一旦计算出抖动值,在跨越网络在MOST触发字节之内发送所合并的偏移值和抖动值之前,将该抖动值加到偏移值。
[0103]图10示出示范性硬件组件,该示范性硬件组件可以被包括在网络节点内以检测在所接收的数据帧的预定字节之内的偏移值,生成本地触发信号和将设备和/或事件与本地触发信号同步。如图10所示,触发检测电路90可以被包括在每个网络节点内,用于接收来自网络的数据帧和检测在所接收的一个数据帧的预定字节之内的偏移值(如:Dts偏移值)。在一个实施例中,触发检测电路90可以包括逻辑门,该逻辑门设计成确定预定字节(如:M0ST触发字节)是否包含非有效数据(如:全O、标识符或译码违例)或有效数据(如=Dts偏移值或所合并的Dts偏移和抖动值)。如果触发检测电路90确定数据帧的预定字节仅包含非有效数据,则该电路可以仅仅继续接收数据帧,并且监测被包含在那些帧之内的预定字节。
[0104]如果触发检测电路90确定数据帧的预定字节包含有效数据,则该触发检测电路90可以向倒数计时器92提供开始信号,用于从预定值开始倒数。同时,触发检测电路90可以启用Dts提取电路94,以将来自预定字节的Dts偏移值(如:有效数据)复制到寄存器中。然后,可以向加法器和/或减法器96提供该Dts偏移值,用于计算用于在每个网络节点处生成本地触发信号的公共时间标记。如上文所述和如图10所示,可以通过将Dts偏移值加给存储于每个节点之内的累积的相位延迟以产生所合并的延迟,再从预定值中减去所合并的延迟,来计算该公共时间标记。连同来自倒数计数器92的计数值一起,将来自加法器/减法器96的结果提供给触发信号生成器电路98。
[0105]一旦倒数计时器92的计数值等于加法器/减法器96所提供的计算结果,触发信号生成器电路98生成本地触发信号。在一个实施例中,触发信号生成器电路98可以包括:用于将计数值与计算结果进行比较并响应于该比较结果生成逻辑值的数字比较器,和用于响应于该逻辑值生成本地触发信号的选择设备(如:触发器或复用器)。例如,比较器可以生成逻辑高值以指示计数值等于计算结果。在接收到来自比较器的该逻辑高值时,选择设备可以在网络节点处生成本地触发信号。由于本文所述的方法补偿归因于每个网络节点的唯一的相位延迟,在每个网络节点处同时生成本地触发信号。
[0106]一旦在特定节点处生成了本地触发信号,可以向事件同步电路100提供该触发信号,用于将被耦合到该特定网络节点的设备或将发生在该设备之内的事件与所生成的触发信号同步。在一个实施例中,该设备可以包括一个或多个多媒体设备,例如但不限于:扬声器、话筒、相机、显示屏等。在一个实施例中,该事件可以包括,但当然不限于:时钟信号生成、输入/输出信号生成和数据采样。在一个实施例中,该同步电路可以包括逻辑,用于在接收到所生成的触发信号时,同步被耦合到特定网络节点的设备或发生在该设备之内的事件。
[0107]在一些实施例中,图8-图10所示的一个或多个硬件组件可以被具体化在单一单片基板上。例如,延迟计算电路、触发检测电路、倒数计时器和触发信号生成器电路可以被包括在被具体化在单一单片基板上的网络接口控制器(如图1所示的NIC 20)之内。然而,应当注意,图8-10所示的硬件组件不限于本发明所有实施例中的单一单片基板或网络接口控制器。在一些实施例中,同步电路也可以被具体化在包括NIC的单一单片基板上。在另一些实施例中,同步电路可以被具体化在被包括在每个多媒体设备内的分离的单片基板上。
[0108]对具有本公开益处的本领域内的技术人员而言,应当领会,相信本发明提供了改进的通信系统和方法,用于在网络内发生网络锁定条件之后同步多个网络节点。更具体地说,本发明提供了用于在多个网络节点中的每个节点处生成本地触发信号以将被耦合到网络节点的设备(或发生在该设备之内的事件)与该触发信号同步的装置。使用本文提供的装置,可以通过补偿源于多个网络节点中的每个节点的唯一的相位延迟,在多个网络节点中的每个节点处同时生成本地触发信号。这对先前的同步方法的提供了重大改进,先前的方法在每个网络节点处生成固定但不可预测的相位延迟量。鉴于本说明书,本发明各个方面的进一步修改和替代实施例对本领域技术人员而言是显而易见的。因此,所附权利要求旨在被解释为包括所有这些修改和变化,相应地,应当认为说明书和附图是说明性的而非限制意义的。
【权利要求】
1.一种用于在网络中网络锁定条件发生之后同步多个网络节点的方法,所述方法包括:通过补偿归因于所述多个网络节点中的每个节点的唯一的相位延迟,在所述多个网络节点中的每个节点处同时生成本地触发信号,其中,所述本地触发信号用于同步在所述多个网络节点中的每个节点处发生的事件。
2.如权利要求1所述的方法,其特征在于,进一步包括: 在网络锁定条件发生之后,在所述多个网络节点中的每个网络节点处计算所述唯一的相位延迟,其中,每个唯一的相位延迟由数据帧在网络节点的接收引脚到相同网络节点的发送引脚之间经过所需要的相位延迟量组成;以及 将累积的相位延迟存储于所述多个网络节点中的每个节点内,其中,通过合并归因于配置在网络的源节点和每个各自网络节点之间的网络节点的所述唯一的相位延迟,计算存储于所述多个网络节点中的每个节点内的所述累积的相位延迟。
3.如权利要求2所述的方法,其特征在于,在计算所述唯一的相位延迟的步骤之后,并且在存储累积的相位延迟的步骤之前,所述方法进一步包括: 将在所述多个网络节点中的每个节点处所计算的所述唯一的相位延迟发送到所有的网络节点;和 通过合并归因于配置在所述源节点和每个各自网络节点之间的网络节点的所述唯一的相位延迟,计算在所述多个网络节点中的每个节点处的所述累积的相位延迟。
4.如权利要求2所述的方法,其特征在于,在计算所述唯一的相位延迟的步骤之后,并且在存储累积的相位延迟的步骤之前,所述方法进一步包括将在每个网络节点处所计算的所述累积的相位延迟发送到下一个下游网络节点。
5.如权利要求2所述的方法,其特征在于,进一步包括: 测量在所述源节点所接收或在所述源节点内生成的源触发信号和网络的主节点所生成的数据帧的预定字节之间的偏移值;和 跨越网络将所述偏移值发送到所述多个网络节点中的每个节点。
6.如权利要求5所述的方法,其特征在于,在所述测量步骤之后,并且在所述发送步骤之前,所述方法进一步包括:将在所述源节点处所计算的抖动值加到所述偏移值;以及跨越网络将经合并的抖动值和偏移值发送到所述多个网络节点中的每个节点。
7.如权利要求5所述的方法,其特征在于,将在所述数据帧的预定字节内的所述偏移值发送到所述多个网络节点中的每个节点。
8.如权利要求7所述的方法,其特征在于,进一步包括: 在所述多个网络节点中的每个节点处接收所述主节点所发送的数据帧; 其中,如果特定网络节点检测到所接收的一个数据帧的所述预定字节之内的所述偏移值,则所述特定网络节点所执行的所述方法进一步包括: 从预定值开始启动倒数计时器; 一旦所述倒数计时器的计数值等于所述预定值减去所述偏移值和存储于所述特定网络节点内的所述累积的相位延迟的经合并的延迟,就生成本地触发信号;以及 将在所述特定的网络节点处的事件与所述本地触发信号同步。
9.如权利要求8所述的方法,其特征在于,在发送所述偏移值的步骤之前,所述方法包括跨越网络将有效触发的指示发送到所述多个网络节点中的每个节点,并且在检测所述偏移值的步骤之前,所述方法包括检测所述有效触发的指示。
10.如权利要求1所述的方法,其特征在于,所述方法使在所述多个网络节点中的每个节点处发生的事件能够与公共时间标记同步。
11.如权利要求10所述的方法,其特征在于,所述事件包括在所述多个网络节点中的每个网络节点处时钟信号的生成。
12.如权利要求10所述的方法,其特征在于,所述事件包括在所述多个网络节点中的每个网络节点处的数据采样。
13.如权利要求10所述的方法,其特征在于,所述事件包括在所述多个网络节点中的每个网络节点处输入/输出(I/o)信号的生成。
14.如权利要求13所述的方法,其特征在于,所述I/O信号用于同步被耦合到所述多个网络节点中的每个节点处的显示屏。
15.如权利要求13所述的方法,其特征在于,所述I/O信号用于同步被耦合到所述多个网络节点中的每个节点处的相机的图像捕捉。
16.如权利要求13所述的方法,其特征在于,所述I/O信号用于同步提供给被耦合到所述多个网络节点中的每个节点处的扬声器的音频信号。
17.一种包括在网络中互连的多个网络节点的通信系统,所述通信系统包括: 源节点,所述源节点配置成用于: 计算在源触发信号和所述源节点所接收的数据帧的预定字节之间的偏移值;以及 跨越网络发送在所述数据帧的所述预定字节内的所述偏移值;以及 通过传输线网络被耦合到所述源节点的多个网络节点,其中,所述多个网络节点配置成用于: 接收所述源节点所发送的数据帧; 检测在所接收的一个数据帧的所述预定字节之内的所述偏移值;以及 生成用于同步被耦合到所述多个网络节点的设备的本地触发信号,其中,通过补偿归因于所述多个网络节点中的每个节点的唯一的相位延迟,在所述多个网络节点中的每个节点处同时生成所述本地触发信号。
18.如权利要求17所述的通信系统,其特征在于,所述多个网络节点和所述源节点中的每个节点包括延迟计算电路,所述延迟计算电路包括: 计数器,所述计数器用于在网络锁定条件发生之后,确定归因于特定网络节点的唯一的相位延迟,其中,所述唯一的相位延迟由数据帧在所述特定网络节点的接收引脚到所述特定网络节点的发送引脚之间经过所需的相位延迟量组成; 第一存储设备,所述第一存储设备用于存储归因于所述特定网络节点的所述唯一的相位延迟;以及 第二存储设备,所述第二存储设备用于将累积的相位延迟存储于所述特定的网络节点内,其中,通过合并归因于配置在所述源节点和所述特定网络节点之间的所有网络节点的所述唯一的相位延迟,计算所述累积的相位延迟。
19.如权利要求18所述的通信系统,其特征在于,所述源节点进一步包括配置成用于补偿网络抖动的抖动补偿电路,所述补偿网络抖动是通过: 计算抖动值; 将所述抖动值加到所述源节点所计算的所述偏移值,以生成经合并的偏移值和抖动值;和 代替发送所述偏移值,跨越网络发送在所述数据帧的所述预定字节内的所述所合并的偏移值和抖动值。
20.如权利要求18所述的通信系统,其特征在于,所述多个网络节点中的每个节点进一步包括: 触发检测电路,所述触发检测电路用于检测在所接收的一个数据帧的所述预定字节之内的所述偏移值; 倒数计时器,所述倒数计时器用于一旦所述触发检测电路检测到所述偏移值,就从预定值开始倒数; 触发信号发生器电路,所述触发信号发生器电路用于一旦所述倒数计时器的计数值等于所述预定值减去所述偏移值和存储于所述特定网络节点的所述第二存储设备内的所述累积的相位延迟的经合并的延迟,就生成本地触发信号;和 同步电路,所述同步电路用于将被耦合到所述特定网络节点的设备与所述本地触发信号同步。
21.如权利要求20所述的通信系统,其特征在于,所述触发检测电路包括配置成用于检测在所述预定字节内的有效数据位的逻辑门。
22.如权利要求21所述的通信系统,其特征在于,所述有效数据位对应所述偏移值。
23.如权利要求21所述的通信系统,其特征在于,所述有效数据位对应所述偏移值加抖动值,所述抖动值由所述源节点生成,并且所述抖动值连同在所述预定字节内的所述偏移值一起被发送。
24.如权利要求20所述的通信系统,其特征在于,进一步包括:加法器,所述加法器用于生成所述偏移值和所述累积的相位延迟的经合并的延迟;和减法器,所述减法器用于从所述预定值中减去所述经合并的延迟。
25.如权利要求20所述的通信系统,其特征在于,所述预定值大体上等于所述源节点所发送的所述数据帧的帧尺寸的两倍。
26.如权利要求20所述的通信系统,其特征在于,所述延迟计算电路、触发检测电路、倒数计时器和触发信号生成器电路中的每个被具体化在包括网络接口控制器的单一单片基板上。
27.如权利要求20所述的通信系统,其特征在于,所述同步电路被具体化在被包括在所述设备内的分离的单片基板上。
28.如权利要求20所述的通信系统,其特征在于,所述同步电路被具体化在包括所述网络接口控制器的单一单片基板上。
29.如权利要求20所述的通信系统,其特征在于,所述设备包括多媒体设备。
30.如权利要求20所述的通信系统,其特征在于,从包括扬声器、话筒、相机和显示屏的组中选择所述设备。
【文档编号】H04J3/06GK104396164SQ201380029954
【公开日】2015年3月4日 申请日期:2013年6月12日 优先权日:2012年6月15日
【发明者】S·I·阿克哈尔, R·穆勒 申请人:微芯片技术股份有限公司