The knock chip on the DSM ECU processes the sounds from the knock sensor, and for each 180 degree crank cycle, produces an analog output level that is representative of the knock during that cycle. It is more than just a filter.
Keep in mind, everything in this document was based on measurements, calculations, observations and guesstimation. Don’t expect it to be 100% accurate. Also, all of the signals used are simulated by test equipment, and might not accurately represent the actual signals and timing in the vehicle. The purpose here is to understand how the knock chip works, but not necessarily how it interacts with the rest of the car.
This is the short explanation of what the knock chip does.
The signal first goes through a bandpass filter, which looks only at a narrow band of frequencies from the knock sensor, and ignores everything else. The input is also ignored for 1ms after any spark plug fires. This processed signal is then fed to two separate circuits. One is a long term average filter which generates a voltage representative of the background noise level. The other is a comparator circuit which compares input peaks against the background level. If a peak is sufficiently high, it is considered knock, and is “added” to the analog output voltage. This is the voltage that goes off the knock chip (pin 4) and to an analog input channel on the CPU.
The knock chip will “listen” for knock as long a pin 3 is high (cam angle sensor input) and continue to add to the output voltage whenever a strong peak is detected. When pin 3 goes low (every 180 degrees of crank angle) the output voltage will reset to zero.
That sums it up. Now we start getting into the details.
The DSM knock chip is a thick film hybrid IC. Though the chip has quite a few pins, only eight of them connect to anything on the main board, and two of those are power and ground. Several of the unconnected pins turn out to carry “internal” signals, which are very helpful for reverse engineering.
The eight “used” pins are labeled 1 thru 8 on some of the Mitsubishi circuit boards. The rest of the pins, I labeled A thru M, to distinguish the two. The pins are out of order anyway, so using numbers would have just made it more confusing. This is the pinout of the knock chip, as I refer to it in this document.
Figure 1. Knock Chip Pinout I assigned names to all of the pins that could find a use for. Pins which are unlabeled had DC voltages on them that never seemed to change. All of these pins appear to electrically connect to something on the chip, so I suspect that they all have a purpose, I just couldn’t find it.
Knock Chip Circuit
This is my best guess of the knock processing circuit:
I described the basic operation in my “short story” above, but there are some details that I left out for simplicity. Nearly everything is shown on this diagram. One notable exception is the “knock sensor error” pin, which has little to do with signal processing. I will defer that to the end of the document.
Pin 1 on the chip comes directly from the knock sensor (via pin 9 on the ECU connector). The first level of processing on the knock chip is some amplification and a bandpass filter.
I was told by Boris Mohar (http://www.viatrack.ca) that the resonate frequency created in an engine block from knock can be calculated from a simple equation:
f(KHz)=573/bore dia in mm
and this works well for him. The DSM cylinder bore is 80mm, which would put the resonate at 7.1KHz. Spectrum analysis that I have previously done on this knock sensor show the knock “ping” ranging from about 5 to 7 KHz, so this would make sense.
However, when I did a frequency response sweep on the knock chip, I found the filter peaked at 12.2KHz, about double of what I would expect! Apparently Mitsubishi engineers are measuring a second harmonic, or maybe the “onset” of knock has a higher fundamental frequency.
One of the unconnected pins on the knock chip (pin C) is the output of the filter, and that is what I used for this response graph. The graph was obtained by putting a stead state sine wave on pin 1, and measuring the output at pin C, at many different frequencies. Gain is just the output voltage divided by the input voltage. Each diamond on the graph is an actual data point. The curve was drawn by Excel.
Note: pin 2 effects the gain of this filter. This graph data was taken with pin 2 low. When pin 2 is high, the gain is cut in half.
Ignition Mute Pulse
The pin 8 input is a combination of the two ignition coil pulses generated by the CPU. Each time the CPU triggers one of the ignition coils, pin 8 sees a pulse. The spark plug fires on the falling edge of this input. Immediately after an ignition pulse, the filter output mutes for 0.93 milliseconds (on my chip anyway). I assume this is to avoid picking up spark plug interference or some other ignition related noise.
On this oscilloscope screen capture, trace 1 is the pin 8 ignition pulse, and trace 2 is a blanking pulse generated on-chip, and visible at pin K. Trace 3 is a steady state 12KHz input signal, and trace 4 is the “filtered and muted” output seen at pin F. Note that the signal here is a sine wave, it just doesn’t look like it because the scope does not have the resolution to display it at this relatively slow sweep rate.
As far as I can tell, the pin F signal is what is used by the rest of the circuit, so the rest of the chip processing does not see any input signal during the mute time.
The knock chip maintains a background level, which is a very slow changing voltage, visible at pin E. This voltage is proportional to the steady state input voltage. When the input voltage changes, it takes a second or so for the background voltage to stabilize to a new value.
This graph shows the Pin E voltage measured when a steady state 12KHz sine wave is applied to the input pin. The two traces shown are measured with and without an ignition blanking pulse. This was to determine if the blanked signal is used by the background filter. I measured about an 8% difference in gain (can’t measure it accurately) between these two lines, which is very close to the 9.3% that I would expect due to the 0.93ms blanking. (This was measured at a simulated engine speed of 3000 RPM, which gives 10ms per 180 degree half rotation. 0.93ms/10ms = 9.3%.)
I show these lines going down to zero, but really there is a 5.05 volt reference used on this chip, and all signals are relative to that, so the Pin E voltage in the graph above is really going from 5 volts to 8 volts. I removed this offset to make my calculations easier.
The curve in the line at the top of the graph is due to saturation. This voltage maxes out at 3.13 volts, and just can’t go any higher.
Another detail to notice in my circuit diagram is that there is another muting switch just before the background filter. This prevents anything detected as knock, from being added to the background. Without this, knock pulses would add to the background, which in a heavy knocking condition, could significantly raise the background level and desensitize the detection circuit.
This means that it is possible for exactly the same signal to be detected as knock, or as background noise, depending upon the present level of the background voltage. You might have to think about this one a bit, but I have definitely observed this.
I would expect a few more “internal” signals to come out, but they don’t seem to, so everything from here on is based on observing the output signal. I am going to step through this analysis sort of backwards, starting from the output level on the block diagram.
Trace 2 shows a 0.83 ms burst (10 cycles) of a 0.3Vpp (volts peak to peak) 12 KHz sine wave being applied to the input (pin 1). The background level is nearly zero, so this will look like a knock event to the knock chip. Trace 3 shows the filtered output at Pin F. Note that the shape of the pulse is significantly altered by the filtering. Trace 4 is the knock output at pin 4. The output has a constant slope of approximately 1V/ms as long as knock is detected. This is represented in the block diagram as a constant current source charging a capacitor whenever knock is detected. The voltage here is effectively a knock accumulator for one ignition cycle of the engine (180 degrees at crankshaft).
Trace 1 is the CAS signal at pin 3, but is not significant to this discussion.
My signal generator does not have the ability to generate two consecutive bursts, but by careful timing of the mute pulse, this can be simulated.
Trace 2 shows the mute pulse generated within the knock chip (pin K). Trace 3 is the pin F filtered output. Trace 4 is the knock output, which clearly shows that the mute pulse effects the output, and that the output voltage continues to rise, and at a constant rate, as long as a knock signal is present.
The next piece I want to show is how the CAS signal us used as a “reset” for the output voltage.
Trace 1 is the CAS input, which when low, discharges the output capacitor (trace 4). This will occur every 180 degrees of crankshaft rotation. If I have the polarity correct, the actual crank angle sensor will go high at 75 degrees BTDC and low at 5 degrees BTDC, forming a “listen” window for the knock accumulator. However, other circuitry on the ECU circuit board allows the CPU to extend this “listen” window. (That is, what I am calling the CAS signal, can be forced high by the CPU.)
One important detail is that the output level is forced to zero as long as the CAS pin is low.
This image zooms in on the filtered burst (trace 3) and the output (trace 4) while CAS (trace 1) is low. It appears that the output is trying to climb (i.e. the charge current is there), but it is being constantly discharged.
The last piece of the block diagram is the comparator circuit. It becomes somewhat difficult to prove exactly what this is doing because we do not have direct access to its output, and maybe not to its inputs (hard to tell for sure). The following screen shot gives very good evidence on the comparator behavior.
This is essentially the same input burst we have seen before, but zoomed in so that we can see that the output is really a stair step, rather than a continuous ramp. There is one step for each cycle of the filtered input. This indicates that the comparator is looking directly at the positive peaks of the filtered input (and ignoring the negative peaks).
The comparator has a threshold level below which the output does not change, and above which the output increases. In order to get a good measure on the relationship between this threshold and the background voltage, a second function generator was added to the test environment to produce a background signal. With the previous setup, the background level is always very close to zero, and could not be controlled.
In the screen shot above, a sine wave of approximately 42mVpp was applied continuously, which gave a background voltage (pin E) of 5.50V (including the 5V reference). It is easy to see here that only the highest peaks are being detected by the comparator. The threshold level of approximately 0.5V was measured from this image (horizontal red line).
By measuring thresholds from a number of these images, and directly measuring the background voltage at pin E, it was determined that the pin E voltage is used directly by the comparator.
Knock Sensor Error
One feature of the knock chip is to perform a simple continuity check on the knock sensor and wiring. The DSM knock sensor has an internal DC resistance of about 500K ohms. The knock chip has an error output (pin 7) which will go high if the resistance is within a certain “good” range. If the resistance is too high or too low, this pin will go low and the CPU will flag an error. Note that this is a continuity check only; no AC input signal is required.
On my knock chip, I measured the “good” range as: 120K to 1.1M ohm.
Also, the rest of the knock chip is effectively disabled when this error bit is low, and the knock output voltage will always be maxed at 4.5 volts.