Operation CHARM: Car repair manuals for everyone.
Hosted by mcallihan.com

Description of On-Board Diagnostics

IDENTIFICATION OF SYSTEM
The powertrain control module (PCM) monitors and controls the engine, fuel system, ignition system.

SYSTEM DESCRIPTION AND FUNCTIONAL OPERATION
The Dodge Viper powertrain systems have the latest in technical advances. The on-board OBDII diagnostics incorporated with the PCM controller are intended to assist the field technician in repairing vehicle problems by the quickest means.

JTEC CONTROLLER AND OPERATING MODES
Overview
This PCM features a multi-processor environment (one 16 bit microcomputer, two 8 bit microcomputers) allowing parallel processing of time critical operations. Dedication of one 8 bit processor (k4) to spark control and the other 8 bit processor (D3) to fuel control allows increases in throughput and reduced software complexity in the 16 bit microcomputer (Z2). The result is increased capability in the Z2 to handle overall strategy implementation, OBDII, and other computation-intensive processes. This approach allows control of ten cylinder engines that run in excess of 6,500 RPM.

Hardware Architecture
The design of the PCM can be broken up into about eight major sections. The main micro-controller, a Motorola MC68HC16Z2, is attached to a 256k byte memory device (flash memory) which is programmed after manufacture of the module. (This memory can be reprogrammed at the factory or at a dealership. The MC68HC1iD3 and MC68HC1iK4 microcomputers have memories which are permanently programmed during their manufacture, and therefore cannot be reprogrammed.)

The microcomputers communicate over a bus which allows for rapid transmission of high priority messages. The Z2 executes the primary powertrain control strategy; transmits fuel and spark requirements to the D3 and K4; communicates with outside devices; and processes 14 analog inputs and about half of the one bit inputs and outputs. The D3 microcomputer controls fuel injector timing pulses and a small number of one bit inputs and outputs. The K4 controls spark timing pulses, processes 8 analog inputs and a number of one bit inputs and outputs.

Other major sections of the PCM design include the power supply, input conditioning circuits, output driver circuits, serial communication interface circuits, and a device which controls ignition coil currents.

Software Architecture
The 68HC16Z2 micro-controller is the main computing unit of the PCM. The 68HC11D3 and k4 micro-controllers control fuel and spark respectively. They handle the critical timing requirements of their tasks, communicating with the Z2 using high level commands.

The Z2 operating system is the heart of the software and was written expressly for this PCM. Every 500 microseconds the Z2 interrupts what it is doing to perform periodic tasks such as updating sensor inputs values and checking for the occurrence of a crank position pulse. If this pulse is observed, a program known as the decision maker is executed and performs high priority tasks such as fuel and spark calculations, and RPM processing. Low priority tasks (i.e. OBDII processing, SCI and CCD communications) are executed during the time between crank pulses.

The Z2 software is divided into a main operating strategy and three separate calibration areas. The main strategy contains information specific to the various engines and transmissions supported by this PCM. Once installed, the information contained in this area is fixed for a given engine and transmission. Changes to this data, if required, can be performed only by computer programming personnel. The calibration areas (engine, transmission and OBDII) contain information relating to emissions, fuel economy and driveability and can be altered directly by calibration personnel.

Spark Control
The K4 microcomputer controls the generation and timing of spark pulses. The spark advance and dwell characteristics are determined by: engine speed, throttle position, MAP, coolant temperature, barometric air pressure, air temperature, and vehicle speed.

Fuel Control
The PCM controls the air/fuel ratio of the engine by varying fuel injector on time. Mass air flow is calculated using the speed density method using engine speed, manifold absolute pressure, and air charge temperature.

Different fuel calculation strategies are used dependent on the operational state of the engine. During crank mode, a prime shot fuel pulse is delivered followed by fuel pulses determined by a crank time strategy. Cold engine operation is determined via an open loop strategy until the O2 sensors have reached operating temperature. At this point, the strategy enters a closed loop mode where fuel requirements are based upon the state of the O2 sensors, engine speed, MAP, throttle position, air temperature, battery voltage, and coolant temperature.

Additional factors can influence fuel pulse width. Asynchronous acceleration enrichment is a technique whereby the duration of injector "on" time can be increased for injectors already firing, providing improved acceleration response.

The D3 microcomputer controls fuel injector timing in response to high level commands from the Z2 microcomputer. Injector timing with respect to engine position is determined by the D3 and is transparent to the Z2.

