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