RS 485!
Wenn man das so machen will müsste dann wohl der Empfänger der Master sein.
( Nur ein Controller im System kann Master sein ! )
Der verschickt dann einen Token mit der Adresse der jeweiligen Tasteneinheit.
Diese und nur diese darf dann seinen Sender einschalten und Steuernachrichten verschicken.
Kommt nicht innerhalb einer bestimmten Zeit eine Antwort wird der Token an die nächste Steuereiheit weitergegeben.
Um das Ganze flexibel zu Halten wären wohl 16 Adressen sinnvoll.
Eventuell kann der Master auch nur bei jedem x-sten Durchlauf alle möglichen Adressen abfragen.
Ansonsten nur die bereits aktiven, das beschleunigt das System.
Noch mehr mögliche Adressen verlangsamen aber zunehmend das ganze System.
Auf der Tastenseite könnte man die Adresse per DIP Fix Schalter, oder Lötbrücken einstellbar machen.
Dann kann für alle Tastenteile die gleiche Software verwendet werden.
Es darf immer nur ein Sender aktiv sein. Dann würde das Ganze auch mit nur 2 Drähten funktionieren.
Als Treiberbausteine könnten hier die "üblichen Verdächtigen" verwendet werden ( MAX 485, SN75176 ).
Als Ansteuerung für die Bausteine wäre der ganz normale USART + 1 bis 2 Steuerleitungen möglich.
Das Bussystem muss an beiden Enden mit Abschlusswiderständen abgeschlossen werden.
Bei DMX verwendet man hierzu Terminatoren ( Einfach in einen Stecker eingelöteter Widerstand. ).
Das System entspricht in etwa dem, was auch HaWe und 021aet04 vorgeschlagen haben.
Ich würde hier noch mal ein anderes Bussystem in den Ring werfen.
Wäre das nicht eine klassische Anwendung für einen CAN Bus?
Hier sendet jeder Teilnehmer seine Nachrichten in einem festgelegten Frame, die Kollisionserkennung passiert hier ja auf dem Bus ( Der Teilnehmer der eine Buskollision feststellt schatet seinen Sender ab ! ).
Der Bus arbeitet Nachrichtenbezogen.
Das bedeutet ein Sender gibt nur eine Nachricht auf den Bus und nur die Teilnehmer die diese Nachricht "interessiert" werten diese aus.
Damit liesse sich so ein System auch problemlos mit mehreren Sendern und Empfängern erweitern.
Die Geschwindigkeit auf dem Bus bestimmt hier die Reichweite.
Ich kenn jetzt die Lösung mit 2 Chips. Einer für den Protokollstack ( MCP 2515 ) ein weiterer als Bustreiber ( MCP 2551 ).
Librarys sollten sich für den Arduino finden lassen.
Es gibt auch Controller mit integrierter CAN Schnittstelle, aber es soll ja ein Arduino verwendet werden!
Wobei das CAN Protokoll doch relativ komplex ist.
Stern geht nicht, das stimmt.Meines Wissens ist RS485 ist eine Punkt zu Punkt Verbindung. Stern geht damit nicht.
Aber die Leitung darf ohne weiteres von einem Teilnehmer zum nächsten, ohne Abzweigungen, gelegt werden.
Die Bustreiber sind dabei für max. 32 Teilnehmer ausgelegt.
Lesezeichen