On Board Diagnostics

The PCM has been programmed to monitor many different circuits of the fuel injection system. This monitoring is called "on-board diagnosis."

Certain criteria, or "arming conditions," must be met for a trouble code to be entered into the PCM memory. The criteria may be a range of: engine rpm, engine temperature, and/or input voltage to the PCM. If a problem is sensed with a monitored circuit, and all of the criteria or arming conditions are met, a trouble code will be stored in the PCM.

It is possible that a trouble code for a monitored circuit may not be entered into the PCM memory even though a malfunction has occurred. This may happen because one of the trouble code criteria (arming conditions) has not been met.

The PCM compares input signal voltages from each input device with specifications (the established high and low limits of the range) that are programmed into it for that device. If the input voltage is not within specifications and other trouble code criteria (arming conditions) are met, a trouble code will be stored in the PCM memory.

The On Board Diagnostics have evolved to the second Generation of Diagnostics referred to as OBDII. These OBDII Diagnostics control the functions necessary to meet the requirements of California OBDII and Federal OBD regulations. These requirements specify the inclusion of a malfunction indicator light (MIL) located on the instrument panel for all 1994 and subsequent model-year passenger cars, light duty trucks, and medium-duty vehicles. The purpose of the MIL is to inform the vehicle operator in the event of malfunction of any powertrain components which can affect emissions and which provide input to, or receive output from, the engine controller module.

Control of OBDII functions is separated into two areas: the Task Manager and the Comprehensive Component Manager.

Task Manager

The Task Manager controls the execution of some component/systems tests, control of MIL illumination, storage of fault codes, and storage of vehicle data at time of fault detection (freeze frame). This routine performs the following monitoring requirements:

Fuel System Monitoring
Misfire Detection
Oxygen Sensor Upstream Heater Monitor
Oxygen Sensor Upstream Monitor
Evaporative System Monitor
Catalyst Monitor
Purge Flow Monitor
O2 Heater Downstream Monitor
O2 Sensor Downstream Monitor

Another function of the task manager is control of the Disable Tables. These tables are used to discontinue testing when a condition specified in the tables are met. Testing of a component or system is disabled if a fault or failure occurs which would render the test useless. (For example, the "Catalyst Monitor" test will not be run unless the "O2 Sensor" test has passed.)

Comprehensive Component Manager

The Comprehensive Component Manager controls the testing of all powertrain components/ systems which can affect emissions and were not otherwise tested by the Task Manager. This routine is organized into three areas:

D3 and K4 CIRCUIT CHECKS - Performed on sensor inputs connected to the D3 and K4 to determine out-of-range or high/flow input conditions. Performed on outputs to check for open/short conditions. The components tested are:

IAC Open/Short Circuit:
Fan Relays
NC Relay
Air Switch I
Shift Lock Solenoid
ASD Relay
Fuel Pump Relay
EVAP Purge Solenoid
Ignition Coils (1 thru 5)
Injector Failure (1-10)

Z2 CIRCUIT CHECKS - Performed on sensor inputs connected to the Z2 to determine out-of-range or high/low input conditions. Performed on outputs to check for open/short conditions. The components tested are:

MAP Sensor Voltage (high/low)
Intake Air Temperature Sensor Voltage (high/low)
Coolant Temperature Sensor Voltage (high/low)
Throttle Position Sensor Voltage (high/low)
MAP Sensor 5 Volt Supply Check
Battery Temperature Sensor Voltage (high/low)
Fuel Level Sensor Voltage (high/low)
ASD Relay Voltage (out of range)
Speed Control Vac and Vent Solenoids (open/short)

FUNCTIONALITY/RATIONALITY CHECKS - These tests determine if a component is working correctly through methods other than voltage limit tests and open/short tests. Solenoids in this section are checked for proper operation (functionality) and sensors are checked for meaningful output values (rationality). The components/systems checked are:

Cam Sensor Pulses Present
Crank Sensor Pulses Present
MAP Sensor Output in Range
Coolant Temperature in Range
Throttle Position Sensor in Range
Vehicle Speed Sensor Output Correct
Fuel Level Sensor Output Correct
AIS Motor Working
O2 Sensor Left Upstream Output Voltage Low
O2 Sensor Left Downstream Output Voltage Low
O2 Sensor Right Upstream Output Voltage Low
O2 Sensor Right Downstream Output Voltage Low
Thermostat Working
O2 Sensor Left Upstream (open circuit or high voltage)
O2 Sensor Left Downstream (open circuit or high voltage)
O2 Sensor Right Upstream (open circuit or high voltage)
O2 Sensor Right Downstream (open circuit or high voltage)

