31
HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace- Bereich Werner FRIESENBICHLER http:// www . space .at

HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

Embed Size (px)

Citation preview

Page 1: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich

Werner FRIESENBICHLER

http://www.space.at

Page 2: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

Aufgabenstellung

Analyse eines industriellen Designs hinsichtlich HW/SW Partitioning

Fallbeispiel(e) aus dem Aero-SPACE Bereich:– GNSSGNSS– Video-VerarbeitungseinheitVideo-Verarbeitungseinheit

Page 3: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

Fallbeispiel 1

GNSS - NavigationsempfängerGNSS - Navigationsempfänger

Page 4: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

GNSS Grundlagen

Global Navigation Satellite System– GPSGPS (USA)– GLONASSGLONASS (Rus)– COMPASS (China, lokal ab 2008?, Erweiterung geplant)– GALILEO (Europa, GIOVE-Phase, Vollausbau >2008)

Page 5: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

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)

Page 6: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

GPS Signal (1)

Page 7: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

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

Page 8: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

Code-Phase Tracking

Korrelationsdetektor Aufgrund der Phasendifferenz zwischen lokaler und

empfangener Codesequenz kann auf die Signallaufzeit und damit die Entfernung zum Satelliten geschlossen werden

Page 9: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

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

Page 10: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

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

Page 11: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

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)

Page 12: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

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

Page 13: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

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

Page 14: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

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

Page 15: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

Fallbeispiel 2

Video-VerarbeitungseinheitVideo-Verarbeitungseinheit

Page 16: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

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)

Page 17: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

GAIASatellit

Page 18: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

GAIA Teleskop

Focal Plane

Page 19: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

Focal Plane

Page 20: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

Messprinzip (1) – Time Delayed Integration (TDI)

Page 21: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

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

Page 22: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

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)

Page 23: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

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

Page 24: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

GAIA Algorithmen (2)

Page 25: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

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

Page 26: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

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

Page 27: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

Maxwell SCS-750 Computerboard

Page 28: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

GAIA – Architektur

Page 29: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

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

Page 30: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

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?

Page 31: HW/SW Partitioning – Ein Fallbeispiel aus dem Aerospace-Bereich Werner FRIESENBICHLER

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