background image

UM-0086-A2

 

CANgate User’s Manual 

Page 18 

 

ECUaddr

 is the address of the ECU to which to send the request (integer, 

0-7

, or 

256

). If 

256

 is specified (which is 

the default), a non-specific request is made. For ECUs which do not use the standard OBD-II CAN IDs, you can 
alternatively specify an explicit CAN ID here, in hexadecimal (e.g. 

0x220

); this is discussed further below. 

 

sampleRate

 is the rate at which to send messages (integer, in ms, must be multiple of 100ms). If this parameter is 

0

 or 

not specified, the memory slot will only send a message when it is polled by the host system (using the 

RP

 command). 

 

formatOpt

 specify how the data value is to be formatted when it is returned to the host system; see 

FORMAT 

Sub-command

 

(P21)

 for more details. if not specified, data will be returned in raw hexadecimal format. 

 

RQST

 memory slot transmits a request message to an ISO-14230/OBD-II compatible ECU, and waits for a reply. Then: 

 

if a reply is forthcoming, the required bytes are extracted from the reply message, formatted if required, and returned 
to the host. 

 

if an ISO-14230 negative reply code is received, this is reported to the user (if the Verbose flag is on), and no data is 
returned. 

 

if nothing is received then CANgate will time out after approximately 400ms and abort the request. 

The request will be sent using CAN ID (0x7E0 + 

ECUaddr

). If 

ECUaddr

 = 256, this indicates a "functionally addressed 

request", which will instead be broadcast using CAN ID 0x7DF.  
The message data consists of a single 

mode byte

 (or 

service identifier

), followed by a variable number of parameters. 

Modes 0x01-0x0F are standardised ("legislated") OBD-II modes (defined in SAE-J1979 or ISO-15031), while modes 
0x10-0x3F are manufacturer extended modes (specified in ISO-14230, although details of data and parameters are 
manufacturer specific). 
CANgate will then listen for a response with CAN ID 0x7E8-0x7EF (ECU #0 will reply using ID 0x7E8, ECU #1 with ID 0x7E9, 
and so on). The response message's mode byte will be either: 

 

a copy of the request mode byte with bit 6 set – this is a 

positive response

 and the mode byte will generally be 

followed by one or more data values, or 

 

 the value 0x7F – this is a 

negative response

 and indicates that an invalid request was made. 

All messages are transmitted using the 

ISO-15765 

network layer protocol. This protocol fragments long messages into 

multiple CAN frames and then reassembles them. 
CANgate recognises a few of the common ISO-14230 mode byte values and sets the default 

startByte

 value appropriately, 

so that header information in the response is skipped. In particular: 

Mode 

default 

startByte

 

Comment 

0x01, 0x02, 0x33 

skip first 2 bytes (mode, PID) in response 

0x22 

skip first 3 bytes (mode, ID-hi, ID-lo) in response 

other 

skip first byte (mode) in response 

All received data, from 

startByte

 through to the end of the message (or 

endByte

 if specified), will be returned to the host. 

Note

: The response time for ISO-14230/OBD-II commands depends upon the particular ECU and can vary greatly. CANgate 

will only send out one request at a time; if it is asked to make many requests simultaneously then the requests will be placed 
in a queue and executed sequentially. If no reply is received within 400ms then CANgate will assume the ECU is dead and 
make the next request. 

Note:

 Some ECUs do not use the standard CAN identifier range (0x7E0 – 0x7E7). In this case an arbitrary CAN ID (0x000 – 

0x7F7) can be specified explicitly as the 

ECUaddr

. This should be specified in hexadecimal. CANgate will then send the 

request using the specified CAN ID, and expect a response with CAN ID 

ECUaddr

 + 8. The following two commands are 

therefore equivalent: 
 

RQST 1 010C 3 0 1 

  RQST 1 010C 3 0 0x7E1 

In both cases the request will be sent with CAN ID 0x7E1 and the response will be expected to have CAN ID 0x7E9. 

Examples 

 

RQST 1 010D FORMAT "%d\n" 

When polled, send a message on CAN port 1 requesting the current value (mode = 0x01) of Parameter ID (PID) 0x0D, which 
is vehicle speed (see 

OBD-II Modes and PIDs

 

(P40)

). The speed will be returned as a single decimal integer (0-255 km/h) 

followed by CRLF. 
 

RQST 1 1800FF00 2 2 0; RP 

This will immediately send a message on CAN port 1 to ECU #0 to ReadDTCByStatus (mode = 0x18), returning all currently 
active fault codes (parameter byte 1 = 0x00) for all fault code groups (parameter byte 2-3 = 0xFF00). The ECU will return a 
mode byte, fault code count, and a variable length string of 3-byte SAE-J2012 format fault codes. The slot selects just fault 
code count (byte 2) and returns it in the default format (hexadecimal). 