Other Controls

Fuel Vapor Recovery System (Duty Cycle Purge Control)

Duty Cycle Purge is a system that feeds fuel gases from the purge canister and gasoline tank into the throttle body for mixing with incoming air. Metering of the gases is performed by duty cycling the purge solenoid by the PCM.

The system is disabled during wide open throttle conditions and while the engine is below a specified coolant temperature. When engine temperature becomes greater than a calibrated parameter, duty cycle purge is delayed for a calibrated time. Once purge delay is over, purge will be ramped in to soften the effect of dumping additional fuel into the engine.

The PCM provides a modulated 5 hz signal (at closed throttle) or 10 hz signal (at open throttle) to control this system. Modulation of the signal is based upon a calculated air flow (based upon known fuel flow through the injector at a given pulse width and RPM) and is adjusted to compensate for changes in flow due to varying engine vacuum.

PCM Operating Modes

As Input signals to the PCM change, the PCM adjusts its response to output devices. For example, the PCM must calculate a different injector pulse width and ignition timing for idle than it does for wide open throttle. There are several different modes of operation that determine how the PCM responds to the various input signals.

There are two types of engine control operation: open loop and closed loop.

In open loop operation, the PCM receives input signals and responds according to preset programming. Inputs from the heated oxygen sensors are not monitored.

In closed loop operation, the PCM monitors the inputs from the heated oxygen sensors. This input indicates to the PCM whether or not the calculated injector pulse width results in the ideal air-fuel ration of 14.7 parts air to 1 part fuel. By monitoring the exhaust oxygen content through the oxygen sensor, the PCM can fine tune injector pulse width. Fine tuning injector pulse width allows the PCM to achieve optimum fuel economy combined with low emissions.

The engine start-up (crank), engine warm-up, and wide open throttle modes are open loop modes. Under most operating conditions, the acceleration, deceleration, and cruise modes, with the engine at operating temperature, are closed loop modes.

Ignition Switch On (Engine Off) Mode

When the ignition switch activates the fuel injection system, the following actions occur:

1. The PCM determines atmospheric air pressure form the MAP sensor input to determine basic fuel strategy.
2. The PCM monitors the engine coolant temperature sensor and throttle position sensor input. The PCM modifies fuel strategy based on this input.

When the Ignition key is in the "on" position and the engine is not running (zero rpm), the auto shutdown relay and fuel pump relay are not energized. Therefore, voltage is not supplied to the fuel pump, ignition coil, and fuel injectors.

Engine Start-Up Mode - This is an open loop mode. The following actions occur when the starter motor is engaged:

1. The auto shutdown and fuel pump relays are energized. If the PCM does not receive the camshaft and crankshaft signals within approximately one second, these relays are de-energized.
2. The PCM energizes all fuel injectors until it determines crankshaft position from the camshaft and crankshaft signals. The PCM determines crankshaft position within one engine revolution. After the crankshaft position has been determined, the PCM energizes the fuel injectors in sequences. The PCM adjusts the injector pulse width and synchronizes the fuel injectors by controlling the fuel injectors' ground paths.

Once the auto shutdown and fuel pump relays have been energized, the PCM determines the fuel injector pulse width based on the following:

-engine coolant temperature
-manifold absolute pressure
-intake air temperature
-engine revolutions
-throttle position

The PCM determines the spark advance based on the following:

- engine coolant temperature
- crankshaft position
- camshaft position
- intake air temperature
- manifold absolute pressure
- throttle position

Engine Warm-Up Mode - This is an open loop mode. The PCM adjusts injector pulse width and controls injector synchronization by controlling the fuel injectors' ground paths. The PCM adjusts ignition timing and engine idle speed. The PCM adjusts the idle speed by controlling the idle air control motor.

Cruise or Idle Mode - When the engine is at normal operating temperature, this is a closed loop mode. During certain idle conditions, the PCM may enter into a variable idle speed strategy. At this time, the PCM adjusts engine speed based on the following inputs:

- throttle position
- battery voltage
- engine coolant temperature

