Pin # | Channel | Assignment |
01 | 1 | K |
02 | 1 | K-12VTERM |
03 | 1 | K-24VTERM |
04 | 2 | J1850 BUS |
05 | 1 and 2 | V- IN/GND |
06 | 1 | L |
07 | 1 | L-12VTERM |
08 | 1 | L-24VTERM |
09 | 1 | V+ IN |
Configuration | Termination |
ECU/Vehicle | No Additional jumpers |
Tester/12V Vbat | Tie pins 2 and 7 to pin 9(Vbat) |
Tester/24V Vbat | Tie Pins 3 and 8 to pin 9(Vbat) |
Note: Please see the documentation on the GM J1850 (DLC) card for info regarding the BDLC channel.
Event name | Event meaning |
GKWPWAKEFIVE | five baud wake up seen (Please see NOTE 1) |
byte 0 - five baud address (tester) | |
byte 1 - sync byte (ecu) | |
byte 2 - first keybyte (ecu) | |
byte 3 - second keybyte (ecu) | |
byte 4 - inverted second keybyte (tester) | |
byte 5 - inverted address (ecu) | |
byte 6 - status 0 = timing good | |
GKWPWAKEFAST | fast wake up seen |
byte 0 - the wake up as interpretted by a uart, i.e. usually 0xf0 | |
byte 1-5 - the start communication request message | |
byte 6 - the start communication response message | |
GKWPBUSIDLE | intermessage time elapsed since last byte |
byte 0,1 - time expired (in units of half milliseconds network byte order) |
Event name | byte(s) | Event meaning |
GKWPWAKEFAST | fast wake up seen | |
0 | set to zero by the KWP2000 driver | |
1 | message status byte; it should be 0x04 | |
2-6 | the wakeup request message: 3 header bytes, 1 data byte and a checksum Format: 0x81 or 0xC1 for physical / logical addressing Target address Source address startCommunication Request Service Id: 0x81 Checksum | |
7 | message status byte; it should be 0x04 | |
8-14 | the wakeup response message: 3 header bytes, 3 data bytes and a checksum Format: 0x83 or 0xC3 for physical / logical addressing Target address Source address startCommunication Positive Response Service Id: 0xC1 Key byte 1 Key byte 2 Checksum | |
15 | message status byte; it should be 0x04 | |
16 | should be 0x00 |
Please also see generic events for non card-specific events.
IOCTL name | Function | Data field length/purpose | |
GKWPSETPTIMES | Set P Times | 24 data bytes:(half milliseconds, 'x86' byte order) | |
Byte 0,1 - P1 rx min | |||
Byte 2,3 - P1 rx max | P1 max   (20ms) | ||
Byte 4,5 - P1 tx | P1 min   (0ms) | ||
Byte 6,7 - P2 rx min | |||
Byte 8,9 - P2 rx max | P2 max   (50ms) | ||
Byte 10,11 - P2 tx | P2 min   (25ms) | ||
Byte 12,13 - P3 rx min | |||
Byte 14,15 - P3 rx max | P3 max   (5,000ms) | ||
Byte 16,17 - P3 tx | P3 min   (55ms) | ||
Byte 18,19 - P4 rx min | |||
Byte 20,21 - P4 rx max | P4 max   (20ms) | ||
Byte 22,23 - P4 tx | P4 min   (5ms) | ||
GKWPSETWTIMES | Set W Times | 30 data bytes:(half milliseconds, 'x86' byte order) | |
Byte 0,1 - W1 rx min | |||
Byte 2,3 - W1 rx max | W1 max   (300ms) | ||
Byte 4,5 - W1 tx | W1 min   (60ms) | ||
Byte 6,7 - W2 rx min | |||
Byte 8,9 - W2 rx max | W2 max   (20ms) | ||
Byte 10,11 - W2 tx | W2 min   (5ms) | ||
Byte 12,13 - W3 rx min | |||
Byte 14,15 - W3 rx max | W3 max   (20ms) | ||
Byte 16,17 - W3 tx | W3 min   (0ms) | ||
Byte 18,19 - W4 rx min | |||
Byte 20,21 - W4 rx max | W4 max   (50ms) | ||
Byte 22,23 - W4 tx | W4 min   (25ms) | ||
Byte 24,25 - W5 rx min | |||
Byte 26,27 - W5 rx max | W5 max   (30,000ms) | ||
Byte 28,29 - W5 tx | W5 min   (300ms) | ||
GKWPDOWAKEUP | Send wake up | 0 data bytes: | |
GKWPGETBITTIME | Get Bit Time | 2 data bytes returned: bit time (microseconds, 'x86' byte order) 0x0060=10,417 bits/sec (10,400 bits/sec nominal) | |
GKWPSETBITTIME | Set Bit Time | 2 data bytes:bit time (microseconds, 'x86' byte order) 0x0060=10,417 bits/sec (10,400 bits/sec nominal) | |
GKWPSETNODEADDR | Set node address | 1 data bytes: Node Address | |
GKWPGETNODETYPE | Get node type | 1 data bytes returned: GKWPMONITOR=0x00, GKWPECU=0x01,GKWPTESTER=0x02 | |
GKWPSETNODETYPE | Set node type | 1 data bytes: GKWPMONITOR=0x00, GKWPECU=0x01,GKWPTESTER=0x02 | |
GKWPSETWAKEUPTYPE | Set wake up type to either "fast" or "five baud" | 1 data bytes: GKWPFAST=0x00,GKWPFIVEBAUD=0x02 | |
GKWPSETTARGADDR | Set target address | 1 data bytes: Address of node to wake up | |
GKWPSETKEYBYTES | Set keybytes | 2 data bytes: keybytes to send in five baud wake up process | |
GKWPSETSTARTREQ | Set start request | 5 data bytes: fast wake up start communication request | |
GKWPSETSTARTRESP | Set target address | 7 data bytes: fast wake up start communication response | |
GKWPSETPROTOCOL | Set protocol type | 1 data bytes: GKWPKWP2000=0x01, GKWPISO9141FORD=0x02 | |
GKWPGETLASTKEYBYTES | Get last key bytes | 2 data bytes returned: value of keybytes seen in last successful wake up (only currently implement for 5 baud) | |
GKWPSETLASTKEYBYTES | Set last key bytes | 2 data bytes:value GKWPGETLASTKEYBYTES returns until a successful wake up is seen. |
Data name | Description |
GKWPSTAT_KLINE | Message on K line (rx and tx) |
GKWPSTAT_LLINE | Message on L line (rx and tx) |
GKWPSTAT_ERR | General bus error (rx only) |
GKWPSTAT_CSERR | Checksum error (rx only) |
GKWPSTAT_CONTENTION | Bus contention is detected (rx only) |
GKWPSTAT_BLOCK | Message recieved over multiple interrupts (rx only) |