Verständnisfrage zu ISO9141 (K-Line)

OP #7507978
Lesenswert?

So ganz blicke ich mit den "Modes" des ISO9141-Protokolles nicht durch.

Mein OBD K-Line Adapter funktioniert elektrisch wie auch Software mäßig. Nur bekomme ich einen Time out wenn ich Werte schneller als 200ms Abstand abfrage. Da ich das Ganze im Circuit Tool (Datenauswertung von der Rennstrecke) und als Overlay im Onboard-Video nutzen möchte, sind 5 Werte pro Sekunde e bissl mau.

Aktuell frage ich über den Mode 01 die einzelnen PIDs ab. Genau genommen sind es nur TPS (0x0C) und RPM (0x11) zwei Mal pro Sekunde, IAT(0x0F) und ECT(0x05) jede zweite Sekunde.

Gibt es vielleicht einen Weg mehrere Bytes am Stück zu lesen?

Auch auf einem OBDlink springen die Werte recht aufgeregt auf und ab. Kann es sein, dass das Fahrzeug (Honda BJ 2002) tatsächlich so eingeschränkt Kommunikationswillig ist?

Angehängte Dateien:
OP #7519647
Lesenswert?

Alexander schrieb:

Naja was haben wir denn da, 10400 baud mit UDS OBD KWP2000 Overhead bleiben netto vielleicht 4000 baud also etwa 500 Bytes pro Sekunde. Daran kanns nicht liegen.

Ach da schau an. Ehrlich, das mehr als 8 Byte pro Sekunde möglich sind, hätte ich jetzt ohne nachrechnen nicht heraus gefunden :-/

Deswegen war meine Frage aber auch auf die Modi bezogen und nicht auf die Übertragungsgeschwindigkeit.

#7519669
Lesenswert?

Dann sollte doch klar sein dass es nicht am Mode liegen kann. Einen anderen als Mode 01 gibt es für Sensordaten nicht, falls Du Dich auf die OBD2 Generic Modi beziehst.

Vielleicht ist Deine Frage "Gibt es einen Weg mehrere Werte am Stück zu lesen"?

Dazu müsstest Du mal mehr über die Software verraten, nicht jeder weiß was Du da in Betrieb hast. Auf Deinem Bild sieht man eine VBOX. Das sieht nicht so aus als ob Du da selbst etwas an der Software ändern kannst.

Wüsste nicht was man da noch überprüfen kann. Wird wohl am Fahrzeug liegen.

OP #7519715
Lesenswert?

Die VBOX hat mit dem OBD nur so viel zu tun, dass sie die ausgelesenen Daten via CAN (von meinem Adapter) zu geschickt bekommt.

Aber im Eingangspost hatte ich geschrieben, dass ich neben meinem selbstgebauten OBD-Adapter auch ein OBDlink zum Auslesen des Honda S2000 genommen habe. Und auch dieser liefert keine kontinuierliche Anzeige von Drehzahl und so weiter.

Wenn es nur den Mode 01 zum Auslesen der Werte gibt, dann beantwortet das meine Frage. Weil in diesem Mode akzeptiert das Auto nur ca alle 200ms eine Wertabfrage.

#7519780
Lesenswert?

Ja sehr verwirrend. K-Line hat aber eigentlich keine Modi, OBD hat die Modi? Dein Adapter hängt doch an einer OBD2 Dose... egal.

Dass da ein selbstgebauter Adapter dazwischen hängt war mir entgangen, aber Du wirst schon wissen was Du tust. Deine Frage ergibt beim zweiten durchlesen nun auch Sinn. Möglicherweise kann man auch direkt über K-Line Daten abfragen, wenn man die fahrzeugspezifische Dokumentation dazu hat, ähnlich CAN.

OP #7519793
Lesenswert?

OBD kann nunmal über verschiedene Bussysteme übertragen werden. Neben CAN und K-Line gibt es noch einen SAE J1850 Bus. Und alle drei sind je nach Belegung an der OBD2-Buchse zu finden.

Naja, ich werde wohl nun doch die Daten analog unabhängig vom OBD direkt messen.

Meine ursprüngliche Frage nach mehr Bytes abfragen kam ich, weil ich Softwareschnippsel gefunden hatte wo die Leute eben mit einem Request mehr als eine einzelne PID abgefragt haben. Wenn ich das halbwegs richtig verstanden hatte wurden eben mit dem abfragen eines PIDs unmittelbar die darauf folgenden quasi mit gelesen. Nur hat das bei mir nicht geklappt.

#7519895
Lesenswert?

Hast Du schon versucht wie schnell Du PID 0x00 abfragen kannst? PID 0x00 ist zwar nur die Bitmap der unterstützten PIDs, steht aber sofort zur Verfügung. Damit kann man eventuell erkennen ob der von Dir beobachtete Timeout von der PID abhängt oder generell auftritt.

Hier hat scheinbar schon mal jemand mit der maximalen Abfragerate bei einer Honda ECU experimentiert, ich habe aber auf die Schnelle nicht gefunden was dabei heraus kam:

https://github.com/micooke/ArduinoHondaOBD_Extra

OP #7520227
Lesenswert?

Dieter S. schrieb:

Hast Du schon versucht wie schnell Du PID 0x00 abfragen kannst? PID 0x00 ist zwar nur die Bitmap der unterstützten PIDs, steht aber sofort zur Verfügung. Damit kann man eventuell erkennen ob der von Dir beobachtete Timeout von der PID abhängt oder generell auftritt.

Hab ich tatsächlich noch nicht probiert. Ist aber eine gute Idee :-)

Hier hat scheinbar schon mal jemand mit der maximalen Abfragerate bei einer Honda ECU experimentiert, ich habe aber auf die Schnelle nicht gefunden was dabei heraus kam:

https://github.com/micooke/ArduinoHondaOBD_Extra

Je bei ihm hab ich mir auch ein paar Ideen geholt. Auch wenn der Code gewöhnungsbedürftig ist. Genau das war die Grundlage meiner Anfrage, weil er 16bytes (0x10) mit einmal abfragt. Mal schauen was die "Nicht-Cabrio-Zeit" so bereit hält :-)

#7520236
Lesenswert?

Jens R. schrieb:

Je bei ihm hab ich mir auch ein paar Ideen geholt. Auch wenn der Code gewöhnungsbedürftig ist. Genau das war die Grundlage meiner Anfrage, weil er 16bytes (0x10) mit einmal abfragt.

Wenn ich es richtig verstehe schaltet der Code auf das "Honda" Protokoll um und liest dann vermutlich direkt aus dem Speicher. Hier gibt es ein paar mehr Details zu dem Protokoll (in "Honda OBD code.docx"):

https://github.com/mr-sneezy/ArduinoHondaOBD1_to_OBD2_BT

Die Frage ist ob das Dein Steuergerät auch kann und wenn ja, ob man dann damit schneller auslesen kann.

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