Method and apparatus for controlling spark timing

Abstract: A digital spark timing control for an ignition system of a spark ignited internal combustion engine (10) comprises engine crankshaft position sensing means (14,16) which develops, by way of example, three reference pulses and eighteen position pulses for each complete revolution of the crankshaft (12). The reference pulses (CRANK 2) are angularly spaced by 120° and the position pulses (CRANK 1) by 20°. A spark timing value is computed by computing means (74) and its program is interrupted at the occurrence of a reference or position pulse. The system, at the occurrence of each interrupt, determines whether or not the spark is to occur in the next twenty degree period. If the spark should occur in the next twenty degree period, the system utilizes the most recent twenty degree time period to determine how long it will take the engine crankshaft (12) to rotate from its current position to the desired spark position. This compensates for spark timing errors that might otherwise occur due to changes in engine speed.

Description: This invention relates to a method and apparatus for controlling spark timing of an ignition system of a spark ignited internal combustion engine. Digital spark timing control systems for spark ignited internal combustion engines are well known, one example being the system disclosed in the United States patent US-A-4,231,091. In known digital spark timing systems, a plurality of consecutively occurring reference position pulses are provided in synchronism with rotation of an engine crankshaft. These pulses control an electronic control module (ECM) which takes the form of a programmed microprocessor. Engine speed (RPM) is determined by counting the number of constant frequency clock pulses that occur between consecutively occurring position reference pulses and the number of clock pulses so counted represent a reference time period. The ECM, in response to the reference time periods and other engine operating parameters, computes a spark timing value in terms of a time period. The type of system that has been described can be called a time-based system since spark timing control is achieved by computing and utilizing time periods. The known time-based spark timing systems are subject to timing errors due to, amongst other things, the fact that the spark command is not based on the most recent engine speed information. If engine speed remains constant after its RPM has been determined, the spark should be delivered at the desired computed crankshaft position. However, should the engine slow down (decelerate), the engine crankshaft will traverse a smaller angle in the computed time period. Conversely, if the engine accelerates, the engine crankshaft will traverse a larger angle in the computed time period. In either case, the change in engine speed will introduce errors with regard to the crankshaft position at which the spark plug is fired. GB-A-2175955 discloses a method of controlling spark timing in which engine speed is determined with a high resolution after each of the position pulses per reference angle. EP-A-0357197 discloses that a timing calculation should be made as late as possible especially when engine speed is determined with a high resolution. The engine speed is determined from at least two reference periods including the most recent reference period. The present invention seeks to provide an improved method and apparatus for controlling spark timing. A method of and apparatus for controlling the spark timing of an ignition system of a spark ignited internal combustion engine, in accordance with the present invention, is characterised over GB-A-2175955 by the combination of features specified in claims 1 and 4 respectively. In an embodiment there is provided a digital spark timing control which determines engine RPM over an angle of engine crankshaft rotation that immediately precedes the crankshaft position at which the spark should occur. In putting this embodiment into practice, a crankshaft position sensor arrangement is provided which produces a plurality of reference pulses and a plurality of position pulses. The arrangement is such that a plurality of position pulses are provided between consecutively occurring reference pulses. By way of example, for a six-cylinder engine the arrangement produces three reference pulses (3X) and eighteen position pulses (18X) for each complete revolution of the crankshaft. The 3X pulses that occur are spaced by 120° and the 18X pulses by twenty degrees. This embodiment uses an electronic control module (ECM) which takes the form of a programmed microprocessor to develop various engine control functions including spark timing. The background software of the ECM makes calculations once for a certain loop time period, which may be about 12.5 milliseconds. This operation is asynchronous to crankshaft position. The system develops interrupts at the occurrence of both the 3X and 18X pulses which stop the execution of background software cycle or loop. Further, at each interrupt, the system determines whether or not the prior computed spark is to occur during a following angular period. More specifically, in the embodiment that develops eighteen position pulses (18X), the system determines whether or not the spark should occur within the next twenty degrees, that is, within the twenty degrees following an interrupt. If the spark is not supposed to occur within the next twenty degrees, the current supply to the primary winding of an ignition coil is not shut-off and no spark occurs. This mode of operation is repeated for each consecutively occurring interrupt and eventually an interrupt crankshaft position is reached at which the spark should occur within the next twenty degrees of crankshaft rotation. When this happens, the system uses the most recent twenty degree period of time to determine how long it will take the engine to rotate from its current position (an interrupt position) to the desired spark position. An embodiment of the present invention is described below, by way of illustration only, with reference to the accompanying drawings, in which: Figure 1 illustrates engine crankshaft position detecting apparatus for developing two pulse trains related to engine crankshaft position; Figure 2 illustrates various pulse trains as a function of engine crankshaft position that are used in an embodiment of this invention; Figure 3 illustrates an ignition system made in accordance with an embodiment of this invention; Figures 4 and 5 show flow charts illustrating the manner in which the ignition system of Figure 3 is controlled. Referring now to the drawings, and more particularly to Figure 1, a spark ignited internal combustion engine 10, which for purposes of explanation of this embodiment is a six-cylinder engine, has a crankshaft 12 which drives two wheels 14 and 16 that are formed of magnetic material such as steel. The wheel 14 has an annular rim 14A which rotates through a gap in a fixed Hall effect sensor 18. This sensor has a Hall effect device H and a permanent magnet M that are aligned with each other. The rim 14A has eighteen slots and eighteen teeth. The slots are designated as 14B and some of the eighteen slots are shown in Figure 1. Each slot and tooth is about ten angular degrees wide. As the crankshaft 12 rotates, the rim 14A rotates between the Hall effect device and magnet to allow flux developed by the magnet alternately to intercept the Hall effect device or to be shunted away from the Hall effect device. The Hall effect device H of sensor 18 is connected to signal shaping circuit 20 which, in turn, is connected to an output conductor 22. Conductor 22 is connected to a junction 24. Junction 24 is also illustrated in Figure 3. The pulse waveform that is developed on line 22 as crankshaft 12 rotates is shown in Figure 2, where it is identified as CRANK 1. This waveform goes alternately high and low for rotation angles of the crankshaft of ten degrees. Thus, during one revolution of crankshaft 12, there will be eighteen alternately occurring high and low periods which are each ten degrees wide. The other wheel 16 is associated with another Hall effect sensor 26 having a Hall effect device H and a permanent magnet M. The annular rim 16A of wheel 16 rotates through the gap between the Hall effect device H and magnet M. Rim 16 has three angularly spaced slots 16B (for a six-cylinder engine), only one of such slots being illustrated in Figure 1. The remainder of the rim is solid. The three slots are respectfully ten, twenty and thirty degrees wide. The Hall effect device H of sensor 26 is connected to signal shaping circuit 28 which has an output connected to line 30. Line 30 is connected to junction 34 which is also illustrated in Figure 3. The pulse train due to rotation of wheel 16 that is developed as crankshaft 12 rotates is shown in Figure 2 and identified as CRANK 2. This pulse train has three angularly spaced low periods 35, 36 and 38. Period 35 is ten angular degrees wide and periods 36 and 38 are respectively twenty and thirty degrees wide. These low periods occur when a corresponding slot in rim 16A is between the Hall effect sensor and the magnet. The edge transitions 40, 42 and 44 occur respectively at 75 degrees before top dead centre of a given cylinder pair (of a six-cylinder engine). It can be seen that the transitions of CRANK 2 always occurs five degrees after (or half-way between) one of the transitions of CRANK 1. Referring now to Figure 3, a distributorless ignition system is illustrated for the six-cylinder spark ignited internal combustion engine 10. The system has three ignition coils 46, 48 and 50 each having a primary winding 46A, 48A and 50A and secondary windings 46B, 48B and 50B. Each secondary winding is connected to a pair of spark plugs, as illustrated. One side of the primary windings are connected to one side of the direct voltage source on the vehicle. The primary windings are respectively connected in series with transistors 52, 54 and 56 which switch on and off. When a transistor is biased on, current is supplied to a primary winding and when the transistor is biased off, primary winding current is cut-off and a voltage is induced in a secondary winding to cause a pair of spark plugs to fire. The bases of transistors 52-56 are shown connected respectively to AND gates 58, 60 and 62 which serve to bias transistors 52-56 respectively on or off. One of the inputs to each AND gate is connected to a conductor 64, which receives start of dwell (SOD) and end of dwell (EOD) transition signals. A start of dwell transition signal will cause a transistor to be biased on or conductive and it will remain biased conductive until an end of dwell signal transition occurs which will cause a conducting transistor to be biased off to cause, in turn, a pair of spark plugs to be fired. The other inputs to AND gates 58-62 are connected respectively to lines 66, 68 and 72 which, in turn, are connected to an electronic controller 74. The controller 74 contains digital logic circuitry for sequentially developing signals on lines 66, 68 and 72 to enable sequentially AND gates 58-62. Thus, only one AND gate is enabled at a time to allow an ignition coil to be energized and deenergized sequentially by the start and end of dwell signal transitions. The electronic controller 74 has the CRANK 1 signal applied thereto by line 76 and the CRANK 2 signal applied thereto by line 78. From the CRANK 1 and CRANK 2 signals, the controller 74 can selectively decode and apply signals to lines 66-72 as a function of certain engine crankshaft positions. This is accomplished by counting the edge transitions of CRANK 1 that occur during a low period (35, 36 or 38) of CRANK 2. Thus, on start-up of the engine, one of the three ignition coils will be enabled dependent upon which low period (35, 36 or 38) occurs first. The manner in which the ignition coils are enabled can take other known forms and this embodiment does not depend on any particular arrangement for selectively and sequentially enabling the ignition coils. The system of Figure 3 has a digital divider 80 which has the CRANK 1 signal applied thereto by line 82. The output of the digital divider 80 on line 84 is applied to an electronic control module (ECM) 85 which is described in more detail hereinafter. When the digital divider 80 is activated, it divides the 18X signal of CRANK 1 on line 76 to produce the signal shown in Figure 2 that is entitled "DIGITAL DIVIDER 80 OUTPUT". This signal is comprised of alternate low and high periods that extend for substantially 60 degrees of angular rotation of the crankshaft. The divider 80 starts counting CRANK 1 pulses as soon as controller 74 detects a certain angular crankshaft position. When this happens, a signal is developed on-line 86 to cause divider 80 to start counting. Assuming that the low period 35 was the one to first occur, the divider 80 starts counting at the transition 88 of CRANK 1. This transition occurs at 70 degrees before top dead centre (BTDC) of a cylinder pair and at this point, the divider signal output goes low (transition 90). Divider 80 now counts six 10 degree periods of CRANK 1 so that after a crankshaft rotation of 60 degrees the digital divider output goes high (transition 92). This sequence repeats as is evident from an inspection of Figure 2. Transitions 90 occur at 70 degrees BTDC of respective cylinder pairs. Transitions 92 occur at 10 degrees BTDC of these respective cylinder pairs. The transitions 90 provide crankshaft position reference pulses that are applied to the electronic control module 85 via line 84. In terms of crankshaft angular rotation, the transitions 90 are 120 degrees apart. The electronic control module also uses the transitions 90 to compute engine speed (RPM). Thus, in a known manner, constant frequency clock pulses are counted for 120 degree periods between transitions 90 to determine engine speed (RPM). Transitions 90 provide a 3X signal since three of them occur for each 360 degrees of rotation of the crankshaft. The electronic control module 85 is a programmed microprocessor which may be of the type disclosed in the United States patent 4,231,091. It determines engine speed from the 3X pulse transitions 90. Other engine operating parameters are applied to electronic control module 85 via line 94 which may include engine temperature, manifold pressure, mass airflow, etc. Referring now to Figure 4, a generalized flow chart is illustrated that is carried out by the program of electronic control module 85. In step 100, various input data (engine operating parameters) is acquired. In block 102, the electronic control module computes a plurality of engine control functions including the computation of a spark timing advance or retard value which is then stored in step 104. The spark timing value is computed as a function of engine speed (RPM) (time period between transitions 90) and other engine operating parameters applied thereto by line 94. The spark timing value can be stored in a register identified as 106 in Figure 3. Step 102 is actually comprised of a number of programmed computation steps that compute spark timing and various other engine control functions. The background software of electronic control module 85 causes the Figure 4 steps to be completed in, for example, about 12.5 milliseconds. This operation is asynchronous to engine crankshaft position. As a result of what has been stated and assuming no interrupt of the background software occurs, a spark timing value is computed every 12.5 milliseconds. In Figure 4, a step entitled "INTERRUPT" and identified as 108 is shown. Step 108 is shown being actuated by step 110. The electronic control module 85 recognizes the occurrence of the 3X transitions 92 and the 18X transitions, some of which are identified as 112, 114, 116, 118 and 120 in Figure 2. These transitions occur respectively at 50° BTDC, 30° BTDC, 10° BTDC and 10° after top dead centre (ATDC) and 30° ATDC. The background software (12.5 millisecond software) is interrupted each time a 3X or an 18X transition occurs. This is depicted by steps 108 and 110 in Figure 4. Thus, when an interrupt occurs, the computation steps that are performed by electronic control module 85 by the background 12.5 millisecond software is stopped for a certain interrupt time period allowing the electronic control module to perform other processing and computation steps shown in Figure 5 during the interrupt time period. In Figure 3, electronic control module 85 is shown as having a clock pulse counter 124 that is connected to a source of constant frequency clock pulses CK. Counter 124 is also connected to the CRANK 1 (18X) pulses via line 82. The counter 124 counts clock pulses between 18X transitions and loads that count into a storage register 126. Thus, counter 124 counts clock pulses for each twenty degrees of angular rotation of the crankshaft. Accordingly, storage register 126 contains a pulse count that corresponds to the most recent twenty degrees of angular rotation of the crankshaft. This pulse count represents the period of time for the crankshaft to rotate through twenty angular degrees. The operation of the system will now be further described in connection with the flow diagram of Figure 5 and on the assumption that the computed spark is to occur (end of dwell) at 25 degrees BTDC or, in other words, five degrees after transition 114 (Figure 2). The electronic control module 85 will have computed this spark advance value and it is available in register 106. When a 3X interrupt occurs at 70° BTDC, the electronic control module 85 will go through the programmed steps shown in Figure 5 during the interrupt period. When an interrupt occurs (blocks 108 and 110), the step 130 is executed. In step 130, it is determined whether or not the computed spark advance point (end of dwell) will occur in the next twenty degrees of rotation of the crankshaft. Since computed spark advance is 25° BTDC, it will not occur in the next twenty degrees, that is, it will not occur between 70° BTDC and 50° BTDC. The answer to step 130 is NO. This causes block 132 to maintain dwell, that is, to maintain one of the transistors 52-56 biased conductive. In this regard, it is assumed that electronic control module 85 has previously issued a start of dwell (SOD) signal on line 134 and this signal is maintained at a level which maintains an enabled transistor biased on. With regard to step 130, if the computed spark advance angle ACOMP represents an angle from a reference position pulse to the crankshaft position at which the spark should occur, the determination of whether or not the spark is to occur in the next twenty degrees can be determined by the relationship ACOMP-XAP<20° where X is the number of twenty degree periods equal to AP that have occurred since the occurrence of a reference pulse transition 90. Based on this, for the example given, ACOMP=45°, AP=20° and X=0 and accordingly, 45°-0° is greater than 20°. The answer in step 130 is therefore NO. When transition 112 occurs (50° BTDC) another interrupt occurs and step 130 is again executed. The answer in block 130 is again NO since 45°-(1)(20°) is equal to 25° which is greater than 20° and accordingly dwell is maintained (block 132). The next interrupt occurs at transition 114 (30° BTDC). Now the spark (end of dwell) should occur in the next twenty degrees of crankshaft rotation since 45°-(2)(20°) is equal to 5° which is less than 20°. The answer in step 130 is therefore YES, that is, the spark (end of dwell) should occur in the twenty degree period following transition 114. Since the answer in step 130 is YES, the program proceeds to step 140. In step 140, a time period is computed at which the spark is to occur (end of dwell) subsequent to the occurrence of transition 114 and based on the most recent twenty degree time period. The computed time period accordingly is from transition 114 to some point where end of dwell will occur. The most recent twenty degree time period is available in register 126 and it corresponds to the time period that elapsed between transitions 112 and 114 or, in other words, the time period between 50° BTDC and 30° BTDC. This time period also represents engine speed (RPM). When an interrupt occurs at transition 114, the computed remaining spark firing angle, for the example given, from transition 114 to where the computed spark should occur is five degrees. This five degree angle is converted into a time period in step 140 by an angle-to-time period conversion that utilizes the most recent twenty degree time period (50 BTDC to 30 BTDC) in the conversion. This conversion develops a digital signal that represents a certain number of clock pulses and this signal is loaded into a counter 142 of the electronic control module 85 (Figure 3). When the interrupt corresponding to transition 114 occurs the counter 142, after being loaded, is counted down by constant frequency clock pulses CK and when counted down to zero, the counter 142 develops an end of dwell pulse or transition that is applied to line 134 which terminates the dwell and biases one of the transistors off or non-conductive to cause a spark to be produced. The loading and counting down of counter 142 is shown as step 144 entitled "EOD OUT" in Figure 5. With regard to the computation of the spark firing time period subsequent to transition 114, it can be appreciated that in the type of system that has been described, the amount of angular rotation of the crankshaft can be expressed by a general equation: angular rotation = RPM x Time. Since RPM can be computed from the most recent twenty degree time period and the amount of angular rotation (five degrees) is known, the factor "Time" can be solved and expressed as a predetermined number of constant frequency clock pulses. This predetermined number of clock pulses is loaded into counter 142 and counted down in the manner described. By using the most recent twenty degree time period to determine spark advance angle immediately following an interrupt, the system compensates for changes in crankshaft speed that might occur subsequent to the occurrence of a reference position pulse 90. Thus, even if a change in engine speed occurs, the system only uses the most recent twenty degree time period to determine spark advance angle occurring subsequent to an interrupt.

