Vor einem Jahr hat unser Unternehmen eine neue IT-Infrastruktur in Betrieb genommen. Grund genug zu hinterfragen, ob die Umstellung erfolgreich war. Nachdem entschieden war, dass fünf neue Server samt weiterer Infrastruktur wie z.B. unterbrechnungsfreie Stromversorgungen, angeschafft werden sollen, kam die Frage auf, welches Betriebssystem dafür benutzt werden sollte. Die Frage ob Microsoft oder Linux genutzt werden sollte stellte sich gar nicht erst, da ausreichend Linux-Know-How zur Verfügung stand. Ferner sind die Fernwartungsmöglichkeiten unter Linux deutlich höher. Eine Sicherheitsabwägung zwischen Windows und Linux gibt es nicht, da auch unter Linux nicht minder häufig viele Patches und Updates auf Grund von Sicherheitslücken notwendig sind.
Continue reading »Ich habe ja schon über die technischen Details einer Modelleisenbahnsteuerung berichtet. Damit man auch etwas zum Testen hat, braucht man natürlich auch eine Anlage. Bestandteil dieser Anlage ist natürlich auch die Modelllandschaft. Ein Teil wird derzeit aufgeforstet, wie auf dem Bild zu erkennen ist:

Dieses Bild zeigt nur einen Ausschnit meiner neuen Modelleisenbahnanlage. Es sind schon 300 Bäume gepflanzt worden. Am Wochenende werden die nächsten 100 Stecktannen den Wald vergrößern. Natürlich werden noch weitere Bilder folgen und Berichte über den Ausbauzustand der Microcontroller-Steuerung werden ergänzt.
Modellgetriebene Serverkonfiguration
In der Regel sind die Anwendungsfälle für modellgetriebene Architekturen ist der Software-Entwicklung zu finden. Es gibt aber auch die Möglichkeit, die Konfiguration für eine ganze Server-Landschaft zu generieren. Zu diesem Zweck wird die Server-Landschaft als UML2-Modell modelliert. Dieses Modell entspricht dem Sollzustand. Um diesen in den Istzustand zu überführen, werden mittels openArchitectureWare aus dem Modell Konfigurationsdatien erzeugt. Für jeden Server entsteht so ein Verzeichnisbaum. Dieser Verzeichnisbaum wird mit scp -r auf die Zielmaschine kopiert. Danach wird ein Deploy-Script aufgerufen, das die betroffenen Dienste über die neue Konfiguration informiert.
Kann man modellgetrieben eine Modelleisenbahnsteuerung aus Mikrocontrollern bauen? Dieser Frage gehen Entwickler des Yakindu-Projektes nach. Hintergrund ist, dass eine digitale Ansteuerung der Weichen und Signale über konventionelle Mittel sehr teuer ist. Eine digitale Steuerung hat aber den Vorteil, dass der Verdrahtungsaufwand minimiert wird. Dieser fällt deswegen unangenehm auf, weil ein Großteil der elektrischen Verkabelung kopfüber geschehen muss. Hier setzt die Idee an, die Mikrocontroller bequem an einem ergonomischen Arbeitsplatz zu bauen und nur die fertigen Module kopfüber zu montieren und anzuschließen. Als Mikrocontroller werden von ATmel die ATmega32 eingesetzt. Diese sind vielseitig einsetzbar und es gibt sehr viele fertige freie Tools, um diese Controller zu programmieren. Zusätzlich gibt es eine große Auswahl an weiteren Spezial-ICs, wie z.B. den CAN-Controller MCP2515.
An den Mikrocontrollern sollen spezielle Ansteuerungsmodule verwendet werden. So können unterschiedliche Aufgaben an die Microcontroller vergeben werden, ohne jeweils eine spezielle Hardware bauen zu müssen. Dazu erhalten die Microcontroller eine universelle Firmware. Diese wird dann so konfiguriert, wie der Anschluss der Ansteuerungsmodule erfolgt. Als Ansteuerungsmodule sind derzeit geplant:
- Lichtsignal-Ansteuerung, im Prinzip eine einfache LED-Ansteuerung
- Magnetartikel-Ansteuerung. Darüber werden Weichen und Formsignale angesteuert.
- Gleisabschnitt-Steuerung mit Gleisbesetztmeldung
- JTAG-Modul zum Debuggen
Die drei letzten Module werden direkt mit den einzelnen Ports des ATmega gekoppelt ein Port fällt für spezielle Aufgaben weg, da z.B. die Microcontroller untereinander kommunizieren müssen. Diese Kommunikation soll über CAN-Bus erfolgen. Dieser ist sehr robust gegenüber Störungen und gilt nach 20 Jahren als ausgereift. Es gibt günstige Bauteile, die die Kommunikation auf physikalischer Ebene übernehmen. Darin enthalten ist z.B. eine Fehlerkorrektur über CRC und das Protokoll-Handling. Bei einem ATmega32 bleiben so drei Ports für die Module frei, was den individuellen Verbau der Module ermöglicht.

