Forum: Mikrocontroller und Digitale Elektronik OBD K-Line Interface selber Programmieren


von Peer (Gast)


Lesenswert?

Hallo
Ich möchte ein eine K-Line Diagnose kommunikation selber verweirklichen.

Sprich. Eine eigene PC-Anwendung schreiben, die mit einem Interface 
spricht, welches dann die Diagnosekommunikation realisiert.

Meine fragen:
- Gibt ja sicher ein fertiges interface zu dem eine API angeboten wird.
Bitte mal tipps geben. Protokoll soll KWP2000 sein.
- Pc Programmierung habe ich schon einige Erfahrung, aber nicht wenn es 
darum geht mit einem Kontroller / Interface zu sprechen. (Aber das hat 
sich dann ja m´durch die API erledigt). Ansonsten wäre eine kurze 
erläuterung wie die kommunikation da genau läuft.

PC -> Controller Platine(Interface) -> Auto

- Was sollte ich noch beachte, bzw. mich einarbeiten

Meine Kenntnisse:
programmierung von uC
PC Programmierung (C)


Danke

von Erwin R. (er-tronik)


Lesenswert?

Ich mache die OBD2-Programmierung nun schon seit vielen Jahren. Glaube 
mir, es ist recht schwierig, im Netz freie Informationen über die 
Protokolle zu bekommen. Die SAE-Datenblätter zu den Protokollen sind 
sehr umfangreich und recht teuer, der Kauf lohnt sich nur, wenn Du 
wirklich vor hast, das Ganze später kommerziell zu vermarkten. Ansonsten 
gibt es ja auf dem Markt genügend fertige OBD2-PC-Interfaces, die 
einfach per serieller Schnittstelle vom PC angesprochen werden und die 
Kommunikation sowie die Pegelwandlung der Signale vornehmen. Es wird ein 
recht einfacher AT-Befehlssatz wie bei Modems benutzt, selbst mit einem 
Terminalprogramm kann man schon ohne jegliche Programmierung gute 
Erfolge erziehlen.
Such einfach im Netz mal nach AGV4000, DX35 oder ELM327. Diese 
Interfaces können alle Protokolle, natürlich auch KWP2000.

E.R.

von Maus (Gast)


Lesenswert?

Peer schrieb:
> Sprich. Eine eigene PC-Anwendung schreiben, die mit einem Interface
> spricht, welches dann die Diagnosekommunikation realisiert.

Also die 100. ELM Applikation? Naja.

Wenn Du nur APIs nutzen kannst/willst, würde ich es sein lassen. Wozu?
Wenn Du wirklich KW2000 beherrschen willst, lies ein Buch. Es gibt nur 3 
am Markt.

von Axel L. (axel_5)


Lesenswert?

Hier wird ja wieder fleissig Angst gemacht.

Ich habe für ein Interface basierend auf einem Atmel und einem 
Pegelwandler knapp zwei Wochen (jeweils Abends)  gebraucht, bis ich den 
mit meinem Smart gekoppelt bekommen habe und die gängigen Werte wie 
Drehzahl etc. auslesen konnte.

Letztlich besteht das Ganze erstmal aus einer 50 Baud 
Initialisierungssequenz und dann folgend eine simplen UART Kommunikation 
mit 10500 Bd (wenn ich mich richtig erinnere). Wirklich kein Hexenwerk.

Wenn man ELM verwenden will, ELM Datenblätter gibt es im Internet, da 
ist das alles beschrieben.

Gruss
Axel

von Peer (Gast)


Lesenswert?

Maus schrieb:
> Wenn Du nur APIs nutzen kannst/willst, würde ich es sein lassen. Wozu?
> Wenn Du wirklich KW2000 beherrschen willst, lies ein Buch.

Naja es ist halt einfacher eine vorhandene APi zu verwenden als alles 
selber zu erstellen.
Und KWP200 Lernen ist ganz toll, aber ich will nicht das ganze Protokoll 
auswendig können. Der Funktionelle aufbau ist klar, und ich weiß was ich 
machen will. alles andere ergibt sich

