Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 9

VPW Communication Protocol

Breakdown of the j1850 3 byte Header format

 Byte1 = priority

Bits 7,6 and 5 are priority 0=High, 7=Low


Bit 4 is header style (0=3 byte header-GM, 1=1 byte header-??)
Bit 3 is In Frame Response (0=Required-Ford, 1=Not allowed-GM)
Bit 2 is addressing mode (1=Physical, 0=Functional)
Bit 1,0 is message type: (depending on bit 2 and 3 see below)

Bit 3 2 1 0
-----------
Functional

1 0 0 0 Function
1 0 0 1 Broadcast
1 0 1 0 Query
1 0 1 1 Read

Physical

1 1 0 0 Node to Node
1 1 0 1 Reserved
1 1 1 0 Reserved
1 1 1 1 Reserved

 Byte2 = physical ID of destination


 Byte3 = physical ID of source

Typical Physical ID's, PCM = $10, Off-board scan tool = $F1

Functional Addresses:

ID Function
----- ----------------------------
$6A Request Legislated Diagnostics (bit 0 (W bit) = 0 Command)
$6B Report Legislated Dianostics (bit 0 (W bit) = 1 Status)

Physical Node Addresses:

ID Module
--------- ----------------------------
$00-$1F Powertrain controllers

$00-$0F Integration/Manufacturer Expansion


$10-$17 Engine controllers
$18-$1F Transmission controllers

$20-$3F Chassis controllers

$20-$27 Integration/Manufacturer Expansion


$28-$2F Brake controllers
$30-$37 Sterring controllers
$38-$3F Suspension controllers

$40-$C7 Body controllers

$40-$57 Integration/Manufacturer Expansion


$48-$5F Restraints
$60-$6F Driver information/Diplays
$70-$7F Lighting
$80-$8F Enterntainment
$90-$97 Personal communications
$98-$9F Climate control (HVAC)
$A0-$BF Convenience (doos, Seats, Windows, etc.)
$C0-$C7 Security

$C8-$CB Electric Vehicle Energy Transfer System (EV-ETS)

$C8 Utility connection services


$C9 AC to AC conversion
$CA AC to DC conversion
$CB Energy storage management

$CC-$CF Future expansion

$D0-$EF Manufacturer specific

$F0-$FD Off-Board Testers/Diagnostic scan tools

$FE All nodes


$FF Null node

PCM Mode Requests:

J1979 (Functional) supports modes $01 thru $0F

 Mode $01 - Request Current Powertrain Diagnostic Data


 Mode $02 - Request Powertrain Freeze Frame Data
 Mode $03 - Request Powertrain Diagnostic Trouble Codes
 Mode $04 - Request to Clear/Reset Diagnostic Trouble Codes
 Mode $05 - Request Oxygen Sensor Monitoring Test Results
 Mode $06 - Request On-Board Monitoring Test Results
 Mode $07 - Request Pending Powertrain Trouble Codes
 Mode $08 - Request Control of On-Board System, Test, or Component
 Mode $09 - Request Vehicle Information

J2190 (Physical) supports modes $10 thru $3F and $80 thru $BF

 Mode $10 - Initiate Diagnostics Operation


 Mode $11 - Request Module Reset
 Mode $12 - Request Diagnostic Freeze Frame Data
 Mode $13 - Request Diagnostic Trouble Code Information
 Mode $14 - Clear Diagnostic Information
 Mode $17 - Request Status of Diagnostic Trouble Codes
 Mode $19 - Request Diagnostic Trouble Codes by Status
 Mode $20 - Return to Normal Mode
 Mode $21 - Request Diagnostic Data
 Mode $22 - Request Diagnostic Data by PID
 Mode $23 - Request Diagnostic Data by Memory Address
 Mode $24 - Request Scaling and Offset / PID
 Mode $25 - Stop Transmitting Requested Data
 Mode $26 - Specifiy Data Rates
 Mode $27 - Security Access Mode
 Mode $28 - Disable Normal Message Transmission
 Mode $29 - Enable Normal Message Transmission
 Mode $2A - Request Diagnostic Data Packets
 Mode $2B - Dynamically Define Data Packet by Single Data Offsets
 Mode $2C - Dynamically Define Diagnostic Data Packet
 Mode $2F - Input/Output Control by PID
 Mode $30 - Input/Output Control by Data Value ID
 Mode $31 - Enter/Start Diagnostic Routine by Test Number
 Mode $32 - Exit/Stop Diagnostic Routine by Test Number
 Mode $33 - Request Diagnostic Routine Results by Test Number
 Mode $34 - Request Download - tool to module
 Mode $35 - Request Upload - module to tool
 Mode $36 - Block Transfer Message
 Mode $37 - Request Data Transfer Exit
 Mode $38 - Enter Diagnostic Routine by Address
 Mode $39 - Exit Diagnostic Routine by Address
 Mode $3A - Request Diagnostic Routine Results
 Mode $3B - Write Data Block
 Mode $3C - Read Data Block
 Mode $3F - Test Device Present
 Mode $7F - General Response Message
 Mode $A0 - Request High Speed Mode
 Mode $A1 - Begin High Speed Mode
 Mode $A2 - Programming Prompt
 Mode $AE - Request Device Control

