Engine Knock Theory

Engine knock (also called ping) refers to the sound made when the fuel mixture detonates. (This is NOT the same thing as pre ignition, though pre ignition can CAUSE detonation.) The terms "knock" and "detonation" are used interchangeably (even in most technical documentation) to describe the event of fuel detonation. I will use "ping" to refer the sound produced.

Normally, your fuel mixture is supposed to burn smoothly, from the point of ignition (the spark plug), to the edge of the cylinder. Imagine a flame front, which starts at the spark plug and moves out in all directions at a steady speed, until all fuel has been burned. The piston is moving this whole time, still moving upward (the last of compression stroke) when the burn begins, moving past TDC, and moving down again (into the power stroke) as the burn finally completes. As the mixture burns, cylinder pressures are increasing dramatically due to several factors:

  1. Temperature is increasing due to combustion, and we all know that hot gasses expand. (PV=nRT applies very nicely during the power stroke, since this equation is specifically for closed systems.)
  2. Liquid gasoline is being converted (via chemical reaction) to various gases, and a gas is far less dense than a liquid.  I'm no chemist, so don't take the following as gospel.  Basically, the hydrocarbon compounds in the gasoline are combining with oxygen to produce CO and CO2 and H2O. Other reactions occur also (such as nitrogen and oxygen from the air, combining due to the heat and pressure to form NOx compounds) but they are side effects, and are not relevant to increasing pressure (in fact, they may actually decrease the temperature since most of these reactions absorb energy). (Note the PV=nRT does NOT apply to chemical reactions or state changes.)
  3. The spark almost always fires before the piston reaches top dead center (this is the "timing advance" on the data logger), so until we reach TDC, the cylinder pressure is also increasing due to shrinking volume (PV=nRT again).
The fuel mixture has a flash point; a temperature / pressure point at which, instead of the steady controlled burn that we want, the remaining mixture just explodes. This is detonation. The result is, that instead of a steady pressure increase, we get a nearly instantaneous pressure increase in the cylinder. This is analogous to hitting the whole inside the combustion chamber with a hammer. Severe enough detonation can cause physical damage. It is most often the piston rings and ring lands which suffer, because they are the weakest pieces in contact with the combustion gasses.

Pre ignition

I will throw this in here just for completeness, though it is not directly relevant. Pre ignition just means that the fuel mixture ignited before it was supposed to (before the sparkplug fired). This usually is caused by some hot spot in the combustion chamber, such as glowing carbon deposits, or an over heated sparkplug electrode due to incorrect type of plug or a hot running (lean) cylinder.

The same burning process will occur as described above, but because the process started early, the process will be farther along as we reach TDC, our point of minimum volume. This means that the cylinder pressures will be higher than they would have been, had the burn started at the correct time. The higher pressure means it is more likely that the mixture will detonate.

Knock Sensor

The knock sensor is basically just a microphone screwed into the side of the engine block. You can actually connect an audio amplifier to the output of this sensor and hear the pinging caused by detonation (along with all the other rattles, clatters, and bangs that the engine makes). The ping does have a fairly distinctive sound, that I would describe as similar to the "twang" that you can get from flexing a piece of sheet metal. The ECU contains a filter circuit which tries to pick out just the sound of the ping, and ignores everything else. The consensus on the digest is that this circuit is not perfect (lifter clatter for example, is suspected of getting through the filter and being seen as knock), but overall it does a pretty good job.

This is what engine knock sounds like, directly from the knock sensor.

Instantaneous Knock

There are three internal variables used by the ECU to represent the current knock conditions of the engine: instantaneous knock, knock sum, and octane.  The pinging sound itself is a very quick, lasting less than 1/10th of a second. Instantaneous knock tracks this.  This value is NOT loggable.

Instantaneous knock is responsible for immediately reducing ignition timing when significant knock is detected.

Knock Sum

Knock sum is a short term value, representing engine knock over the last few seconds.  It is derived from instantaneous knock.  Knock sum will climb very quickly when knock is detected, then will bleed down slowly.  The knock sum will go back to zero when you shift gears (I suspect that this is triggered by the throttle position dropping below a certain point, thus if you speed shift, your results will likely be different).

Here is an example of engine knock being detected a few seconds into second gear (this is very mild acceleration).  You can see the knock sum (the green trace) slowly decrease over the next four seconds, then goes to zero on the shift to third (seen by the throttle position and RPMs dropping).
Log showing knock sum

