Individuelles Regel-
und Steuermodul mit Sensorik für Kleinfahrzeuge
Für ein individuelles Regel- und Steuermodul mit Sensorik für Kleinfahrzeuge
haben wir diverse Treiber mit einfacher API und einem Kommandointerpreter in modularer
Architektur entwickelt. Als Hardware kommt hierbei die CPU ATmega128(L) von Atmel zum Einsatz.
Die IDE AVRStudio 4.13 und der gcc compiler mit der avr libc bilden die Entwicklungsumgebung.
Treibermodule
Entwickelt wurden folgende Module:
Für USART-Kommunikation, sequentiell oder interrupt gesteuert, stream device Unterstützung
(stdin/stdout)
Grafikbibliothek für ks0108 basierende Grafikdisplays
Serial Peripheral Interface
Speicherkartenansteuerung und -nutzung via SPI-Bus, mit oder ohne FAT-Dateisystem (binär)
I2C-Busmaster
I2C-Slaves, bidirektional einsetzbar durch definierten Befehlssatz zwischen Master
und Slaves
Entscheidend für den Kommandointerpreter waren eine saubere Trennung von Treiber und
Steuerungsebene. Die Treiberkomponenten müssen robust, absturzsicher und echtzeitfähig,
also unabhängig von der Taktrate des Controllers sein.
Datenspeicherung
Als Highlight ist hier die SD-Kartenansteuerung zu nennen. Da hier Diagnosedaten
des laufenden Echtzeitsystems gespeichert werden, müssen folgende Kriterien erfüllt
werden:
- das Schreiben auf die Karte muss hochperformant sein
- bei Stromausfall dürfen keine Daten verloren gehen
- wenn das Speichermedium voll ist, darf nicht einfach aufgehört werden, Daten zu
speichern. Die letzten Daten sind natürlich besonders interessant.
- eine Begleitung durch den Anwender in Form von Bestätigungsdialogen oder ähnlichem
ist ausgeschlossen
Damit scheidet eine Speicherung durch ein im Mikrocontrollerbereich gängiges Dateisystem
wie beispielsweise FAT16 aus. Die Speicherung erfolgt stattdessen hardwarenah und
binär in einzelnen Datensätzen. Eine intelligente Struktur macht die Daten dann
für eine Windows-Software les- und auswertbar. Im Bild sieht man die im Haus entwickelte
Diagnosesoftware, mit deren Hilfe die auf der SD-Karte erzeugten Datenstrukturen
auf binärem Niveau überprüft wurden.
Datenauswertung
Für die Auswertung ist eine grafische .NET Windows Applikation
zur Visualisierung der Diagnosedaten entwickelt worden.
Da auf den Karten kein Dateisystem existiert, besitzt die Software eine (aus der
Diagnosesoftware übernommene) Komponente zum Auslesen der Karten auf Binärebene,
sowie für das Management der Karte (formatieren etc.).
In der visuellen Darstellung der Daten (rechts im Bild) kann frei gewählt werden,
welche der aufgenommenen Messgrößen angezeigt wird. Zusätzlich können die Achsen
segmentiert und gezoomt werden, um die Darstellung zu optimieren.
Die Applikation ist leicht auf beliebige Dateiformate anpassbar. Die Daten können
beispielsweise als lesbare .csv Excel-Datei exportiert und importiert werden. Auch
andere für wissenschaftliche Anwendungen geeignete Dateiformate sind möglich.
SPI-Bus
Eine weitere Besonderheit ist die Verwendung des SPI-Busses zur
bidirektionalen Kommunikation zwischen zwei Prozessoren. Dabei sendet der Master
Kommandos, ggf. mit Parametern. Auf der Slave-Seite wertet ein Interpreter die Kommandos
aus und ruft die entsprechenden API-Funktionen aus der Regelung oder Steuerung auf.
Die Rollen Master und Slave sind umschaltbar.