PCM Mode Responses:


The response will always be $40 greater than the request mode.

 Response $41 - Report Powertrain Diagnostic Data


 Response $42 - Report Powertrain Freeze Frame Data
 Response $43 - Report Emission Related Diagnositc Powertrain Trouble Codes
 Response $44 - Emission-Related Diagnostic Information Cleared
 Response $45 - Report Oxygen Sensor Monitoring Test Resluts
 Response $46 - Report On-Board Monitoring Test Results for Non-Continuously Monitored
Systems
 Response $47 - Report On-Board Monitoring Test Results for Continuously Monitored
Systems
 Response $48 - Report Control of On-Board System, Test, or Component
 Response $49 - Report Vehicle Information

PCM Mode $7F Response Codes:

 Code $00 - Affirmative Response


 Code $10 - General Reject
 Code $11 - Mode Not Supported
 Code $12 - Sub-Function Not Supported or Invalid format
 Code $21 - Busy - Repeat Request
 Code $22 - Conditions Not Correct or Request Sequence Error
 Code $23 - Routine Not Complete
 Code $31 - Request Out of Range
 Code $33 - Security Access Denied
 Code $34 - Security Access Allowed
 Code $35 - Invalid Key
 Code $36 - Exceed Number of Attempts
 Code $37 - Required Time Delay Not Expired
 Code $40 - Download Not Accepted
 Code $41 - Improper Download Type
 Code $42 - Can't Download to Specified Address
 Code $43 - Can't Download Number of Bytes Requested
 Code $44 - Ready for Download
 Code $50 - Upload not Accepted
 Code $51 - Improper Upload Type
 Code $52 - Can't Upload from Specified Address
 Code $53 - Can't Upload Number of Bytes Requested
 Code $54 - Ready for Upload
 Code $61 - Normal Exit with Results Available
 Code $62 - Normal Exit without Results Available
 Code $63 - Abnormal Exit with Results
 Code $64 - Abnormal Exit without Results
 Code $71 - Transfer Suspended
 Code $72 - Transfer Aborted
 Code $73 - Block Transfer Complete/Next BLock
 Code $74 - Illegal Address in Block Transfer
 Code $75 - Illegal Byte Count in Block Transfer
 Code $76 - Illegal Block Tranfser Type
 Code $77 - Block Transfer Data Checksum Error
 Code $78 - Block Transfer Message Correctly Received
 Code $79 - Incorrect Byte Count During Block Transfer

