ZitatDie Bussysteme sollten deshalb getrennt sein, damit wenn eine Einheit dauerhaft iergendwelche daten über den HBUS sendet (z.B: Ausgangsänderungen bei Lauflichtern) nicht das Gesamtsystem blockiert ist, bzw mehrere dieser Lauflichteiheiten vorhanden sein können und
untereinander über den externen Bus vernetzt sind und sich so z.B. synchronisieren können. (wenn man natürlich nur ein externes Bedienpult
anschließt und der HBUS nicht dauerhaft ausgelastet ist, würde es auch mit einem Bussystem funktionieren, jedoch gibt es einige Gründe dies
trotzdem nicht zu realisieren)
Ich gehe davon aus, dass der Controller, wenn es sich um einen AVR handelt, bis zum Anschlag ausgelastet ist, wenn er Daten mit 2,5MHz über den HBUS schaufelt.
Da sehe ich wenig Restpower, um noch einen zweiten Bus mit hoher Geschwindigkeit zu bedienen.
Insofern dürfte es wurscht sein, ob man die Busse trennt oder alle Daten über einen einzigen Bus peitscht.
Im Gegenteil: Die Software wird viel einfacher, wenn sie nur einen Bus bedienen muss.
Wenn zwei Subsysteme ("Moduleinheiten") zum Einsatz kommen, also zwei getrennte HBUSse, die an sich autark z.B. irgendwelche Lauflichter ansteuern und sich lediglich per RS485 untereinander synchronisieren, dann können diese Synchronisationsdaten doch im Datenstrom vom ersten HBUS enthalten sein!?!?
Den Flaschenhals sehe ich halt beim AVR.
Wenn dessen UART, wie Pesi schon richtig feststellte, halt bei 2,5MHz seine Obergrenze hat, dann legt das halt die Obergrenze für den Datenstrom auf dem HBUS fest. Und damit ist der Controller praktisch ausgelastet, diese Datenmengen bereit zu stellen.
Wo mehr benötigt wird, muss man die Aufgaben halt in autarke Subsysteme aufteilen, die sich lediglich untereinander synchronisieren.
Und dafür werden nur so wenige Daten benötigt, dass man das problemlos im Traffic unterbringen kann.
Lasse mich natürlich gerne korrigieren, falls Du gerade klügere Konzepte im Kopf hast, die ich nur noch nicht erfasse.
ZitatInteressant ist, dass mein Bus-Connector-Modul dir zu teuer und zu aufwendig ist, du jedoch in jedes Modul einen HBUS-Dekoder einbauen willst.
Bei "Bus-Connector-Modul" denke ich halt an ein eigenständiges Hutschienengehäuse, das ebenfalls wieder Motherboard und einen HBUS-Decoder beinhaltet ...
Wenn Du aber mehr an eine im Modul befindliche Leiterplatte denkst, dann bin ich mit Dir.
Im Hutschienenmodul sitzt halt immer die Grundplatine (ich nenne sie "Motherboard"), welche immer:
a) Die Schnittstellenverbinder zur Außenwelt bereit stellt. Also steckbare Klemmleisten und so.
b) Den aufgesteckten HBUS-Decoder enthält.
c) Den Verbinder zum HBUS enthält (zweireihige Pfostenleiste, von unten bestückt).
Darüber hinaus, können diverse Erweiterungsplatinen auf das Motherboard gesteckt werden, sofern dieses dafür ausgelegt ist.
Grundlegender Aufbau:
Das Motherboard enthält also die von unten bestückte, zweireihige Pfostenleiste, die in den HBUS-Verbinder eingesteckt wird, in dem Moment wo man das Hutschienenmodul auf die Schiene steckt.
Neben dieser zweireihigen Pfostenleiste sitzt auf dem Motherboard ein Steckplatz, in den der HBUS-Decoder eingesteckt wird.
Die Signale vom HBUS-Verbinder gehen also über den zweireihigen Pfostenverbinder auf dem Motherboard direkt zum Steckplatz des HBUS-Decoders.
Dessen Ausgangssignale wiederum gehen über den selben Steckplatz wieder zum Motherboard, wo die Signale dann die Steuerleitungen der jeweiligen ICs auf dem Motherboard bedienen.
Darüber hinaus können durchaus weitere, gesteckte Erweiterungskarten zum Einsatz kommen, wie z.B. ein Bus-Connector-"Modul".
Aber das Wort "Modul" lassen wir in dem Zusammenhang lieber.
Um Begriffsverwirrungen zu vermeiden, bezeichne ich die Platinen innerhalb eines Hutschienenmoduls nicht ebenfalls als "Modul".
Wenn also der Begriff "Modul" fällt, sollte damit immer ein Hutschienenmodul gemeint sein, welches durchaus mehrere Platinen beinhalten kann, die dann aber halt "Erweiterungskarten" genannt werden sollten.
Ich bin bei der Planung zuvor selbst dauernd durcheinandergekommen, mit den Hutschienen-Modulen, welche wiederum "Module beinhalten".
Meine Sprachregelung also: Interne Karten heißen "Erweiterungen" oder "Erweiterungskarten".
Bin offen für andere Vorschläge, aber eine Sprachkonvention muss her.
ZitatDes weiteren würde ich wenn dierekt den Bus-Connector in den jeweiligen Hauptcontroller des HBUSes integrieren.
Das würde ich im Normalfall ebenfalls tun, schon allein weil der Controller dann direkt darauf zugreifen kann und der Datenstrom nicht unnötigerweise über den HBUS geführt werden muss.
Zitat(eventuell bei 3 Leitungen eine nur für den Steuerungspfad reservieren, damit bei einem Fehler (Kurzschluss/Überlast) nicht die gesammte einheit nicht mehr erreichbar ist.
Das ist eine gute Idee. Wirft aber die Frage nach der Absicherung auf.
Wenn alles aus einem einzigen Netzteil gespeist wird, müsste gewährleistet sein, dass im Falle eines Kurzschlusses an externer Peripherie nur die Lastsicherung durchbrät, die Spannungsversorgung der Module aber weiterhin gewährleistet ist.
Man könnte den HBUS-Decodern, die ja die Spannungsregler für 5V und 3,3V enthalten, eingangsseitig je eine eigene Polyfuse spendieren.
Aber die Sicherung für den Laststrom müsste entweder ganz außerhalb sitzen, oder man müsste ein eigenes Modul konstruieren, in welches der dicke Saft eingespeist wird und das praktisch nur 'ne Sicherung enthält und mehrere Ausgangsklemmen, von denen man abgehen kann, zu den Modulen, die eine eigene Klemme für die Einspeisung haben, sowie zu den Einspeisesteckern an beiden Enden des HBUSes.
ZitatDie entscheidung zwischen Interrupt und Polling ist so eine Sache und ich würde mich da garnicht so dierekt festlegen. Würde beides vorsehen/integrieren (bedeutet 1-2 Leitungen für Interruptauswertung reservieren)
Das ist ein wirklich schwieriges Thema, aber ich würde die ultimativ zeitkritischen Interrupt-Signale dann eher direkt dem Controller-Modul zuführen.
Alle "normalen" Interrupts, die auch etwas Aufschub verdauen können, dann halt per Protokoll im RS485-Datenstrom untergebracht.
Bei den externen Hausautomations-Teilnehmern geht das sowieso nicht anders.
Da steht keine gesonderte Interrupt-Leitung zur Verfügung. Und eine Betätigung eines Lichttasters kann auch wie beschrieben per Zeitfenster gepollt werden.
Wenn das so ausgelegt wird, dass die Reaktionszeit schnell genug ist, z.B 0,1s, merkt der Anwender davon nichts.
Gut, wir gehen davon aus, dass der HBUS erstens der Hochgeschwindigkeits-Bus ist und in seiner Länge sowieso begrenzt.
Dann könnte man tatsächlich eine Interrupt-Leitung auf dem HBUS vorsehen, die mit dem VCC-Pegel (12-24V) arbeitet, ergo recht robust gegen Störungen ist.
Die meinetwegen auch über Optokoppler geht.
Die Module ziehen dann per wired-OR die Kathode der Optokoppler-LED auf Masse, woraufhin der Controller bei nächster Gelegenheit die möglichen
Interrupt-Quellen pollt.
Alles was noch zeitkritischer ist, muss halt dem Controller-Modul direkt zugeführt werden.
Ich glaube, dass ist eine sehr gesunde Kombination.