1. Field of the Invention
The present invention relates to communication networks and, more particularly, to a method and apparatus for designing a Phase-Locked Loop (PLL).
2. Description of the Related Art
Data communication networks may include various computers, servers, routers, switches, hubs, proxies, and other devices coupled to and configured to pass data to one another. These devices will be referred to herein as “network elements.” Data is communicated through the data communication network by passing data over an established circuit or by packetizing the data and routing the data packets between a series of network elements over the network.
There are two basic types of networks—Time Division Multiplexed (TDM) networks and packet networks. These two networks differ in how data are transmitted on the physical medium. In a TDM network, data belonging to different users are assigned different timeslots, otherwise called “circuits” or “channels” in a given time interval otherwise called a “frame”. A user can only transmit in its assigned time slot in a frame that continuously repeats itself. The clocking or timing signal that generates the frames and timeslots on the physical medium has to be very accurate for transmissions to be successful. Thus, in a TDM network, the network elements rely on accurate timing to determine which user data belong to which circuit, whereas in a packet network the packets are individually addressed in a manner that is able to be understood by the network elements. Since TDM networks rely on accurate timing to divide frames between multiple logical channels in existence on the same physical wire/optical fiber, timing requirements of TDM networks are generally relatively stringent. In a packet network, by contrast, timing is less important since each packet of data is self-contained and is able to specify to the network element its size and other associated parameters. Since timing is not as stringent on a packet network, the network elements on a packet network are generally not synchronized to a common timing source. Hence, packet networks are generally referred to as asynchronous networks.
TDM networks are synchronous in nature. Consequently, the equipment connected to a TDM network has to be synchronized to it in some manner. In a TDM network, a timing distribution network typically will link the TDM nodes to provide a synchronization signal that is traceable to a Primary Reference Source (PRS). The network synchronization signal is derived from the PRS and distributed through a hierarchy of network nodes with lesser stratum clocks. An alternative timing solution is to maintain a distributed PRS architecture, where for example, each TDM node is timed from an accurate timing source, such as a PRS/Stratum 1 clock, Global Positioning System (GPS) based clock, or a standalone accurate clock (e.g., H Maser, Cesium, Rubidium, etc.). The particular timing requirements on a service interface depend on the services (T1, E1, T3, E3, etc.) carried over the network, which are typically specified in a standard promulgated for that particular service type.
As packet technology has increased in reliability and sophistication, the cost of deploying packet-based networks such as Ethernet networks and Internet Protocol (IP) networks has dropped to the point where it is often cheaper to deploy a packet network than to deploy a TDM network. To take advantage of the lower costs of packet network technology, service providers have sought to implement packet-based core networks intermediate existing TDM networks. To allow a packet network to carry TDM traffic, the packet network must essentially behave as a transparent “link” in the end-to-end connection. The transparent inclusion of a packet network in an end-to-end path of a connection that carries circuit-switched time sensitive traffic is commonly referred to as “circuit emulation” on the packet network.
The non-synchronous nature of the packet network and the packetizing and depacketizing processes used to format the data for transmission over the packet network all contribute to increased delay and delay variations in the transmission of packets, which makes transfers of synchronization between the TDM networks on either side of the packet core difficult. Additionally, while packet networks are able to carry traffic between the end TDM networks, they do not naturally carry accurate clock information due to their asynchronous nature. Thus, to enable TDM traffic to be carried over a packet network, it is necessary to have the end systems directly exchange clock information, so that the data ports on the network elements can be synchronized and to allow the different networks to be synchronized.
To overcome the inherent non-synchronous nature of a packet network, a network element or a downstream terminal mode may use an adaptive timing technique to reconstruct the timing signal of the upstream TDM terminal. For example, where there are no reference clocks traceable to a PRS, a receiving TDM terminal node has to use an adaptive timing technique to reconstruct the timing signal of the transmitting TDM terminal. In an adaptive clocking technique, the TDM receiver derives an estimate of the transmitter clock from the received data stream. This is commonly done using a phase-locked loop (PLL) that slaves the receiver clock to a transmitter clock. The slave PLL is able to process transmitted clock samples encoded within the data stream, or process data arrival patterns, to generate timing signals for the receiver. The purpose of the slave PLL is to estimate and compensate for the frequency drift occurring between the oscillators of the transmitter clock and the receiver clock.
Several adaptive timing techniques have been developed, including extracting clock information from arrival patterns over the network, observing the rate at which the buffers are being filled, and using encoded timing signals transmitted from the upstream terminal to the downstream terminal across the packet network. One example of the use of encoded timing signals (timestamps) is described in U.S. patent application Ser. No. 10/076,415, entitled “Technique for Synchronizing Clocks in a Network”, the content of which is hereby incorporated by reference.
In this previous application, a PLL was developed that included a low-pass filter, however the PLL in that solution was not developed quantitatively, but rather was developed by experimental trials. To increase the performance of the PLL, such as to increase the jitter attenuation, a higher order PLL may be used at the slave clock. However, as the order of the PLL increases, such as where second and third order PLLs are to be used to increase the jitter attenuation performance of the PLL, designing a PLL by experimental trials becomes increasingly difficult and cumbersome. Accordingly, it would be advantageous to provide a software program configured to assist in the design of a PLL given a set of performance specifications, (e.g., system damping factor, etc.) and component characteristics (such as VCO characteristic curve, digital-to-analog (DAC) word size (in bits), etc.).
The present invention overcomes these and other drawbacks by providing a method and apparatus for designing a timestamp-based phase-locked loop for clock synchronization in a packet network. According to an embodiment of the invention, PLL design software is provided that is configured to enable initial component characteristics to be specified, enable design specifications of the PLL to be specified, and to compute the time constants for a loop filter that would be required to enable a PLL to meet the design specifications given the component characteristics. The performance or behavior characteristics of the PLL may then be computed for the PLL given the time constants and the initial set of components to determine whether the performance of the PLL would be considered satisfactory. For example, the PLL design software may determine whether the PLL would be sufficiently stable if created using the particular selected components given the required design specifications. Where the PLL does not meet particular behavior characteristics, the PLL design software may provide guidance as to what component characteristics would improve performance of the PLL. Once the PLL is designed, the PLL design may be implemented in hardware to form a PLL. The PLL design software is particularly useful in designing timestamp-based PLLs for clock synchronization in a packet network.
Aspects of the present invention are pointed out with particularity in the appended claims. The present invention is illustrated by way of example in the following drawings in which like references indicate similar elements. The following drawings disclose various embodiments of the present invention for purposes of illustration only and are not intended to limit the scope of the invention. For purposes of clarity, not every component may be labeled in every figure. In the figures:
a and 12b are magnitude and phase plots, respectively, of the frequency response of the 2nd and 3rd order PLLs that may be designed using the PLL design software according to an embodiment of the invention;
a and 14b are flow charts of a dynamic mapping function process using, respectively, samples in non-overlapping windows and samples in overlapping windows;
The following detailed description sets forth numerous specific details to provide a thorough understanding of the invention. However, those skilled in the art will appreciate that the invention may be practiced without these specific details. In other instances, well-known methods, procedures, components, protocols, algorithms, and circuits have not been described in detail so as not to obscure the invention.
When timestamps are used for clock synchronization, a transmitter 16 periodically sends explicit time indications, or timestamps, to a receiver 18 to enable the receiver to synchronize its local clock 22 to the transmitter's clock 20. Although
The transmitter clock includes an oscillator 30 and a pulse counter 32. The oscillator issues periodic pulses 34 that form the input to the pulse (timestamp) counter 32. The output of the counter 32 represents the transmitter clock signal 36, and is incremented by a fixed amount at each pulse. Samples of the transmitter clock signal are communicated to the receiver 18 as timestamps.
The receiver clock 22 is formed as a Phase-Locked Loop (PLL) which uses the timestamps 12 (which form the PLL reference signal) to lock onto the transmitter clock 20. The PLL 22 has four main components: a phase detector 40, a loop filter 42, a local oscillator such as a Voltage Controlled Oscillator (VCO) or Current Controlled Oscillator (CCO) 44, and a timestamp counter 46. Although an embodiment of the invention will be described in connection with designing a PLL that uses a VCO, the invention is not limited in this manner as a CCO may be used in the design process as well. The phase detector 40 computes an error signal 50 as the difference between a reference signal 54 and the output signal of the PLL 56. The error signal 50 is passed on to the loop filter 42 which is responsible for eliminating possible jitter and noise in the input signal. The local oscillator such as the VCO 44, which typically has a center frequency, oscillates at a frequency which is determined by the output signal of the loop filter.
Now the clock recovery problem may be formulated as follows: While filtering out delay variation, the receiver clock frequency {circumflex over (f)}s=1/{circumflex over (τ)}s 56 is controlled so that the receiver clock measurements ΔR(n) 60 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) (50). This error signal 50 is filtered by the loop filter 42 of a PLL whose output then controls the frequency {circumflex over (f)}s=1/{circumflex over (τ)}s of the VCO 45 of the receiver clock as shown in
The PLL at the receiver therefore takes ΔT(n) as its reference input and generates ΔR(n) as its output (i.e., the controlled process). The two process variables ΔT(n) and ΔR(n) are illustrated in
To create a PLL, it is necessary to select components that will provide the PLL with the desired characteristics and responsiveness. One way to do this is to select the components by iterative experimentation. For example, components may be selected, a loop filter designed, and the PLL may be tested to determine its responsiveness and stability characteristics. While this may be possible for lower order PLLs, such as first order PLLs, successfully designing a second or third order PLL may take significant experience and skill on the part of the designer, since it is not always clear how changing one of the components will affect the overall behavior of the PLL. To improve on this manual process, according to an embodiment of the invention, PLL design software is provided that is configured to automate the process of designing the PLL, given a set of performance specifications and component characteristics.
To understand how the PLL design software is configured to perform PLL design, it is first necessary to understand how the components of a PLL interoperate with each other and to understand the manner in which the PLL operates.
To explain why a suitably chosen low-pass filter is required as the loop filter, consider the expression ΔR(n)=ΔT(n)+j(n), where j(n)=d(n)−d(n−1), as developed earlier. The network delays d(n) are assumed to be independent identically distributed (i.i.d) random variables with mean μd and variance σd2. The delay variation process j(n) has a mean of μj=E[j(n)]=0 and its autocorrelation Rj(k) is given by
The power spectral density Sj(f) of j(n) is given by
where η=σd2+μd2. Without loss of generality, it will be assumed that the transmitter generates timestamps with a constant interval of ΔT (i.e., ΔT is constant for all n). Then the z-transform and the power spectral density of ΔR(n) are given by
ΔR(z)=ΔT+j(z) (3)
SΔR(f)=ΔT2δ(f)+Sj(f)=ΔT2δ(f)+2η(1−cos 2πfTs), (4)
note that these equations have used the fact that the Fourier transform of a constant is a delta function and Ts is the sampling, which in this case is equal to the inter-timestamp period ΔT. The power spectral density SΔR(f), which is shown in
Because the delay variation and noise contribution at dc is zero, theoretically, by using an appropriate low-pass filter to remove the delay variation and noise in the high-frequency region, the period (frequency) of timestamp generation can be estimated to an arbitrary degree of accuracy. As set forth in greater detail below, a suitable low pass filter may be designed given certain performance specifications of the PLL according to an embodiment of the invention.
When the first timestamp arrives it is loaded into the counter. From this point onwards, the PLL starts to operate in a closed-loop fashion. Each time the Kth (K≧1, where K is a downsampling parameter) timestamp arrives (106) (i.e., at sampling instant n=1, 2, 3 , . . . ), the difference ΔT(n) between this value T(n) and the value at the previous sampling instant T(n−1) is determined. The difference ΔT(n) is then compared to the timestamp inter-arrival time ΔR(n)=R(n)−R(n−1) measured by the receiver PLL counter (108) to give an error term e(n)=ΔT(n)−ΔR(n) (110). This error term is sent to the loop filter (112) whose output controls the frequency of the VCO. The output of the VCO in turn provides the clock frequency of the receiver and also drives the counter. After a while the error term is expected to converge to zero which means the PLL has been locked to the incoming time base, i.e., time base of the transmitter.
In some PLL designs, a current-controlled oscillator (CCO) is used instead of the VCO. In this case, the output signal of the DAC is a controlled current source rather than a voltage source. However, the operating principle remains the same.
As discussed above in connection with the general description of a PLL, a PLL is a feedback control system. Assuming that the phase error θe(θe(t)=θref(t)−θVCO(t) is the difference between the VCO clock phase θVCO(t) and the reference clock phase θref(t)) is within a limited range, this feedback control system can be further simplified as linear feedback control system. This assumption is reasonable for most applications since a real PLL has a bounded and limited locking range (expressed in parts-per-million, ppm, of the nominal operating frequency), outside of which locking cannot be guaranteed. The small signal linear analysis for the PLL is therefore useful for studying steady-state equilibrium behavior and stability properties under these same conditions. To enable a PLL to be designed using an automated process such as a computer program, it is first necessary to develop control models for the phase detector, digital to analog converter, voltage controlled oscillator, and given some general structure of the loop filter, the PLL as a whole. The analysis will further provide design procedures for determining the parameters of the loop filter that will meet certain pre-specified design and performance requirements. Some design steps are provided so that those with limited knowledge of control systems can still determine the parameters of the PLL given only the performance specifications.
The behavior of the phase detector is illustrated in
Therefore, given an error e(t) in bits and a phase error θe(t) in radians, the following may be used to express the bit error-phase error relationship:
With this, it is possible to write the phase detector gain as
The phase detector characteristic curve is shown in
It is reasonable to assume that the PLL is operating in the continuous-time domain. In this domain, the phase detector measures the phase difference θe(t)=θref(t)−θVCO(t) between the VCO clock phase θVCO(t) and the reference clock phase θref(t), and develops an output e(t) that is proportional to this phase-frequency difference θe(t). The ranges of θe(t) are −π<θe(n)<π. This operation can be expressed as
e(t)=KPD·θe(t) (7)
The error signal output e(t) is then passed to the loop filter GLF(s) to be processed into the filtered error {tilde over (e)}(t). The transfer function of the phase detector may then be given as:
where E(s) and Θe(s) are the Laplace transforms of e(t) and θe(t), respectively.
The Digital to Analog Converter (DAC) and the Voltage Controlled Oscillator (VCO) determine the accuracy of the PLL. To model these components, the following variables are defined:
The above equation means that the VCO input voltage range ΔVDAC is quantized into DACres values. Assuming in this equation that the error value {tilde over (e)}(t) is expressed as an integer number 0 to DACres−1, the Laplace transform of the expression is given as
which yields the DAC transfer function:
where {tilde over (E)}(s) and U(s) are the Laplace transforms of {tilde over (e)}(t) and u(t), respectively.
To obtain a model for the VCO, it will be assumed that the DAC output voltage u(t) does not need any amplification, thus A=1. The VCO oscillates at an angular frequency ωVCO(t) which is determined by the DAC output voltage u(t). The angular frequency of the VCO ωVCO(t) is given by
ωVCO(t)=ωo+KVCOu(t), (12)
where ωo=2πfo is the center angular frequency of the VCO (expressed in rad/sec), fo is the center frequency in Hertz, and KVCO is the VCO gain (in rad/sec-V). The deviation of the VCO from its center frequency is ΔωVCO(t)=KVCOu(t).
By definition the VCO phase θVCO is given by the integral over the frequency variation Δω=ωVCO(t)−ωo, that is,
Denoting ΘVCO(s) as the Laplace transform of θVCO(t), the Laplace transform of the above expression is given by
from which the transfer function of the VCO may be obtained as:
This expression shows that the VCO represents a pure integrator for phase signals.
The operation of the PLL is complicated by the fact that it has to track the reference clock and simultaneously reject short term variations. From a functional point of view, the PLL should be able to operate to provide a very stable clock when synchronized to the external network, and should also be able to provide a stable clock when synchronization is lost (holdover mode). In holdover mode the feedback loop is open, and the circuit does not behave as a PLL.
The gain of the VCO can be computed from the VCO data sheet, which is generally obtainable from the VCO supplier. The first requirement is the determination of the supply voltage(s) of the VCO (this can be determined from the data sheet). For example, the VCO circuit may be able to be powered from a unipolar +5V supply. Let the VCO supply voltage be denoted by Usupply. The VCO control signal u(t) is usually limited to a range which is smaller than the supply voltage Usupply. Let umin and umax be the minimum and maximum value allowed for u(t), respectively. With these, the VCO transfer characteristic curve may be described as shown in
The VCO is required to generate the frequency ωVCO
The frequency axis of the VCO characteristics is sometimes expressed in Hertz instead of radians per second. In this case, the gain is obtained as
Furthermore, if the frequency axis is expressed in parts-per-million (ppm) of the VCO center frequency, the gain is calculated as
where fo is the VCO center frequency and Δppm is the VCO output frequency range in ppm.
To model the PLL as a whole, denote Θref(s) as the Laplace transform of θref(t). The closed-loop control model of the PLL is shown in
The order of the loop can be shown to greatly influence the steady-state performance of the loop. The performance of the third-order PLL is compared with the conventional second-order PLL (with a lag-lead filter) as shown in
Given the models described above for the DC, VCO, and DAC, the transfer function for the PLL may be written as:
where the forward gain Kgain is given as
If the frequency axis of the VCO characteristics is expressed in Hertz instead of radians per second, this may be expressed as:
All the parameters from the above equations can easily be obtained from the supplier data sheets for the DAC and VCO. This enables the PLL software to compute the gain constant Kgain of the PLL from available information once initial components have been selected. With the right choice of these components, the only unknown component which is the loop filter, GLF(s), can then be designed to obtain the desired system steady-state behavior. Accordingly, these equations may be used in a computer program to enable a second order PLL to be designed given a set of performance specifications, (e.g., system damping factor, etc.) and component characteristics.
In a similar manner, as described below, a computer program may also be used to design a third-order PLL (that is, a PLL with a second-order loop filter), which may be used to obtain improved performance over the traditional second-order PLL (a PLL with a first-order loop filter).
The basic goal of a control system is meeting the performance specifications for a given system. Performance specifications may be considered to be constraints put on the system response characteristics, and may be stated in any number of ways. Generally, performance specifications take two forms: 1) frequency-domain specifications (i.e., pertinent quantities expressed as functions of frequency), and 2) time-domain specifications (in terms of time response). The desired system characteristics may be prescribed in either or both of the above forms. In general, they specify three important properties of dynamic systems: 1) the speed of response, 2) the relative stability of the system, and 3) the system accuracy or allowable error.
A lag-lead filter (also known as a proportional-integral (PI) filter) has the following transfer function:
where τ1 and τ2 are time constants of the filter, K1=τ2/τ1, and K2=1/τ1. The filter has a pole at s=0 and therefore behaves like an integrator. It has (at least theoretically) infinite gain at zero frequency. The closed-loop transfer function of the PLL if this type of filter is used is:
which is of the form:
where ωn and ζ are the natural frequency and damping factors, respectively, and are specified in terms of Kgain, τ1 and τ2 as:
These two parameters are usually used to specify the performance requirements of a system. The poles of the closed loop system are
s0,1=−ζωn±jωn√{square root over (1−ζ2)}. (28)
The damping factor has an important influence on the dynamics of a PLL. When ζ>1, the poles are real; and when ζ<1, the poles are complex and conjugate. When ζ=1, the poles are repeated and real and the condition is called critical damping. When ζ<1, the response is underdamped and the poles are complex.
The transient response of the closed-loop system is increasingly oscillatory as the poles approach the imaginary axis when ζ approaches zero. The above model can be directly applied to the PLL in the continuous-time domain.
Another important piece of information to know about a given PLL is the steady-state error, that is, the error remaining after all the transients have died out. The equation for the error transfer function is:
To understand how a PLL will respond, the performance of the PLL to different disturbances occurring at t=0 may be examined. Knowing the error transfer function Ge(z) of the PLL, it is possible to determine the response on the important excitation signals such as phase step, frequency step and frequency ramp at the input. The idea here is to analyze the steady-state errors after any transients have died away. These steady-state error is readily evaluated by means of the final value theorem, which states that:
To determine how a PLL will respond to a phase step applied at the PLL input, it is possible to look at the steady-state error resulting from a step change of input phase of magnitude Δθ. At t=0, the following step function is applied:
θref(t)=Δθ·u(t) (32)
where u(t) is the unit step function. In the s-domain, this can be expressed as:
Application of the final value theorem to the phase error function yields:
The above shows there is no steady-state error resulting from a step change of phase. This shows that the loop will eventually track any change of input phase.
Although the PLL will track a phase step, that is not the only type of change that may be applied to the PLL. For example, it is also necessary to determine the behavior of the PLL if a phase ramp (i.e., frequency step) is applied at the PLL input, for example a frequency step of magnitude Δω applied at the input. Because the phase θref(t) is the integral over the frequency:
θref(t)=Δω·t, (35)
which shows that the input phase is a ramp with slope Δω. In the s-domain this may be expressed as:
Applying the final value theorem results in the following equation:
which shows that the phase error tends to zero as t→∞.
Another type of perturbation that may occur is a frequency ramp applied at the PLL input. To determine how this affects the PLL performance, assume that the frequency ramp has a magnitude of Δ{dot over (ω)} applied at the input. Because the phase θref(t) is the integral over the frequency it may be shown that:
where the input frequency is a ramp with slope Δ{dot over (ω)}. In the s-domain this may be expressed as:
Applying the final value theorem, it may be shown that:
For Δ{dot over (ω)}=1,
This show that the phase error tends to zero as t→0 only for high-gain loop. For a low-gain loop, the PLL would exhibit a non-zero steady-state phase error in the presence of a frequency ramp.
These equations may be used, for example in a computer program product, to design a loop filter for a PLL. A number of parameters of the design have to be specified before applying the following design steps. These parameters include, the center frequency of the VCO ωo, and damping factor ζ. Conventional programming techniques may be used to implement the computer program given the equations set forth above, and the invention is not limited to a particular implementation using a particular computer language or operating system.
Apart from the VCO, all the other components in the PLL are digital. The PLL may therefore be considered a digital PLL. In the PLL, the sampling of the phase error e(t) (and the computation of the filtered error {tilde over (e)}(t)) occurs every ΔT bits assuming a delay variation free system. The period of ΔT bits is equivalent to a sampling period of Δt=ΔT/fo, where fo is the nominal system frequency in bits per second. Through simulations and laboratory experiments, it has been observed that ΔT should be selected to be very high (e.g., ΔT≧308800 bits for T1 rate) in order to minimize the loop tracking error (due to thermal noise, input phase dynamics, and in particular, network delay variation).
To design a digital PLL, it is possible to use a known approach commonly referred to as design by emulation. The design by emulation approach involves designing a continuous time loop filter, digitizing the continuous time loop filter, and then using discrete analysis, simulations, or experimentation to verify the design. Design by emulation yields good results only when the sampling rates ωsamp=2π/Δt are at least 20ωn, that is ωnΔt≦2π/20. In the following example, the following value has been selected ωnΔt=2π/35.
To design a second order loop, the first step is to collect the design pre-specifications. Specifically, the center frequency of the VCO ωo=2πfo will be specified at this stage of the design process. This parameter is usually obtained from the VCO data sheet that is provided by the VCO supplier. Additionally, the damping factor ζ should be specified. These values may be input (200) to the PLL design computer program for use by the program in connection with designing the PLL.
The gain of the DAC will then need to be computed. If the DAC register is specified as L bits long, giving the DAC a resolution of DACres=2L, then the gain Kgain may be computed using the following equation
To enable the PLL design software to compute the gain, the length L of the DAC should be input to the PLL design software.
Once the gain is determined, the natural frequency ωn of the PLL will be determined by the PLL design software using the following equation:
The PLL design software will then determine the parameters τ1 and τ2 of the loop filter from the following two equations:
Knowing the natural frequency, it is possible to also determine the lock-in time TL (also called the setting time) as
Once these parameters have been calculated, the PLL design software will proceed to determine the stability characteristics of the PLL. Knowing whether a system is absolutely stable or not is generally insufficient information for most control applications. Specifically, even if a system is stable, it is often desirable to know how close it is to being unstable. To do this, the PLL design software will need to be able to calculate the relative stability of the system. In addition to explaining how the relative stability may be determined, the following discussion will also help explain how the PLL design software may be used to design a third-order PLL.
The open-loop transfer function of the PLL will be denoted as: KOLGOL(s)=GPD(s)GLF(s)GDAC(s)GVCO(s). From this, it is possible to define the following two important measures that are used to indicate the stability margin in a system:
In a typical case, the gain margin can be read directly from the Bode plot by measuring the vertical distance between the |KOLGOL(jω)| curve and the |KOLGOL(jω)|=1 line at the frequency where ∠KOLGOL(jω)=180°. The gain margin can also be determined from the root locus with respect to KOL by noting two values of KOL: at the point where the locus crosses the jω-axis, and at the nominal closed-loop poles. The GM is the ratio of these two values.
Both unity gain and 180° excess phase shift (i.e., more negative than the −180° that is built in with negative feedback) are necessary for oscillations so the margins relative to this pair of conditions become a measure of stability. Gain margin is the additional gain necessary to give unity open-loop gain when the open-loop excess phase is 180°. Phase margin is the additional open-loop phase shift necessary to give 180° excess phase when the open-loop gain is unity. All PLLs have −90° phase shift due to the 1/s term, so excess phase is 90° even before any effect from the loop filter is considered. Whether a loop will oscillate when its gain exceeds unity at 180° is more easily seen from the Nyquist plot or from the root locus plot than from the Bode plot. However, in most cases it will not operate properly under these conditions, and the Bode plot is adequate.
As set forth above, the PLL design software may use this process to design a second-order PLL. However, as shown in
Although mathematically more tedious to analyze, it has been shown that the type 2 third-order loop has better noise suppression and faster lockup time. As used herein, the order of the loop is defined as being equal to the number of poles in the open-loop transfer function. This is also the highest power of s in the denominator. The loop type is the number of such poles that are at the origin, s=0.
Compared to second-order loop PLL design, there are very few publications on third-order loops. This is partly because of the far-greater popularity of the second-order loop, and also because of the greater complexity involved in analyzing the third-order loops. The transfer function of the filter in a loop may be given as:
With this filter, the loop has two perfect integrators, one being the VCO and one being the phase integrator part of the filter, and three time constants.
The closed-loop transfer function of the third-order loop may be expressed as:
Applying the final value theorem, it is possible to determine the steady-state response of the loop to different input signals 1/sn, phase step (n=1), frequency step (n=2), frequency ramp (n=3), etc. The error transfer function for the third-order loop is given as:
So, by applying the final value theorem, when the loop is driven by 1/sn, the error response approaches a final value of:
This indicates that the phase error resulting from a phase step (n=1) or a frequency step (n=2) will settle to zero, and the phase error will not reach steady state for n>3. A frequency ramp (n=3)) will produce a steady-state phase error of
the same phase error that occurs in the second-order loop. This is not surprising since one way to realize the third-order loop is to add a low-pass filter to the lag-lead filter (of the second-order loop above). The output of a low-pass filter driven by a ramp is another ramp with the same slope, offset from the input by a constant.
Given a set of pre-specified design parameters φ (the phase margin) and ωn (the natural loop frequency), it is possible to obtain the design the parameters τ1, τ2, and τ3 of the third-order loop. Derivation of these parameters is known in the art, for example as taught by U. L. Rohde, Digital PLL Frequency Synthesizers: Theory and Design, Prentice-Hall, Englewood Cliffs, N.J., 1983, the content of which is hereby incorporated by reference. To get acceptable stability of the loop, a phase margin of at least 30° is generally required, although a typical design choice is 45°.
To design a third order loop, the PLL design software will first enable the user to input the design pre-specifications. Specifically, the user will be allowed to input the phase margin φ for the loop. As mentioned above, a typical value for the phase margin is φ=45°. The PLL software will also allow the user to specify the natural loop frequency, which may assume a value similar to that described above with respect to the second-order loop, ωn=2π/35Δt. By selecting this parameter to be the same as the second order loop described above, the bandwidth of the third-order loop may be expected to be close to that of the second-order loop.
Given these parameters, the PLL design software will compute the following parameters τ1, τ2, and τ3 as follows:
Compute the time constant τ3 as follows:
Then compute the time constant τ2 using:
Next, compute the last time constant τ1 from:
In the proceeding description, a software program that may implement a procedure for designing the loop filters for the second- and third-order loops has been described in the continuous-time domain. Once the PLL is designed using the PLL design software, the phase detector and loop filter have to be implemented in digital form on a processor or in hardware form since the PLL using timestamps is a digital PLL. To do this, the continuous-time representations of the loop filters may be digitized. To do this design by emulation principles may be used whereby a continuous time filter is first designed and then digitized to obtain a discrete time filter. The digitization procedure in this instance may be done using the Tustin's or bilinear approximation of the continuous-time functions.
For example, knowing the two parameters of the loop filter of the second order PLL, GLF(s), it would be desirable to find a set of difference equations (or GLF(z) for the digital implementation of the filter). Using the Tustin's or bilinear approximation for the digitization of GLF(s), it is possible, for every occurrence of s in the loop filter, to substitute:
where Δt is the sampling interval for the system. Accordingly:
which gives the following difference equation for implementing the loop filter for the second-order loop:
With this equation, the phase detector and the loop filter can be implemented in the digital domain with a sampling interval Δt. Thus, once a PLL has been designed using the PLL design software, the PLL may be implemented in digital circuitry in a straightforward manner using known techniques.
Similarly, knowing the three parameters of the loop filter of the third-order PLL, GLF(z) may be obtained as follows:
This gives the following difference equation for implementing the loop filter for the third-order loop:
These filter equations can be implemented in digital form in a processor or as a hardware computational component of the PLL. Accordingly, once a third-order PLL has been designed using the PLL design software, the PLL may be implemented in hardware in a straightforward manner.
To determine the filtered Error-to-DAC/VCO mapping function, the frequency resolution fres of the VCO will be defined to be:
As shown below, a combined DAC-VCO model may be developed which can then be used to develop the error mapping function for the PLL. Specifically, assume that the DAC register is specified to be L bits long, giving the resolution of the DACres=2L. The error mapping function maps a filtered error value {tilde over (e)}, which is a floating point number, to a corresponding DAC input value, which is a integer in the range [0,2L−1].
To develop a combined DAC-VCO model, the DAC input DACVCO (DACVCO ε [0,DACres−1]) will be defined as:
DACVCO(t)=DACo+{tilde over (e)}(t)=DACo+DACcorr(t) (60)
where DACcorr(t)={tilde over (e)}(t) is the filtered error and DACo is the nominal DAC value (corresponding to the nominal frequency fo). The VCO output frequency can then be expressed as:
The above expression corresponds to an angular frequency:
ωVCO(t)=ωo+2πfresDACcorr(t)=ωo+KDAC-VCODACcorr(t)=ωo+Δω(t), (62)
where
is the combined DAC-VCO gain. By definition, the phase of the VCO θVCO is given by the integral over the frequency variation Δω(t)=ωVCO(t)−ωnorm as:
which is consistent with the DAC and VCO models developed above.
To develop the error mapping function, it will be assumed that the time generation period is constant, i.e., ΔT. In the PLL being developed, the input frequencies fs and {circumflex over (f)}s are essentially divided down to lower frequencies which will be denoted as fΔT and fΔR, respectively. In steady-state (or the tracking phase) of the PLL, fs≈{circumflex over (f)}s (or similarly fΔT≈fΔR). Additionally, assuming a given timestamp generation period of ΔT (which is equal to ΔR in a system without delay variations), there is the following frequency relationship for a system without delay variations: {circumflex over (f)}s=ΔT ·fΔT.
Accordingly, this shows 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 phase detector are generated at this frequency fΔT≈fΔR, but, the receiver oscillator operates at the service frequency fs≈{circumflex over (f)}s. Also, 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.
To enable the errors to be mapped, new mapping functions must be created to map the filtered error values generated by the loop filter (which operates at the lower nominal frequency fΔT=fo/ΔT) into appropriate values for the controlling the oscillator (which operates at the higher nominal frequency fo).
With a slight change of notation, DACVCO(fΔT,t) will be used to denote the VCO control input at time t computed based on system parameters at the scaled-down frequency fΔT≈fΔR. Also, DACVCO(fo,t) will be used to denote the VCO control input at time t computed based on system parameters at the nominal frequency fo. Accordingly:
from which the following equations may be derived:
And, accordingly:
where DACo(fo) is the nominal DAC value corresponding to the nominal frequency fo, and {tilde over (e)}(fo,t) is the filtered error at time t computed based system frequency fo.
As discussed above:
DACVCO(fΔT,t)=DACo(fΔT)+{tilde over (e)}(fΔT,t), (69)
and the DAC/VCO operations have been defined around the nominal DAC value DACo(fo) and frequency fo as
where DACcorr(fo,t) is the DAC correction factor corresponding to the nominal frequency fo, at time t. But it is also possible to define the DAC/VCO operations around the DAC value DACo(fΔT) and frequency fΔT as:
where DACcorr(fΔT,t) is the DAC correction factor corresponding to the scaled down nominal frequency fΔT, at time t.
From the above equation it may be shown that:
Comparing (70) and (72), we get
The above equation shows that, although, a filtered error {tilde over (e)}(fΔT,t) is obtained based on the filter gains computed from the system parameters and the scaled down nominal frequency fΔT=fs/ΔT), a corresponding error {tilde over (e)}(fo,t) (which is based on the VCO nominal output fnorm as shown in
Since the DAC takes integer values in the range DACVCO(fo,t) ε [0,2L−1], the error {tilde over (e)}(fo,t)=ΔT·{tilde over (e)}(fΔT,t) must be rounded off to the nearest integer before being added to DACo(fo), that is, the error mapping function may be obtained as
DACVCO(fo,t)=DACo(fo)+Int[ΔT·{tilde over (e)}(fΔT,t)]. (75)
The above error mapping function is straightforward and very simple to implement as illustrated in
The DAC has a nominal value that affects the operating frequency of the oscillator. Ideally, the nominal DAC setting would produce a voltage that always caused the oscillator to produce the desired nominal frequency. During tracking of the reference frequency, any error encountered produces a DAC offset that, when added to the nominal DAC setting, minimizes the error (negative feedback control). In practice, the nominal DAC setting has to be determined and may have to be readjusted during operation to account for temperature changes and aging effects. In other situations, it may not be possible to accurately determine the exact nominal DAC value. Therefore, it would be desirable to have a technique that can adaptively determine the optimal nominal DAC setting to eliminate the need to have an accurate initial DAC setting before use and/or to eliminate the need to manually readjust the nominal DAC setting during operation. Another advantage of adaptively determining the optimal nominal DAC setting is that it enables the DAC offset computed during operation to be as small as possible. When the DAC offset needed to minimize the error is obtained, the error begins to get smaller and in turn, reduces the DAC offset, causing the error to grow again. When a large DAC offset is needed, the cycle will be long and the correction will be less accurate than when the DAC offset is small.
Although a number of variations and optimizations are possible, the basic techniques to adaptively re-compute the optimal nominal DAC setting are shown in
Once the initial information has been entered, either manually by an user or automatically by another piece of software, the PLL design software will compute the time constants for a loop filter that would be required to enable the PLL top meet the design specifications given the selected components (206). These time constants may then be used to determine the PLL behavior characteristics, such as the stability of the system. (208). If the PLL behavior characteristics are satisfactory, the PLL design is complete (212). If not, the PLL design software may use the values of the time constants to help the user select different components that are more likely to produce a PLL with desirable behavior characteristics (214). For example, the PLL design software may indicate that the DAC does not have high enough resolution, or that a different VCO may work better given the desired PLL design specifications.
The computer includes a display interface 306 and an input interface 308 to receive and transmit signals from the display and user input devices. The computer also includes a CPU 310 configured to implement control logic 312 so that the computer may perform the calculations described above to enable PLL design software 314 stored in memory 316 to be executed on the computer 300. A computer generally has many additional components that are not shown in this figure, as would be known to a person of ordinary skill in the art. The invention is not limited to the particular implementation shown in
Once a PLL has been designed, it may be implemented using discrete components, integrated circuitry, or using a combination of hardware and control logic implemented as a set of program instructions that are stored in a computer readable memory within the network element and executed on a microprocessor. However, it will be apparent to a skilled artisan that all logic described herein can be embodied using discrete components, integrated circuitry, programmable logic used in conjunction with a programmable logic device such as a Field Programmable Gate Array (FPGA) or microprocessor, or any other device including any combination thereof. Programmable logic can be fixed temporarily or permanently in a tangible medium such as a read-only memory chip, a computer memory, a disk, or other storage medium. All such embodiments are intended to fall within the scope of the present invention.
It should be understood that all functional statements made herein describing the functions to be performed by the methods of the invention may be performed by software programs implemented utilizing subroutines and other programming techniques known to those of ordinary skill in the art. It also should be understood that various changes and modifications of the embodiments shown in the drawings and described in the specification may be made within the spirit and scope of the present invention. Accordingly, it is intended that all matter contained in the above description and shown in the accompanying drawings be interpreted in an illustrative and not in a limiting sense. The invention is limited only as defined in the following claims and the equivalents thereto.
This application claims the benefit of U.S. Provisional Application No. 60/674,232, filed Apr. 23, 2005, entitled Timestamp-Based Technique for Clock Synchronization in Packet Networks, and is also related to U.S. patent application Ser. No. 10/076,415, filed Apr. 19, 2002, entitled Technique for Synchronizing Clocks in a Network, the content of each of which is hereby incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
6914489 | Charlon | Jul 2005 | B2 |
6993106 | Momtaz | Jan 2006 | B1 |
7346133 | Tatem, Jr. | Mar 2008 | B2 |
7420426 | Herrin et al. | Sep 2008 | B2 |
20020191728 | Hafez et al. | Dec 2002 | A1 |
Number | Date | Country | |
---|---|---|---|
20060242445 A1 | Oct 2006 | US |
Number | Date | Country | |
---|---|---|---|
60674231 | Apr 2005 | US |