PID List:
Provided by Beerman on the forum.

 $01 - Number of Emission Related DTC


 $03 - Fuel System Status
 $04 - Calculated Load
 $05 - Engine Coolant Temperature
 $06 - Short Term Fuel Trim Bank 1
 $07 - Long Term Fuel Trim Bank 1
 $08 - Short Term Fuel Trim Bank 2
 $09 - Long Term Fuel Trim Bank 2
 $0B - Manifold Absolute Pressure
 $0C - Engine RPM High Resolution (RPM x4)
 $0D - Speed in KPH
 $0E - Ignition Timing Advance
 $0F - Intake Air Temperature
 $10 - Mass Air Flow
 $11 - Throttle Position Sensor %
 $12 - Commanded Secondary Air
 $13 - Report O2 Sensor Configuration
 $14 - O2 B1S1
 $15 - O2 B1S2
 $18 - O2 B2S1
 $19 - O2 B2S2
 $1C - OBD Requirements
 $0020 - $21 - $50 Bit Map Flash Constant
 $110F - Rear O2 Current Non-Volatile
 $1140 - Mass Air Flow Sensor 1
 $1141 - Ignition Voltage
 $1143 - Throttle Position Sensor
 $1144 - Air Conditioner Pressure
 $1145 - O2 Sensor - Bank 1 Sensor 1 (mv)
 $1146 - O2 Sensor - Bank 1 Sensor 2 (mv)
 $1148 - O2 Sensor - Bank 2 Sensor 1 (mv)
 $1149 - O2 Sensor - Bank 2 Sensor 2 (mv)
 $1151 - Throttle Position Sensor Normalized in Degrees / Percent
 $115E - CAM Engine Speed Activity
 $116F - Start Up Engine Coolant Temperature
 $1170 - Controlled Canister Perge Solenoid
 $1171 - EGR Duty Cycle
 $1172 - IAC
 $1176 - Current IAC Memory
 $1179 - IAC Motor Position
 $1190 - Fuel Trim Cell
 $1192 - Desired Idle Speed
 $119D - Barometric Pressure
 $119E - Air Fuel Ratio
 $11A1 - Engine Run Time
 $11A6 - Knock Retard
 $11BD - EGR Test Count
 $11C0 - EGR Decel Filter
 $11D7 - O2 Response Lean to Rich Switches Bank 1 Sensor 1
 $11D8 - Catalyst Monitor EWMA Sample Counter Bank 1
 $11E3 - LOW RESOLUTION SIGNAL
 $11E4 - Cylinder Mode Misfire Index
 $11E6 - Revolution Mode Misfire Index (Balance Time)
 $11EA - Misfire Current Cylinder #5
 $11EB - Misfire Current Cylinder #6
 $11EC - Misfire Current Cylinder #7
 $11ED - Misfire Current Cylinder #8
 $11F3 - Total Misfires per Test Special
 $11F8 - Misfire History Cylinder #5
 $11F9 - Misfire History Cylinder #6
 $11FA - Misfire History Cylinder #7
 $11FB - Misfire History Cylinder #8
 $1200 - Total Misfire Current Count
 $1201 - Misfire History Cylinder #1
 $1202 - Misfire History Cylinder #2
 $1203 - Misfire History Cylinder #3
 $1204 - Misfire History Cylinder #4
 $1205 - Misfire Current Cylinder #2
 $1206 - Misfire Current Cylinder #1
 $1207 - Misfire Current Cylinder #3
 $1208 - Misfire Current Cylinder #4
 $120A - Short Term Fuel Trim Bank 1
 $120B - Long Term Fuel Trim Bank 1
 $120C - Short Term Fuel Trim Bank 2
 $1212 - Rich/Lean to Lean/Rich Ratio Sen. 1
 $1216 - O2 Response Rich to Lean Switches Bank 2 Sensor 1
 $1217 - O2 Response Lean to Rich Switches Bank 2 Sensor 1
 $121A - O2 Response Rich to Lean Switches Bank 1 Sensor 1
 $121C - O2 Average Bias Voltage
 $1227 - Total Misfire Failures Since First Fail
 $1228 - Total Misfire Passes Since First Fail
 $122A - Cycles of Misfire Data
 $1232 - Warm up cycles without an emission fault
 $1233 - Warm up cycles without a non-emission fault
 $1234 - Mileage Since Last Code Clear
 $1235 - Mileage Since First Fail
 $1236 - Mileage Since Last Fail
 $1237 - Fail Counter
 $1238 - Pass Counter
 $1239 - No Results Counter
 $123A - Long Term Fuel Trim Bank 2
 $123D - REAR O2 FAIL TIME LEFT
 $1246 - O2 Response Rich to Lean Average Time Bank 2 Sensor 1
 $1248 - Catalyst Monitor Average Deviation
 $124A - Catalyst Monitor Filtered Deviation Difference
 $1258 - Rear O2 Time to Activity
 $125A - Injector Pulse Width Average Bank 1
 $125B - Injector Pulse Width Average Bank 2
 $125D - Knock Retard
 $125E - Knock Sensor Active Counter
 $1262 - Long Term Fuel Trim Decal
 $1263 - Long Term Fuel Trim Idle
 $1264 - Long Term Fuel Trim Cruise
 $1265 - Long Term Fuel Trim Accel
 $1266 - Purge Long Term Fuel Trim #1
 $1267 - Purge Long Term Fuel Trim #2
 $1268 - Purge Long Term Fuel Trim #3
 $1269 - Purge Long Term Fuel Trim #4
 $1276 - CRANKSHAFT POSITION SENSOR LOW RESOLUTION ANGLE
 $1278 - Average Air Flow When Rear O2 Went Active
 $1283 - Air Pump Diag. Percent Lean Time
 $1284 - Air Pump Diag. Percent Rich Time
 $1286 - Air Pump Diagnostic Active Time
 $1601 - A/C Evap Temp
 $1602 - Engine Oil Temperature
 $1941 - Transmission Input Shaft Speed
 $1942 - Transmission Output Shaft Speed
 $1970 - TCC PWM Duty Cycle
 $1972 - PC (Pressure Control) Solenoid Duty Cycle
 $1991 - TCC Slip Speed
 $1992 - Time of Latest Shift
 $1993 - Time of Latest 1-2 Shift
 $1994 - Time of Latest 2-3 Shift
 $1995 - Time of Latest 3-4 Shift
 $1996 - Shift Time Error for Latest Shift
 $1997 - Shift Time Error for 1-2 Shift
 $1998 - Shift Time Error for 2-3 Shift
 $1999 - Shift Time Error for 3-4 Shift
 $199C - Current TAP (Transmission Adaptive Pressure) Cell
 $199D - Transmission Pressure
 $199E - Pressure Control Actual Current
 $199F - Pressure Control Reference Circuit
 $19A0 - Shift Delay
 $19AD - Transmission Temp Sensor
 $19F3 - Transmission Temp
 $19F4 - Gear Box Ratio
 $19F5 - Current Gear
 $1A01 - Z-Body: Steady State Ratio Fail Counter

