LIN Bus - Nachrichtenverteilung

Gast #5559586
Lesenswert?
• ▲
▼
Guten Morgen,

gegeben ist ein LIN Bus mit einem Master, sowie einem Schalter als Slave 
und einem Sensorboard als Slave.

Wenn der Master beispielsweise einen Header mit der ID 36 sendet, 
antwortet das Sensorboard mit 8 Byte Sensordaten.

Über den Schalter kann bestimmt werden, ob das Sensorboard aktiviert 
oder deaktiviert ist.

Sendet der Master beispielsweise einen Header mit der ID 40, antwortet 
der Schalter mit seinem Zustand.

Was für Möglichkeiten würde es denn geben das so umzusetzen?

1. Kann das Sensorboard ebenfalls die Response vom Schalter empfangen 
und auswerten? Master sendet eine ID 40 und das Sensorboard ist 
zusätzlich zum Master auch noch ein Subscriber der Response?

2. Der Master sendet eine ID 40 zum Schalter um den Zustand abzufragen 
und sendet dann einen neuen Header mit einer extra ID , beispielsweise 
55 zum Sensorboard. Das Sensorboard interpretiert die ID 55 dann als 
aus?

3. Der Master fragt zuerst den Schalter ab und sendet dann eine IDxx an 
seinen eigenen Slave Task und das Sensorboard ist ein Subscriber dieser 
Nachricht.

Wären diese drei Varianten alle möglich? Welche haltet ihr für am 
sinnvollsten und gibt es bessere Alternativen?

Vielen Dank.
#5560242
Lesenswert?
• ▲
▼
etk51 schrieb:
> Was für Möglichkeiten würde es denn geben das so umzusetzen?
>
> 1. Kann das Sensorboard ebenfalls die Response vom Schalter empfangen
> und auswerten? Master sendet eine ID 40 und das Sensorboard ist
> zusätzlich zum Master auch noch ein Subscriber der Response?

Klar, warum nicht? Der Master macht nichts weiter, als immer die IDs auf 
den Bus zu senden, und die Slaves senden dann die Daten. Diese können 
beliebig von anderen Slaves empfangen werden. Der Bus arbeitet nach dem 
Broadcast-Prinzip. Der Teilnehmer, der den Master macht, darf selber 
auch gleichzeitig Slave sein und Daten senden und empfangen - muss aber 
nicht.

> 2. Der Master sendet eine ID 40 zum Schalter um den Zustand abzufragen
> und sendet dann einen neuen Header mit einer extra ID , beispielsweise
> 55 zum Sensorboard. Das Sensorboard interpretiert die ID 55 dann als aus?

Das geht nicht. Sobald die ID gesendet ist, fängt der Schalter an, seine 
Daten zu senden. Du kannst nicht noch vorher ein zweite ID senden.

> 3. Der Master fragt zuerst den Schalter ab und sendet dann eine IDxx an
> seinen eigenen Slave Task und das Sensorboard ist ein Subscriber dieser
> Nachricht.

Dann müsste ja alles doppelt gesendet werden. Wozu?

> Wären diese drei Varianten alle möglich? Welche haltet ihr für am
> sinnvollsten und gibt es bessere Alternativen?

Variante 1 und 3 wären möglich, aber sinnvoll finde ich nur 1.

Antwort schreiben

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.

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.