Fuel Octane Rating

The octane rating of a gasoline is a measure of its resistance to detonation.  The higher the octane rating, the higher its flash point, thus the more heat and pressure we can put on the fuel mixture before it detonates.

The knock sum value is used to derive a much longer term value, which TMO calls octane. This is the knock value over the last 60 miles or so of driving, and is meant to be representative of the quality of fuel that you are using.   This term is NOT presently loggable.

When the knock sum is 3 or below, the octane value is slowly increased.  Between 3 and 7, nothing is done to octane.  Above 7, the octane value is decreased.  The octane value is one of the numbers that the ECU uses when calculating ignition timing.  In fact, (as I understand it) the knock sum does not directly effect the ignition timing, but rather changes the octane value, which in turn effects the timing.

Here is how Todd (the ECU master) describes octane:

Here is basically how the whole engine timing control feedback loop works.

There are two tables in the ECU.  Both of them use RPM for one coordinate, air mass in the other coordinate.  One of the tables is for the minimum timing the ECU will ever put out, the other is the maximum the ECU will ever put out.

Imagine a 3-D space with the lower map on the bottom and the upper map on top, overlaid on each other.  So we have an X/Y/Z space where X is RPM, Y is air mass, and Z is what I like to call "octane".  When the ECU needs to calculate timing, it traverses the X and Y coordinates.  Now imaging a "pole" that stands up from the bottom map and extends to the top map.  This pole length will change depending on which part of the map you are traversing.  Now take the "octane" value (0-100%) and multiply that times the pole length.  Then add that to the value at the base of the pole.

If your "octane" is zero, you get the bottom map.  If it is 100%, you get the top map.  If it is 50%, it is somewhere halfway up the pole.

Whenever knock-sum is below 3, the ECU starts climbing the pole (if it isn't already at the top).  It climbs very slowly.  However, whenever the knock sum gets above 7, it slips down very quickly.  Since it can go all the way to 43, it usually slides a little bit farther than it climbs.  Under steady state conditions, the ECU is always trying to climb that pole.  It doesn't intentionally try for knock.  In fact, if you are running, say, 118 octane, the ECU might spend all of its time on the ceiling.  But it can't go any higher, so it still isn't getting any knock.

It is my suspicion that the top table is for, say 92 octane at 11psi, and the bottom table is for, say 87 at 7psi.  BUT - it seems that people can still get value out of 110 octane fuel, so that would imply that the top table might be for a higher octane.  Or maybe that is just a function of topping off the boost to 22psi.

There are other minor terms that affect the above timing, like whether the car is warmed up or not, but they usually don't affect normal driving.  The biggest impact is if the instantaneous knock term that the ECU uses to derive knock sum is above a certain amount, it will subtract a raw 4 or 8 degrees off immediately.  BTW, this is a knock term you can't read yet...

How The ECU Controls Knock

The ECU uses three methods to reduce engine knock: This seems like an appropriate place to point out (in case it's not obvious) that the pressure in the cylinder is exactly where the power comes from that we get out of the engine. The higher the cylinder pressure, the more force against the piston, and the more power we get. Since the ECU reduces knock by reducing cylinder pressure, it also reduces the engine power output.

Boost Control Solenoid

The boost control solenoid is a safety device that the factory engineers put in to protect the engine under extreme conditions.  It does this by closing the factory air bleeder, thus limiting boost pressure to about 9psi (assuming a stock setup).  There are three things that I am aware of which can cause the BCS to close:
(**This needs verified**) The BCS never just flatly turns on or off, but instead pulses, with a varying pulse width over the course of several seconds, to gently switch from on to off, or vice versa (the exception is when turning the ignition key on or off).  If an LED is connected to your BCS, the first two cases above are usually seen as a flickering of the LED.  The third case is more interesting: when the octane drops below the limit, the BCS does NOT close right away.  It will wait until the next time you start the car.  The BCS will then remain closed continuously until the octane value rises above the limit.  The BCS will then open, while you are driving.

Bad Or Disconnected Knock Sensor

If the knock sensor is not putting out any signal at all, the ECU will derive its own knock sum internally.  The derived knock sum (in 1992 at least) is either 0 or 11.  No other values are used.  The derived knock sum seems to be based on acceleration: if the RPMs are increasing significantly, the knock sum goes to 11, else it goes to zero.

This is an example of a log with the knock sensor disconnected.

Log with knock sensor disconnected