This invention relates generally to the field of network communications, and more particularly to clock synchronization for Circuit Emulation Service.
Circuit Emulation Service (“CES”) allows time division multiplexing (“TDM”) services such as DS-n and E-n circuits to be transparently extended across a packet network. With circuit emulation over IP, for example, TDM data received from an external device at the edge of an Internet Protocol (“IP”) network is converted to IP packets, sent through the IP network, passed out of the IP network to its destination, and reassembled into a TDM bit stream. One application of CES is the interconnection of enterprise private telephone networks at different sites. For example, CES over a packet network can be used to connect two private branch exchanges (“PBXs”) on two different campuses without having packet transport capabilities on the PBXs themselves. This inter-working allows voice traffic between the two campuses to use a packet network backbone instead of leased TDM lines, and also allows voice and data traffic to use the same packet network.
In order for CES to function properly it is desirable to achieve the same clock in both the transmitting and receiving ends of a TDM circuit from end-to-end such that, for example, the T1 stream of a downstream PBX transmits with the same clocking characteristics as the T1 stream of the upstream PBX. Known clocking techniques include both synchronous and asynchronous clocking modes, of which the asynchronous clocking modes include Differential Clock Recovery, Independent Clocking, Clock Recovery using Simple Timestamps, Adaptive Buffer-Fill-based Clock Recovery, and Adaptive Packet Inter-arrival Time Averaging-based Clock Recovery.
In the timestamp-based technique for clock synchronization, a master periodically sends explicit time indications or timestamps to a slave to enable the slave to synchronize its local clock to the transmitter's clock. This synchronization strategy allows multiple slaves, for example in a broadcast or point-to-multipoint communication scenario, to synchronize their clocks to the master. The master clock could consist essentially of an oscillator and a pulse counter. The oscillator issues periodic pulses that constitute the input to the pulse (timestamp) counter. The output of the counter represents the master clock signal and is incremented by a fixed amount at each pulse. Samples of master clock signals are communicated to the slave as timestamps. A receiving TDM terminal node employs an adaptive timing technique to reconstruct the timing signal of the transmitting TDM terminal from the timestamps. This is commonly done using a PLL that slaves the receiver clock to a transmitter clock. The PLL is able to process the transmitted timestamps to generate timing signal for the receiver. The purpose of the PLL is to estimate and compensate for the frequency drift occurring between the oscillators of the transmitter clock and the receiver clock. However, the presence of packet delay variation jitter and packet losses can affect the performance of the clock estimation/compensation process, making the transmitter clock appear faster or slower than it actually is, and ultimately, causing the propagation of some residual jitter up to the receiver clock signal.
In accordance with one embodiment of the invention, apparatus for synchronizing a local clock at a receiver with a clock at a transmitter, where indications of transmitter clock signals are communicated to the receiver as timestamps, comprises: a phase detector operable to compute an error signal indicative of differences between the timestamps and a local clock signal; a loop filter operable to reduce jitter and noise in the error signal, and thereby produce a control signal; a digital oscillator operable to oscillate at a frequency based at least in-part on the control signal, and thereby produce a digital oscillator output signal; and a timestamp counter operable to count pulses in the digital oscillator output signal, and output the local clock signal.
In accordance with another embodiment of the invention, a method for synchronizing a local clock at a receiver with a clock at a transmitter, where indications of transmitter clock signals are communicated to the receiver as timestamps, comprises the steps of: computing, with a phase detector, an error signal indicative of differences between the timestamps and a local clock signal; reducing jitter and noise in the error signal with a loop filter, thereby producing a control signal; producing a digital oscillator output signal with a digital oscillator operable to oscillate at a frequency based at least in-part on the control signal; and counting pulses in the digital oscillator output signal with a timestamp counter, thereby producing the local clock signal.
The all digital phase locked loop (“ADPLL”) offers advantages relative to currently known techniques. For example, the ADPLL alleviates some of the problems associated with its analog counterpart such as sensitivity to dc drifts and component saturations, difficulties encountered in building higher order loops, the need for initial calibration and periodic adjustments. Further, the ADPLL is relatively inexpensive to fabricate, is more reliable, smaller in size, and requires relatively few initial adjustments. Consequently, the ADPLL facilitates performance of elaborate real-time processing on digital samples.
a illustrates a functional block diagram of a DDS employed as the DO.
b illustrates the signals at the various stages of the DDS.
a illustrates phase output from the phase accumulator.
b illustrates sine output from the sine computation function.
a and 11b are flow diagrams that illustrate adaptive re-computation of the nominal control word of the DO.
A block diagram of a clock synchronization technique based on timestamps is shown in
An all digital phase locked loop (“ADPLL”) (114) in a clock (116) at the receiver (100) uses the timestamps (110) as a reference signal to synchronize the receiver clock (116) with the transmitter clock (104). The ADPLL has four main components: a phase detector (118), a loop filter (120), a digital oscillator (“DO”) (122), and a timestamp counter (124). The phase detector computes an error signal as the difference between the inputted reference signal (timestamps (110)) and an output signal of the timestamp counter (124). The error signal is passed on to the loop filter (120), which is operable to reduce or eliminate possible jitter and noise in the input signal. The DO (122), which may have a center frequency, oscillates at a frequency which is determined by the output signal of the loop filter, and produces periodic pulses. The timestamp counter produces the local clock signal, which is synchronized with the transmitter clock, from the periodic pulses.
Referring now to
In view of the definitions above, the clock recovery problem is formulated as follows: while filtering out delay variation, the receiver clock frequency {circumflex over (f)}s=1/{circumflex over (τ)}s is controlled so that the receiver clock measurements ΔR(n) are equal to the transmitter clock timestamp differences ΔT(n). The difference between ΔT(n) and ΔR(n) forms an error signal, e(n)=ΔT(n)−ΔR(n). This error signal is filtered by the loop filter (120) of the ADPLL, the output of which controls the frequency {circumflex over (f)}s=1/{circumflex over (τ)}s of the DO of the receiver clock. The function of the ADPLL is to control the receiver clock frequency {circumflex over (f)}s; such that the error e goes to zero, at which point the receiver frequency equals the transmitter frequency fs. The loop filter (120) is a low-pass filter. The ADPLL at the receiver therefore takes ΔT(n) as its reference input and generates ΔR(n) as its output, i.e., the controlled process.
Referring again to
Referring now to
An alternative DNCO (700) is illustrated in
Referring to
or
For small quantization errors, for example, Δφ≦7.2° requires that Nnom≧50. Between samples, the phase error changes in a linear manner at a rate proportional to the difference between the input frequency and the DNCO frequency. Since the loop averages two frequencies, one of which could be qf Hz from the input frequency, a phase change of
Δφ=2πqfTs,
can occur between samples, where Ts is a sampling interval. Given that Δφ/2π=fnomτo, the quantization increment qf can be expressed as
a illustrates a functional block diagram of a DDS employed as the DO (122,
The phase accumulator represents a cyclic phase generator producing a time series of binary integer values (phase sequence) corresponding to the oscillator progression of phase. The phase sequence is generated by a q-bit accumulator clocked at the sample rate, fo=1/δt, which accumulates a phase increment, φ, modulo 2q.
The phase accumulator is capable of repeatedly adding a programmable binary phase input value φ to the content of the accumulator. This is equivalent to performing the following mathematical integration
NPA(nδt)=[NPA(nδt−δt)+φ]modulo 2q,
where NPA(nδt) is the content of the phase register (represents DDS phase in fractional cycles), and n is the time index, and δt is the sampling interval. The value of NPA(nδt) is bounded by the width (number of bits) of the input φ and of the accumulator (q number of bits). Note that a cycle is equal to 2q, so NPA(nδt) is always modulo 2q. NPA(0) represents the accumulator initial condition at n=0, which can take a value of zero or higher value to produce an initial phase shift. The complete set of discrete states generated by the accumulator may be evenly mapped as phase values around a circle. This would correspond to the discrete output waveform values. The restriction imposed on the phase accumulator by the finite width results in an overflow inherent in the binary adder. This implies a phase zero crossing upon overflow. The frequency of overflow may be reduced by increasing the width of the binary adder. From this we see that the DDS phase output in radians is
This means the DDS divides the range of the input signal (0,2π) into 2q equal increments. The stored value in the accumulator represents the current phase of a cyclical function. The input to the phase accumulator is the frequency control word φ. Since this word represents a q-bit digital value, the output frequency of the DDS fout is changed by variation of the input control word. The above phase accumulator arrangement constitutes a frequency generator at a fixed rate for given values of φ and fo=1/δt.
Referring to sin(ωt). The size of the phase increment determines the actual output frequency. The binary width of the phase accumulator (accumulator overflows) determines the minimum frequency, which is equal to the frequency step, achievable by the DDS. The frequency increment (or resolution) of a DDS is defined as
The frequency resolution of the DDS is a function of the clock frequency fo and the number of bits q employed in the phase accumulator. Clearly, the wider the phase accumulator, the finer the resulting frequency tuning step. The phase accumulator should have a sufficient field width to span the desired frequency resolution. For practical applications, a large number of bits are allocated to the phase accumulator in order to satisfy the system frequency resolution requirements. Given the resolution δfout and the clock frequency, the required number of bits is given as
Given that there is a direct mapping of phase to amplitude, a ROM/RAM lookup table can be used to convert the phase values. The phase accumulator generates a discrete time phase sequence NPA(nδt), which is then mapped to the amplitude domain using a lookup table containing a single sinusoid. The digitized phase mapping from the phase accumulator is used to address the ROM/RAM which contains the stored values of the desired output waveforms.
a shows phase accumulation of a generated sine wave whose frequency is equal to ⅛ of the clock frequency. The circle shows the phase accumulation process of π/4 at each clock cycle. The dots on the circle represent the phase value at a given time and the sine wave shows the corresponding amplitude representation. This phase to amplitude conversion occurs in the sine lookup table. Note that the phase increment added during each clock period is π/4 radians, which is equal to ⅛ of 2π. The phase value stored in an input frequency register is added to the value in the phase accumulator once each period of the system clock. The resulting phase value (from 0 to 2π) is then applied to the sine lookup once during each clock cycle. The lookup converts the phase information to its corresponding sine amplitude as illustrated in
Referring again to
Referring again to
The phase accumulator (900) is a variable-modulus counter that increments the number stored in it each time it receives a clock pulse. When the counter overflows it wraps around, making the phase accumulator's output contiguous. The larger the added increment φ, the faster the accumulator overflows, which results in a higher output frequency.
The output frequency fout of the DDS waveform is a function of the system clock frequency fo, the number of bits q in the phase accumulator and the phase increment value φ. The phase increment value required to generate an output frequency fout Hz is
The phase increment φ is an unsigned value. The phase increment term defines the DDS output frequency. If the DDS is operating with a control input φnom which corresponds to the nominal frequency fDDS=fnom, adding a quantity −Δφ to φnom (i.e., φDCO=φnom−Δφ) results in a decrease in the output frequency, fDDS=fnom−Δf, whereas adding a quantity +Δφ to f (i.e., φDDS=φnom+Δφ) results in an increase in the output frequency, fDDS=fnom+Δf. Thus, by appropriately controlling the quantity Δφ added to φnom, the output frequency of the DDS fDDS can be controlled accordingly. The size of the phase increment determines the actual output frequency and the fixed binary width q of the accumulator (which overflows) determines the minimum frequency resolution of the DDS.
Referring to
One advantage of adaptively determining the optimal nominal control word setting is that it enables the control word offset computed during operation to be as small as possible. When the control word offset needed to minimize the error is obtained, the error begins to get smaller and in turn, reduces the control word offset, causing the error to grow again. When a large control word offset is needed, the cycle will be long and the correction will be less accurate than when the control word offset is small.
In the ADPLL, the input frequencies fs and {circumflex over (f)}s are essentially being divided down to the lower frequencies fΔT=fs/ΔT and fΔR={circumflex over (f)}s/ΔR, respectively, before being passed to the PD. In addition, the errors e(n) are determined at the lower frequency domain, that is, using fΔT=fs/ΔT and fΔR={circumflex over (f)}s/ΔR as the PD inputs instead of frequencies fs and {circumflex over (f)}s. In a steady-state (or tracking phase) of the ADPLL, we get fs≈{circumflex over (f)}s (or similarly fΔT≈fΔR). We also know that given a timestamp generation period of ΔT (which is equal to ΔR in a system without delay variations), we get the following frequency relationship for a system without delay variations, {circumflex over (f)}s=ΔT·fΔT. Let us denote the scaled-down nominal frequency as ftemp=fnom/ΔT. From the above we note that measurement and control are carried out at the clock frequency fΔT≈fΔR which is essentially the sampling frequency for the receiver PLL. The errors e(n) from the PD are generated at this frequency fΔT≈fΔR, but, we see that the receiver oscillator operates at the service frequency fs≈{circumflex over (f)}s. Also, we note that the loop parameters derived above are based on the sampling frequency fΔT≈fΔR. Thus, the error values generated at the lower frequency fΔT≈fΔR have to be scaled to appropriate values so that they can applied to the receiver oscillator which operates at the service frequency fs≈{circumflex over (f)}s. Below we describe new mapping functions for mapping the filtered error values generated by the loop filter (which operates at the lower nominal frequency ftemp=fnom/ΔT) into appropriate values for the controlling the DO (which operates at the higher nominal frequency fnom).
ν(n)=K2e(n)+ν(n−1), (Eq. 1)
Ncorr(ftemp,n)=K1e(n)+ν(n). (Eq. 2)
The DNCO control input then becomes
NDNCO(ftemp,n)=Nnom(ftemp)−Ncorr(ftemp,n) (Eq. 3)
But given that the DNCO output has nominal frequency of fnom while the inputs to the PD have ftemp=fnom/ΔT, the control output NDNCO(ftemp,n) has to be transformed from the ftemp=fnom/ΔT domain to the fnom domain to give NDNCO(fnom,n). To see how NDNCO(ftemp,n) and NDNCO(fnom,n) are related, let us observe the following effects at the DNCO with internal high-speed clock frequency fo:
From these two equations we obtain
Now substituting (Eq. 3) into (Eq. 6), we get
Similar to (Eq. 4), (Eq. 5) and (Eq. 6), we also note that
Thus, substituting (Eq. 8) into (Eq. 7), we obtain
rounded to the nearest integer, which also implies that
But we see that
Thus,
Equation (Eq. 12) means that, although, the correction factor Ncorr(ftemp,n) was obtained based on the error e(n) and the computed filter gains K1 and K2 (computed from the system parameters and the scaled down nominal frequency ftemp=fnom/ΔT), its corresponding correction factor at fnom (which is the DNCO nominal output) can readily be obtained by applying the mapping factor, MFDNCO=1/ΔT. This equation allows for two frequency domains to be used in the ADPLL design and at the same time obtain correct control inputs for proper system operation based on the ADPLL analysis. The complete timestamp-based ADPLL with DNCO is shown in
ν(n)=K2e(n)+ν(n−1), (Eq. 13)
Δφ(ftemp,n)=K1e(n)+ν(n). (Eq. 14)
The DDS control input then becomes
φ(ftemp,n)=φnom(ftemp)+Δφ(ftemp,n), (Eq. 15)
rounded to the nearest integer. But given that the DDS output has nominal frequency of fnom while the inputs to the PD have ftemp=fnom/ΔT, the control output φ(ftemp,n) has to be transformed from the ftemp=fnom/ΔT domain to the fnom domain to give φ(fnom,n). To see how φ(ftemp,n) and φ(fnom,n) are related, let us observe the following effects at the DDS with high-speed clock fo:
From these two equations we obtain
Now substituting (Eq. 15) into (Eq. 18), we get
Similar to (Eq. 16), (Eq. 17) and (Eq. 18), we also note that
Thus, substituting (Eq. 20) into (Eq. 19), we obtain
which also implies that
But we also see that
Thus
Δφ(fnom,n)=ΔT·Δφ(ftemp,n). (Eq. 24)
The mapping factor in this ADPLL is also MFDDS=ΔT. Notice that MFDDS=1/MFDNCO. The complete timestamp-based ADPLL with DDS is shown in
While the invention is described through the above exemplary embodiments, it will be understood by those of ordinary skill in the art that modification to and variation of the illustrated embodiments may be made without departing from the inventive concepts herein disclosed. Moreover, while the preferred embodiments are described in connection with various illustrative structures, one skilled in the art will recognize that the system may be embodied using a variety of specific structures. Accordingly, the invention should not be viewed as limited except by the scope and spirit of the appended claims.
This application is a Continuation-in-Part of U.S. patent application Ser. No. 10/076,415, entitled Technique for Synchronizing Clocks in a Network, filed Feb. 19, 2002 now U.S. Pat. No. 7,043,651, which is incorporated by reference. A claim of priority is also made to U.S. provisional patent application Ser. No. 60/732,276, entitled TECHNIQUE FOR DIFFERENTIAL CLOCK RECOVERY IN PACKET NETWORKS, filed Nov. 1, 2005, which is incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
6801591 | Frencken | Oct 2004 | B1 |
7020791 | Aweya et al. | Mar 2006 | B1 |
7130368 | Aweya et al. | Oct 2006 | B1 |
7289538 | Paradise et al. | Oct 2007 | B1 |
20030056136 | Aweya et al. | Mar 2003 | A1 |
20050024152 | Lyden et al. | Feb 2005 | A1 |
20050249315 | Hartman et al. | Nov 2005 | A1 |
20070085622 | Wallberg et al. | Apr 2007 | A1 |
Number | Date | Country | |
---|---|---|---|
60732276 | Nov 2005 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10076415 | Feb 2002 | US |
Child | 11279431 | US |