Axel:
Machst du das nur aus Hobby oder auch beruflich?

Aber genau das ist es was ich gerne in gewisser weise fertig hätte. 
KWP200 fertig implementiert, so das ich nich die initialisierungs 
sequenz usw selber schrieben muss.

Ich weiß was ich für daten hin schicken will und wenn ich was bekomme, 
was es bedeutet.
ich möchte mich ungern noch damit befassen, das ich erst den ganzen 
Nachrichtenaufbau konstuieren muss usw.

Danke

von Peer (Gast)


Lesenswert?

evtl. gibt es hier ja auch jemanden dem man da etwas in auftrag geben 
könnte

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Axel Laufenberg schrieb:
> Letztlich besteht das Ganze erstmal aus einer 50 Baud
> Initialisierungssequenz
 Das wäre Slowinit und der geht mit 5 Baud. Normal startet man KWP2000
 aber mit Fastinit.

> und dann folgend eine simplen UART Kommunikation
> mit 10500 Bd (wenn ich mich richtig erinnere). Wirklich kein Hexenwerk.
 Mit 10400 Baud und so ganz simpel ist die Kommunikation auch nicht.
 Man muss zuerst die KeyWords decodieren, dementsprechend müssen die
 Befehle kodiert sein - kurz/lang usw. Dann kommen noch die ganzen
 Umrechnungen der empfangenen Werte, Adressen, PIDs...
 Alles andere als einfach und simpel.

> Ich habe für ein Interface basierend auf einem Atmel und einem
> Pegelwandler knapp zwei Wochen (jeweils Abends)  gebraucht,
 Ahem.

von Axel L. (axel_5)


Lesenswert?

Marc Vesely schrieb:
> Axel Laufenberg schrieb:
>> Letztlich besteht das Ganze erstmal aus einer 50 Baud
>> Initialisierungssequenz
>  Das wäre Slowinit und der geht mit 5 Baud. Normal startet man KWP2000
>  aber mit Fastinit.
>
>> und dann folgend eine simplen UART Kommunikation
>> mit 10500 Bd (wenn ich mich richtig erinnere). Wirklich kein Hexenwerk.
>  Mit 10400 Baud und so ganz simpel ist die Kommunikation auch nicht.
>  Man muss zuerst die KeyWords decodieren, dementsprechend müssen die
>  Befehle kodiert sein - kurz/lang usw. Dann kommen noch die ganzen
>  Umrechnungen der empfangenen Werte, Adressen, PIDs...
>  Alles andere als einfach und simpel.
>
>> Ich habe für ein Interface basierend auf einem Atmel und einem
>> Pegelwandler knapp zwei Wochen (jeweils Abends)  gebraucht,
>  Ahem.

Ist schon zwei oder drei Jahre her, deswegen habe ich die Details nicht 
mehr so parat. Ich habe damals so eine kleine Anzeige gebaut, die hat 
Drehzahl, Temperatur etc. angezeigt, also reines Hobby. Hatte mir damals 
ein Buch für die Kodierung gekauft müsste mal raussuchen, welches das 
war.

Muss man halt ein bischen rumprobieren, aber wenn man das Prinzip 
erstmal raus hat, ist das kein Problem. Da muss man keine Angst vor 
haben.

Zumindest, solange es nur um die normalen Fehlercodes geht. Wer 
natürlich seine Aussenspiegel anklappen will, hat schon was anderes vor.

Gruss
Axel

: Bearbeitet durch User
von Maus (Gast)


Lesenswert?

Axel Laufenberg schrieb:
> Hatte mir damals
> ein Buch für die Kodierung gekauft müsste mal raussuchen, welches das
> war.

Mehr hatte ich auch gar nicht gesagt. Das hat nichts mit Angst machen zu 
tun.
Und meine Aussage, daß ich nicht verstehe, warum man die 100. App 
schreiben will auch nicht. Aber der OP will ja wohl auch keinen ELM 
nutzen und nicht mal nachlesen, was das ist.

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.