具体实施方式
本发明有利地提供了一种用来在数据网络中同步终端时钟的方法和系统。虽然在此关于在分组网络中同步从终端时钟到主终端时钟对本发明不同实施例进行了描述,但是,本发明的特定实施例不应该被看作对本发明范围的限制。获悉本发明教导的本领域熟练技术人员应该理解到,本发明的原理可以有利地应用于基本上任何同步终端时钟的网络。
图1显示了根据本发明实施例包括时钟同步分组网络的高级框图。图1分组网络100示例性地包括一个主终端1101、三个从终端1102-1104,和非阻断交换机115。每个终端包括时钟,其中主终端1101包括参考主时钟1201,每个从终端1102-1104包括从时钟产生器1202-1204。主终端进一步包括参考同步产生器140和微控制器1251,和每个从终端1102-1104进一步包括各自的微控制器1252-1254。在根据本发明的图1分组网络100中,为了尽可能地简化在网络中的数据交换和任意的电路装置,从终端1102-1104的从时钟1202-1204同步到主终端1101的主参考时钟1201。如图1所示,每个主终端1101和从终端1102-1104进一步包括各自的网络接口控制器1301-1304。虽然图1的分组网络100示例性地包括一个主终端和多个从终端,但是,在本发明的可选实施例中,本发明的原理可以应用于包括多个类似终端的网络中,在该网络中,其中一个终端被选择作为具有主时钟的主终端。
图1的非阻断交换机115在现有技术中是已知的,并且实质上是具有足够跨过它的路径以便在所接收的数据分组在转换到目的接收机之前无需缓存的交换机。在图1分组网络100的终端1101-1104之间的互连是通过非阻断交换机115来完成的,在此不对其做详细描述。
图2显示了适用于图1分组网络100的每个终端1101-1104的网络接口控制器130实施例的高级框图。由于终端1101-1104的每个接口控制器1301-1304基本上都相同,所以图2的网络接口控制器130应该被认为代表图1分组网络100的每个接口控制器1301-1304。图2的网络接口控制器130示例性包括发射部分和接收部分。图2网络接口控制器130的发射部分示例性地包括发射同步触发产生器210、发射缓冲器管理器/DMA215、发射数据队列(示例为先入先出(FIFO)存储器)220、和发射MAC225。图2网络接口控制器130的接收部分示例性地包括接收MAC230、接收缓冲器管理器/DMA235、接收数据存储器(示例为先入先出(FIFO)队列)240、同步滤波器245、和接收同步触发产生器250。图2的网络接口控制器130进一步包括网络接口控制器的发射部分和接收部分共用的总线接口260和计数器270。网络接口控制器130的接收部分进一步包括用来根据传统协议识别所接收的异步数据并操作所接收的数据的接收IP滤波器275。
正如前面所公开的,在图1的分组网络中,主终端1101的时钟被提供作为参考主时钟1201。该时钟供应可以是内部时钟或连接到置于主终端1101外部的总线接口260的时钟。此外,出现在每个从终端1102-1104称作从时钟1202-1204的时钟供应也可以是内部时钟或外部时钟。根据本发明,从终端1102-1104的从时钟1202-1204响应于来自例如至少一个从终端1102-1104的触发信号从主终端1101接收同步数据以便请求从终端1102-1104的从时钟120可以同步到主终端1101的参考主时钟1201。
在图1的分组网络100中,来自参考同步产生器140的同步开始信号定义了用于同步从终端1102-1104时钟到主终端1101的主时钟的同步时间帧(下面详细描述)的开始时间。一旦从参考同步产生器140接收到开始信号,主终端1101的计数器270就被设定到已知的位置(即,主终端的计数器被复位)并开始计数参考主时钟1201的时钟脉冲。当主终端的计数器270计数了预定数量的时钟脉冲时,主终端1101的计数器就发送信号到主终端的发射同步触发产生器210来产生一个触发,该触发被从发射同步触发产生器210传输到发射缓冲器管理器/DMA 215来使得具有存储在发射数据FIFO220(示例地标记为发射数据FIFO_sync)的特定位置的同步头部的数据分组通过TX MAC225发送到例如第一从终端1102的其中一个从终端。第一预定数量的时钟脉冲定义了第一同步时间帧的结束和第二同步时间帧的开始。由网络接口控制器130发射的其它数据被存储在专门用于该发射的片断的发射数据FIFO 220。
当主终端的计数器270计数第二预定数量的时钟时,主终端1101的计数器就发送第二信号到主终端的发射同步触发产生器210来产生一个触发,该触发被从发射同步触发产生器210传输到发射缓冲器管理器/DMA215来使得具有同步头部的数据分组通过TX MAC 225传输到例如第二从终端1103的另一个从终端。第二预定数量的时钟脉冲定义了第二同步时间帧的结束和第三同步时间帧的开始。当主终端的计数器270计数第三预定数量的时钟脉冲时,主终端1101的计数器就发送信号到主终端的发射同步触发产生器210来产生一个触发,该触发被从发射同步触发产生器210传输到发射缓冲器管理器/DMA215以使得具有同步头部的数据分组通过TX MAC225发射到例如第三从终端1104的另一个从终端。第三预定数量时钟脉冲定义了第三同步时间帧的结束。由主终端1101的计数器270计数的预定计数次数可以由用户来定义,或是可以由主终端1101依据系统所需的时钟精确度进行调整的动态参数(即,在同步时间帧中计数的主时钟脉冲越多,在主时钟和从时钟之间的同步精确度就越高)。除了了同步分组之外,各自的确定同步时间帧也被传输到目的从终端。
同样,当主终端的计数器270如上所述那样计数预定数量的时钟脉冲时,主终端1101的接收同步触发产生器250响应于发射的同步分组产生一个触发,该触发被传输到接收缓冲器管理器/DMA 235来通知接收缓冲器管理器/DMA 235将从从终端接收数据包。
例如,当第一从终端1102接收到具有同步头部和同步时间帧的数据分组时,第一从终端1101的同步滤波器245就确定已经从主终端1101接收到具有同步头部和同步时间帧的数据分组。作为响应,第一从终端1102的计数器270被设定到已知位置(即,计数器270被复位)。然后,第一从终端1102的计数器270计数其从时钟1202在等于各自同步时间帧的时间周期内的时钟脉冲,该同步时间帧,例如第一同步时间帧,是从来自主终端1101发射中恢复出的。在完成第一同步时间帧时,计数器270停止计数并将计数信息传输到并存储于第一从终端1102的发射数据FIFO 220。然后,第一从终端1102的计数器270就传输一个信号到其发射同步触发产生器210来产生一个触发,该触发被从发射同步触发产生器210传输到发射缓冲器管理器/DMA 215来使得具有计数信息的数据分组通过第一从终端TX MAC 225发射到主终端1101。
从第一从终端1102发射回的数据分组被主终端1101接收,然后主终端1101的微控制器1251使用所接收的数据分组来确定数据被发射到第一从终端1102并从第一从终端1102接收回的往返行程延迟时间。这样,就确定了数据被从主终端1101发射到第一从终端1102的等待时间。然后,主终端1101使用所确定的相对往返行程延迟时间确定第一从终端1102的偏移,并将各自的偏移发射到第一从终端1102以便第一从终端1102和主终端1101具有相同的时间参考点。
分组网络100的其它从终端、第二从终端1103和第三从终端1104的往返行程延迟时间以基本上相同的方式确定。例如,如上所述,在主终端1101的参考主时钟1201第二预定数量计数脉冲之后,主终端1101的计数器270发送信号到产生触发信号的主终端1101的发射同步触发产生器210,该触发信号被从发射同步触发产生器210传输到发射缓冲器管理器/DMA215以使得具有同步头部的数据分组通过TXMAC 215发射到第二从终端1103。除了同步分组之外,各自的确定同步时间帧也被传输到第二从终端1103。如前面所述的那样,来自计数器270的信号也被发送到主终端1101的接收同步触发产生器250,并从接收同步触发产生器250发送一个触发到接收缓冲器管理器/DMA235来通知接收缓冲器管理器/DMA 235将从第二从终端1103接收数据包。
当第二从终端1103接收到具有同步头部和第二同步时间帧的数据分组时,第二从终端1103的同步滤波器245就确定已经接收到具有同步头部和同步时间帧的数据分组。作为响应,第二从终端1103的计数器270被设定到已知位置(即,计数器270被复位)。然后,第二从终端1103的计数器270计数其从时钟1203在等于各自同步时间帧的时间周期内的时钟脉冲,该同步时间帧,例如第二同步时间帧,是从来自主终端1101发射中恢复出的。在完成第二同步时间帧时,计数器270停止计数并将计数信息传输到并存储于第二从终端1103的发射数据FIFO 220。然后,第二从终端1103的计数器270就传输一个信号到其发射同步触发产生器210来产生一个触发,该触发被从发射同步触发产生器210传输到发射缓冲器管理器/DMA 215来使得具有计数信息的数据分组通过TX MAC 225发射到主终端1101。
与前面一样,从第二从终端1103发射回的数据分组被主终端1101接收,在此,主终端1101的微控制器1251使用所接收的数据分组来确定数据分组被发射到第二从终端1103并从第二从终端1103接收回的往返行程延迟时间。这样,就确定了数据被从主终端1101发射到第二从终端1103的等待时间。然后,主终端1101使用所确定的相对往返行程延迟时间确定第二从终端1103的偏移,并将各自的偏移发射到第二从终端1103以便每个第二从终端1103和主终端1101具有相同的时间参考点。根据本发明的往返行程延迟时间和对于分组网络的每个从终端的偏移基本上是以相同的方式使用各自的同步时间帧确定的。往返行程延迟测量和从终端1102-1104的偏移典型地只需要执行一次,虽然在本发明的可选实施例中,网络状态是变化的,但是往返行程延迟测量可以例如周期性地由主终端执行,或可以由主终端响应于来自至少其中一个从终端的触发信号来执行。
图3显示了适用于图1分组网络100的主终端1101和从终端1102-1104的微控制器实施例的高级框图。由于主终端1101和从终端1102-1104的每个微控制器1251-1254基本上相同,所以图3的微控制器125应该被看作图1分组网络的主终端1101和从终端1102-1104的每个微控制器1251-1254的代表。图3的微控制器125包括处理器310和用来存储信息、算法和控制程序的存储器320。处理器310与传统支持电路330协同工作,例如,电源、时钟电路、高速缓冲存储器等以及有助于执行存储于存储器320中的软件例程的电路。这样,应该预料到,在此作为软件处理讨论的某些处理步骤可以在硬件内实现,例如,与处理器310协同工作来执行各种步骤的电路。微控制器125还包含构成在与微控制器125通信的各种功能单元之间的接口的输入输出电路340。
虽然图3的微控制器125显示为被编程执行根据本发明的各种控制功能的通用计算机,但是微控制器125的处理可以在硬件中实施,例如,专用集成电路(ASIC)。这样,在此所描述的处理步骤目的在于宽泛地解释被等同地由软件、硬件或其组合来执行。
除了确定每个从终端的往返行程延迟时间之外,从每个从终端1102-1104接收的初始数据分组被主终端1101的微控制器1251用来比较从时钟状态(即,每个从终端各自计数器的计数)和主时钟状态(即,在每个各自同步时间帧内主终端1101的计数器的计数)以确定在主终端1101的参考主时钟1201和从终端1102-1104的各自从时钟1202-1204之间的偏移。例如,当主终端1101响应于同步数据分组从第一从终端1102接收回数据分组和例如由主终端1101如上所述那样发送到第一从终端1102的第一同步时间帧时,从第一从终端1102返回的数据分组包含第一从终端1102的计数器状态信息(即,所计数的从时钟脉冲数)。主终端1101的微控制器1251比较第一从终端1102的计数器状态(即,时钟脉冲数)和主终端1101的计数器,并确定表示第一从终端1102的从时钟的状态的第一从终端1102计数器偏移考虑为第一从终端1102确定的往返行程延迟时间的参考主时钟1201有多远。
更具体来说,在本发明的一个实施例中,来自第一从终端1102的从时钟信息相比于各自同步时间帧的主时钟信息,例如,上述的第一同步时间帧。第一从终端1102的从时钟代表脉冲被偏移与各自确定的往返行程延迟时间成比例的量,以便在第一同步时间帧期间的主时钟1201的计数时钟脉冲和在第一同步时间帧期间的第一从终端1102的计数时钟脉冲具有相同的时间参考点。然后,比较主时钟1201的时钟脉冲相位和第一从终端1102的时钟脉冲相位。如果相位偏移,那么主终端1101的微控制器1251就确定并记录第一从终端1102的从时钟1202的相位偏移量。接着,将从第一从终端1102接收的计数时钟脉冲偏移与由主终端1101确定的偏移相等的量。然后,在第一同步时间帧期间所计数的主时钟1201的时钟脉冲数与在第一同步时间帧期间由第一从终端1102的计数器所计数的从时钟的时钟脉冲数进行比较。如果时钟脉冲数不同,主终端1101的微控制器1251就确定并记录第一从终端1102的从时钟1202的频率偏移量。然后,主终端1101的微控制器1251确定包含相位偏移和频率偏移的同步信号来发送到第一从终端1102。一旦从主终端1101接收到该同步信号,第一从终端1102的微控制器1252就产生用来调整从时钟1202一个与由主终端1101产生的同步信号成比例的量来同步第一从终端1102的从时钟1202到主终端1101的参考主时钟1201的控制信号。剩余从终端1103-1004的从时钟1203-1204以基本上相同的方式同步于主终端的主时钟1201,但使用在各自同步时间帧期间记录的从终端1103-1104的从时钟信息。
虽然上述实施例显示了具有定制用来确定同步信号来同步从终端的时钟到主终端的主时钟的步骤的特定方法,但是该特定实施例不应该被看作限制本发明的范围。获悉本发明教导的本领域熟练技术人员应该理解到,在本发明的原理内可以实施各种其它方法和过程来确定在至少两个时钟信号之间的相位偏移和频率偏移。而且,虽然在上面描述的本发明的实施例中描述了从时钟被偏移特定量来同步从终端的从时钟到主终端的主时钟,但是在本发明的原理内,可以增加或降低从终端的从时钟速率来同步从终端的从时钟到主终端的主时钟。
在本发明的实施例中,为了后续同步分组网络的从终端的从时钟到主终端的主时钟(即,由不是从主终端1101到从终端1102-1104具有同步头部和同步时间帧的数据分组的初始传输的传输所开始的同步),每个从终端1102-1104的各自计数器适用于在各自预定计数次数之后产生信号,该信号可操作地使得从终端1102-1104的各自发射机同步触发产生器产生触发信号。来自各自发射机同步触发产生器的触发信号被传输到各自发射缓冲器管理器/DMA以使得具有同步头部的各自数据分组被从各自一个从终端1102-1104在由各自计数器确定的各自时间间隔期间发射到主终端1101。例如,在预定计数次数之后,第一从终端1102的计数器产生被传输到第一从终端1102的发射机同步触发产生器210的信号。传输到发射机同步触发产生器的信号使得第一从终端1102的发射机同步触发产生器产生一个触发信号,该信号被传输到发射缓冲器管理器/DMA 215从而使得存储在发射数据FIFO320中具有同步头部的数据分组被通过第一从终端1102的TXMAC 225发射到主终端1101。如前面所公开的那样,第一从终端1102的接收同步触发产生器250也产生触发,并且该触发被传输到接收缓冲器管理器/DMA 235来通知接收缓冲器管理器/DMA 235将响应于所发射的同步分组从主终端1101接收数据包。由从终端1102-1104的各自计数器计数实施用来开始同步的预定数量的计数可以由用户定义,或可以是例如由各自的微控制器依据系统所需的时钟精确度调整的动态参数(即,开始同步的计数的预定次数越少,执行同步过程就越频繁)。此外,由从终端1102-1104的各自计数器计数实施用来开始同步的各自预定计数次数可以在系统生命周期期间被调整来更频繁地开始执行同步而系统被设定执行更少的同步。
一旦接收到具有同步头部的数据分组,主终端1101的同步滤波器245就确定已经接收到具有同步头部的数据分组。作为响应,一旦接收到来自参考同步产生器140的信号,主终端1101的计数器270就被设定到已知位置(即,计数器270被复位)。如前面所公开的那样,来自参考同步产生器的接收信号定义了同步时间帧的开始。然后,主终端1101的计数器270开始计数参考主时钟1201的时钟脉冲。当主终端的计数器270计数预定数量的时钟脉冲时,主终端1101的计数器就发送信号到主终端的发射同步触发产生器210来产生一个触发,该触发被从发射同步产生器210传输到发射缓冲器管理器/DMA 215以使得具有同步头部的数据分组被通过TX MAC225发射到第一从终端1102。如先前所公开的那样,第一预定数量的时钟脉冲定义了同步时间帧的结束。除了同步分组之外,同步时间帧也被传输到第一从终端1102(即,开始时钟同步的从终端)。
当第一从终端1102接收到具有同步头部和同步时间帧的数据分组时,第一从终端1102的同步滤波器245就确定已经从主终端1101接收到具有同步头部和同步时间帧的数据分组。作为响应,第一从终端1102的计数器270被设定到已知位置(即,计数器270被复位)。然后,第一从终端1102的计数器270计数其从时钟1202在等于各自同步时间帧的时间周期内的时钟脉冲,该同步时间帧是从来自主终端1101发射中恢复出的。在完成第一同步时间帧时,计数器270停止计数并将计数信息传输到并存储于第一从终端1102的发射数据FIFO220。然后,第一从终端1102的计数器270就传输一个信号到其发射同步触发产生器210来产生一个触发,该触发被从发射同步触发产生器210传输到发射缓冲器管理器/DMA 215来使得具有计数信息的数据分组通过TX MAC 225发射到主终端1101。
接着,如上所述的那样,同步过程继续初始同步过程。简而言之,上面公开的后续同步过程的例子规定来自从终端1102-1104的任何一个的触发信号(即,在预定数量计数之后来自各自从终端的各自同步分组的传输)是可操作来使得本发明的同步过程如上面所公开的那样发生来开始同步过程的。然而,应该注意,在本发明的可选实施例中,可以实施多帧触发。更具体来说,为了说明和适应在根据本发明的网络中有可能发生的不同数据速率,从终端的发射同步产生器和接收同步产生器可以适应于每隔一次到达预定计数次数来产生一个触发,而不是每次都产生。即,从终端的发射同步产生器和接收同步产生器可以适用于在各自计数器已经计数预定计数数量一定次数之后产生触发(而不是每次计数预定计数数量都产生触发)。更进一步,一些从终端可以配置工作于多帧基础上,而其它的可以配置工作于单个帧的基础上。
在本发明的可选实施例中,为了后续同步分组网络的从终端的从时钟到主终端的主时钟(即,由不是从主终端1101到从终端1102-1104具有同步头部和同步时间帧的数据分组的初始传输的传输所开始的同步),由参考同步产生器140产生的开始脉冲被周期性地重复以便从终端1102-1104的从时钟1202-1204周期性地同步于主终端1101的参考主时钟1201。更具体来说,上面所公开的本发明的开始同步过程可以根据由参考同步产生器140确定的同步时间表和开始脉冲的发射(即,第一同步时间帧的开始)周期性地重复(即,除了确定每个从终端的往返行程延迟时间)。由参考同步产生器140产生的开始脉冲的重复周期是由用户确定的动态参数,其至少依赖于特定网络或系统所需的时钟同步的精确度。
虽然前面的叙述定位于本发明的各种实施例,但是在不脱离本发明的基本范围的情况下,可以设计出本发明的其它和进一步实施例。因此,本发明的合适范围应用根据下面的权利要求书来确定。