LIN Bus Signal Abschalten oder Stören

OP #7414386

Hallo zusammen,

ich muss ein LIN Bus Signal komplett abschalten bzw. stören.

Mir sind dafür folgendes Lösungsansätze eingefallen:

  1. Mittels LIN Shield sämtliche Anfragen durch einen Arduino leiten und dann wieder ins Fahrzeug speisen. Wird dann ein bestimmter Parameter gesetzt werden gewisse Nachrichten aus dem LIN bus nicht weitergeleitet. Ist vermutlich die sauberste Lösung da sämtliche anderen LIN Bus Funktionen erhalten bleiben und ich die Sperren Flexibel anpassen kann bzw. Nachrichten emulieren kann. Allerdings bedeutet es einen extrem hohen programmier aufwand. Ebenfalls mach ich mir mit der Signal Integrität sorgen da die Übertragung ja durch die Shield uns den Arduino verzögert wird.

  2. Den LIN Bus an einer bestimmten stelle mit einem SSR zu Trennen wenn ein entsprechender Paramater gesetzt wird. Hat jemand sowas schonmal in einem Bus System Realisiert? Wie sieht es hier mit der Signal Integrität über das SSR aus? Vorteil wäre hier nartürlich die einfachste Lösung.

Eventuell hat jemand schonmal ein ähnliches problem und kann mir helfen! Danke!

#7417270

Was ist überhaupt das Ziel? LIN hat genau nur einen Master, wenn man den testen will simululiert man den oder die Slaves. Will man einen Slave testen, dann simuliert man den Master.

Ein Gateway für LIN zu programmieren um etwa einzelne Bits zu setzen oder zu löschen ist ganz schön eklig und hat Grenzen. Man kann das ja schlecht so programmieren das die beiden Schnittstellen voneinander abhängig sind und je nach Datenrichtung verzögert werden, bis die jeweils andere Seite das geforderte Byte gesendet hat.

#7417312

Ich glaube mit folgendem Ansatz kommst du mit geringem Aufwand am weitesten: Dein "Controller" muss die Länge aller Nachrichten kennen. Er sendet ja alles in nach einer festen Schedule-Tabelle raus.

Du horchst auf den Bus. Dein Controller braucht keinen kompletten LIN Treiber, aber du musst Break und Sync erkennen und die LIN ID lesen, die der Master sendet. Wenn du jetzt eine ID erkannt hast, die gefiltert werden soll, dann weißt du, dass der Slave mit z.B. 4 Datenbytes + CRC antwortet, bzw du weißt, dann dafür zum Beispiel 6ms Zeit auf dem Bus sind, in denen der Slave die Antwort auf den Bus legt. Also musst du nur für 6ms den Bus auf LOW ziehen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 3 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.