Acceleration Mode - This is a closed loop mode. The PCM recognizes an increase in throttle position and a decrease in Manifold Vacuum as engine load increases. In response, the PCM increases the injector pulse width to meet the increased load.

Deceleration Mode - This is a closed loop mode. The PCM recognizes a decrease in throttle position and an increase in Manifold Vacuum as engine load decreases. In response, the PCM decreases the injector pulse width to meet the decreased load.

Wide Open Throttle Mode - This is an open loop mode. The throttle position sensor notifies the PCM of a wide open throttle condition. The PCM adjusts injector pulse width to supply a predetermined amount of additional fuel.

Non-Monitored Circuits

The PCM does not monitor the following circuits, systems, and conditions even though they could have malfunctions that result in driveability problems. A diagnostic code may not be displayed for the following conditions. However, problems with these systems may cause a diagnostic code to be displayed for other systems. For example, a fuel pressure problem will not register a diagnostic code directly, but could cause a rich or lean condition. This could cause an oxygen sensor, fuel system, or misfire monitor trouble code to be stored in the PCM.

Engine Timing - The PCM cannot detect an incorrectly indexed timing chain, camshaft sprocket, or crankshaft sprocket. The PCM also cannot detect an incorrectly indexed distributor.(*)

Fuel Pressure - Fuel pressure is controlled by the fuel pressure regulator. The PCM cannot detect a clogged fuel pump inlet filter, clogged in-line fuel filter, or a pinched fuel supply. (*)

Fuel Injectors - The PCM cannot detect if the fuel injector is clogged, the pintle is sticking, or the wrong injectors are installed (*)

Fuel Requirements - Poor quality gasoline can cause problems such as hard starting, stalling, and stumble. Use of methanol-gasoline blends may result in starting and driveability problems.

PCM Grounds - The PCM cannot detect a poor system ground. However, a diagnostic trouble code may be stored in the PCM as a result of this condition.

Throttle Body Air Flow - The PCM cannot detect a clogged or restricted air cleaner inlet or filter element.(*)

Exhaust System - The PCM cannot detect a plugged, restricted, or leaking exhaust system.(*)

Cylinder Compression - The PCM cannot detect uneven, low, or high engine cylinder compression.(*)

Excessive Oil Consumption - Although the PCM monitors the exhaust stream oxygen content through the oxygen sensor when the system is in a closed loop, it cannot determine excessive oil consumption.

NOTE: (*) Any of these conditions could result in a rich or lean condition causing an oxygen sensor trouble code to be stored in the PCM, or the vehicle may exhibit one or more of the driveability symptoms listed in TEST NTC-1A - No Trouble Code Test Menu.

Diagnostic Trouble Codes

Each diagnostic trouble code is diagnosed by following a specific testing procedure. The diagnostic test procedures contain step-by-step instructions for determining the cause of trouble codes as well as no trouble code problems. It is not necessary to perform all of the tests to diagnose an individual code.

Always begin by reading the diagnostic trouble codes using the DRB. This procedure begins in the DTC TEST - Checking the System for Diagnostic Trouble Codes. This will direct you to the specific test(s) that must be performed.

Hard Code

A diagnostic trouble code that comes back within one cycle of the ignition key is a 'hard" code. This means that the defect is there every time the powertrain control module checks that circuit or function. Verify if the trouble code is a hard code at the beginning of each test. When it is not a hard code, an "intermittent" test must be performed.

Intermittent Code

A diagnostic trouble code that is not there every time the powertrain control module checks the circuit is an "intermittent" code. Most intermittent codes are caused by wiring or connector problems. Defects that come and go like this are the most difficult to diagnose; they must be looked for under specific conditions that cause them.

Reset Counter

The reset counter counts the number of times the vehicle has been started since codes were last set, erased, or the battery was disconnected. The reset counter will count up to 255 start counts.

The number of starts helps determine when the trouble code actually happened. This is recorded by the PCM and can be viewed on the DRB as the RESET COUNTER.

When there are no trouble codes stored in memory, the DRB will display 'NO TROUBLE CODES FOUND" and the reset counter will show "RESET COUNT = XXX."

Handling No Trouble Code Problems

After reading Description and Operation, you should have a better understanding of the theory and operation of the on-board diagnostics, and how this relates to the diagnosis of a vehicle that may have a driveability-related symptom or complaint.

The "no code" system is broken down into three test methods:

- No Code Complete Test
- No Code Quick Individual Test
- No Code Quick Symptom Test