Summary of Contents for CANgate

Page 1: ...Intelligent Data Logging Products CANgate User s Manual A guide to programming wiring communications www datataker com...

Page 2: ...EPT AS EXPRESSLY PROVIDED IN THIS WARRANTY STATEMENT THERMO FISHER DISCLAIMS ALL OTHER WARRANTIES WHETHER EXPRESS OR IMPLIED ORAL OR WRITTEN WITH RESPECT TO THE INSTRUMENTS INCLUDING WITHOUT LIMITATIO...

Page 3: ...Summary 15 Command Reference 16 Commands and Parameters 16 Slot Definition Commands 16 RECV Receive Standard ID CAN Messages 16 RECVE Receive Extended ID CAN Messages 17 SEND Transmit Standard ID CAN...

Page 4: ...minal Control 30 KWP2000 OBD II ISO 14230 Requests 30 Reading Fault Codes 31 OBD II 31 J1939 31 Using CANgate with a DT8x Data Logger 32 Escaping Control Characters 32 Serial Sensor Direct Mode 33 Usi...

Page 5: ...N ports are hot pluggable and all CANgate settings are saved in non volatile flash memory so that the unit will resume its configured tasks following a power interruption Typical CANgate application A...

Page 6: ...Unit GPS Global Positioning System ID Identifier ISO International Standards Organisation NMEA National Marine Electronics Association OBD On Board Diagnostics PGN Parameter Group Number PID Parameter...

Page 7: ...ows Pin Signal Function 1 5V out 5Vdc output 200mA max 2 GND Ground 3 CAN1 HI CAN port 1 high 4 GPS RXD GPS port Receive Data input 5 CAN1 LO CAN port 1 low 6 CAN2 HI CAN port 2 high 7 CAN2 LO CAN por...

Page 8: ...agram Note By default the CANgate host port operates at a high baud rate 57600 baud At this speed the maximum cable length for the host computer or data logger connection is approximately 5 metres ass...

Page 9: ...ysical layer as defined in ISO 11898 2 SAE J2284 This is by far the most widely used physical layer The important characteristics of this standard are two wire 5V differential signalling bit rate 10kb...

Page 10: ...then an external termination resistor may be required Direct connection to a single ECU In this case a short 1m cable is used so the two 120 resistors are combined into one 60 resistor If a long cabl...

Page 11: ...ff off off x x x x off 38400 off off ON x x x x off 19200 off ON off x x x x off 9600 off ON ON x x x x off Host port baud rate 115200 ON off off x x x x off hardware x x x off x x x off Host port flo...

Page 12: ...sive and active For RECV RECVE RECVJ and GPS slots CANgate passively receives all matching messages then returns the last known data value either at a fixed rate or when requested by the host data log...

Page 13: ...ing Commands CANgate memory slots and other settings are configured by sending textual commands via the host port The available commands are detailed in the Command Reference P16 If CANgate is directl...

Page 14: ...cters after the apostrophe up until the end of the line will be ignored Run Mode and Program Mode CANgate has two operational modes Run Mode is the normal mode of operation Following power up CANgate...

Page 15: ...ddr sampleRate FORMAT options slot RECVJ CANport PGN startByte bit endByte bit ECUaddr priority sampleRate FORMAT options slot RQSTJ CANport PGN startByte bit endByte bit ECUaddr priority sampleRate F...

Page 16: ...ot specified then 8 is assumed If bit is not specified then 1 is assumed sampleRate is the rate at which to return values to the host integer in ms must be multiple of 100ms May also be ALL in which c...

Page 17: ...ed connect the two CAN ports together and set up the RECV slot on the other port Examples SEND 2 0x302 1122FF07 RP This will immediately send a CAN message on CAN port 2 The message s identifier will...

Page 18: ...negative response and indicates that an invalid request was made All messages are transmitted using the ISO 15765 network layer protocol This protocol fragments long messages into multiple CAN frames...

Page 19: ...slot That is it listens for CAN messages with a particular extended identifier extracts the required data field then returns it to the host when polled or at regular intervals or after every message...

Page 20: ...ter D or M or N default N If N normal is specified then the indicated field is returned as is Otherwise the indicated field and the next field are interpreted as a latitude or longitude value with for...

Page 21: ...specifies the data type integer floating point etc and possibly some other formatting details If no conversion specifier is present which is the default the data value will be output in raw hexadecim...

