Ich habe vor, mir für meinen Serverschrank eine Steuerung aufzubauen, mit der ich Lampen, Lüfter, usw. ein- und ausschalten kann. Das Ganze soll einerseits per Mikrocontroller automatisch geschehen (z.B. Temperaturregelung), aber auch manuell (dann halt keine Regelung mehr, sondern nur Ein/Aus). Der Grund dafür ist, dass ich die Schaltung immer erweitern möchte, und wenn ich z.B. den µC neu programmiere oder neue Bauteile auf die Platine löte, soll der Schrank trotzdem weiter gekühlt werden können - sonst könnte ich ein Problem bekommen. Genauso möchte ich aber auch die manuelle Steuerung um zusätzliche Schalter/Taster erweitern können, der Schrank wird dann vom Mikrocontroller überwacht und gesteuert. Umgeschaltet zwischen Auto und Manuell wird über einen Schalter. Die ganze Steuerungsgeschichte kann ich in ein 19" Gehäuse mit Europa-Platinen-Einschüben bauen, so dass ich z.B. den µC auf eine Platine baue, die manuelle Steuerung auf ne andere, die ich bei Bedarf rausziehen kann. Wie schaffe ich es aber, die einzelnen Geräte anzusteuern, dass quasi beide Steuerungen (µC und Manuell) auf diese "zugreifen" können? Wäre es sinnvoll, alle Sensoren/Aktoren über einen Bus anzusprechen, und wenn ein Knoten entfernt wird (weil an dem gerade gebastelt wird z.B.) übernimmt ein anderer dessen Aufgabe? Falls ja, was eignet sich da am Besten? I²C? CAN? Ich hoffe ich habe euch nicht zu sehr verwirrt, mir schwirren ziemlich viele Ideen im Kopf rum, die zu bündeln ist nicht einfach... Versuchen wir es noch einmal zusammenzufassen: Es soll eine modulare Steuerung entwickelt werden, die aus einer automatische (µC-)Steuerung besteht, und einer manuellen (Schalter/Taster/?), beide sollen alternativ und unabhängig eingesetzt werden können und ich möchte einzelne Baugruppen aus der Gesamtschaltung entnehmen können, um diese zu erweitern. Hat jemand sowas schon mal gemacht und Ideen wie ich das realisieren könnte?
Ach ja, falls das von Bedeutung ist: Ich möchte einem MSP430F149 verwenden oder alternativ/zusätzlich einen Atmega(16|32|64|...). Ist vermutlich wichtig, falls Busse ins Spiel kommen, wobei da die Frage auftaucht, wie/ob dann die manuelle Steuerung noch so einfach funktioniert.
Wenn es zB nur um Lüfter usw handelt ist es ja sicher sinnvoll sie im zweifelsfall laufen zu lassen anstatt sie auszumachen. Wenn es ganz simpel machen willst würde ich sowas wie wired AND benutzen. So das jedes deiner Module die Lüfter anschalten kann. AN sollte dann dominant sein.
Eine andere Idee wäre noch, das Ganze per CAN-Bus zu realisieren. CAN bekommen wir eh bald in einer Vorlesung + Praktikum, die Kenntnisse könnte ich mir da aneignen. Da mir aber die Erfahrung von CAN fehlt, die Frage an Euch: Seht Ihr irgendwelche Nachteile bei meinem Vorhaben? Ich könnte das wie folgt realisieren: Jeder Sensor/Aktor hat ein CAN-Interface, die Aktoren haben eine eigene Logik drin, die dann greift, wenn der Bus nicht aktiv ist. Bei Lüftern würde das eben heissen: Alle Lüfter beim Start des Systems an, durch den Bus können diese dann ausgeschaltet werden, wenn sie nicht benötigt werden. Eine Art Watchdog könnte den Lüfter wieder anschalten, wenn eine Zeit lang vom Bus kein Lebenszeichen gekommen ist. Damit ich aber eine manuelle Steuerung neben der automatischen laufen lassen kann, brauche ich sozusagen zwei "Master", die abwechselnd aktiv sein können. Aber dazu brauche ich dann selbst bei der manuellen Steuerung einen Mikrocontroller oder? Oder gibt es eine andere, einfache Möglichkeit, Nachrichten über Schalter/Taster auf den Bus zu legen (z.B. Lampe EIN/AUS)?
Wiso nicht gleich Ethernet, dann könntest du deine lüfter auch von einem Servers oder einem Anderen PC aus Steuern...
CAN unterstütz ja nicht nur einen Master. Die beiden Master müssten sich dann untereinander verständigen, wer die Leitung hat. Wenn man der manuellen Steuerung einen Taster verpassen würde "Manueller Betrieb", dann wäre die manuelle Steuerung quasi der Ober-Master. Der Automatik-Master würde dann nur arbeiten, wenn er die Freigabe der manuellen Steuerung bekäme. Ob beide Master über die gleiche Id arbeiten können, weiß ich jetzt nicht mehr genau (müsste aber gehen). Dann müsste man nur Ids für die Kommunikatipon zwischen den beiden Mastern verteilen. Wenn das mit der gleichen Id geht (was mir inzwischen als ziemlich sicher erscheint, weil man sont ja nur Punkt-zu-Punkt-Verbindungen machen könnte bzw. nur einen Single-Master-Bus hätte) könnte man es im Prinzip auch so machen, dass man als Absender-Adresse das 8.CAN-Byte benutzt, und so die Sensoren und Aktoren herausfinden können, von wem die Info kam. Muß aber nicht...
@Sandro: Ethernet wäre schön, aber zu kompliziert - so viel Ahnung hab ich von dem Thema nicht, und die Zeit erst recht nicht - aber wenn ich die mal habe wäre das ne nette Erweiterung. Vorerst werd ich die Daten vom µC per serieller Schnittstelle an einen Server übermitteln, der die dann weiterverarbeitet (per PHP-Weboberfläche, etc.) @Rahul: Mir würde es schon langen, wenn beide die gleiche ID benutzen könnten, denn es wird immer nur eine Steuerung aktiv sein. Und da ich vermutlich selbst bei der manuellen Steuerung einen µC einsetzen muss, kann ich ja z.B. einfach den einen µC vom Bus abklemmen und den anderen dafür dran oder die Spannungsversorgung kappen. Ist so ein Bus eigentlich Hot-Plug-fähig? Kann ich einfach während des Betriebs Geräte an/abklemmen? Mir gefällt die Idee immer besser, einzelne Steckkarten zu verwenden, die dann untereinander über CAN verbunden sind, und die ich im Betrieb auch auswechseln kann. Auf was muss ich da aufpassen? Könnte es beim Ein/Ausstecken Probleme geben? Beim PC darf man die älteren Karten ja auch nicht einfach während des Betriebs einbauen, oder hat das andere Hintergründe?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.