
MTECP: Embedded Controller Programming für mobile Prüfgeräte (MT3000 / MT300), FPGA- & DSP-Steuerung
MTECP: Embedded Controller Programming für mobile Prüfgeräte (MT3000 / MT300), FPGA- & DSP-Steuerung
Bei diesem Projekt galt es, die Steuerungssoftware für ein mobiles Prüfgerät für elektrische Größen (MT3000) zu entwickeln. Die Software läuft dabei auf einem embedded Controller Motorola M68340 und steuert im Wesentlichen zwei Bausteine, einen FPGA-Chip (Field Programmable Gate Array) von Xilinx zur Steuerung und Schaltung der Prüfhardware, sowie einen DSP (Digital Signal Processor) Sharc von Analog Devices zur Ermittlung und Erfassung der Messwerte in Echtzeit. Die Software läuft dabei direkt auf dem Controller und greift direkt auf die Bausteine zu; weder ein Betriebssystem noch fertige Schnittstellen stehen zur Verfügung.
Das MT3000 ist von extern über eine RS232-Schnittstelle ansprechbar, oder über ein integriertes Display- und Kommandomodul mittels einer proprietären High-Speed-Schnittstelle. Die Benutzeroberfläche für dieses Kommandomodul bestand bereits. Im Gegensatz zur Steuerungssoftware läuft diese Benutzeroberfläche gestützt auf ein integriertes Betriebssystem. Sie wurde im Rahmen des Projekts um einige Module erweitert und in voller Funktionalität an die Steuerungssoftware angebunden.
Alle ermittelten Mess- und Prüfdaten werden unmittelbar angezeigt und zur späteren Auswertung und Erstellung von Prüfprotokollen im internen Speicher (MT300) bzw. auf wechselbaren FlashCards (MT3000) gespeichert.
In der Vorbereitungsphase konnte eine geeignete Entwicklungsumgebung lizensiert werden, die eine Programmentwicklung am PC ermöglicht. Die eigentliche Programmierung, alle Tests und das Debugging finden bei einem embedded System unter anderem auf Assembler-Ebene, direkt am Controller statt. Die fertige Software wird direkt in das System-ROM des Prüfgeräts geflasht und nur noch von dort ausgeführt.
Um unter diesen Bedingungen eine hohe Wartungsfähigkeit des Produkts zu erreichen, wurde eigens ein separater Bootloader entwickelt. Dieser startet zunächst unabhängig und initialisiert die Schnittstellen, bevor er das eigentliche Steuerprogramm startet. So kann auch bei Softwareproblemen ein stabiles Starten des Gerätes gewährleistet werden, um über die Schnittstellen eine Reparaturinstallation zu ermöglichen. Auch Programmupdates können so vor Ort erledigt werden, ohne das Gerät aufwendig einschicken zu müssen.
Mit dem MT300 stand außerdem ein neueres, kleineres Modell der gleichen Baureihe bereit, für das allerdings noch keine Softwarekomponente, insbesondere keine Benutzeroberfläche verfügbar war, da auf dem völlig anderen Kommandomodul dieses Modells kein Betriebssystem zum Einsatz kommt. Im Rahmen dieses Projekts wurde daher zum einen die entwickelte Steuerungssoftware auf das MT300 portiert, zum anderen wurde die vollständige Benutzeroberfläche mit allen Menüfunktionen und -masken auf dem Kommandomodul des MT300 nachgebildet. Mangels Betriebssystem werden dabei alle visuellen Elemente von der Software auf den Bildschirm gezeichnet und müssen entsprechend programmiert werden.
Mit Übernahme dieses Projekts betrat ESOES einmal mehr Neuland. Die wesentlichen Schwierigkeiten bei der Entwicklung von Software für embedded Systems bestehen in der beschränkten Auswahl von Entwicklungswerkzeugen, den eingeschränkten Testmöglichkeiten und dem Anspruch an eine extrem geringe Fehlerrate. Auch Fehler in der verwendeten Hardware und den Entwicklungstools treten oft erst bei der Entwicklung und dem Test eines größeren Softwarepaketes auf und behindern diesen Prozess enorm. Im intensiven Dialog mit unserem Kunden und den verschiedenen Drittherstellern ist es uns gelungen, diese Hürden auf Anhieb zu meistern und eine qualitativ hochwertige Lösung anzubieten.