Abstract:
A method of modulating the pulse width of a pulse width signal in response to an analog signal. The steps include changing the analog signal to a digital signal, changing the digital signal to a number of counts, changing the number of counts to a time delay, and then using the logic circuit to combine the time delay with a pulse with modulated input to change the pulse width of an output signal.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This invention relates to pulse width modulation. 
     2. Prior Art 
     For information transmission over distances, it is often desirable to encode such information upon a carrier signal. Various types of modulating signals are known. For example, an analog modulated (AM) signal, such as that used in AM radio transmissions, is a carrier signal with a certain frequency, and its amplitude is modulated with the information to be transmitted. If the information to be transmitted is analog, then an analog to AM conversion has to be done. Similarly, if a frequency modulation (FM) is desired, and if the information source is analog, an analog to FM conversion is necessary. When information is received, a decoding process is necessary. Various electronic circuits, including integrated circuits, exist to convert analog information into AM or FM signals, or AM or FM signals into analog information. Often, there is need to encode information by modifying the pulse width of a carrier, called a pulse width modulated (PWM) signal, or to extract information from a PWM signal. To date, there is no easy way to do this. 
     In automotive applications, for example, the exhaust gas sensor generates a PWM type signal which contains information about oxygen content. The engine controller continuously monitors the rising and falling edges of the PWM, thus using up important hardware and software resources. If the PWM were converted to an analog signal, such resources could be freed and an analog to digital channel used instead, thus resulting in possible cost savings. 
     Another automotive application where a PWM signal is present is spark advance command encoding. The spark advance command, which is sent to the ignition module by the engine controller, is a PWM signal in some vehicles. Often, while developing new or improved vehicle functionalities, it is desirable to modify the command generated by the engine controller without having to modify the engine controller&#39;s software, a time and resource consuming task. One possible solution is to intercept the PWM signal and to modify its pulse width (stretch or compress) based on an analog command. This modified pulse width is then sent to the ignition module. 
     The automotive examples above show the need for PWM to analog and analog to PWM conversions, which is the subject of the present invention. 
     SUMMARY OF THE INVENTION 
     This invention includes a method of modulating the pulse width of a pulse width signal in response to an analog signal. The steps of the inventive method include changing the analog signal to a digital signal, changing the digital signal to a number of counts, changing the number of counts to a time delay, and then using the logic circuit to combine the time delay with a pulse with modulated input to change the pulse width of an output signal. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1A is a block diagram of a method of modulating a pulse width signal with an analog signal input in accordance with an embodiment of this invention. 
     FIG. 1B is a block diagram of a method of modulating an analog signal with a pulse width signal input in accordance with an embodiment of this invention. 
     FIG. 2A is a block diagram showing an apparatus for modulating a pulse width signal with an analog signal input as embodied by this invention. 
     FIG. 2B is a block diagram showing an apparatus for modulating an analog signal with a pulse width input as embodied by this invention. 
     FIG. 3 is a block diagram showing the calibration process used in the embodiment of this invention. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Referring to FIG. 1A, a method in accordance with an embodiment of this invention includes a block 9 where the range of an analog input signal is bounded within a predetermined range. A voltage offset may also be added in block 9, whereby the analog input signal will be within a predetermined operating range. Further, the added offset voltage may provide noise immunity. The bounded signal is applied to a block 10 wherein it is converted to a digital signal, which is then coupled to a block 11 wherein the digital signal is converted to counts. Logic flow from block 11 goes to a block 12 where the counts are converted to a time delay. A logic block 13 receives inputs from block 12 and a block 14 which provides a pulse width input. The output of logic block 13 is a PWM signal which is modified in accordance with the input to block 9. Thus, voltage is converted to pulse width. This is in contrast to converting voltage to frequency, which is more easily known. 
     Referring to FIG. 1B, the reverse is also possible by applying a PWM signal to the input of a block 15. Block 15 changes the PWM signal to a number of counts. Logic flow from block 15 goes to a block 16 wherein the counts are converted to a digital signal. Logic flow from block 16 goes to a block 17 wherein the digital signal is converted to an analog signal. 
     FIGS. 2A and 2B present the preferred embodiments of the methods portrayed in FIG. 1A and 1B. The block diagram in FIG. 2A shows how to extend the pulse width of a given signal (PWM) with an amount commanded by an analog signal (ANA --  IN), and generate a resulting output signal PWM --  OUT. 
     An analog to digital block 201 coverts the analog command signal ANA --  IN into a digital signal, suitable for further processing. In this implementation, the analog command input is converted into eight bits of digital information. A 200 kHz clock ADCK runs the A/D converter continuously at a conversion rate of t conv  =ca 365 us. When the conversion is completed, all the data lines IADB0 through IADB7 are ready and an interrupt signal ADINTRN is generated (logic low for ca. 600 ns). 
     A block 202 and a block 203 perform a data latch and a select function, respectively. The converted analog signal, available on lines IADB0 through IADB7, is latched into the register of block 202 (such as a 74174) at the rising edge of a signal ADINTRN, which is provided by block 201 upon completion of the conversion. An output data bus of block 202, ADBL0-ADBL7, is fed into multiplexer 203 (such as a 74157). The multiplexer is not a necessary part of the circuit; it is shown here as a means of providing proper (unchanged) output PWM signals in case the analog command input is noisy, spurious, or otherwise invalid. The multiplexer&#39;s output state is controlled with signals IN --  RANGE and CMD --  EN --  N, generated externally by the user. If the CMD --  EN --  N line is high, then the multiplexer&#39;s outputs (DB0-DB7) are automatically forced to 0. The user must pull this line low to enable the multiplexers. Then, the user must decide when or if the analog command at the A/D input is valid and set the IN --  RANGE line to 1. When the IN --  RANGE=1 (and the CMD --  EN --  N=0), the multiplexer&#39;s output bus DB0-DB7 will reflect the IADB0-IADB7 values. Any other combination of the CMD --  EN --  N and IN --  RANGE values will result in the DB0 through DB7 lines being 0. This 0 output will translate in an output PWM mirroring (equaling) the input PWM, and no modulation occurs. The multiplexers can be removed if this added protection is not necessary, i.e., when the analog signal is guaranteed (by other means) to be always present and in the desired range, or there are other means to provide an always valid analog signal. 
     A block 204 performs a counter function. The DB0-DB7 bus content is loaded into counter 204 at the falling edge of an input PWM signal (IPWM --  CK), after which a countdown starts at the ADCK rate. This countdown translates into a time delay which is proportional to the inverse of the DB0-DB7 content. When the counter content reaches 0, an output flag RCON pulses low. In this application, the ADCK signal rate was chosen at 200 kHz to provide 5 microsecond clock. The combination of this clock rate, and the 8 bit A to D conversion result in the desired 25.6 us delay for every 100 mV analog command. 
     A logic block 205 is a D flip-flop which generates an output PWM (PWM --  OUT). The rising edge of the signal is triggered by the negated input PWM (IPWMN), and the falling edge of RCON, which occurs at the desired delay. A power-on-reset (PonReset) flag provides for predictable initial state of the flip-flop (and other devices in the circuit) after circuit power-up. 
     A PWM to analog conversion method includes four blocks, shown in FIG. 2B. A logic block 207 receives as input a signal PWM --  IN and a 100 kHz (ADCK/2) clock and generates necessary clock (Gated ADCK/2), CLEAR, and ENABLE signals for a COUNTER-REGISTER block 208. The input clock signal, Gated ADCK/2, is ADCK/2 bounded by the PWM --  IN signal, so block 208 will only count clock signals as long as the PWM --  IN signal is high. The count number will be transferred to the output registers of block 208 approximately at the next positive edge of the PWM --  IN signal. (Note a disadvantage: if the PWM --  IN stops, then the output register of block 208 will hold the last received PWM --  IN pulse width value). The stored values (APWM0-APWM7) are fed into a DIGITAL to ANALOG converter 209 (in this implementation, 8 bits). 
     The converter output is passed on to an ANALOG LOGIC block 210 that is comprised of three logic elements. These elements impart adjustable gains and offsets to the ANA --  PWM signal as portrayed methodically in FIG. 3. An amplifier 300 applies a gain to the signal, while logic block 301 produces an offset voltage. These two effects are added by summer 302, producing the output signal ANA --  OUT. 
     COUNTER-REGISTER block 208 counts at a rate of 10 us (10 kHz) and the PWM --  OUT is in the range of 68 to 1796 us, thus its count number will be in the range of ca. 6 to 179. It may be desirable to use a faster counter to take full advantage of the 8 bit D/A, which accepts a maximum count of 255 (=2 8  -1). The full scale output of the D/A is set to 2.55 V. The count range then will translate into 68 mV to 1.796 V. Logic block 300 has a calibratable gain of ca. 2.31 to translate further the 68-1796 mV range into 0.157 to 4.15 Volts. Logic block 301 creates a calibratable voltage of ca. 0.343 Volts. The summer 302 adds the two voltages to generate the ANA --  OUT signal with the range of 0.5 V to 4.5 V. Due to bias and leakage currents, the 300 and 301 circuits have adjustable gains for fine tuning. 
     In automotive applications, circuits which modify the spark advance (SA) of an internal combustion engine are controlled by an electronic engine controller (EECIV) with a high-data-rate ignition module (HDRIG). The HDRIG accepts input commands from the EECIV in the form of a PWM signal with a repetition rate proportional to the engine speed. The pulse width (PW) of said signal is in the range of 68 to 1796 microseconds for normal operating conditions. The HDRIG interprets the PW received and generates a spark advance command in the range of 57.5° BTDC (degrees before piston reaches top dead center, positive value) to 10° ATDC (after piston reaches top dead center, negative value). The range of 68 to 1796 microseconds is scaled between 57.5° and -10°, producing the transformation formula: SA(in degrees)=(1540-PW) * 0.0390625, or (delta SA in degrees)=(delta PW in usec) * 0.0390625. In the preferred embodiment, delta SA is restricted to a maximum value of 40 degrees, as it is highly unlikely that a greater change would be commanded. 
     There are occasions when it is desirable to control (reduce) engine torque without undertaking the tedious and time consuming task of modifying the EECIV control code. One way to reduce engine torque is by retarding spark advance from its current value via a stand alone controller. The HDRIG uses a PWM signal as input, and the stand alone controller, an embodiment of this invention, intercepts the PWM signal and &#34;stretches&#34; it (increasing the PW). The amount of &#34;stretch&#34; would represent the desired additional spark retard and ultimately result in an engine torque reduction, compared with what it would have been without the &#34;stretch&#34;. As long as the PW of the modified signal was within the HDRIG&#39;s limits, the intervention would be accepted as if it came directly form the EECIV. The particular PWM signal frequency range and PW range determines the clock rates and circuits which are necessary. These circuits can be made generic and programmable for any PWM signal. The complete chain of transformations required to achieve the &#34;stretched&#34; PW is the following: 
     1. Desired torque reduction to spark retard offset (calculated in the stand alone controller) 
     2. Desired spark retard offset (DES --  SA, degrees) to analog output/analog input: 
     (DES --  SA) 0-40 deg→(ANA --  IN) 0.5 V-4.5 V 
     3. Analog to digital (with 0.5 V input offset) via National Semiconductor ADC0801 or equivalent: 
     (ANA --  IN-0.5 V) 0.0 V-4.0 V→(IADB0-7) 0-204 counts  truncated! 
     4. Counts to time delay (5 us/count) using a 74191 counter: 
     (IADB0-7) 0-204 counts→(delta PW) 0-1024 us 
     5. Delay (delta PW) to added spark retard, done in the HDRIG: 
     (delta PW) 0-1024 us→(delta SA) 0-40 deg where (delta SA)=(delta PW) * 0.0390625. 
     Thus, the overall transfer function of the circuit is: PWM --  OUT=IPWMN+(ANA --  IN-0.5) * 256, where IPWMN is the unmodulated pulse width signal input from block 14. The overall transformation only occurs if the ANA --  IN is deemed in-range by the EECIV, whereby it sets IN --  RANGE=1 and CMD --  EN --  N=0. Had the EECIV deemed the signal out of range or erroneous, IN --  RANGE would have been set to 0 and CMD --  EN --  N to 1, thus commanding a default output of 0. 
     The reverse is also possible. The PW of the PWM --  IN signal is converted back to desired spark retard (SA --  DEG, degrees), however, with a different set of transformations than the DES --  SA to analog spark advance to PWM conversion, as follows: 
     1. PWM --  IN and ADCK/2 clock signals into ENABLE, CLEAR and Gated ADCK/2 clock signals via a LOGIC block. 
     The Gated ADCK/2 contains the number of clock pulses generated while PWM --  IN is high: 
     (PMW --  IN) 68-1796 us→(Gated ADCK/2) a pulse train of 6-179 pulses  truncated! 
     2. Pulse train to count conversion: 
     (Gated ADCK/2) pulse train of 6-179 pulses→(APWM0-7) 6-179 counts 
     3. Count (digital) to analog conversion: 
     (APWM0-7) 6-179 counts→(ANA --  PWM) 60-1790 mV 
     4. Offset voltage and necessary gain are imparted to the signal to calibrate it to the original analog signal: 
     (ANA --  PWM) 60-1790 mV→(ANA --  OUT) 0.5-4.5 V where ANA --  OUT≈(2.31*ANA --  PMW)+0.343 V. Again, gain and offset are calibratable. 
     5. Analog output to desired spark retard, ranging from -10° to 57.5°: 
     SA --  DEG (spark retard)=16.95*(3.910-ANA --  OUT) 
     Thus, the spark retard has been extracted from a modulated pulse waveform. This output analog signal may be used to check the validity of the PWM being sent to the HRDIG or for feedback to the EECIV. 
     Various modifications and variations will no doubt occur to those skilled in the various arts to which this invention pertains. Such variations which basically rely on the teachings through which this disclosure has advanced the art are properly considered within the scope of this invention.