Als zweite Software-Komponente neben der Microcontroller-Firmware gibt es das Frontend. Diese GUI-Applikation ermöglicht die bequeme Ansteuerung der Microcontroller mit einer Visualisierung als Stellwerk. Insbesondere ist hier die Fahrstraßenschaltung zu nennen. Durch Anklicken von Stützpunkten welche die Route definieren und anschließender Auswahl von Rangieren oder Fahrt, wird eine freie Gleisroute vom Anfangspunkt über die Stützpunkte zum Endpunkt gesucht, danach die Weichen und Signale geschaltet und die Gleisabschnitte unter Fahrstrom gesetzt. Diese Applikation ist mit Eclipse und dem SWT/RCP-Framework umgesetzt. So kann das Stellwerk plattformunanhängig eingesetzt werden.
Zum Schluss bleibt die Frage offen, was daran modellgetrieben ist? Die gesamte Modellbahnanlage wird in einem EMF-Modell nachmodelliert. Daraus wird die Gesamtkonfiguration für die Microcontroller generiert sowie die GUI für das Stellwerk. Das generierte Gleisschema wird dann durch den universellen Router-Algorithmus für die Fahrstraße ergänzt. Dieser wertet noch Informationen aus, wie Langsamfahrstellen und bevorzugte Fahrwege an Weichen. In der Zukunft ist geplant, die Modellierung mittels GMF zu erreichen, weil die Eingabe über EMF gerade bei einer Modelleisenbahn wenig intuitiv ist.
Embedded World 2008: ATmega jetzt auch mit integriertem CAN-Controller
Seit Neuestem bietet ATmel auch eine Variante ihres erfolgreichen ATmega Mikrocontrollers mit integriertem CAN-Controller an. Laut Dokumentation ist die Spezifikation zwar noch vorläufig, es ist aber erkennbar, dass ATmel weitere Unterstützung im Automotive-Bereich liefern will. Derzeit sind drei Varianten (AT90CAN32, AT90CAN64 und AT90CAN128) aufgelistet, die sich in der Größe des Flash-Speichers, EEPROMs und des SRAMs unterscheiden. Der Mikrocontroller ist im 64-Pin TQFP lieferbar und hat sechs 8-Bit-IO-Ports zur Verfügung. Ansonsten enthält der Mikrocontroller die üblichen Baugruppen, die man von den bekannten ATmels gewohnt ist: Timer, PWM, JTAG, ISP, UART, um nur einige zu nennen.
Hier ist die (vorläufige) Spezifikation zu finden:
http://www.atmel.com/dyn/resources/prod_documents/doc7682.pdf
Mikrokopter
Der Mikrokopter ist ein Beispiel dafür, was man mit den ATmel ATmega Microcontrollern machen kann. Vier überkreuz positionierte Propeller geben den Auftrieb. Die Lagereglung wird über Beschleunigungssensoren an die drehzahlgeregelten Motoren für die Propeller weitergereicht. Als Bonbon ist noch ein GPS-Positionsmelder eingebaut. So kann ein Mikrokopter relativ ortsfest im Rahmen der GPS-Genauigkeit gehalten werden. Zusätzlich ist noch ein Kompass und ein Drucksensor zur Höhenmessung eingebaut. Eine lagegeregelte 3D-Kamera samt Brille runden das Gesamtbild ab. Jeder Motor hat seinen eigenen ATmega, der die Solldrehzahl umsetzt. Ein zentraler ATmega übernimmt den Rest der Lageregelung.
Unter http://www.mikrokopter.com/ucwiki/ sind mehrere beeindruckende Videos untergebracht.
CAN-Protokoll im Linux Kernel
Heute wurde bekanntgegeben, dass ab der Linux-Version 2.6.25-rc1 Unterstützung für den CAN-Bus aufgenommen wurde. Die Unterstützung sieht derzeit so aus, dass CAN als zusätzliches Protokoll benutzt wird. So wird die schon bekannte Schnittstelle mittels socket(), read() und write() angesprochen. Die Unterstützung für Devices sieht im Moment leider ein wenig mager aus: Außer einem virtuellem Device steht im Moment kein Treiber zur Verfügung. Es wäre vielleicht denkbar, eigene Hardware unter Benutzung des CAN-Controllers MCP2515 zu bauen, die man z.B. über USB anspricht.
Interessanterweise wurde die Implementierung von Volkswagen beigesteuert. Ob allerdings ein „Treiber für Autos“ entwickelt wird, oder Embedded Linux in VWs Einzug hält, ist derzeit offen.
Heise-Meldung:
http://www.heise.de/newsticker/meldung/103552
Nähere Erläuterung zur CAN-Integration
http://lwn.net/Articles/253425/