HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich
Werner FRIESENBICHLER
http://www.space.at
Aufgabenstellung
Analyse eines industriellen Designs hinsichtlich HW/SW Partitioning
Fallbeispiel(e) aus dem Aero-SPACE Bereich:– GNSSGNSS– Video-VerarbeitungseinheitVideo-Verarbeitungseinheit
Fallbeispiel 1
GNSS - NavigationsempfängerGNSS - Navigationsempfänger
GNSS Grundlagen
Global Navigation Satellite System– GPSGPS (USA)– GLONASSGLONASS (Rus)– COMPASS (China, lokal ab 2008?, Erweiterung geplant)– GALILEO (Europa, GIOVE-Phase, Vollausbau >2008)
GPS Architektur
24 Satelliten in 6 Orbits, ca. 20200 km, 12h Umlauf Atomuhren mit 10.23 MHz, Genauigkeit ca. 10-13
Bodensegment mit 6 Stationen, sendet Korrekturdaten
2 Codes (eindeutig) + Navigationsdaten– C/A (Coarse Acquisition, zivil), 1.023 MHz, 1 ms lang– P(Y) (Precision, verschlüsselt, mil.), 10.23 MHz, 7 Tage lang– Navigationsdaten (Orbit, Zeit, Korrektur, Delay, Almanach),
50 Hz, 12.5 min lang– 2 Frequenzen: L1 (1575.32 MHz), L2 (1227.6 MHz)
GPS Signal (1)
GPS Signal (2)
GOLD-Codes (C/A), minimale Kreuzkorrelation untereinander Spread-Spectrum Technik Signalleistung 50 W, empfangen werden nur ca. –160 dBW
(10-16 W), das ist mehr als 20 dB unter dem Rauschpegel
Detektion– Korrelation des empfangenen Codes mit lokal erzeugtem Code– Aufgrund der ungenauen Receiver-Zeitbasis werden 4 Satelliten
benötigt
Genauigkeit: C/A: 100m...10m (ohne SA, seit 2000), P: 2 m
Code-Phase Tracking
Korrelationsdetektor Aufgrund der Phasendifferenz zwischen lokaler und
empfangener Codesequenz kann auf die Signallaufzeit und damit die Entfernung zum Satelliten geschlossen werden
GNSS-Receiver Architektur
Front End– Down-Conversion IF / Basisband– Analog/Digital-Wandlung (mind. 2x, besser 3x so schnell wie
das Basisbandsignal)– Sample-Rate: 3 MHz (C/A) ... 30 MHz (P)
Basisband Prozessor– Geteilte HW / SW Implementierung– Auswertung der Navigationsdaten– Receiver Konfiguration, Telemetrie, Housekeeping
AGGA-2
RS-422
AGGA-2 SRAM
Mem Ctrl
UARTA
I-Cache
D-Cache
CPULEON
PLL
SCKI
Down-conversion
L1
EPROMAntenna
ClockPLLs
Baseband ProcessorFront End
Dip
lexe
r L
NA
OCXO
RCP
G3AD
G3AD
Reset
Down-conversion
L2
GPS Receiver Block Diagramm
Hardware
Software
Aufgaben für die Hardware
Repititive/Parallele Tasks– Digitalisieren des I- und Q-Anteils (typ. 2 Bit)– Downconversion IF ins Basisband– Erzeugen der lokalen Codesequenz (LFSR)– Despreading mit unterschiedlichen Phasen– Permanente Korrelation mit empfangenem Code– Generierung von lokalen Triggersignalen (Epoch)
Aufgaben für die Software
Programmatische Tasks– Evaluierung der Korrelationsergebnisse, ca. 1 kHz– Auswertung der Navigationsdaten, 50 Hz– Implementierung der Tracking Loops (Code Tracking, Carrier
Tracking)– Korrelatorkonfiguration (v.a. für P-Code)– Auswahl der sichtbaren Satelliten– Bestimmung der (Pseudo-)Ranges– Automatic Gain Control des Front-Ends, Optimierung des SNR
Zukunft - reine Softwarereceiver?
HW/SW Receiver– GPS-Chipsets am Markt vorhanden– Aufteilung HW/SW für Handheld Geräte notwendig
Software Radio / Receiver– Studien für Spaceborne Software-Receiver– Größere Flexibilität als HW/SW-Lösung– Erfordert hohe Rechenleistung– Nicht für portable Geräte geeignet (kein Thema für SPACE)– Für P-Code noch nicht machbar
Ach ja, und der Sender...
Ähnliche Architektur bei GNSS-Signalgeneratoren Hardware
– Code-Generatoren– Modulation mit Navigationsdaten– Verschlüsselung des P-Codes (top secret)
Software– Telemetrie-Interface zum Bodensegment– Einfügen der Orbit- und Zeitkorrekturparameter– Aufbau des Almanachs
Fallbeispiel 2
Video-VerarbeitungseinheitVideo-Verarbeitungseinheit
GAIA – Video-Verarbeitungseinheit
ESA-Projekt „GAIA“ Sternenteleskop Erstellung einer 3D-Sternenkarte Aufschluss über Entstehung und Veränderung unserer
Galaxie Inputs für astrophysische Experimente und Thesen Positionierung am Lagrange Punkt (minimale
Gravitation)
GAIASatellit
GAIA Teleskop
Focal Plane
Focal Plane
Messprinzip (1) – Time Delayed Integration (TDI)
Messprinzip (2)
Jede Millisekunde werden die Daten ein Pixel weitergeschoben und die letzte CCD-Zeile ausgelesen
Zirka 2000 x 13 x 16-bit/ms = 416 Mbps Datenreduktion
– Nur die ersten beiden CCDs werden komplett ausgelesen (Objektidentifikation)
– Die restlichen CCDs nur bereichsweise
Echttzeitverhalten ist gefordert um Datenverlust zu vermeiden
GAIA Algorithmen (1)
Erkennen eines Sterns Verfolgen des Sterns über die gesamte Focal Plane Berechnung der Auslesebereiche Klassifizierung – Bright Star, Faint Star, Größe, etc. Aussondern von Near Earth Objects Datenreduktion und -kompression Paketierung der Daten und Übertragung zur Erde
Es wird eine Rechenleistung von 700 MIPs benötigt(vgl. Pentium III 500 MHz hat ca. 1400 MIPs)
Rechenleistungen in SPACE
Rad-Hard Prozessoren– LEON2, 86 MIPS (100 MHz)– ERC32, 25 MIPS (32 MHz)
Kommerzielle Prozessoren– PowerPC, 1800 MIPs (800 MHz)– Performanceeinbußen durch FT-Maßnahmen
GAIA Algorithmen verlangen eine Aufteilung in HW und SW
GAIA Algorithmen (2)
GAIA – Hardware Algorithmen
Objekterkennung läuft immer gleich ab Berechnung von Objektparametern
– Helligkeit, Hintergrundkompensation– Detektion von Sternextremitäten– Verschiedene Pixelfilter (MAC-Operationen)– Offset- und Gainkorrektur der CCDs– Filterung von toten Pixeln
SpaceWire-Interfaces nach außen Implementierung mittels 2 Actel FPGAs
GAIA – Software Algorithmen
Software übernimmt höherwertige Algorithmen– Berechnung des Auslesebereichs– Sternklassifizierung– Sortieren nach Eigenschaften– Berechnung weiterer Sternparameter– Formierung von Datenpaketen, Datenkompression– Higher-Level Protokolle (MIL-1553)
Realisierung auf SCS750 Board– COTS-Computerboard für SPACE
Maxwell SCS-750 Computerboard
GAIA – Architektur
Resümee (1)
Hardware/Software-Partitioning im SPACE-Bereich ähnlich wie bei industriellen Designs
– Hardware kümmert sich um repititive Tasks– Parallelisierung von Aufgaben zur Erhöhung der Performance– Implementierung von Schnittstellen– Co-Prozessor für Software-Algorithmen– Software steuert Programmfluss– Stärken bei Bedingungen, Verzweigungen, Sortieraufgaben
Resümee (2)
Entwicklung– Hardware ist meist billiger zu entwickeln als Software– Geringerer Verifikationsaufwand– SPACE-Softwareentwicklung ist sehr aufwendig– Normativ geregelt– Oftmals werden auch „unbequeme“ Algorithmen in Hardware
implementiert um den Aufwand zu minimieren– Aber: Ist VHDL nicht eigentlich Software?
Quellen
Parkinson, Spilker Jr., „Global Positioning System: Theory and Applications“ – Die BIBEL
http://www.colorado.edu/geography/gcraft/notes/gps/gps_f.html http://www.kowoma.de/gps/ http://ivvgeo.uni-muenster.de/Vorlesung/GPS
http://www.esa.int/science/gaia