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)

VPW Communication Protocol

Embed Size (px)

DESCRIPTION

VPW Communication Protocol

Citation preview

VPW Communication Protocol Breakdown of the j1850 3 byte Header format Byte1 = priority

Bits 7,6 and 5 are priority 0=High, 7=LowBit 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 Function1 0 0 1 Broadcast1 0 1 0 Query1 0 1 1 Read Physical 1 1 0 0 Node to Node1 1 0 1 Reserved1 1 1 0 Reserved1 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,$00is 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