Jul 072010
 

Das Projekt der modell(-bau-)basierten Eisenbahnsteuerung ist ab sofort auf SourceForge als Open Source verfügbar. Die Startseite ist unter http://sourceforge.net/p/mrw/wiki/Home/ erreichbar. Der Quellcode und die Schaltungen können aus dem Subversion-Repository heruntergeladen werden.

Viel Spaß!

Modellbasierte Firmware-Generierung

 ATmega, CAN-Bus, Eclipse, Eingebettete Systeme, MDSD, Modellbau  Kommentare deaktiviert für Modellbasierte Firmware-Generierung
Nov 182008
 

Auf dem Yakindu-Tag wurde die modell(-bau-)getriebene Eisenbahnsteuerung vorgestellt. Dabei wurde der Gleisplan schon modellgetrieben generiert. Bisher war die Firmware der CAN-Knoten als Referenzimplementierung noch klassisch implementiert. Die Kommandoverarbeitung in der Firmware der CAN-Knoten war ein unschönes Stück Spaghetti-Code. Aus diesem Grund wurde ein Zustandsdiagramm gefertigt, das die Betriebszustände der CAN-Knoten enthält. Die eingehenden Kommandos sind als Zustandsübergänge modelliert. Aus diesem Diagramm wird mit Hilfe von openArchitectureWare der Code für die Kommandoauswertung generiert.

Der generierte Code enthält zwar relativ viele Callbacks und switch/case-Anweisungen und bläht den Binärcode um ca. 1,5 KByte auf. Das ist aber nicht weiter schlimm, da jetzt noch Platz für ca. 18 KByte im Flash des ATmega32 vorhanden ist. Ein weiterer Vorteil ist, dass der generierte Code wesentlich übersichtlicher aussieht. Änderungen und Erweiterungen der Steuerkommandos lassen sich jetzt viel leichter einpflegen. Die Integration des generierten Codes in den bestehenden Firmware-Rahmen gestaltete sich als unproblematisch, da der restliche klassisch implementierte Teil nur aus Service-Methoden zur Ansteuerung der Hardware dient.


Anzeige:

Prototypen der CAN-Controller

 ATmega, CAN-Bus, Eingebettete Systeme, Modellbau  Kommentare deaktiviert für Prototypen der CAN-Controller
Jul 102008
 

Nach der Entwicklung der CAN-Controller, wird jetzt als nächster Schritt das Bauen der Prototypen angegangen. An ihnen kann man das erste Mal testen, wie sich mehrere CAN-Controller an einem Bus verhalten. Erwartungsgemäß funktioniert der CAN-Bus mit mehreren Teilnehmern gemäß Spezifikation. Auch das Flashen einer neuen Firmware funktioniert einwandfrei. Dabei wird ein Bootloader verwendet, der die Firmware über den CAN-Bus entgegennimmt.

Auf dem Bild kann man vier CAN-Teilnehmer erkennen. Man kann inzwischen auch von den itemis Hardware Labs Lünen sprechen.

itemis Hardware Labs Lünen

Als nächster Schritt wird ein Platinen-Layout entwickelt, um die endgültigen CAN-Controller zu erhalten. Desweiteren werden jetzt die Schaltungen für die Leistungselektronik entwickelt. Schließlich sollen die CAN-Controller ja eine Modellbahn steuern.