Diagnostika CAN I - ELM327

Nedávno jsem si zakoupil levný (cca 600czk) adaptér na eBay vybavený klonem čipu ELM327 a rozhraním FTDI. Zde se pokusím udělat pár poznámek o možnosti použití a na konci se zaměřím na využití adaptéru jako levného CAN analyzéru.

ELM327

Čip ELM327 zpřístupňuje OBD (On Board Diagnostic) pomocí AT příkazů na sériovém rozhraní RS232.

Podporované protokoly

  • 1 - SAE J1850 PWM (41.6 kbaud)
  • 2 - SAE J1850 VPW (10.4 kbaud)
  • 3 - ISO 9141-2 (5 baud init, 10.4 kbaud)
  • 4 - ISO 14230-4 KWP (5 baud init, 10.4 kbaud)
  • 5 - ISO 14230-4 KWP (fast init, 10.4 kbaud)
  • 6 - ISO 15765-4 CAN (11 bit ID, 500 kbaud)
  • 7 - ISO 15765-4 CAN (29 bit ID, 500 kbaud)
  • 8 - ISO 15765-4 CAN (11 bit ID, 250 kbaud)
  • 9 - ISO 15765-4 CAN (29 bit ID, 250 kbaud)
  • A - SAE J1939 CAN (29 bit ID, 250 kbaud)
  • B - USER1 CAN (11* bit ID, 125 kbaud)
  • C - USER2 CAN (11* bit ID, 50 kbaud)

Adaptér ELM327 s USB FTDI

Adaptér je vybaven rozhraním FTDI, podporuje datový přenos 500 kbaud. Ovladače pro rozhraní FTDI najdete zde.

Pro ruční ověření AT příkazů pomocí aplikace CoolTerm je třeba vytvořit dodatečně soubor baudrates.ini v adresáři, kde se nachází CoolTerm.exe s obsahem:

460800
500000
921600

Následně již stačí CoolTerm spustit, nastavit baudrate 500000, ostatní hodnoty výchozí, záložka Terminal přepnout do Line Mode a Connect. Jednoduchý příklad pro použití AT příkazů jsem našel zde.

CoolTerm - AT příkazy pro adaptér ELM327

Konektor OBD

Zapojení pinů konektoru OBD je následující:

OBD konektor - popis pinů

Přičemž mechanický přepínač na adaptéru přepíná HS-CAN (pin 6 a 14) a MS-CAN (pin 3 a 11) na CAN rozhraní na čipu ELM327.

CAN monitor

Základní sadu příkazu pro přepnutí ELM327 do monitorovacího módu jsem našel zde. Pro svůj případ jsem použil následující nastavení:

ATE0 //response echo OFF 
ATSP6 //ISO 15765-4 (CAN 11/500) and save it
ATAL //Set long messages ON
ATS1 //Space ON [08F 00 00 00 00 00 00 00 00] 
ATH1 //Set header ON [08F 00 00 00 00 00 00 00 00]
ATD1 //Display data lenght ON [08F 8 00 00 00 00 00 00 00 00]
ATL0 //Line feed OFF
ATCAF0 //CAN Auto Formatting OFF
ATMA //Start monitoring

A výsledné přijaté data v programu CoolTerm pro CAN zprávy vypadají následně (hlavička id, počet dat ve zprávě, data):

ID    DATA
01F 4 C7 23 00 00 
00F 7 32 03 20 00 2D E9 00 
012 7 32 03 20 00 2D E9 00 
013 7 32 03 20 00 2D E9 00 
014 7 32 03 20 00 2D E9 00 
015 7 32 03 20 00 2D E9 00 
06F 8 00 00 00 00 00 00 00 00 
07F 8 00 00 00 00 00 00 00 00 
08F 8 00 00 00 00 00 00 00 00 

Program ELMConfig

K monitoringu CAN rozhraní můžeme také použít program ELMConfig, stačí přepnout do módu Sniffer a lze vidět všechny zprávy na CAN rozhraní.

ELMConfig v módu Sniffer