Examples of VPW Code (Functional Messages)


For the OBDII mandated diagnostics, requsts are actually made to the functional address $6A,
with whatever processor is responsible for this function answering the request.
Theoretically many different processors can respond to a single functional request,
each contributing their insight as to the information requested.
Request current value of PID ($00..$20):

 Send: $68,$6A,$F1,$01,$PID
 Recv: $48,$6B,$10,$41,$PID,[up to 5 data bytes]

Request freeze frame value of PID ($00..$20):

 Send: $68,$6A,$F1,$02,$PID,$FRAME
 Recv: $48,$6B,$10,$42,$PID,$FRAME,[up to 5 data bytes]
where FRAME is $01..$06 and is the freeze frame number from which to retrieve the PID's
history data.

Examples of VPW Code (Physical Messages)

Request GM VIN:

 Send: $6C,$10,$F1,$3C,$01
 Recv: $6C,$F1,$10,$7C,$01,[VIN segment 1 data]
 Send: $6C,$10,$F1,$3C,$02
 Recv: $6C,$F1,$10,$7C,$02,[VIN segment 2 data]
 Send: $6C,$10,$F1,$3C,$03
 Recv: $6C,$F1,$10,$7C,$03,[VIN segment 3 data]

Request GM PCM#:

 Send: $6C,$10,$F1,$3C,$04
 Recv: $6C,$F1,$10,$7C,$04,[PCM #, 4 data bytes]

Request enhanced PID ($0000..$FFFF):

 Send: $6C,$10,$F1,$22,$PID-hsb,$PID-lsb,$01
 Recv: $6C,$F1,$10,$62,$PID-hsb,$PID-lsb,[up to 5 data bytes]

Requesting a DTC

The $XX byte in the following command:


$6C,$10,$F1,$19,$XX,$FF,$00
is the status byte. It has the following "bitmapped" values:

 $80 - MIL is illuminated


 $40 - Pending trouble code
 $20 - Old code - MIL was illuminated for this code but is no longer illuminated.
 $10 - History code with freeze frame data available.
 $08 - Manufacturer specific status (I do not know what this means).
 $04 - Manufacturer specific status (I do not know what this means).
 $02 - Current code.
 $01 - Immature code.
To get real trouble codes you should request only
$80+$10+$02=$C2

To get real trouble codes AND pending trouble codes request:


$80+$40+$10+$02=$D2

Special thanks to Paul of EFI Live for much of this info. See his site at >
http://www.efilive.com/news_20040423.html

You might also like