Abstract:
A method for the clock recovery in transport in constant bit rate channels(CBR), especially suitable for implementation of the adaptation layer of the asynchronous transfer mode(AAL) which comprises: the use of means for temporarily storing data at receiving end; the use of a clock frequency, with which data are polled out from said storing means, and calculation of a series of time differences(Zk), characterized in that said difference series is sent to a control block where the instant value(Zk) of said differences is multiplied by the value of its own index(k); it is subsequently compared to the sum of the previous values(Zk) considered up to the moment(k−th value); and it is checked that the absolute value of the differences outcoming from said comparison is less of the error(err) multiplied by the index(k− 1 ) of the previous value(Zk) and by the absolute sum value(sum). The invention refers also to an apparatus to carry out such a method.

Description:
This is a continuation of PCT application No. PCT/IT97/00206, filed Aug. 6, 1997, the entire content of which is hereby incorporated by reference in this application. 
    
    
     BACKGROUND OF THE INVENTION 
     This invention refers to the clock recovery in transport of constant bit rate (CBR) channels, especially suited for the implementation of the adaptation layer of the asynchronous transfer mode (AAL). This adaptation layer is used for transport of CBR services over an ATM network. 
     More precisely, this invention relates to a method and an apparatus for clock recovery of a CBR service which is transported over a packet-switched network. 
     Four solutions of the problem of an adaptive clock recovery in transport of CBR services over an ATM are presently known. These methods are classified as “adaptive”, since they do not need a common source of network timing as a reference to recover the remote source clock. 
     To recover a clock signal by periodically sampling a buffer fill level and adjusting the clock frequency to achieve a steady-state average of the buffer fill level or its derivative is known from WO 95/33 320. 
     WO 95/22 233 discloses the method of submitting to the first packet from a sequence of packets a predetermined delay, then the fill level of a delay buffer is monitored and subsequent packets are submitted to a variable delay, in order to keep the ill level of said buffer and to minimise the risk of over- or underflow of said buffer. 
     Furthermore, a time-averaging method and a method of optimal control are reported in IEEE 1988 ref. CH2535-3/86/0000-1468. 
     The International application PCT/SE 97/01168 in the name of the same Applicant as this application, discloses the recovery of clock frequency of a CBR service carried over a packet-switched network, comprising means for temporarily storing data at receiving end and providing a clock frequency, with which data is polled out from said storage means, and the calculation of a series of time differences. 
     The latter method is not affected by a few drawbacks of the others and allows a faster and more stable convergence than with said other methods, but it requires calculation means possessing high performances and ensures only a poor recovery of the source clock upon a drift. 
     SUMMARY OF THE INVENTION 
     This invention overcomes these drawbacks and makes the convergence still faster by an improved method for the clock recovery in transport of constant bit rate (CBR) channels. Such a method, comprising the steps of: temporarily storing data at receiving end; using a clock frequency, with which data is polled out from said storing means; and calculating a series of time differences, is characterised in that it comprises the further steps: of sending said difference series to a control block where the instant value of said differences is multiplied by the value of its own index; of subsequently comparing the obtained result to the sum of the previous values up to the moment; of checking that the absolute value of the difference outcoming from said comparison is less than the error multiplied by the index of the previous value and by the absolute sum value; and of calculating the control value of the clock correction by dividing the sum value by index and by multiplying the same by gain. 
     Preferably, the method comprises the further step of recalculating, after application of each correction, the cumulated sum, depending on system requirements, without resetting the index. 
     The invention relates also to an apparatus for the clock recovery in transport of constant bit rate (CBR) channels, suitable for the implementation of the adaptation layer of the asynchronous transfer mode (AAL, ATM Adaptation Layer), comprising memory means, apt to temporarily store data at the receiving end, a clock set to determine the frequency of data polled out from said memory means, calculation means, to calculate time differences between two consecutive incoming packets, means to reduce noise and means to adjust the frequency at which said clock operates. Such an apparatus is characterised in that it includes a control block which is adapted to carry out the multiplication of the instant value of said differences by its own index; a subsequent comparison with the sum of the value up to the moment; and a check that the absolute value of the difference, resulting from said comparison, is less than the error, multiplied by the index of the previous value and by the absolute value of the sum. 
     Such apparatus preferably comprises also fast filters and, respectively, slower, more precise filters to be independently utilized and calculation means adapted to calculate the control value of the clock correction, by dividing the sum value by the index and by multiplying the same by the gain. 
     The same apparatus can also comprise means adapted to recalculate the cumulated sum depending on the requirements of the system, without resetting the index and means adapted to increase error value when a number of corrections which took place previously were reciprocally concordant, and to lower the same when a number of corrections which took place previously were reciprocally discordant. 
    
    
     BRIEF DESCRIPTION OF DRAWINGS 
     The invention is now described more in depth below, referring to the annexed drawings, wherein: 
     FIG. 1 shows how to send a CBR service in a packet-switched network; 
     FIG. 2 is a block diagram of the principles of receiving CBR data; 
     FIG. 3 is a block diagram showing a system of clock recovery according to the invention; 
     FIG. 4 is a flow sheet of the blocks of average calculations and of control of average slope, according to the prior art of PCT/SE97/01168; 
     FIG. 5 is a flow sheet of the control block according to the invention; 
     FIG. 6 is a flow sheet relative to a system of error calculation according to the invention; 
     FIG. 7 is the scheme of a preferred embodiment of a system of noise reduction with which the invention performances are improved; 
     FIG. 8 is a diagram which compares the clock recovery according to the previous PCT/SE97/01168 and to the present invention, relative to the residual frequency error; 
     FIG. 9 is a diagram comparing performances achievable according to PCT/SE97/01168 and to the present invention, relative to the cumulated error; and 
     FIG. 10 is a diagram comparing performance achievable according to PCT/SE97/01168 and to the present invention when the source clock drifts. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Referring now to the annexed drawings, let us first consider FIG.  1 : two Narrow Band Terminals  1  are sources of CBR services. They should establish a virtual circuit to communicate the one with the other over the packet switched network  3 . In the described embodiment, the packet switched network  3  is (as in most of cases) an ATM network (Asynchronous Transfer Mode), but it could also be a different network. 
     Since transmission and switching in the ATM network introduce a variable transfer delay, it is more suitable for transmission of bursty data than of data from a CBR service  5 . For this reason, an adaptation for transport of CBR traffic  5  is performed by a CE functionality  2  of circuit emulation. The CE  2  performs necessary adaptations to emulate all the services of a 64 kbit/s (or other bit rate) circuit virtually connected to the remote narrow band terminal  1 . If the ATM network  3  is seen as the future broadband network (B-ISDN, Broadband-Integrated Services Digital Network) and the narrow band terminals  1  operate in the existing narrowband network (N-ISDN, Narrowband-Integrated Services Digital Network) the CE  2  can be seen as providing the integration, being a unit which cooperates with both networks. The CE  2  interfaces, on the broadband side, the ATM cells and, on the narrowband side, the synchronous bitstream from the CBR signal  5 . The CBR signal  5  is segmented by the CE  2  into 376 bit units, namely into 47 octets and then mapped into the payload field of an ATM cell. The cell is then routed through the ATM network  3 . 
     Reference is now made to the block diagram in FIG.  2 . It represents the detail of the receiving side of CE  2  and makes reference to an application for 64 kbits/s lines. 
     ATM cells are received by the ATM network  11  through the ATM adapter  9  and processed in the AAL1 layer (ATM Adaptation Layer 1)  8 . The AAL1 block  8  terminates the AAL1 protocol and extracts from each cell 47 octets which correspond to 376 bits of the CBR service traffic. Every time a valid ATM cell is received in the AAL1 block  8 , a signal  14  is sent to the system  10  of clock recovery. The output of the system  10  of clock recovery is the clock  15  used to re-generate the CBR service traffic from the cells to the 64 kbits/s line  16 . This 64 kbits/s stream is passed to the narrowband terminal through a transceiver block  7 . 
     FIG. 3 is a detailed block diagram of the system  10  of clock recovery according to the invention. 
     When a valid ATM cell is received in the AAL1 block  8 , a signal is raised which arrives on line  22  and is applied to a first 32-bit latch  21 , a second 32-bit latch  23 , a computation block  26  and a system of noise reduction  27 . 
     The clock source in this embodiment is a VCXO quartz oscillator  18 , which is voltage controlled. Such a device has a maximum deviation in frequency of ±50 parts per million (ppm) and it has a high degree of stability in frequency, in respect to the applied voltage and temperature. This is the reason why its output frequency can be assumed to be constant for a given input control voltage and for an observation time of ≦60s. The generated frequency f s    36  is applied to a PLL  19  used to multiply VCXO frequency f s  by a constant M. This multiplication is required to measure the cell inter-arrival time with enough accuracy. Such a target is accomplished by applying the M×f s  clock to a free running 32-bit counter  20 . The output of this counter  20  is latched by the first 32-bit latch  21  when a cell is received. This output is subtracted from the previous one (which is stored in the second 32-bit latch  23 ) and provides the number of clock periods between the arrival of two consecutive cells. 
     Let us now call the unknown transmitter clock f t . Each cell is transmitted when 47 octets, corresponding to 376 bits of CBR traffic have been stored in the cell. Therefore the period T c  of cell generation is: 
     
       
           T   c =376 /f   t   
       
     
     Furthermore, let us suppose that ATM network introduces a constant delay in transport of each cell. With this assumption, the cell inter-arrival time is constant and equal to T c . In this case, it is possible to simply evaluate the number of counted periods w n  which is directly corresponding to T c : 
     
       
           w   n   =|x   n   −x   n-1   |=|M×f   s   ×T   c   |=|M×f   s ×376 /f   t   |==|M ×376 ×f   s   /f   t | 
       
     
     The fractional residual part of the result is cumulated by the counter  20  and counted as a unit when a sufficient number of cells has been received. In this way, the precision of the timing measurement is maintained and very low clock differences can be measured. The only drawback is that the lower the clock difference (f s −f t ), the higher the number of cells to be observed before a difference in the expected w n  is found. If the frequencies are equal, the expected value for w n  is: 
     
       
           E{w   n   }=M ×376 
       
     
     To obtain a value that equals zero (y n ) when f s  and f t  are the same, the following calculation is performed by the computation block  26  when a cell is received: 
     
       
           y   n   =w   n   −E{w   n }=( x   n-1 )−( M ×376) 
       
     
     This result is applied to a system of noise reduction  27 . Said system is used to integrate the results from previous blocks and to reduce the effect of jitter on the delay of cells (CDV) of the system. The system of noise reduction  27  accepts a new sample and generates a new output when a cell arrives. Its output z n    30  is applied to a control block  28 . 
     Since the method according to the present invention is an improvement of the one according to PCT/SE97/01168, reference is suitably made to the flow chart according to the said PCT/SE97/01168t as shown in FIG.  4 . 
     According to this technique, all the received z n    30  are averaged in a block for average estimate, producing a sequence of values m k  as an output. This is achieved by dividing the accumulated sum by index k. 
     Upon each correction, this block is reset and the estimator re-started. However, in this way only the cells after the latest correction are considered in averaging. A new m k  is generated by the block for average estimate every time a new cell is received. The m k  sequence is applied to a mean slope control block. This block is responsible for the decision on the number of z n  samples that the block for average estimate must cumulate to obtain a good estimate of the average interarrival time of cells. The block erforms also the evaluation of the correction value to be applied to the VCXO  18 , which is maintained stable until a new e i  value is evaluated. This block evaluates the slope of m k  sequence by computing its percent change c k . The new correction value e i  for VCXO  18  is calculated if c k  is less than error value err for max_count times. This means that (with a high probability) m k  sequence does not increase or decrease (by percent) to a great extent. This is according to the property of asymptotic convergence of the average estimator, which is reflected by the slope of m k  sequence that asymptotically tends to zero. 
     Every time a correction e i  is evaluated, a new error value err is computed. This parameter is decreased as the system approaches convergence, so as to have a quick start-up at the beginning and more stability subsequently. A simple way to achieve this is by reducing each time error err by a constant factor (2), up to a min_err value. 
     A new e i  value is applied to the correction block which is connected to a D/A converter. Such a block has the task of cumulating e i  values. The result is applied to the D/A converter that generates a control voltage for the VCXO. 
     The VCXO is supposed to operate at its minimum frequency when applied control voltage reaches the upper limit. 
     It is apparent from above that the major computational task in the method according to PCT/SE97/01168 is that of the average estimator that should continuously perform divisions. This is avoided by the method of the present invention, which is now set forth making reference to the flow sheet of the control block  28 , which is reported in FIG.  5 . 
     It can be started by bearing in mind that the inequality:                   m   k     -     m     k   -   1           m   k            &lt;   err                          
     on which the method of PCT/SE97/01168 is based may be written as: 
     
       
         | m   k   −m   k-1 |&lt;err | m   k | 
       
     
     This formula may be accordingly developed:                       ∑   k       i   =   1            z   i       k     -           ∑     k   -   1         i   =   1            z   i         k   -   1              &lt;     err                   ∑   k       i   =   1            z   i       k                               (     k   -   1     )              ∑   k       i   =   1            z   i         -     k            ∑     k   -   1         i   =   1            z   i                &lt;       err        (     k   -   1     )                     ∑   k       i   =   1            z   i                            (       k   ≠   0     ,   1     )                            (     k   -   1     )              ∑   k       i   =   1            z   i         -     k            ∑   k       i   =   1            z   i         -     z   k            &lt;       err        (     k   -   1     )                     ∑   k       i   =   1            z   i                                                  
     therefore:                 k                   z   k       -         ∑   k       i   =   1            z   i              &lt;       err        (     k   -   1     )                     ∑   k       i   =   1            z   i                                     
     When working with this new formula instead of the starting one, a division per cell arrival is no longer required. A division should be performed only when a correction is actually applied, so allowing an advantageous slowing down of the clock performing the algorithm. If a TI TMS320C50 processor is employed, such a reduction is by a factor  13 . 
     In the method of PCT/SE97/01168, the average estimator should be reset at each correction, so the previous samples are definitively discarded for subsequent means. 
     In the method according to the present invention, after a correction is applied, the clock of the 32 bit counter  20  changes and accordingly the way the new y k  are computed changes. Thus, the need to adjust the past sum to the new time scale arises. 
     If the amplitude of the clock change (gain) is chosen in order to bring to zero the expected error, E{y k }, also the old sum, scaled with the new clock, must be zero; otherwise, it must be scaled to the correct value. The overall gain (which includes the factor by which m k  is multiplied and the gain of the VCXO  18 ) must be chosen in order to reduce the error to a determined percentage, which can be computed as follows: 
     
       
         New_Error=α*Old_Error (α can be, for instance, 0.1 or even 0) 
       
     
     where (calling τ k  the interarrival time): 
     
       
         Old_Error= E{y   k   }=E{τ   k   *f   s   *M −376 M}   
       
     
     
       
         New_Error= E{τ   k *( f   s   −Δf )* M −376 M}   
       
     
     
       
         Total_Gain=Δ f/E{m   k   }=Δf /Old_Error=(1−α)/( E{τ   k   }*M )==(1−α)* f   nominal /(376 *M ) 
       
     
     So the action to be performed after each correction is just adjusting the cumulated sum, while keeping the running value of k: 
     
       
         Adjusted_Sum= k *New_Error 
       
     
     A choice of zero for a guaranties the quickest convergence for clock recovery, while other values can be chosen to have a smoother approach. 
     Sometimes, anyway, the estimator can be reset to guarantee the computing precision, as no more than 10,000 samples are needed to achieve the best precision. 
     Since it is desired to keep parameter err more tied to the actual convergence of the system, it is necessary to use a procedure different from PCT/SE97/01168. 
     Therefore, parameter err can receive three different modifications. If the latest correction is not in the same direction as the previous one (i.e. the estimated value oscillates around the true one), parameter err is lowered by the factor fatt_err_down. Otherwise, the number of consecutive, mono-directional corrections is evaluated (count_flag) and err is increased by a factor fatt_err_up or decreased by a factor fatt_err (fatt_err&lt;fatt_err_down), depending on whether this number (count_flag) has exceeded a value max_count_err or not. The situation wherein err is increased is when the number (or amplitude) of corrections seems clearly not adequate. 
     The flow sheet is reported in FIG.  6 . 
     Such a management proves to be useful when transmitting source is subject to a slow drift, since it allows a better track of these low frequency changes. 
     Exemplary 64 kbits/s Simulation 
     A more complex treatment of the err parameter is adopted in this simulation, according to this invention. Furthermore, m k  value is not reset, but only adjusted on each correction. 
     A system  27  of noise reduction (FIG. 3) is employed, which is able to use different filters at different times. Filters employed in first steps are fast filters, having short convergence times, although they are poor in precision. On the contrary, filters employed in subsequent steps are slower, but more precise filters so, each kind of filter is used only when it has (almost) reached its stability. The actual implementation of the system  27  of noise reduction is shown in FIG.  7 . 
     At the beginning, samples are transmitted as they are, being in no way filtered. The input-output relation of filters is:                  a        (   0   )            y        (   n   )         =                    b        (   0   )            x        (   n   )         +       b        (   1   )            x        (     n   -   1     )         +       b        (   2   )            x        (     n   -   2     )         +       b        (   3   )            x        (     n   -   3     )         +                     -                a        (   1   )              y        (     n   -   1     )         -       a        (   2   )            y        (     n   -   2     )         -       a        (   3   )            y        (     n   -   3     )                                      
     The first filter, Filter  1 , is an integrator with coefficients: 
     
       
         
               
               
               
               
             
           
               
                   
                   
               
               
                   
                 i 
                 b(i) 
                 a(i) 
               
               
                   
                   
               
             
             
               
                   
                 O 
                 0.4 
                  1.0 
               
               
                   
                 1 
                   
                 −0.2 
               
               
                   
                 2 
                   
                 −0.2 
               
               
                   
                 3 
                   
                 −0.2 
               
               
                   
                   
               
             
          
         
       
     
     The second filter, Filter  2 , is tighter and has coefficients: 
     
       
         
               
               
               
               
             
           
               
                   
                   
               
               
                   
                 i 
                 b(i) 
                 a(i) 
               
               
                   
                   
               
             
             
               
                   
                 O 
                 7.705240900000e − 03 
                  1.0 
               
               
                   
                 1 
                 1.541048200000e − 02 
                 −1.736790300000e + 00 
               
               
                   
                 2 
                 1.541048200000e − 02 
                  7.676112800000e − O1 
               
               
                   
                   
               
             
          
         
       
     
     The selector  33  switches to Filter  1  after twenty samples and then, after hundred more, to Filter  2 . 
     The following parameters were chosen: 
     
       
         
               
               
               
             
           
               
                   
                   
               
               
                   
                 Parameter 
                 Value 
               
               
                   
                   
               
             
             
               
                   
                 M 
                 8 
               
               
                   
                 max_count 
                 2 
               
               
                   
                 err_iniziale 
                 5e − 3 
               
               
                   
                 fatt_err_up 
                 1.5 
               
               
                   
                 err_minimo 
                 5e − 6 
               
               
                   
                 gain 
                 1.055*64000/(376*8) 
               
               
                   
                 max_count_err 
                 2 
               
               
                   
                 fatt-err 
                 1.8 
               
               
                   
                 fatt_err_down 
                 2.3 
               
               
                   
                 max_err 
                 1e − 3 
               
               
                   
                   
               
             
          
         
       
     
     The results are now reported. Let us consider the diagram reported in FIG. 8, representing residual frequency error in ppm vs. time, as the system is loaded with the output of an ATM switch, loaded at 90% of its capacity. The diagram compares the clock recovery according to the previous PCT/SE97/01168 (dashed line) and to this invention (solid line). 
     As it can be seen from FIG. 8, the convergence time (to a few ppm of error) is about 1 second when employing the method according to the present invention. The apparent improvements over PCT/SE97/01168 are better pointed out in the diagram of cumulated error reported in FIG.  9 . 
     The diagram reported in FIG. 10 shows in turn the long term behaviour of clock recovery upon a drift of the transmitting source (when the transmitting source slowly changes its clock: 3 ppm during 7,000 seconds). The dotted line is the clock source, while the dashed line is the response according to PCT/SE97/01168 method and the solid line is the response according to this invention. The apparent improvement obtained with the new treatment of parameter err according to the invention may easily be appreciated from the comparison of the two responses. 
     The advantages achieved with the method according to the present invention may be summarised in a faster and more precise convergence, a better track of the drift of transmitting source and a strong reduction of the complexity of the system and of operation thereof. 
     It should be understood that other embodiments and implementations of the invention, different from the ones described, are conceivable. Particularly, it is a matter of course that the method and apparatus according to this invention can be used with clock rates other than 64 kbits/s.