Sparkfun OBD-II Uart

OP #4147934
Lesenswert?

Hallo,

kennt jemand das Interface?

https://www.sparkfun.com/products/9555

Konkrete Frage:
Es unterstützt ja mehrere Protokolle (CAN, K-Line etc). Wie ist das 
Verhalten von dem Teil:

Wenn das Ding zB am J-2234 und K-Line ( ISO9141 ) hängt und ich via AT 
IDs lesen will - welches Protokoll wird vom Interface dann gesprochen? 
Wird es über beide Transceiver verschickt oder nur eins? Wie wählt man, 
was gesprochen werden soll?

Danke
(Firma: matzetronics) #4148175
Lesenswert?

Filth __ schrieb:
> Wenn das Ding zB am J-2234 und K-Line ( ISO9141 ) hängt und ich via AT
> IDs lesen will - welches Protokoll wird vom Interface dann gesprochen?

Der ELM 327 wird vom Steuerprogramm auf ein Protokoll eingestellt und 
dann wird versucht, eine Verbindung herzustellen. Bei meinem Scan 
Programm (ELM-Scan) werden bei 'Autobetrieb' einfach nacheinander alle 
Protokolle durchgeklingelt, bis die ECU antwortet.
Der ELM327 Befehlssatz ist aber recht gut dokumentiert:
http://www.sparkfun.com/datasheets/Widgets/ELM327_AT_Commands.pdf
Das z.B. CAN andere Leitungen benutzt als ISO, wird vom ELM selber 
erledigt.
#4148228
Lesenswert?

Ich verstehe jetzt dich nicht ganz... Auf der Wiki Seite des ELM werden 
Protokole angegeben, die der ELM mit der für ihn maximalen 
Geschwindigkeit unterstützt, d. h. ELM327 beherscht z. B. das Protokoll 
ISO 15765-4 CAN mit einer geschwindigkeit bis zu 500 500 kbit/s. Der 
angesprochene CAN Transceiver MCP 2551 schafft die doppelte 
Geschwindigkeit => 1000 kbit/s. Insofern sehe ich hier keine Probleme...
Gast #4149338
Lesenswert?

1000kbit würden mich etwas wundern. Datenraten >=500kbit kommen 
eigentlich nur auf dem Antriebs-CAN vor. Selbst bei diesen ECUs 
geschieht die Diagnose, für die die ELMxxx vorgesehen sind, nur über ein 
Gateway. Ein direktes Ansprechen dieser Steuergeräte würde ich aus 
Sicherheitsgründen lieber bleiben lassen.
OP #4149393
Lesenswert?

Es ist laut Doku so:


CAN Stream Specification DTA S 40Pro
General

CAN bus Baud Rate 1 MBd
Identifiers All 29Bit
6 Data Packets All 8 Bytes Ea.
Send Frequency 10Hz
All Data Values Signed 16 bit sent LSB first (little endian)
Data Packets
Identifier Data1 Data2 Data3 Data4
0x2000 RPM TPS % Water Temp C Air Temp C
0x2001 MAP Kpa Lambda x 1000 KPH x 10 Oil P Kpa
0x2002 Fuel P Kpa Oil Temp C Volts x 10 Fuel Con. L/Hr x 10
0x2003 Gear Advance Deg x 10 Injection ms x 100 Fuel Con L/100Km x 10

From V62.01 the items below were added.
0x2004 Ana1 mV Ana2 mV Ana3 mV Cam Advance x 10
0x2005 Cam Targ x 10 Cam PWM x 10 Crank Errors Cam Errors
Gast #4149437
Lesenswert?

Ah - nix für Serienautos. Auf dem CAN findet offenbar gar kein Protokoll 
statt. Du brauchst einen einfachen CAN-Konverter wie z.B. ein PEAK-USB 
oder so. Falls Du selber etwas bauen möchtest schaue Dir mal die Boards 
unter www.kreatives-chaos.com an.
OP #4150032
Lesenswert?

Ich will das hier verwenden

http://www.exp-tech.de/obd-ii-uart?___SID=U

weil es die meisten Protokolle abdeckt. Jetzt gibt es aber noch den 
Sonderfall mit der DTA ECU - den möchte ich idealerweise mit der 
gleichen Hardware abdecken - das verlinkte Board steckt in meinem Fall 
sowieso auf einem Arduino UNO

Was mich irritiert: auf dem Schalplan von dem OBD Teil fehlt beim MCP 
der Quarz
https://www.sparkfun.com/datasheets/Widgets/OBD-II-UART-v13.pdf

Beim CAN Shield, ist aber dieser vorhanden:
https://www.sparkfun.com/datasheets/DevTools/Arduino/canbus_shield-v12.pdf

- Warum sind die beiden unterschiedlich verdrahtet?
- An welche Pins müsste ich am MCP mit dem Arduino dran, um diesen über 
die LIB nutzen zu können? (Bis jetzt hab ich das CAN Shield einfach 
aufgesteckt und losprogrammiert)

EDIT: Jetzt verstehe ich das Problem - bei dem OBD Teil ist nur ein CAN 
Transceiver drauf aber nicht der MCP wie beim CAN Shield.
Gast #4150069
Lesenswert?

OBD und CAN ist nicht dasselbe!
OBD kann über CAN kommunizieren. Aber ein OBD-2 Interface mit ELM-Chip 
kann nicht beliebig den CAN-Bus auslesen.

Um auf den CAN-Bus des von dir geschriebenen DTA S40 Steuergerätes 
zuzugreifen brauchst du ein reines CAN-Interface, nix OBD. Also z.B. ein 
PEAK-USB oder was vom kreativen-chaos, lawicel.
Oder wenn du selber programmieren willst ein CAN-Shield für den Arduino, 
aber da weiß ich nicht ob ein Arduino mit 1MBit/s noch mitkommt.
Gast #4150142
Lesenswert?

Das stimmt nicht ganz. Der ELM kann auch "rohe" CAN Botschaften senden.
Auf dem Sparkfun Board ist aber kein ELM! Der STN1110 ist ähnlich, 
teilw. besser, aber eben: anders. Alle (wirklich alle) ELM327 Angebote 
für weniger als 40 Euro sind übrigens China Clones, egal, welcher 
"namhafte" Hersteller da seinen Sticker draufklebt.

Aber mal grundsätzlich: OBD II hat halt zwei Modi vorgegeben, vier 
werden i. d. R. von den Controllern unterstützt. Alles andere ist nicht 
norm-gerecht. Da gibt es also auch keine Doku zu. Hier tummeln sich 
diejenigen, die am Auto rumspielen: http://www.canhack.de/ - was davon 
zu halten ist, CAN Botschaften zu senden, sei mal dahingestellt. Lesen 
ist aber kein Problem.

Mehr Infos: http://www.blafusel.de/obd/obd.html
Gast #4150557
Lesenswert?

Dann lerne, wie Elektronik und Programmierung funktioniert (Arduino 
gehört in die Tonne), was ein Datenblatt ist (da steht nämlich drin, was 
der STN1110 kann) und nimm einen PCA 82C250/MCP 2551 und einen MCP 2515, 
Quarz, zwei Rs, vier Cs und gut ist. Kostet keine 3€.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren