Abstract:
A periodic pulse generator has a programmable counter (15) and processor (10) coupled to a GPS receiver for generating a periodic clock signal. The processor (10) transmits a control word to a digital to analog converter (20) which steers a voltage controlled crystal oscillator (25), processor 10 also controls the programmable counter (15) to produce a stable output pulse, if the voltage controlled crystal osciallator (25) output is an integer frequency.

Description:
BACKGROUND OF THE INVENTION 
     The present invention pertains to periodic pulse generation and more particularly to the generation of frequency stable, low noise periodic pulse generation. 
     Deriving very accurate timing signals (clock signals) is important to many electronic systems. It is becoming common to utilize the highly accurate timing data from Global Positioning System Satellites as a source of accurate time and frequency. Other highly accurate clocks have been designed using Rubidium or Cesium clocks as the reference clock. Such designs are highly accurate, but are also very expensive and have complex designs. 
     Typical pulse generation apparatus provide a local oscillator and count-down circuit. The accuracy of such generation apparatus is generally a function of the stability of the reference clock frequency. This means that the timing output pulse of such systems displays jitter due to the inability of the count-down circuit to resolve the output frequency to less than one integer clock cycle. 
     Accordingly, it would be desirable to have a periodic pulse generation apparatus for providing a low-cost, highly accurate clock output signal which is frequency stable and has little jitter or no added noise due to the implementation. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The single sheet of drawings presented herewith dipicts a pulse generation apparatus in accordance with the present invention. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     The single sheet of drawings depicts an accurate pulse producing circuit, which is based on controlling the local oscillator frequency of a Global Positioning System (GPS) receiver as a fine adjustment control, and steering of a pulse to the resolution of the main system clock as a coarse pulse control. Control processor 10 is coupled to programmable counter 15. Programmable counter 15 produces the desired one pulse per second output. A one kilohertz signal derived by integer division of the local oscillator 25 is transmitted from receiver time base 30 to programmable counter 15 and to control processor 10. Control processor 10 is also coupled to RF down converter and digital GPS correlator 35. Control processor 10 is coupled to digital-to-analog converter 20. Control processor 10 provides a Local Oscillator (LO) fine frequency control word to digital-to-analog converter 20. Digital-to-analog converter 20 is coupled to voltage controlled crystal oscillator 25. Voltage controlled crystal oscillator 25 provides the function of a local oscillator, required for any receiver. The output of voltage controlled crystal oscillator 25 is the &#34;flo&#34; lead which couples programmable counter 15, receiver time base 30 and RF down converter 35 to the voltage controlled crystal oscillator 25. 
     It is desired that an accurate signal on the one pulse per second lead be provided which is a useful output of a low cost global positioning system receiver. 
     An approximate one pulse per second signal is generated by programmable counter 15 as a result of dividing the flo output of vcxo 25. The error in the one pulse per second output randomly falls in time within -1/flo and +1/flo, provided that the control processor 10 provides programmable counter 15 with the correct count each second so as to place the resulting output pulse on or near the UTC second tic. Control processor 10 measures the error and computes the count for the programmable counter 15. The control processor uses the clock bias and clock bias rate outputs of the GPS receiver navigation solution 35 to compute corrections which are input to digital-to-analog converter 20 and programmable counter 15. As a result of the continual adjusting of the D/A converter 20 and programmable counter 15 by the control processor 10, digital-to-analog converter 20 steers the output flo of vcxo 25 to an integer frequency. Programmable counter 15 then outputs a one pulse per second signal at the same time every second, which is consistent with the UTC one second tic. The programmable counter 15 acts as a course time adjustment of the output pulse and the voltage controlled oscillator &amp; D/A converter acts as a fine adjustment on the output pulse. The coarse adjustment process allows for simplification of the D/A converter as the dynamic tuning range required is greatly reduced since the oscillator only needs to be adjusted in frequency to the next closest integer frequency. Once that is accomplished, the integer programmable counter can then subsequently divide the local oscillator frequency by an integer and place the output pulse at the same point in time each second, which results in an output pulse in which the short term frequency stability is that of the local oscillator itself with little added noise and time jitter. 
     Low cost GPS receivers of today generate 1 PPS pulses by integer division via a programmable counter only of the receiver local oscillator. In the Motorola Oncore case, the oscillator frequency is flo=19.096 MHz. The uncertainty of the local oscillator is about ±2PPM, thus it will vary over temperature between 19.096 MHz-38 Hz and 19.096 MHz+38 Hz. The oscillator in prior implementations is free running, thus after integer division by a programmable counter, there is a residual time error in the resulting 1 PPS output that is at most 1/2 of 1 clock cycle of the local oscillator frequency, that is; the time error falls between -1/2 flo seconds to +1/2 flo seconds in time and the error waveform is a function of the local oscillator frequency. In this new embodiment, the local oscillator frequency is steered to an integer frequency such that when divided by the programmable counter (which by nature is an integer process), the resulting 1 PPS output pulse falls precisely on top of the UTC second tic with no residual time error. 
     It is well known that in addition to position coordinates of latitude, longitude, height, every GPS receiver has the ability to compute its internal measurement epoch time (i.e., the precise time of the range measurements within the receiver), and the frequency of the internal local oscillator. The time and frequency outputs are a direct result of the navigation solution of 4 (or more) equations and 4 unknowns for each of the processes of computing position and velocity. The GPS receiver solves for these quantities as a direct result of computing the clock bias and clock bias rates from the standard GPS navigation solution. 
     Each second, the GPS receiver computes in processor 10 the measurement epoch time and the local oscillator frequency. Call these: 
     Tme --  gps: The computed measurement epoch time. 
     Fos --  gps: The computed local oscillator frequency. 
     After computation of these quantities, the new embodiment uses processor 10 to make appropriate control adjustments via the D/A (digital-to-analog) converter 20 so that the frequency of the local oscillator is an integer. The three step algorithm to do so is as follows: 
     STEP 1: LO FREQUENCY ADJUSTMENT TO INTEGER FREQUENCY 
     a) Compute Fos --  gps using the traditional GPS navigation algorithms. 
     b) Compute frequency error fe as follows: 
     
         fe=INT(Fos.sub.-- gps+0.5)-Fos.sub.-- gps; 
    
     c) Filter the parameter fe via a 1st or 2nd order low pass loop filter, call this process LPF1(fe); 
     d) Integrate the output of the low pass filter to be used as an input to the D/A converter as follows: 
     
         DA.sub.-- word=DA.sub.-- word+K1* LPF1(fe); 
    
     where DA --  word is initially set to mid-range of the D/A converter input and K1 is the appropriate scale factor so that the resulting sum integrated into DA --  word is in units of LO --  Hz per fe --  Hz after the D/A converter transfer function. Step 1 forms an automatic frequency control loop which drives the LO frequency to the closest integer frequency. 
     e) Send the current value of DA --  word to the D/A converter, which will adjust the frequency of the local oscillator up or down slightly depending on the correction this second. 
     In a preferred embodiment, this processing may be accomplished in software via control processor 10. 
     STEP 2: COMPUTATION OF PROGRAMMABLE COUNTER CONTROL 
     Next, begins the process of computing the controls for the programmable counter 15. The steps accomplished by control processor 10 are: 
     a) Compute the time difference dt between the measurement epoch time and the next 1 PPS UTC second, as follows: 
     
         dt=INT(Tme.sub.-- gps+1)-Tme.sub.-- gps; 
    
     b) Compute the number of LO clock cycles in this dt time measurement as: 
     
         clks=Flo.sub.-- gps* dt; 
    
     c) Compute the number of integer counts to be applied by the programmable integer counter so as to place the 1 PPS output pulse to within ±1/2 of 1 LO clock as: 
     
         int.sub.-- clks=INT(clks+0.5); 
    
     Apply a correction to the programmable counter so that it will put out its pulse after counting &#34;int --  clks&#34; counts of the receiver local oscillator. 
     STEP 3: ELLIMINATION OF RESIDUAL TIME ERROR (if any) 
     The last step requires the computation of the residual time error in the 1 PPS output pulse, and mild control on the local oscillator frequency in order to elliminate it. The steps required are: 
     a) From step 2 part b, compute the fractional part of the number of clocks that are required to place the pulse closest to the 1 second tic as follows: 
     
         frac.sub.-- clks=clks-int.sub.--count; 
    
     b) Low pass filter the quantity &#34;frac --  clks&#34; with a 1st order low pass filter that has a time constant that is greater than that used in STEP 1, call this LPF2(frac --  clks); 
     c) Add a correction term to the D/A converter that is proportional to the output of the LPF2 filter, as follows: 
     
         DA.sub.-- word=DA.sub.-- word+K2* LPF2(frac.sub.-- clks); 
    
     d) Send the current value of DA --  word to the D/A converter, which will adjust the frequency of the local oscillator up or down slightly depending on the correction this second. 
     Step 3 acts as a phase locked loop which automatically adjusts the LO frequency so as to elliminate any phase error in the resulting 1 PPS output signal. 
     Since the bandwidths of the two processes in STEP 1 and STEP 3 are different, they will work together to set the LO on an integer frequency AND elliminate any subsequent time residual in the output 1 PPS signal. 
     This invention produces a 1 PPS signal whose phase and frequency error performance is superior to that mechanized by other low cost GPS receivers. The combination of mild local oscillator frequency steering (to the nearest integer frequency) and appropriate control loop software to control the phase and frequency of the resulting signal provide a highly stable output signal and low cost system implementation. 
     This invention recognizes that by steering the local oscillator to one of many possible integer frequencies by addition of a D to A converter, changing the design of the crystal oscillator to a VCXO, and adding sufficient control software to steer the LO frequency to one of many integer frequencies, the system can be controlled so that the 1 PPS pulse does not have added sawtooth noise. It also recognizes that there are many integer LO frequencies that are appropriate and voltage steering need only be such that it be able to steer to the closest integer frequency. 
     It is also recognized that steerage of the LO to the closest integer frequency greatly simplifies the D/A control circuit since the dynamic range of this element need only be such that it has the ability to move the LO ±0.5 Hz maximum instead of over the entire range of unknown frequency range, say ±2 PPM or more on a typical local oscillator used in GPS receivers today. 
     Until now, to achieve an accurate 1 PPS pulse, a system needed to have a high clock frequency as a basis for division into fine resolution time slices. With this system, high accuracy can be achieved using a low system clock frequency, allowing for lower component and overall system cost and lower power consumption. 
     Although the preferred embodiment of the invention has been illustrated, and that form described in detail, it will be readily apparent to those skilled in the art that various modifications may be made therein without departing from the spirit of the invention or from the scope of the appended claims.