Forum: Mikrocontroller und Digitale Elektronik OBD2 und der CAN


von Steffen W. (woern92)


Lesenswert?

Guten Abend,

ich habe ein kleines Problem mit dem CAN an meinem Fahrzeug (A4 Bj 
2007).
Ich wollte per CAN Interface am OBD2 Stecker ein paar Daten auslesen, 
wenn ich also das hier sende:

ID  DLC   B0 B1 B2 B3 B4 B5 B6 B7
7DF  8    02 01 12 00 00 00 00 00

Sollte ich ja eine Antwort vom Steuergerät (Drehzahl) bekommen mit einer 
ID zwischen 7E8h und 7EFh oder??

Alles was ich sehe ist der ganz normale CAN Trafic, sonst nichts...

Checkliste:
CAN SPEED = 500kbps
Auto CAN fähig = JA

Wenn mir jemand helfen könnte wäre super.

MFG Woern

von Ju (Gast)


Lesenswert?

Bist du dir sicher, dass das MSG gleich mit der Drehzahl antwortet?
Woher hast du die Informationen? Muss nicht erst der Diagnose-Modus 
gestartet werden?

von René F. (Gast)


Lesenswert?

Was passiert wenn du für den Request die CAN ID 7E0 verwendest? (Als 
Antwort dürfte etwas von 7E8 kommen, alternativ Probier mal 7E7/7EF)

von Ju (Gast)


Lesenswert?

Laut der pdf scheint die ID 0x7DF schon die richtige zu sein.

http://www.emotive.de/documents/WebcastsProtected/Transport-Diagnoseprotokolle.pdf

Hast du die Zündung an, wenn du das versuchst?

von René F. (Gast)


Lesenswert?

Ju schrieb:
> Laut der pdf scheint die ID 0x7DF schon die richtige zu sein.

Ja als funktionale ID, ich würde es aber eher probieren direkt mim 
Motorsteuergerät (7E0_7E8 bzw. 7E7_7EF) zu quatschen

von Steffen W. (woern92)


Lesenswert?

Hallo,

ich habe alle ID´s von 7D0 bis 7FF ausprobiert, es gab auf keine eine 
Antwort.

Ju schrieb:
> Hast du die Zündung an, wenn du das versuchst?

Ja, ich habe immer die Zündung an gehabt und alles auch nochmal mit 
laufendem Motor getestet.

Ju schrieb:
> Muss nicht erst der Diagnose-Modus
> gestartet werden?

Wie soll ich den Diagnose-Modus starten?? Gibt es dafür eine Botschaft 
die ich vorab senden muss??

MFG

von René F. (Gast)


Lesenswert?

Steffen W. schrieb:
> Ju schrieb:
>> Muss nicht erst der Diagnose-Modus
>> gestartet werden?
>
> Wie soll ich den Diagnose-Modus starten?? Gibt es dafür eine Botschaft
> die ich vorab senden muss??

Bei UDS wäre es Service 10, ehrlich gesagt weiß ich nicht ob es bei OBD 
überhaupt Sessions gibt, hast du schon mal aufgezeichnet wie ein ELM327 
Adapter sich verhält wenn er die Drehzahl ausliest?

von Thomas B. (ewi)


Lesenswert?

Dez - Hex Problem :-)

Probier mal als Drehzahl PID 0x0C. 0x12 ist Commanded Secondary Air 
Status und wird zumindest von meinem Audi nicht unterstützt.

also so:

ID  DLC   B0 B1 B2 B3 B4 B5 B6 B7
7DF  8    02 01 0C 00 00 00 00 00

Ganz am Anfang sollte man deswegen ein 01 00 (Request supported PIDs) 
senden. Dann sieht man an der/den Antwort/en, welche PIDs überhaupt 
unterstützt werden.

von Steffen W. (woern92)


Lesenswert?

Thomas B. schrieb:
> Dez - Hex Problem :-)

Tut mir leid, habs falsch geschrieben, die Bytes hatte ich schon alle in 
Dezimal Umgerechnet weil mein Kvaser CAN KING Programm es alles in 
Dezimal anzeigt außer die ID. Also ist das PID 0C = 12.

Aber ich werde mal

7DF 8 01 00 Probieren.

von Thomas B. (ewi)


Lesenswert?

Ich verwende ein Diamex DXM oder Pi-OBD Modul. Beide benutzen ELM 
ähnliche Kommandos. Deswegen meine ich mit 01 00 die reine OBD 
Botschaft. Was da für Kvaser noch drumherum benötigt wird, kann ich nur 
vermuten. Aber sicher noch ein CAN PCI Byte für Single Frame mit 
korrekter Längeninfo.

also so:

ID  DLC   B0 B1 B2 B3 B4 B5 B6 B7
7DF  8    02 01 00 00 00 00 00 00

von F. F. (foldi)


Lesenswert?

Vor einer Weile habe ich mich mal mit OBD beschäftigt und bin da über 
ein Dokument gestolpert, da stand auch drin, wie man die Adressen 
aufrufen muss. Leider habe ich das nicht oder nicht mehr. Musst mal ein 
bisschen im Netz unter OBD suchen.
Denke ich habe das nicht abgespeichert, weil ich nicht programmieren 
wollte, sondern nur die Diagnose verstehen.

von Steffen W. (woern92)


Lesenswert?

Also, ich habe es ebend noch einmal getestet...

(Alle Angaben in HEX)

Gesendet habe ich:
ID  DLC   B0 B1 B2 B3 B4 B5 B6 B7
7DF  8    02 01 0C 00 00 00 00 00  (Anforderung der Motordrehzahl)

Empfangen habe ich:
ID  DLC   B0 B1 B2 B3 B4 B5 B6 B7
7E8  8    04 41 0C 0D E4 00 00 00

B2 = PID Nummer (Motordrehzahl)

256 * B3 + B4
-------------  = Motorsrehzahl 889 U/Min ---> Passt
     4

MFG

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.