Ingenieurbüro S. Milch Entwicklung von Hard- und Software

Implementierung eines sehr zeitkritischen Algorithmus in einem Radarechosimulator

Als Teil eines größeren Projektes hatte ich Software zu entwickeln die wirklich Hardware nah war.

Für einen Radarechosimulator war ein vom Kunden entwickelter Algorithmus auf einem von mir entwicklten Modul zu implementieren. Da der Simulator in einer geschlossenen Regelschleife betrieben wurde, musten die Echos in Echtzeit berechnet werden.

Im ersten Schritt war der Algorithmus umzuformen damit er mit 32 bit Gleitkommazahlen gerechnet werden konnte. Ausgangspunkt war ein Matlab-Programm welches wegen der hohen Signaldynamik 64 bit Gleitkommazahlen benötigte.

Im zweiten Schritt wurde der Algorithmus zwischen einem FPGA und einem handelsüblichen Signalprozessor partitioniert. Komplexe Drehzeiger Generatoren wurden z.B. durch spezielle Rechenwerke realisiert. Für Akkumulation und Kennlinien wurde extra für diesen Zweck eine CPU im FPGA entwickelt. Sie wird mittels Mikroprogramm gesteuert. Der Logarithmus wurde in dieser CPU durch ein spezielles Rechenwerk implementiert und arbeitet parallel zu den anderen Berechnungen um eine Pipelinestufe versetzt. Andere Teile des Codes wurden auf dem Signalprozessor gerechnet.

DSP-Software

Es war DSP-Software zu entwickeln:

  • Steuerungssoftware des Haupt-DSP in C

  • Signalverarbeitungssoftware auf dem DSP des Kanalmoduls in Assembler

  • Ein Mikroprogramm für die CPU des FPGAs

Damit der Algorithmus überhaupt auf den zur Verfügung stehenden Rechenwerken gerechet werden konnte musste er noch für 24 Bit Mantissenlänge umformuliert werden. Ausgangspunkt war nämlich ein Matlab-Programm welches mit voller Genauigkeit rechnete. Es wurden im Vorfeld schon spezielle Programme geschrieben, welche die Ergebnisse aus MatLab mit denen aus dem Simulator verglichen.

Das gesamte System wurde In-System-programmable entwickelt. Der DSP wird über das DSP-Netz gebootet und programmiert daraufhin die FPGAs. Zuletzt werden die DSPs auf den Kanalmodulen gebootet.

Client-Server

Der Simulationsmodell beinhaltet eine Vielzahl von Parametern, die alle während des Betriebs manipulierbar sein sollen. Eine Anforderung war, nachzuweisen, dass der Simulator vollständig fernsteuerbar ist.

Durch die Wahl einer Client-Server-Architektur war die Fernsteuerbarkeit implizit nachgewiesen. Für die Kommunikation zwischen Client und Server wurden Klassenbibliotheken verwendet, die Container von Parametern darstellen. Solche Container können über TCP/IP verbunden werden und gleichen sich dann automatisch ab.

Um eine möglichst flexible Bedienung und Darstellung der Ergebnisse zu gewährleisten wurde eineBibliothek von Bedien- und Anzeigekomponenten mit dem Parametern des Clients verbunden. Diese Komponenten mussten nun nur noch in Windowsformularen angeordnet werden.

Durch die Verwendung dieser Container ist auch das Sichern und Restaurieren von Einstellungen durch Einzeiler möglich.