The present invention relates to the synchronization of an oscillator for low duty cycle transceivers, and more particularly, to the synchronization of an oscillator for a low duty cycle transceiver using a single crystal oscillator.
The IEEE 802.15.4 Standard provides a radio data transceiver protocol that is optimized for low data rate, short range, low power and cost. The low power is partly a consequence of the low data rate and short range, but the standard also provides for varied low duty cycle modes in which the tranceivers will stay in a sleep state for most of the time, periodically waking up to communicate short bursts of data. In a typical 802.15.4 transceiver, two crystal oscillators are used. One crystal is a 32.768 KHz real time clock (RTC) oscillator that provides accurate timing for the system during sleep mode, so that the transceiver knows when to wake up and communicate with other devices. Because of the low frequency, this is a very low power circuit drawing only a few micro amps and allowing for a multi-year battery life. The other oscillator crystal typically comprises a 10 to 30 MHz crystal (16 MHz is the most common frequency) oscillator and is used as the reference frequency for the RF PLL frequency synthesizer and is used to operate the MCU and other digital circuitry when the device is powered on. This crystal oscillator typically consumes 400 to 800 micro amps by itself which is far too much current for the requirements of a sleep mode. The voltage-controlled oscillator (VCO) inside the RF PLL frequency synthesizer typically operates at 900 MHz to 5 GHz for 802.15.4 systems and it consumes a few mA (a few thousand micro amps), so the VCO operates only when the device is actually transmitting or receiving data.
The requirements for frequency stability vary among the three oscillators. The most stringent requirements are for the RF oscillator. The 802.15.4 Standard specifies that the oscillator must have a frequency error of less than 40 ppm over all operating conditions including temperature. This is usually achieved by phase locking to the 16 MHz crystal oscillator, so that the 40 ppm requirement transfers to that oscillator. A typical communications grade crystal could have an initial “make” tolerance of ±10 ppm, and a temperature variation of ±20 ppm over the industrial temperature range (−40 C to +85 C) for a total tolerance of ±30 ppm. Some margin must be provided for other error sources such as variation in the load capacitance. In many applications, the temperature ranges would be more restrictive, allowing a looser initial tolerance. For example, the crystals mentioned above may have a temperature variation of only 10 ppm over −20° C. to +70° C.
The RTC oscillator should have good accuracy and stability. However, it doesn't need to be at 40 ppm across all operating conditions. This is particularly true for reduced function devices. One type of 802.15.4 network consists of line-powered network coordinator devices, which are always powered on, and battery-powered reduced function devices, which spend most of their time in sleep mode. In a reduced function device, there is a trade off in the tolerance of the RTC versus power consumption, since an inaccurate RTC will require the device to come out of sleep mode sooner so that it can be guaranteed to receive the beacon from the network coordinator. The network coordinator device should have better timing accuracy so that the RTC frequency errors between the slave and the coordinator are not compounded. A typical 32.768 KHz crystal has an initial tolerance of 20 ppm but a strongly parabolic frequency versus temperature curve with a maximum frequency occurring at 25 C and an error of typically −70 ppm at both −20 C and +70 C. At the extremes of the −40 C to +85 C temperature range, the frequency error will exceed 100 ppm. Therefore, in applications such as network coordinators in which sleep-mode current consumption is not important, it may be preferable to derive the RTC clock signal from the 16 MHz crystal oscillator because of its higher accuracy compared to a 32.768 KHz crystal oscillator. However, as noted earlier, this is not an option for battery-powered reduced function devices because a 16 MHz crystal oscillator typically consumes more than 100 times as much current as a 32.768 KHz crystal oscillator. These battery powered devices thus generally require both crystal oscillators, adding considerably to the cost and physical size of the transceiver. It should be pointed out that it is possible to build oscillators that do not employ a crystal as the frequency-determining element, but they do not have accuracy sufficient to meet the requirements of 802.15.4 or similar systems.
There is a need for minimizing the hardware required to implement the low duty cycle transceivers utilized in systems similar to the 802.10.4 system. Some manner of achieving this would greatly benefit the design of such systems. Furthermore, the power consumption of such transceivers may be reduced if the accuracy of the RTC clock is improved relative to that obtained from using a standard 32.768 KHz crystal oscillator as the clock source.
The present invention disclosed and claimed herein, in one aspect thereof, comprises an apparatus and method for calibrating a non-crystal oscillator in a remote unit using a crystal oscillator. A time base is established based upon the oscillations of the crystal oscillator. The number of oscillations for the non-crystal oscillator and the crystal oscillator are compared during a known time period. An adjustment is determined based upon the established time base and the compared number of oscillations. Transceiving of the remote unit is then controlled responsive to this adjustment.
For a more complete understanding of the present invention and the advantages thereof, reference is now made to the following description taken in conjunction with the accompanying Drawings in which:
Referring now to the drawings, and more particularly to
However, if the main controller unit 104 and the remote transceiver unit 102a are not synchronized with each other, a situation may occur as is illustrated at time periods t3-t4 and time periods t5-t6. In this case, the remote transceiver unit 102a is expecting communications to occur at the time period between t3 and t4. However, the main controller unit 104 expects communications to occur in the time period from t5 to t6. Each of the devices is expecting communications to occur in separate distinct non-overlapping time periods. Thus, no communications are able to take place between the units since the clocks are not properly synchronized and their transmission periods do not overlap and occur at the same time period. The clocks at the remote transceiver units 102 enable the device to be turned off and on at the appropriate times to enable communications but conserve battery power. These clocks at the remote transceiver units 102 may take on a number of configurations.
Referring now to
A high frequency oscillator 310 is used for providing a clock signal to the MCU 302 and transceiver circuitry 304 during transmissions between the remote transceiver unit 102 and a main controller 104 during high power operations. The high frequency oscillator is driven by a high frequency oscillator crystal 312. In a preferred embodiment this is a 16 MHz oscillator crystal. However, a crystal operating at other frequencies may also be used. The high frequency oscillator crystal 312 is used as the reference frequency for the RF PLL frequency synthesizer and to operate the MCU 302 and other digital circuitry when a device is powered on. The clock signals from the high frequency oscillator 310 and the low frequency oscillator 306 are each applied to a multiplexor 314 which applies the appropriate clock signal to the MCU 302 and transceiver circuitry 304 depending upon the operating mode (sleep or powered) in which the remote transceiver unit 102 is presently operating.
Referring now to
Referring now to
Referring now to
Once the reset or trigger has been received and a time base established, the program flows to a function block 610 wherein a timer is started. This timer is clocked by the high frequency clock (possibly a divided down clock) to count the pulses associated therewith. It is noted that these pulses are at a frequency that is higher than that of the low frequency clock. The program then flows to a decision block 612 to determine if the low frequency oscillator edge has occurred. This could either be a falling edge or a rising edge, depending upon how the timer is configured. However, it will only look for either a falling or rising edge. When the particular edge occurs, the program flows along a “Y” path to a function block 614 wherein an interrupt is generated. This interrupt is input to the MCU. Additionally, the interrupt operation will cause the data or the value of the register to be transferred to a register. Of course, the timer continues to count. The program then flows to a function block 615, wherein the MCU will service the interrupt. During servicing of this interrupt, the program will flow to a function block 616 wherein the contents of the register will be read. The program then flows to a function block 622 wherein the currently read value from the register is compared to a previously read value. With two successive values for two successive rising (or falling) edges of the low frequency clock, the period of the low frequency clock can be calculated. This is indicated at function block 622. The program then flows to decision block 624 to determine if the calculated frequency is at the desired frequency. If the calculated frequency is greater than the desired frequency, the program flow flows to a function block 626 to increment the frequency of the low frequency oscillator downward and then flows back to the input of decision block 812 to await the next low frequency oscillator edge. If it is less than a desired frequency, the program flows to a function block 628 to adjust the frequency of the low frequency oscillator incrementally upwards, and then back to the input of the decision block 812. The value of the frequency is adjusted upward and downward using a capacitor array or CDAC. If a CDAC were used to adjust the frequency of the on chip oscillator, and the step size is 240 ppm (giving a maximum frequency error of ±120 ppm) and the maximum value of the CDAC capacitance is 50% of the total capacitance, this would require a 12-bit CDAC which is quite large physically.
If the desired value has been achieved, the program flows to a function block 630 to set the calibration register value and then to a done block 632. The up and down adjustments can be made using either a linear search or a much faster iterative binary search algorithm.
However, it could be that a lookup table is provided that would allow the calculation to be facilitated in the single step rather than iteratively. This of course would require characterization of the oscillator and storage of characterization information in a non-volatile memory.
While altering the frequency of the low frequency oscillator using the high frequency crystal is one method for synchronizing a remote transmission unit to communicate with a main controller 104, it is not critical that the frequency of the low frequency clock be accurate. The only requirement is that the sleep mode timer that is clocked by the low frequency clock give an accurate measure of the length of the sleep mode time period between transmissions. Thus, rather than altering the frequency as described in
The process is initiated at block 702 and proceeds to inquiry block 704 wherein a determination is made if an external trigger or reset has occurred such as a user calibrate input signal or a calibrate signal from some other source such as expiration of a sleep mode timer or altering of temperature or voltage associated with the remote transmission unit. If no triggering events are detected, inquiry block 704 continues to monitor for occurrence of such an event. Once a triggering event is detected by inquiry block 704, the high frequency precision crystal oscillator is turned on at function block 706. In some embodiments it is possible that the high frequency crystal oscillator may already be operating. If so, block 706 becomes optional. Next at function block 708, a time base is established to which calibration is to be made. As described previously, this time base is based on the output or a divided down output of the high frequency precision oscillator driven by the high frequency crystal oscillator. When the calibration is initiated, if the system is operating in low power mode, it may be necessary to turn on the high frequency crystal oscillator as previously mentioned with respect to Step 706.
Once the time base has been established, control flows to function block 710 wherein a counter for counting the number of high-frequency clock pulses that occur during one or more periods of the low-frequency oscillator is initialized on the low frequency oscillator edge. Next at step 712, the counter counts the number of high-frequency clock pulses that occur during one or more periods of the low-frequency oscillator. For example, if the high frequency oscillator is operating at 16 MHz and the low frequency oscillator is operating at 32 kHz, there will be 500 pulses of the high-frequency clock during each period of the low frequency clock. If 20 periods of the low-frequency clock are counted, there will be 10000 pulses of the high-frequency clock during the timing interval. Control then passes to inquiry block 714 to determine, based upon the established time base, whether a selected period of time has expired. If not, control passes back to inquiry block 712. Once a selected period of time has been determined to have expired by inquiry block 714, control passes to function block 718 wherein the counter is stopped. At the end of the timing interval determined at inquiry step 714, the value in the counter will be directly proportional to the period of the low-frequency clock. Longer timing intervals give better precision in the measurement; for instance, if a timing interval of 20 periods of the low-frequency clock is used, the measurement precision will be one part in 10000, which is 100 ppm.
The period (in seconds) of the low-frequency clock is calculated at step 720 by multiplying the period of the high frequency clock ( 1/16 MHz=62.5 nanoseconds in this example) by the final value in the counter and dividing by the number of low frequency clock periods in the timing interval. As an example, suppose that the value in the counter is 10022 after 20 periods of the low frequency clock. Then the period of the low frequency clock is (10022)(62.5 nsec)/20=31.31875 μsec. The desired sleep time at step 722 can be divided by the measurement of the low frequency clock period to determine a value to be programmed into the sleep mode counter. The sleep mode counter would count the periods of the low frequency clock to determine when to wake the device up. Continuing the above example, if a sleep period of 2.0 seconds is desired, the sleep mode counter would wake up the device after (2.0 sec)/(31.31875 μsec)=63859 periods of the low frequency clock.
Thus, rather than altering the frequency of the low frequency clock to synchronize with the high frequency oscillator crystal, the particular time period associated with, for example, the sleep mode is measured based upon the number of pulses occurring from the low frequency oscillator. This number of pulses may then be stored as a new counter value for the sleep mode timer for a next time period. Therefore, no altering of the frequency of the clock to obtain accurate timing of the sleep mode is necessary. A more accurate measure of the time period is based upon the number of clock pulses provided by the low frequency oscillator no matter what the frequency of the low frequency oscillator. The process is completed at block 724.
Referring now to
If changes in the previously stored values are detected, control passes to function block 812 to initiate a trigger that starts the calibration process described with respect to either
The above paragraph describes the use of temperature and/or voltage sensors to trigger a recalibration. This implies that the frequency of the reference oscillator (i.e. the crystal oscillator) is substantially independent of temperature and voltage. However, another use for temperature and voltage sensors is to provide correction for the crystal oscillator. If (by previous characterization) it is known that the crystal oscillator has a particular dependence on temperature or supply voltage, then this information can be used to change the digital values used for calibration. For example, if a 32.768 KHz crystal oscillator is used as the reference, then we know that the crystal oscillator slows down at both high and low extremes of temperature; in other words, it has a parabolic frequency-versus-temperature curve. If a temperature is known, this information can be used to reduce the number of clock cycles that are counted to determine, for example, the sleep time, because the clock itself is slow.
Referring now to
Referring now to
Referring now to
Referring now to
This process is more fully described in
Assuming that an on chip low frequency oscillator with sufficient tuning resolution is implemented, an internal oscillator could actually be more accurate than a crystal oscillator implementation since the internal oscillator will be calibrating to a 16 MHz oscillator that is inherently more accurate over temperature by a factor of three or more than commonly used low frequency crystal oscillators. This could provide a power savings in addition to cost saving when compared with the existing solutions. Furthermore, the use of single crystal oscillators within a system provides significant bill of material reductions and size reductions due to the elimination of one of the crystals. For instance, a 32.768 kHz crystal typically sells for 20 cents to 40 cents, and a 16 MHz crystal meeting 802.15.4 specs typically sells for 50 to 90 cents in production quantities. Elimination of either of these crystals would provide significant cost savings.
The use of the low frequency crystal rather than the high frequency crystal would inherently provide the largest bill of material savings but is much more difficult to implement for two primary reasons. First, the temperature stability of 32.768 KHz crystals makes it difficult to maintain frequency stabilities over wide temperature ranges, and second, the large delta between 32.768 KHz crystals and the multi GHz VCO frequency. While these problems are significant in the use of the low frequency oscillator crystal, any of the above-described implementations would be applicable with a configuration such as that illustrated in
Although the preferred embodiment has been described in detail, it should be understood that various changes, substitutions and alterations can be made therein without departing from the scope of the invention as defined by the appended claims.
This application is related to U.S. patent application Ser. No. 10/865,110 filed on Jun. 10, 2004 (Atty. Dkt. No. CYGL-26,805) and entitled “Method and Apparatus for Calibration of a Two Frequency Oscillator in a Processor-Based System,” which is incorporated herein by reference.