Claims: A method of controlling the spark timing of an ignition system of a spark ignited internal combustion engine (10) comprising the steps of developing (14,18,20; 16,26,28), in response to rotation of the engine crankshaft (12), a sequence of reference pulses representative of predetermined angular positions of the crankshaft and a sequence of crankshaft position pulses representative of predetermined crankshaft positions and occurring at intervals representative of substantially equal angular periods of crankshaft rotation, a predetermined number of position pulses occurring between each pair of consecutive reference pulses; developing and storing (124,126) position pulse time periods representative of the time between consecutive position pulses; computing (74) a desired spark time relative to a reference time in response to at least one engine operating parameter; and, at the occurrence of each position pulse, determining whether a spark is to be produced in the angular period immediately following such position pulse, and if so calculating a time period after which a spark is produced as a function only of the stored position pulse time period corresponding to the angular interval immediately preceding such position pulse. A method according to claim 1, comprising three substantially equally spaced reference pulses and eighteen substantially equally spaced position pulses during each revolution of the crankshaft (12). A method according to claim 1 or 2, wherein the step of computing the spark time is accomplished by processing means (74) in a series of processing steps which are interrupted at the occurrence of each reference and position pulse. Apparatus for controlling the spark timing of an ignition system of a spark ignited internal combustion engine comprising pulse generating means (14,18,20; 16,26,28) adapted to develop, in response to rotation of the engine crankshaft (12), a sequence of reference pulses representative of predetermined angular positions of the crankshaft and a sequence of crankshaft position pulses representative of predetermined crankshaft positions and occurring at intervals representative of substantially equal angular periods of crankshaft rotation, a predetermined number of position pulses occurring between each pair of consecutive references pulses; timing means (124,126) adapted to develop and store position pulse time periods representative of the time between consecutive position pulses; and processing means (74) adapted to compute a desired spark time relative to a reference time in response to at least one engine operating parameter; and, at the occurrence of each position pulse, to determine whether a spark is to be produced in the angular period immediately following such position pulse, and if so, to calculate a time period after which a spark is produced as a function only of the stored position pulse time period corresponding to the angular interval immediately preceding such position pulse.

Inventors: GRIMM CHARLES MARTIN, RICHARDSON DANIEL JOSEPH, GRIMM, CHARLES MARTIN, RICHARDSON, DANIEL JOSEPH
Applicants: DELCO ELECTRONICS CORP, GEN MOTORS CORP, DELCO ELECTRONICS CORPORATION, GENERAL MOTORS CORPORATION
Application year: 1992
Main classification: F02P3
IPC codes: F02P3, F02P7, F02D45, F02P5