Forum: Mikrocontroller und Digitale Elektronik OBD2 und der CAN


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Steffen W. (woern92)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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. (therfd)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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. (therfd)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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. (therfd)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.