Page 22: ...that the last matching CAN message had the data 01234567AABBCCDD RECV 1 0x100 1 2 returns 0123 CR LF RECV 1 0x100 1 2 FORMAT 100 returns 29100 00 CR LF 0123 hex scaled by 100 RECV 1 0x100 1 2 FORMAT r...

Page 23: ...of responses may not match the order of the memory slots Examples RP 1 150 Poll all defined memory slots RQSTJ 2 65226 3 6 FORMAT f n RP SEND 1 0x142 112233 RP The RP command is often appended when d...

Page 24: ...time all incoming CAN messages on the specified port are received For each distinct CAN identifier that was received the following information is displayed identifier type standard 11 bit STD or exte...

Page 25: ...cified both CAN ports are measured This command measures the traffic load on one or both CAN ports and reports it as a percentage of the theoretical maximum for the bit rate in use It should be noted...

Page 26: ...es 2 8 end Flags c0820000 Sample 0 ms 1 RECV CAN1 RxID 0x0001 RxBytes 1 8 1 1 Flags c0020000 Sample 0 ms 2 RECV CAN1 RxID 0x0002 RxBytes 1 8 1 1 Flags c0020000 Sample 0 ms 3 RECV CAN1 RxID 0x0003 RxBy...

Page 27: ...s sent by CANgate will be displayed eg CAN2 TX 18EC00FF 132C0007 FFEBFE00 which shows that a message has been sent on CAN2 with identifier 0x18EC00FF and the indicated data value if bit 1 1 then all C...

Page 28: ...adcast PGNs J1939 based systems typically have a multitude of SPNs Suspect Parameter Numbers each representing an individual measured quantity or status A group of related SPNs will be broadcast over...

Page 29: ...d causes the memory slot to be immediately polled which will cause the request to be immediately sent Note that it doesn t make sense to poll a RECVJ slot immediately after defining it because at that...

Page 30: ...at any one time Terminal Control The following example is intended to be used with an ANSI VT100 terminal or emulator Two data values are extracted from received CAN messages with ID 0x212 and one fro...

Page 31: ...eg RQST 1 0101 RP 81066060 The most significant 8 bits 81 of the 32 bit result contains the most pertinent information In this case b31 is set which indicates that the Malfunction Indicator Light MIL...

Page 32: ...ed memory slots a number of 1SERIAL commands within one or more logger schedules typically one 1SERIAL command per parameter of interest These commands will normally send a poll command RP memslot the...

Page 33: ...logger connection from now on will be ignored by the logger and will instead be forwarded to the serial sensor port ie to CANgate Furthermore all normal text output from the logger eg real time data...

Page 34: ...also flash during the snoop If the CAN LED gives a brief flash at two second intervals then this may indicate that bus errors are occurring causing CANgate to disconnect from the bus then retry every...

Page 35: ...pear in the received data stream which will probably disrupt the parsing of the returned data With the logger in pass through mode verify that CANgate is configured for normal operation with no extran...

Page 36: ...message returned if in verbose mode CAN1 BUS ERROR DISCONNECTED The most common cause for this is an incorrectly configured bit rate although it may also be caused by noise or an intermittent electri...

Page 37: ...version 6 Type RESET to clear any existing CANgate configuration 7 Type VXVX All CANgate LEDs will turn on to indicate that the bootloader is active Some random characters may be returned as the bootl...

Page 38: ...1 stop bit Flow Control Not supported Protocols NMEA 0183 Host Data Logger Computer Interface 1 RS232 port Port Speeds 9600 19200 38400 57600 default 115200 baud Serial Parameters No parity 8 data bi...

Page 39: ...r Consumption Idle 0 75W 50mA 15V Maximum CANgate only 2 25W 150mA 15V Maximum CANgate external device drawing 200mA from 5V output 3 75W 250mA 15V Physical Construction Anodised aluminium plastic sur...

Page 40: ...ly to a mode 0x01 request The second byte is the PID and the third and subsequent bytes are the actual data value PID hex Data Size bytes Description Scale Offset Units 00 4 PIDs supported b31 0 PIDs...

Page 41: ...e travelled since DTCs cleared 1 0 km 32 2 Evaporative system vapour pressure 0 25 8192 Pa 33 1 Barometric pressure 1 0 kPa abs bytes 1 2 Sensor 1 WR lambda 1 Equivalence ratio 0 0000305 0 34 4 bytes...

Page 42: ...rain B body C chassis or U network For example P0118 Engine Coolant Temperature Circuit High Input P0203 Injector Circuit Malfunction Cylinder 3 U0003 High Speed CAN Communication Bus Open When a DTC...

Reviews: