Weils ziemlich einfach zu realisieren ist und von der Hardware her wenig Aufwand macht und die Daten trotzdem nur im Bedarfsfall ( Neue Daten, oder Fehler ) gesendet werden müssen....aber warum versteifst du (wkrug) dich so auf die Rückmeldung einer "Empfangsbestätigung" zum PC?
Eine Rückmeldung von jedem Empfänger würde, wie Du richtig bemerkt hast, eine Kollisionserkennung erfordern, oder ein Protokoll mit Zeitfenstern.
Zudem könnte der Master, also der PC nicht mehr zu jedem Zeitpunkt senden, solange noch Quittierungen fehlen.
Eine zeitmässig abgestufte Antwort der einzelnen Knoten ( Uhren ) würde wiederum eine Adressierung oder Priorisierung erfordern.
Die Methode mit den schnell aufeinander folgenden Nachrichten, wie bei DMX 512 würde einen zusätzlichen Controller mit eigens entwickelter Software nötig machen.
Zur Zeit würde ich deshalb den passiven Schleifenstecker als Lösung favorisieren.
Damit ist zumindest sichergestellt, das an allen Uhren die korrekte Nachricht anlag.
Der PC kann einen Fehler sofort erkennen und an den User weitergeben.
Ein Protokoll bei dem mehrere Slaves senden dürfen ist da immer aufwändiger. Entweder von der Hardware her, oder von der Softwareseite.
Zudem kann man so eine Konfiguration mit jedem beliebigen Terminalprogramm debuggen, weil die nötige Nachrichtenschleife ja vorhanden ist. Es handelt sich ja um eine Eigenentwicklung und da auf Anhieb ein fehlerfreies Programm hinzukriegen halte ich für nicht möglich.
Zudem ist die Anzahl der Busteilnehmer nur durch die Bustreiber begrenzt. Baut man einen Repeater ein kann man das Signal fast an beliebig viele Slaves ( Uhren ) versenden. Und jede Uhr kann mit der gleichen Software ohne zusätzliche Addressierung angebunden werden. Auch das vertauschen von 2 Uhren miteinander hat keinen Einfluss auf diesen Bus.
Eine weitere Möglichkeit wäre, das jede angeschlossene Uhr ihre empfangenen Daten einfach wieder an einer Ausgangsbuchse zur nächsten Uhr weitergibt.
Somit würde jede Uhr als Repeater fungieren. Am Ende der Kette könnte Dann wieder der Schleifenstecker zum Einsatz kommen.
Somit wären alle Uhren in der Kette auf ihre korrekte Funktion überwacht. Denn wenn ein Knoten keine oder falsche Daten weitergibt, kommt die korrekte Datensatz nicht mehr beim PC an.
Allerdings weisst Du dann noch nicht bei welchem Knoten das Problem liegt.
Eine Uhr ohne Strom würde aber dann den Ausfall aller folgenden Uhren bewirken.
Ich schrieb ja schon - Eine Alternative wäre CAN. Da ist bereits eine Kollisionserkennung mit eingebaut und das Protokoll wäre für diese Anwendung praktisch Ideal, weil ja praktisch jeder Knoten die gleichen Informationen braucht. Ausserdem überwacht jeder Knoten die CAN Busleitung auf Fehler. Die Reichweite wäre bei niedrigen Baudraten auch ausreichend und man würde nur eine Doppelader benötigen.
Aber wenn Du Dir mal das Datenblatt vom MCP2515 oder einem anderen CAN Controller anschaust wirst Du Deine Meinung über das vermeintlich einfache Protokoll schnell revidieren. Da sind dann schon mal 10 bis 15 Register mit den "richtigen" Daten zu versorgen bis so ein Chip vernünftig läuft.
Das mit dem Rückkanal bei DMX 512 war mir schon bekannt, wird aber faktisch so gut wie nicht genutzt und macht da auch nicht wirkich Sinn. Ausserdem benutzen sehr viele günstige DMX Geräte 3polige Buchsen, obwohl das natürlich nicht Normgerecht ist. Und spätestens da kannst Du dann den Rückkanal vergessen.
So wie im Anhang wäre ein bidirektionaler full Duplex Knoten aufgebaut. Also so wie er auf der PC Seite nach dem FT232 zum Einsatz kommen könnte.
Lesezeichen