Forum: Mikrocontroller und Digitale Elektronik Automatsiche Schnittstellen Erkennung LIN/PWM


von Max Müller (Gast)


Lesenswert?

Hallo Zusammen,
für mein aktuelles Projekt, denke ich über folgende Problemstellung 
nach:

Ich will eine Schaltung aufbauen, welches ein Input Signal (LIN oder 
PWM) einliest, automatisch erkennt, ob es sich um LIN oder PWM handelt, 
bis hin zu der Ausgabe des jeweiligen erkannten Signales zu einer schon 
vorhandenen MCU mit LIN oder PWM Interface.

Wie könnte ich, das am besten realisieren?
Gibt es schon intelligente IC’s auf dem Markt, die die beiden genannten 
Schnittstellen automatisch erkennen und sie jeweils entsprechend 
ausgeben können? Auf meiner bisherigen Suche war ich leider noch nicht 
erfolgreich.

Vielleicht könnt Ihr mir ja weiterhelfen, oder mir neue Anregungen zur 
Umsetzung vermitteln.

Schon mal vielen Dank 😊

Liebe Grüße
Max

von Achim M. (minifloat)


Lesenswert?

In dem Zusammenhang ist PWM die "J1850" Fahrzeugdiagnose-Schnittstelle, 
nehme ich an.

LIN ist nicht gleich LIN. Du musst die RX-Frames des originalen 
LIN-Slave kennen, also ein LDF-File zum Original vorhandenen Bus haben. 
Dein originales LIN-Gerät hat für Diagnose eigene LIN-Diag-RX und 
LIN-Diag-TX Frame-IDs. Kennst du die?
Außerdem hat man LIN eher nicht als Diagnose-Schnittstelle zugänglich, 
bzw. Es ist so nicht vorgesehen. Es gibt in der ISO15031 für OBD 
vorgesehen PWM, VPW, CAN, usw... aber kein LIN! Technisch geht das 
natürlich, weil wer ISO-TP spricht, kann auch OBD und UDS drauf setzen. 
Aber wie gesagt, OBD über LIN steht nicht in der Norm...

Um das Problem richtig zu verstehen, du willst also dass die folgenden 4 
Modi unterstützt werden:

LIN-Master --> [DeinGerät] --> PWM-Gerät
PWM-Quelle --> [DeinGerät] --> LIN-Slave
LIN-Master --> [DeinGerät] --> LIN-Slave
PWM-Quelle --> [DeinGerät] --> PWM-Gerät

Automatisch erkennen dürfte Empfangsseitig nicht so schwierig werden. 
LIN läuft als NRZ mit Ruhepegel/Space KL30 bzw. KL15, Dominant/Mark KL31 
und immer 19.2kBaud, also 
52μsec(https://www.emotive.de/wiki/index.php?title=LIN).
Da gibts bei LIN Start-Of-Frame mit dem Break >13×T_Bit, dann das 
0x55-Sync-Byte, ein gut erkennbares Muster. PWM hingegen mit 64μsec < 
T_Bit < 128μsec geht da sehr gemächlich 
vor(https://www.emotive.de/wiki/index.php?title=SAE_J1850). Da würde dir 
der für LIN konfigurierte UART nur Gulasch liefern.

Automatisch erkennen auf Sendeseite wird da schon schhwieriger. Man 
könnte es mit try&error zuerst mit PWM versuchen, wenn keine Antwort 
kommt mit LIN.

mfg mf

von Rudolph R. (rudolph)


Lesenswert?

Achim M. schrieb:
> und immer 19.2kBaud,

Kann man so nicht sagen, oft oder gar meistens, aber nicht immer.
Mir sind schon LIN Knoten untergekommen die mit 9600 gearbeitet haben, 
als Serien-Teil.

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.