Implantable cardiac device with dual clock control of microprocessor
BACKGROUND OF THE INVENTION 
     The present invention relates to a microprocessor based implantable cardiac device, and more specifically to a microprocessor system having dual clock control to reduce the current drain of the microprocessor. 
     In implantable devices, such as implantable pacemakers and defibrillators, it sometimes is appropriate to provide a plurality of timing signals at various frequencies. For example, a single clock frequency can be chosen to drive a set of continuously clocked timers and the microprocessor in the implantable device, and the microprocessor can be capable of assuming either a sleep mode or a run mode. The run mode could be triggered by one of a plurality of presettable timers timing out, the occurrence of an asynchronous event such as an R-wave sense, telemetry interrupt information, etc. However, a single clock system does not provide the optimal frequency for driving either the microprocessor or each of the individual timers. 
     Specifically, in such systems, the frequency provided to the timers generally would be too high, if taken directly from the clock source. Therefore, the source clock signal must be divided down to drive the various presettable timers, such as for example, timing the various intervals in a pacing algorithm. This frequency division of the source clock signal is a waste of power. 
     In addition, to partially reduce power requirements, the frequency provided to the microprocessor by the clock source typically would be lower than that at which the microprocessor is capable of running. Therefore, either the source clock signal would have to be multiplied to a higher frequency, of the slower frequency would be used to drive the microprocessor. Under the latter situation, the microprocessor would have a slower response time to external stimuli and thus have a limited overall processing capability, particularly in the implementation of a complex computation algorithm. 
     SUMMARY OF THE INVENTION 
     It is a primary object of this invention to provide a microprocessor based control system having maximum processing capability, but not at the expense of power requirements. 
     It is another object of the present invention to provide a microprocessor based implantable system having dual clocks whereby a first clock is employed for basic timing functions, and a second, high powered clock is employed only for processing or computational functions performed by the microprocessor. 
     It is yet another object of the present invention to provide a microprocessor based implantable system having first and second separate clocks whereby a first clock is free running for performing basic timing functions, and a second clock is turned on and off only as required to perform high powered computational functions by a microprocessor. 
     It is a further object of this invention to provide a modified ring oscillator circuit having instant on and off control and also having the capability of being held in its high state for a predetermined period of time to prevent the microprocessor from attempting to read or write while the various other timers in the microprocessor based implantable system are changing. 
     The above and other objects and advantages will become more apparent when reference is made to the following description taken in conjunction with the accompanying drawings. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a schematic block diagram illustrating a microprocessor base control system of the prior art. 
     FIG. 2 is a schematic block diagram illustrating the microprocessor based control system having dual clocks, in accordance with the present invention. 
     FIG. 3 is a schematic diagram illustrating the modified clock circuit having start and inhibit control in accordance with the teachings of the present invention. 
     FIG. 4 is a schematic diagram of the interrupt and clock start circuity. 
     FIG. 5 is a timing diagram illustrating the various signals and their correlation in the stop clock inhibit mode. 
     FIG. 6 is a timing diagram illustrating the timing signals and their correlation in the predetermined time interval inhibit mode. 
    
    
     DETAILED DESCRIPTION OF THE DRAWINGS 
     Referring first to FIG. 1, a microprocessor based implantable system of the prior art is illustrated. In this system, a microprocessor 10 is driven by an external clock 12, but only when awakened from a &#34;sleep&#34; mode. The timing signal from the external clock 12 is divided into a plurality of frequencies F 1 , F 2 , . . . F N  by a clock divider 14 for driving a plurality of timers designated by block 16. Upon the timers timing out, or the detection of an asynchronous event, or other external interrupts such as telemetry interrupts, detected by an interrupt/wake up control logic unit 18, the microprocessor 10 is triggered to &#34;wake up&#34; from the &#34;sleep&#34; mode to a &#34;run&#34; mode. 
     The microprocessor 10 is of the Motorola type and has a multiplexed address/data bus and address and data strobe signals for demultiplexing. 
     The disadvantages of this system lie in the single clock arrangement which limits the processing capabilities of the microprocessor 10 and requires additional power to generate the various other frequency clock signals for the timers. Typically, the frequency provided to the microprocessor is lower than that at which the microprocessor is capable of running. As a result, the microprocessor 10 has a limited processing capability and a slower response time to external stimuli. Furthermore, because the external clock frequency (100 kHz) is typically higher than that required by the individual timers, the clock divider 14 must divide the external clock signal to generate the various frequencies required for various timing algorithms, such as a pacing algorithm. 
     Referring now to FIG. 2, where like elements from FIG. 1 are shown by the same reference numerals, the microprocessor based system in accordance with the present invention is shown. The system of FIG. 2 includes a 1 MHz clock 20 connected between the microprocessor 10 and the interrupt/wake up control logic unit 18, that serves the purpose of providing a clock signal for the microprocessor 10. 
     The frequencies of the clocks 12 and 20 can be optimized for a particular application. However, a 32 kHz clock 12 has been found to be suitable for basic timing functions in pacing and defibrillation in accordance with the present invention. In addition, a 1 MHz clock for the microprocessor 10 provides a ten times improvement in response time to external events and allows for more processing between events when necessary. 
     The external clock and the associated timers 16 are free running devices. The clock 20 on the other hand, is turned on and off only as required. Typically, the events which will trigger the clock 20 to turn on include the timing out of one of the timers 16, the detection of an asynchronous event, the sensing of a predetermined cardiac condition, or telemetry interrupts provided to the interrupt/wake up control logic unit 18. The logic unit 18 determines, based on the input from the timers and any other external input, whether it is necessary to employ the high level processing capabilities of the microprocessor, and as such &#34;wake up&#34; the clock 20. 
     When a condition is detected that triggers the microprocessor 10 to &#34;wake up&#34;, the microprocessor 10 and clock 20 stay operational as long as the microprocessor 10 determines that high level computation needs exist. However, once it is determined that there is no longer a need for the microprocessor 10, the microprocessor 10 triggers the clock 20 to turn off or enter the &#34;sleep&#34; mode as illustrated in FIG. 2. By this arrangement, both power and processing capabilities are optimized since the high power clock 20 is only operating when high level processing capabilities are required. In addition, by providing both a low power clock 12 and a high power clock 20, the high power clock being active only when high level processing is required, the processing capabilities of the microprocessor 10 are optimized at little or no expense to power consumption. Furthermore, because the microprocessor is controlled by its own clock 20, the external clock 12 can be of a lower frequency than that of the prior art system (FIG. 1). By this, the clock divider 14 requires less power to generate the required timing signals since the source signal which the clock divider 14 receives is lower. 
     Referring to FIG. 3, the clock control circuitry 22 is shown in detail and comprises three D-type flip-flops, 24, 26, and 28, and a control gate 30. The control signals include AS (Address Strobe) STOP-CLK, DS (Data Strobe), START, MCLR, and 8 msec. The 8 msec clock signal is derived from the 32KHZ clock and has a pulse width of 15 microsec, while the address strobe AS is derived from the 1 MHz clock by the microprocessor. The signal AS is connected to the clock inputs of flip-flops 24 and 26 via inverter 32. The STOP-CLK and DS signals are connected to the clock input of flip-flop 28 via the NAND gate. START and MCLR are fed the reset terminal of flip-flop 28 via the NOR gate 36. Finally, the 8 msec signal together with MCLR are connected via NOR gate 38 to the reset terminals of flip-flops 24 and 26. 
     The control gate 30 inhibits the clock 20 upon the occurrence of either input to the gate 30 being high. The MCLR signal is the master clear signal which goes high upon system power up or when a clear of the system is initiated by an external reset. The 8 msec signal is a clock that is fed to the system timer to clock them at 128 Hz. The 8 msec signal is derived from the 32KHZ clock signal and has a pulse width of 15 microsec. 
     The control circuitry 22 responds to both signals from the microprocessor 10, which include DS, AS, and STOP-CLK, and to other externally generated signals, such as START, 8 msec and MCLR. The START signal triggers the clock 20 to its on state and is generated as a result of programmable interrupts stored in an interrupt register 40, as shown in FIG. 4. The contents of interrupt register 40 is compared, bit by bit, with the contents of an interrupt mask 42. If a programmed interrupt is not masked by the interrupt mask 42, then the START signal is generated. 
     The STOP-CLK signal, which terminates operation of the clock 20, is generated by the microprocessor 10 when reference to a particular address in an internal program is made. The STOP-CLK signal interrupts operation of the clock 20 and freezes the clock in its off state. System software for the microprocessor 10 is written to respond to input from the timers 16 or other interrupts and then to turn off the clock 20. 
     Referring now to FIGS. 3, 5 and 6, the operation of the control circuitry 22 will be described. FIG. 5 illustrates the operation of clock 20 in response to START and STOP-CLK signals. The 1 MHz clock signal corresponds to the output of clock 20. As illustrated, output of the ring oscillation based clock 20 is immediately terminated when the STOP-CLK signal goes from high to low. The clock 20 turns on when the START signal goes from low to high. 
     FIG. 6 illustrates the timing for the clock inhibit mode whereby the operation of clock 20 is suspended to prevent the microprocessor 10 from reading the value of the timers 16 while they are being clocked by a 128 Hz clock signal. The 8 msec clock is the primary clock to the timers. This signal is a pulse one-half the width of the 32KHZ clock cycle which occurs every 7.8125 msec. The timers are clocked on the falling edge of the 8 msec clock and the inhibit circuit 22 is inactive as long as the 8 msec is low. This is accomplished by holding flip-flops 24 and 26 in Reset states. When the 8 msec signal goes high, the Reset on these flip-flops is released. At the trailing edge of the first pulse of the Address Strobe AS following the transition from 0 to 1 of the 8 msec clock, flip-flop 24 is clocked triggering the output Q0 to logic 1. Thus, a logic 1 is applied to the data input of flip-flop 26. At the second AS pulse, the output of flip-flop 26 Q1 goes high which holds the microprocessor in the address decode state until the 8 msec clock goes to low. Thus, it is guaranteed that 3 microseconds will be provided from the time the timers are clocked until the first high to low transition of the Data Strobe DS, when data is written or read. The flip-flops 24 and 26 provide a synchronizing mechanism between the 8 msec clock signal, which is derived from the 32 KHz clock, and the Address Strobe As, which is derived from the 1 MHz clock. Synchronization is required between these two asynchronous signals for proper cooperation of the two clocks. 
     The above description is intended by way of example only and is not intended to limit the present invention in any way except as set forth in the following claims.