Mikrocontroller

MikrocontrollerIndividuelles 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:

  • USART

Für USART-Kommunikation, sequentiell oder interrupt gesteuert, stream device Unterstützung (stdin/stdout)

  • glcd / ks0108

Grafikbibliothek für ks0108 basierende Grafikdisplays

  • spi

Serial Peripheral Interface

  • card / mmc

Speicherkartenansteuerung und -nutzung via SPI-Bus, mit oder ohne FAT-Dateisystem (binär)

  • twimaster

I2C-Busmaster

  • twislave

I2C-Slaves, bidirektional einsetzbar durch definierten Befehlssatz zwischen Master und Slaves

  • cmd

Mikrocontroller Kommandos Bus Module

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.

SD Kartenansteuerung Speicherung der Daten

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.

Schema Kommunikation Mikrocontroller

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.