|
Description  |
|
|
This invention relates to ignition spark timing controls for spark ignition
internal combustion engines and, more specifically, to an ignition spark
timing control which is responsive to respective input binary singal
representations of the values of selected independently variable engine
operating parameters for producing output binary signal representations of
predetermined ignition spark timing angles based upon the instantaneous
values of the selected engine operating parameters.
The advent of reliable and inexpensive read only memory units (ROMs)
provides a practical way of controlling the timing of a spark ignition
internal combustion engine in accordance with any two selected operating
variables, such as engine speed and intake manifold vacuum. Such timing,
by the use of a ROM, can be established in accordance with actual tested
engine characteristics, and is not limited to any reproducible
mathematical function of these variables. The control thus established can
be viewed as being responsive to a three-dimensional surface wherein
elevation in relation to a base plane is the spark advance in relation to
a top dead center position, distance along one axis in the plane is
representative of engine speed, and distance along an axis orthogonal
thereto is representative of manifold vacuum. It has been found, however,
that the control established in this fashion is permitted by the ROM
capability may be advantageously modified to reflect the combined effect
of atmospheric pressure and engine vacuum on spark timing. In other words,
it is desirable to provide spark advance values that reflect a
four-dimensional surface in which the spark advance value is determined by
each of engine speed, engine manifold vacuum, and atmospheric pressure as
independent operating variables. Viewed differently, the control may be
visualized as a three-dimensional surface associated with the ROM in
conjunction with engine speed and manifold vacuum as independent variables
which is shifted variably within an envelope of values and about a
selected manifold vacuum value as a reference and in accordance with the
value of atmospheric pressure.
It is, therefore, an object of this invention to provide an improved spark
ignition internal combustion engine ignition spark timing angle control
system.
It is another object of this invention to provide an improved spark
ignition internal combustion engine ignition spark timing angle control
system utilizing a read only memory pre-programmed to produce output
binary signal representations of ignition spark timing angles based upon
engine speed and manifold vacuum variables wherein the timing angle binary
signal representations are further varied by a combined function of engine
manifold vacuum and atmospheric pressure.
A further and more specific object of this invention is to provide a spark
ignition internal combustion engine ignition spark timing angle control
system of the foregoing type in which the combined engine manifold vacuum
and atmospheric pressure control function is generated in a simple and
effective fashion lending itself to the processing characteristics of the
read only memory with a minimum of additional circuit elements.
In accordance with this invention, an ignition spark internal combustion
engine ignition spark timing angle control system is provided wherein a
read only memory is pre-programmed to produce, in response to input
address signals, output binary signal representations of predetermined
ignition spark timing angles, based upon the instantaneous values of both
engine speed and engine manifold vacuum, which are further varied in
accordance with a combined function of engine manifold vacuum and
atmospheric pressure.
For a better understanding of the present invention, together with
additional objects, advantages and features thereof, reference is made to
the following description and accompanying drawings in which:
FIG. 1 sets forth the novel ignition spark timing angle control circuit of
this invention in block form;
FIG. 2 is a representation of the loci of the predetermined ignition spark
timing angles produced by the read only memory circuit element of FIG. 1;
FIG. 3 is a typical ignition spark vacuum advance curve;
FIG. 4 is a curve useful in understanding this invention; and
FIG. 5 is a representation of three areas of the read only memory pertinent
to this specification.
As the ignition spark timing angle control system of this invention is a
combination of several logic circuit elements and modules well known in
the digital computer art, in the interest of reducing drawing complexity,
it is set forth in the drawing in block form.
Referring to FIG. 1 of the drawing, the sequence of operational steps in
response to which the ignition spark timing angle control system of this
invention produces output binary signal representations of predetermined
ignition spark timing angle based upon the instantaneous values of
selected engine operating parameters is established by a sequence control
arrangement 5, hereinafter referred to as the "sequence control". The
sequence control includes a master clock oscillator 6, a binary program
counter 7, a read only memory 8 in which the program is stored and program
decoder and steering logic 9 which decodes the program instruction code
numbers and controls interconnects and routing paths. The binary program
counter 7, which provides address words for the read only memory 8 in
which the program is stored, is driven by and counts the master clock
oscillator output signals in increments of one count per signal, each
increment being referred to as a "state".
At each state, an instruction number is implemented from a stored program,
not shown, which is decoded and properly directed by the program decoder
and steering logic in a manner well known in the digital computer art. The
master clock may be a crystal controlled oscillator of any selected design
well known in the electronics art, the binary counter may be a
commercially available binary counter of a design well known in the art,
the program store may be a commercially available read only memory and the
program decoder and steering logic may be made up of commercially
available and well known logic gate circuits. Preferably, all of these
circuit elements may be laid down on an integrated electronic circuit chip
by techniques well known in the metal oxide semiconductor art. In a
practical application of the ignition spark timing control circuit of this
invention, a crystal controlled oscillator master clock drive a 10 stage
binary digital program counter in increments of one count or state every
36 microseconds.
The preferred engine operating parameters upon which the predetermined
ignition spark timing angles are based are engine speed and engine
manifold vacuum. These predetermined ignition spark timing angles are
further varied in response to engine manifold vacuum and atmospheric
pressure in an amount substantially inversely proportional to atmospheric
pressure. The predetermined ignition spark timing angle for each value of
engine speed and vacuum and the amount of variation thereof for each
combination of engine manifold vacuum and actual atmospheric pressure may
be determined empirically, for example, or by any other convenient method.
Engine speed may be determined by properly processing a series of digital
signal pulses of a repetition rate directly proportional to engine speed
through several procedures well known in the art. Two preferred procedures
for processing the variable frequency digital signals which are of a
frequency directly proportional to engine speed to obtain engine speed
will be briefly described. The variable frequency digital signals, such as
from an alternator driven by the engine, may be gated to the input circuit
of a conventional binary counter or register for a predetermined definite
period of time. The binary output signal of the binary counter at the
conclusion of each gate time interval is a binary code representation of
the number of digital signal input pulses during the gate time interval,
the higher the engine speed, the greater the number of digital signals
counted during the gate time interval. Alernatively, the frequency of the
digital signal pulses may be monitored by an electronic circuit sensitive
to pulse frequency which produces an output signal determined by the
number of pulses per second and is thus a representation of engine speed.
In either process, the output signal representations of engine speed are
converted by a decoder and scaler circuit 20 of conventional, well known,
design into binary signal representation words compatible with the
remainder of the circuit. The compatible engine speed binary signal
representation words may be placed in interface storage register 21.
Referring to the drawing, a crankshaft position sensor and a reference
pulse generator 10 are provided for producing a series of crankshaft
position electrical pulses, each corresponding to one degree of rotation
of the engine crankshaft, of a repetition rate directly proportional to
engine speed and a reference electrical pulse at a predetermined number of
degrees before the top dead center position of each engine piston,
respectively. These items may comprise a circular disc member 12 of
magnetic material having 360 teeth about the periphery, that is, a tooth
for each degree. In the drawing, only a few representative teeth have been
shown in the interest of reducing drawing complexity. Disc member 12 is
preferably mounted upon and rotated by the engine crankshaft but may be
mounted upon and rotated by any other engine or vehicle shaft which is
rotated at a speed equal to engine crankshaft speed. Carried upon and
rotated with disc member 12 is a pole piece 13 of magnetic material having
a salient pole tip corresponding to each two engine cylinders. For an
eight cylinder engine, therefore, pole piece 13 has four salient pole tips
13a, 13b, 13c and 13d, as shown in FIG. 1. A permanent magnet 14 having a
crankshaft position sensor pickup coil 16 wound thereupon is located in
magnetic coupling relationship with the teeth about the periphery of disc
member 12 and another permanent magnet 17 having a reference pulse
generator pickup coil 18 wound thereupon is located in magnetic coupling
relationship with the salient pole tips 13a, 13b, 13c and 13d of pole
piece 13. As disc member 12 and pole piece 13 are rotated at engine
crankshaft speed, therefore, a series of crankshaft position electrical
pulses, each corresponding to one degree of engine crankshaft rotation and
of a repetition rate directly proportional to engine speed, are induced in
pickup coil 6 and appear upon the output circuit which may be a terminal
16a and reference electrical pulses, hereinafter referred to as reference
pulses, are induced in pickup coil 18 and appear upon the output circuit
which may be a terminal 18a. Pole piece 13 is so oriented that, when each
salient pole tip thereof is adjacent permanent magnet 17, the reference
pulse is induced in pickup coil 18 a predetermined number of degrees
before the top dead center position of the engine piston of the cylinder
to which it corresponds. That is, the reference pulse generator produces a
reference pulse at a selected number of degrees before the top dead center
position of each engine piston. It is to be specifically understood that
optical sensors or any other type sensor or any combination thereof may be
substituted for the magnetic crankshaft position sensor and reference
pulse generator without departing from the spirit of the invention.
Engine manifold vacuum and actual atmospheric pressure are sensed by
conventional, commercially available vacuum and pressure transducers,
respectively, of the type which produce a direct current output signal of
a potential level magnitude directly proportional to manifold vacuum and
actual atmospheric pressure, respectively. As these transducers per se
form no part of this invention, they have been represented in FIG. 1 of
the drawing in block form and referenced by the numerals 28 and 29,
respectively. These analog signal representations of engine manifold
vacuum and actual atmospheric pressure are converted and scaled by an
analog to digital converter and scaler circuit 30, which may be of well
known design, into engine manifold vacuum and atmospheric pressure binary
signal representation words compatible with the remainder of the circuit.
The compatible engine manifold vacuum and atmospheric pressure binary
signal representation words may be placed in respective interface storage
registers 22 and 23 until later required.
A conventional, commercially available read only memory 25 is
pre-programmed to produce an output binary signal representation of a
predetermined ignition spark timing angle based upon the instantaneous
value of both of two selected engine operating parameters, for purposes of
this specification engine speed and manifold vacuum, at each of a
plurality of respective selected points within the range of values in
response to respective input address signals. Over the range of values of
engine speed and manifold vacuum, therefore, read only memory 25 generates
a three-dimensional surface of ignition spark timing angles based upon
engine speed and manifold vacuum values as shown in FIG. 2. One example,
and without intention or inference of a limitation thereto, of a read only
memory suitable for use with the circuit of this invention is marketed by
Intel Corporation of Santa Clara, Cal. under the designation, "Type 1702".
For purposes of this specification and without intention or inference of a
limitation thereto, the selected points within the range of values of
engine speed and manifold vacuum at which read only memory 25 is
pre-programmed to produce the output binary signal representations of the
predetermined ignition spark timing angles are every 200 engine
revolutions per minute between 600 and 2800 RPM and every 400 engine
revolutions per minute above 2800 RPM and every 1.5 inches of mercury
engine manifold vacuum between zero and 21.0 inches of mercury. Within the
range of 600 to 4400 engine RPM and within the range of 0 to 21.0 inches
of mercury engine manifold vacuum, therefore, there are 208 selected
points, each a combination of a value of engine speed and a value of
engine vacuum. That is, there are 208 addressable word locations,
hereinafter referred to as "address locations", in read only memory 25,
each of which, when addressed, will produce an output binary signal
representation of a predetermined ignition spark timing angle based upon
an instantaneous value of each engine speed and manifold vacuum.
FIG. 3 of the drawing sets forth a typical ignition spark vacuum advance
curve for a spark ignition internal combustion engine. The specific engine
for which this curve was prepared requires 8.degree. ignition spark vacuum
advance between zero and 1.5 inches of mercury manifold vacuum, 16.degree.
ignition spark vacuum advance at 3.0 inches of mercury manifold vacuum,
24.degree. ignition spark vacuum advance at 4.5 inches of mercury manifold
vacuum and a maximum of 32.degree. ignition spark vacuum advance for all
values of manifold vacuum of 6.0 inches of mercury and greater. These
points on the curve of FIG. 3 are stored in a read only memory as binary
signal representations of the respective values in degrees of ignition
spark vacuum advance. The read only memory in which these points are
stored may be read only memory 25 or another similar read only memory.
FIG. 4 of the drawing sets forth a curve which represents the percentage of
full scale ignition spark vacuum advance of FIG. 3 by which the binary
signal representations of the ignition spark timing angles retrieved from
read only memory 25 are varied in accordance with engine manifold vacuum
and actual atmospheric pressure in substantial inverse proportion to
actual atmospheric pressure. At 30, 29, 28, 27, 26, 24, 22, and 19 inches
of mercury atmospheric pressure, the binary signal representations of the
ignition spark timing angles as retrieved from read only memory 25 are
varied by respective amounts of 0, 2.0, 6.0, 10.0, 18.0, 35.0, 58.0, and
100 percent of the full scale ignition spark vacuum advance of FIG. 3.
These points on the curve of FIG. 4 are stored in a read only memory as
binary signal representations of the respective percentage values. The
read only memory at which these points are stored may be read only memory
25 or another similar read only memory.
FIG. 5 of the drawing is a schematic representation of the three fragments
of read only memory 25 pertinent to this specification. In FIG. 5, each
address location within read only memory 25 is represented as a dot, each
of which is referenced by the decimal numeral corresponding to its address
location code number. In a practical application of the ignition spark
timing control system of this invention, each time an address location is
read only memory 25 is addressed, read only memory 25 produces an output
binary signal representation of an ignition spark timing angle in the form
of a binary code word of 10 binary bits.
For purposes of this specification, it will be assumed that:
a. read only memory 25 is a 16 .times. 15 matrix of address locations;
b. the binary signal representations of the engine speed - engine manifold
vacuum ignition spark timing angles are stored in address locations 1-208,
inclusive, of read only memory 25 with the binary signal representation
word for the ignition spark timing angle corresponding to 600 engine RPM
at zero inches of mercury manifold vacuum being stored in address location
1;
c. the binary signal representations of the degrees ignition spark vacuum
advance at the selected four points of the ignition spark vacuum advance
curve of FIG. 3 are stored in address locations 226-229, inclusive, of
read only memory 25;
d. the binary code representations of the percentage of full scale vacuum
advance at the selected eight points of FIG. 4 are stored in address
locations 230-237, inclusive, of read only memory 25; and
e. the engine is operating under constant conditions of 2300 RPM at 5.25
inches of mercury manifold vacuum in an ambient atmospheric pressure of
26.5 inches of mercury.
A review of FIG. 5 indicates that the selected engine speed points
correspond to respective columns and the selected engine manifold vacuum
points correspond to respective rows of address locations in read only
memory 25. Therefore, analog to digital converter and scaler 30 and
decoder and scaler circuit 20 are designed to code, respectively, the
engine manifold vacuum values and engine speed values as respective 10 bit
binary signal representation words of two five bit sections, hereinafter
referred to as the upper and lower sections, each of which is treated as a
separate word. For purposes of this specification, the first bit position
from the right for each section will be the least significant bit position
corresponding to the decimal numeral one. The upper section of each engine
manifold vacuum binary signal representation word designates the row of
read only memory 25 address locations corresponding to the value of engine
vacuum coded and the upper section of each engine speed binary signal
representation word designates the column of read only memory 25 address
locations corresponding to the value of the engine speed coded. The lower
section of each engine manifold vacuum binary signal representation word
and each engine speed address word designates the fraction of the
difference between the values of any two selected points within the range
of values of engine manifold vacuum or engine speed by which a coded value
of engine manifold vacuum or engine speed which is between any two of the
selected points exceeds the value of the next lowest point. For example,
the difference between the values of any two selected points within the
range of values of engine manifold vacuum is 1.5 inches of mercury. The
fraction of the difference of 1.5 inches of mercury by which a value of
3.75 inches of mercury engine manifold vacuum, between selected points 3.0
inches and 4.5 inches of mercury engine manifold vacuum, exceeds the value
of next lowest selected point of 3.0 inches of mercury engine manifold
vacuum is 0.75/1.5 or 1/2. A five bit binary code can express 32 decimal
numbers. Therefore, the fractions of the difference between the values of
any two selected points are represented as that fraction of 32. For
example, the fraction 1/8 is 4/32 and is coded 00100; the fraction 1/4
is 8/32 and is coded 01000; the fraction 1/2 is 16/32 and is coded 10000,
etc.
With the engine operating under substantially constant conditions of 2300
RPM at 5.25 inches of mercury manifold vacuum in an ambient atmospheric
pressure of 26.5 inches of mercury, when an output binary signal
representation of an ignition spark timing angle is to be calculated,
sequence control 5 implements the necessary instructions to step the
ignition spark timing angle control system of this invention through the
necessary operations.
The binary word address signal for address location 1, binary word
00000-00001, of read only memory 25 is retrieved from read only memory
program store 8 and loaded into address register 35 and the contents of
interface memory register 22, which contains the binary signal
representation word for 5.25 inches of mercury engine manifold vacuum, is
scaled and loaded into accumulator register 36. The value of 5.25 inches
of mercury engine manifold vacuum is between the values of respective
selected points of engine manifold vacuum 4.5 inches and 6.0 inches of
mercury, corresponding to the fourth and fifth rows of address locations
of read only memory 25 as shown in FIG. 5, and exceeds the next lowest
selected point by one-half the difference between the selected points.
Therefore, the value of 5.25 inches of mercury engine manifold vacuum is
coded by analog to digital converter and scaler 30 as the binary signal
representation word 00100-10000, the upper section 00100 designating the
fourth row of address locations in read only memory 25 to which the next
lowest selected point of engine manifold vacuum, 4.5 inches of mercury,
corresponds and the lower section 10000 designating the fraction 16/32 or
1/2. Address register 35 is now conditioned to address the first address
location 65 of the fifth row of address locations of read only memory 25
to which the next highest selected point of engine manifold vacuum, 6.0
inches of mercury, corresponds. As there are 16 address locations in each
row of address locations in read only memory 25, to condition address
register 35 to address the first address location 65 of the fifth row of
address locations, it is necessary that 64, the product of 16 address
locations per row of address locations multiplied by four rows, be added
to the binary word address signal for address location 1 contained in
address register 35. The upper section of the binary signal representation
word for 5.25 inches of mercury engine manifold vacuum contained in
accumulator register 36, binary word 00100 designating the numeral four,
is multiplied by the quantity 16 in arithmetic logic unit 40, which may be
any binary multiplier circuit, and the product 64, binary word
00010-00000, of this multiplication operation is added to the binary word
address signal, binary word 00000-00001 designating the numeral one,
contained in address register 35 in binary adder 41 which may be any
conventional binary adder circuit. The sum 65, binary word 00010-00001, of
this addition operation is loaded into address register 35 as a binary
word address signal for read only memory 25. The contents of interface
memory register 21, which contains the binary signal representation word
for 2300 RPM engine speed, is scaled and loaded into accumulator register
36. The value of 2300 RPM engine speed is between the values of respective
selected points of engine speed 2200 and 2400 RPM, corresponding to the
ninth and tenth columns of address locations of read only memory 25, and
exceeds the next lowest point by one-half the difference between the
selected points. Therefore, the value of 2300 RPM engine speed is coded by
decoder and scaler circuit 20 as the binary signal representation word
01001-10000, the upper section 01001 designating the ninth column of
address locations in read only memory 25 to which the next lowest selected
point 2200 RPM engine speed corresponds and the lower section 10000
designating the fraction 16/32 or 1/2. Address register 35 is next
conditioned to address the tenth address location 74 of the fifth row of
address locations of read only memory 25 which is in the column of address
locations to which the next highest selected point 2400 RPM engine speed
corresponds. The upper section of the binary signal representation word
for 2300 RPM engine speed contained in accumulator register 36, binary
word 01001 designating the numeral nine, is added in binary adder 41 to
the binary word address signal, binary word 00010-00001 designating the
numeral 65, contained in address register 35; the lower section of the
binary signal representation word contained in accumulator register 36,
binary word 10000 representing the numeral 16, is loaded into constant
multiplier register 37 and the sum 74, binary word 00010-01010, of the
addition operation is loaded into address register 35. The binary signal
representation word stored at address location 74 of read only memory 25
is retrieved and loaded into accumulator register 36. During this
operation, the binary word contents of address register 35 reduces by one
to the numeral 73, binary word 00010-01001. The binary signal
representation word stored at address location 73 of read only memory 25
is retrieved and loaded into interim register 38. During this operation,
the binary word contents of address register 35 reduces by one to the
numeral 72, binary word 00010-01000. The interpolation equation [(A-X)
K/32 = X + 0.5], where "A" is the contents of accumulator register 36, "X"
is the contents of interim register 38 and "K" is the contents of constant
multiplier register 37, is now solved by arithmetic logic unit 40.
Referring to FIG. 5, the binary signal representation words stored in
address locations 73 and 74 of the read only memory 25 represent ignition
spark timing angles of 29.degree. and 31.degree. advance, respectively.
Substituting the proper numerical values in the above set forth
interpolation equation, [(31.degree.-29.degree.) .times. 16/32 +
29.degree. + 0.5] = 30.degree. ignition spark advance, any fractional
portion being disregarded. The binary signal representation word for
30.degree. advance ignition spark timing angle, binary word 11110, is
loaded into a scratch pad memory register 51. The binary word address
signal contained in address register 35, binary word 00010-01000
representing the numeral 72 is reduced by 14 in arithmetic logic unit 40
to 58, binary word 00001-11010, and is then reloaded into address register
35 as the latest binary word address signal for address location 58 of
read only memory 25. The binary word address signal contained in address
register 35 is reduced by 14 to provide the address location 58 of read
only memory 25 which is the address location in the fourth row and tenth
column of address locations to which 4.5 inches of mercury engine manifold
vacuum and 2400 RPM engine speed correspond, respectively. The binary
signal representation word stored at address location 58 of read only
memory 25 is retrieved and loaded into accumulator register 36. During
this operation, the binary word contents of address register 35 reduces by
one to the numeral 57, binary word 00001-11001. The binary signal
representation word stored at address location 57 of read only memory 25
is retrieved and loaded into interim register 38. During this operation,
the binary word contents of address register 35 reduces by one to the
numeral 56, binary word 00001-11000. The interpolation equation
hereinabove set forth is solved by arithmetic logic unit 40. Referring to
FIG. 5, the binary signal representation words stored in address location
57 and 58 of read only memory 25 represent ignition spark timing angles of
25.degree. and 27.degree. advance, respectively. Substituting the proper
numerical values in this equation, [ (27.degree.-25.degree.) 16/32 +
25.degree. + 0.5 ] = 26.degree. ignition spark advance, any fractional
portion being disregarded. The binary signal representation word for
26.degree. advance ignition spark timing angle, binary word 11010, is
loaded into another scratch pad memory register 52. The lower section of
the binary signal representation word for 5.25 inches of mercury engine
manifold vacuum, binary word 10000, is retrieved from interface register
22 and is scaled and loaded into constant multiplier register 37; the
binary signal representation word for 30.degree. ignition spark advance,
binary word 11110, stored in scratch pad memory register 51 is loaded into
accumulator register 36 and the binary signal representation word for
26.degree. ignition spark advance, binary word 11010, stored in scratch
pad memory register 52 is loaded into interim register 38. The
interpolation equation hereinabove set forth is now solved by arithmetic
logic unit 40. Substituting the proper numerical values in this equation,
[ (30.degree.-26.degree.) 16/32 + 26.degree. + 0.05 ] = 28.degree.
ignition spark advance, any fractional portion being disregarded.
Therefore, the ignition spark timing angle for 5.25 inches of mercury
engine manifold vacuum at 2300 RPM engine speed is 28.degree. advance. The
binary signal representation word for 28.degree. advance, binary word
11100, is loaded into scratch pad memory register 53.
During the calculation of the ignition spark timing angle just described,
the values retrieved from and loaded into the memory registers and from
read only memory 25 are properly so directed by program decode and
steering logic 9 in a manner well known in the digital computer art.
Referring to FIG. 3, ignition spark vacuum advance in degrees is plotted
against engine manifold vacuum in inches of mercury with selected points
1.5 inches of mercury, 3.0 inches of mercury, 4.5 inches of mercury and
6.0 inches of mercury requiring 8.degree., 16.degree., 24.degree. and
32.degree., respectively, of ignition spark vacuum advance. The binary
signal representation word for 8.degree., binary word 00000-01000, is
stored in address locati | | |