22405.jpg

Alle Bilder und Grafiken: Xilinx

Seit den frühen 90er Jahren arbeiten die Entwickler von fortgeschrittenen Fahrerassistenzsystemen (DA, Driver Assistance) intensiv daran, das Fahren sicherer und angenehmerer zu machen. In den letzten zehn Jahren wurden die ersten DA-Systeme eingeführt, etwa als ultraschall-basierte Einparkhilfe oder als Warnsysteme für adaptive Temporegelungs- (adaptive cruise control) und Spurhaltungssysteme – vor allem in der Premium-Klasse. Seit einiger Zeit gibt es auch Rückfahr-Kameras (Rear-View) zur Detektion des toten Winkels im Sichtbereich des Fahrers und Rundumsichtsysteme als Option für eine Vielzahl von Fahrzeug-Plattformen.

Mit Ausnahme der Parkhilfe ist der Einsatz von DA-Systemen bisher recht begrenzt. Die Marktforschungsfirma Strategy Analytics prognostiziert eine Zunahme in der nächsten Dekade. Regulierungs- und Sicherheitsbedürfnisse sowie die laufenden Innovationen bei Sensoren zur Messdaten-Fernabfrage und Algorithmen zur Extraktion und Interpretation kritischer Information treiben den steigenden Einsatz von DA-Systemen. Sie werden komplexer und leistungsfähiger und wandern vom Premium-Segment in den Mainstream. Im Wesentlichen bewirken das FPGA-basierte Prozessor-Plattformen.

Sensor-Trends für Fahrerassistenzsysteme

Die F&E-Aktivitäten bei Sensoren nutzen die schnellen Fortschritte der Kameras für Mobiltelefone. Damit entstehen Geräte, die auch für Anwendungen im Auto geeignet sind und zugleich strikte Kostengrenzen einhalten. Ganz ähnlich werden die komplexen Algorithmen zur Bildverarbeitung durch PC-basierte Tools verfeinert und auf eingebettete Plattformen portiert.

Bislang ist die Ultraschall-Technologie noch Marktführer. IMS Research verweist jedoch darauf, dass bald optische Sensoren das Feld übernehmen werden. Von besonderem Wert sind die Roh-daten der Kamerasensoren und die Vorverarbeitung der Daten. Raw-Video lässt sich direkt anzeigen, um Gefahren zu erkennen und abzuschätzen. Mit anderen Sensortypen, etwa Radar, war das nicht möglich. Alternativ (oder simultan) lassen sich aus den
Videodaten Schlüsselinformationen wie Position und Bewegungsrichtung von Fußgängern extrahieren. Dieses „Dual-Use“-Konzept bündelt die Informationen in einem Kamera-Set (Bild 1).

Bild 1: Funktionsbündelung in einem Satz von Kamera-Sensoren.

Bild 1: Funktionsbündelung in einem Satz von Kamera-Sensoren.

Aus solchen Applikationen lassen sich Schlussfolgerungen für die Anforderungen an Verarbeitungsplattformen für Kamera-basierte DA-Systeme ableiten:

Sie müssen Video- und Bildverarbeitung unterstützen. Der Begriff „Videoverarbeitung“ bezieht sich dabei auf die rohen Kameradaten, während „Bildverarbeitung“ den analytischen Einsatz von Software zur Extraktion von Information (etwa Bewegungen) aus dem Video-Stream bezeichnet.

Sie müssen parallele Datenpfade für die Algorithmen simultaner Auswertungen bereitstellen.

Verarbeitungsleistung, Konnektivität und Speicherbandbreite müssen Bildauflösungen im Megapixel-Bereich genügen.

FPGAs als Plattform für DA-Systeme
Ein Kamerasystem mit großem Sichtfeld und rückwärtigem Bewegungsmelder muss ein auf Verzerrungen korrigiertes Bild der rückseitigen Fahrzeugumgebung liefern. Außerdem erzeugen Algorithmen zur Objekterkennung und Bewegungsabschätzung eine akustische Warnmeldung, wenn ein Objekt von der Seite her den vorberechneten Weg des Fahrzeugs kreuzt.

Bild 2 zeigt

Bild 2: Blockdiagramm eines Rückfahrkamera-Systems mit rückwärtiger Bewegungsmeldung.

Bild 2: Blockdiagramm eines Rückfahrkamera-Systems mit rückwärtiger Bewegungsmeldung.

die Aufteilung des Kamerasignals für Video- und Bildverarbeitung. Die Verarbeitungsleistung kann dabei schnell die verfügbare Leistung eines digitalen Signalprozessors (DSP) überfordern. Daraus folgt als geeignete Lösung die Parallelverarbeitung mit Hardwarebeschleunigung.

FPGAs (Field-Programmable Gate Arrays) bieten hochflexible Architekturen für eine Vielfalt von Verarbeitungsstrategien. Die FPGA-Struktur macht es einfach, das Kamerasignal in eine unabhängige Video- und Bildverarbeitung mit den zugehörigen IP-Blocks (Intellectual Property) zu splitten. Im Unterschied zu seriellen Prozessor-Implementierungen, die ihre funktionalen Ressourcen im Zeitmultiplex aufteilen, kann ein FPGA diese Blocks unabhängig verarbeiten und takten.

Auch wenn Änderungen der Prozessorarchitektur anstehen, übertreffen FPGAs mit ihrer Reprogrammierbarkeit der Hardware-Blocks die Lösungen mit ASSPs (Application-Specific Standard Product) oder ASICs (Application-Specific Integrated Circuit). FPGAs sind zudem vorteilhaft, wenn man die Evolution fortschrittlicher Algorithmen betrachtet. Außerdem bieten die FPGA-Bausteine der neuen Xilinx Automotive (XA) Spartan-6-Familie bis zu 132 unabhängige MAC-Einheiten (Multiply-and-Accumulate) mit Pre-Addern.

Ein weiterer Vorteil der FPGA-Implementierung ist die Skalierbarkeit. Die Systemhersteller (OEMs) bündeln ständig mehr Funktionen, und damit steigen die Anforderungen an die Rechenleistung. So muss eine Rückfahrkamera eventuell über einen Monocular-Ranging-Algorithmus verfügen, um dem Fahrer Informationen über die Distanz von Objekten zu geben. Die zusätzliche Funktionalität erfordert einen weiteren Pfad zur Parallelverarbeitung. Dies in einem spezialisierten ASIC oder ASSP zu implementieren, kann problematisch, wenn nicht unmöglich sein, wenn der Entwickler dafür nicht rechtzeitig Vorbereitungen getroffen hat.

Mit einem seriellem DSP könnte diese zusätzliche Funktionalität eine neue Architektur des Software-Designs bedingen – auch wenn man auf einen leistungsfähigeren Baustein der Familie übergeht (falls das sinnvoll ist). Im Unterschied dazu erlaubt die FPGA-Implementierung das Hinzufügen des neuen Funktionsblocks durch Einbindung vorher nicht genutzter FPGA-Ressourcen. Dabei bleiben die existierenden Blocks intakt. Auch wenn die neue Funktion mehr Ressourcen erfordert als im Originalbaustein verfügbar, unterstützen Baustein- und Gehäuse-Kombinationen oft den Übergang auf einen Baustein mit höherer Logikdichte (mehr Verarbeitungsreserven), ohne dass das Board oder existierende IP-Blocks neu entwickelt werden müssen.

Schließlich bietet die FPGA-Reprogrammierbarkeit die Möglichkeit der Doppelnutzung des Bausteins (Silicon Reuse) – und zwar für DA-Funktionen, die sich gegenseitig ausschließen. Die Rückfahrkamera arbeitet nur beim Rücksetzen des Fahrzeugs. Ein FPGA-System könnte den Sensor und dessen Verarbeitungslogik nutzen, wenn das Fahrzeug vorwärts fährt – etwa zur Detektion des toten Winkels. Dabei analysiert es das Kamerabild und bestimmt den Ort und die relative Bewegung von erkannten Objekten. Somit kann das System das FPGA anhand des Fahrzeug-Status innerhalb einiger hundert Millisekunden rekonfigurieren. Das ermöglicht die komplette Wiederverwendung des FPGA-Bausteins für unterschiedliche Funktionalitäten zu geringen Kosten.

Externe Speicherbandbreite
Außer der großen Verarbeitungsleistung erfordern kamerabasierte DA-Applikationen signifikante Bandbreiten für den externen Speicherzugriff. Die höchsten Anforderungen stellen Mehrkamerasysteme mit zentraler Verarbeitung, etwa Rundsichtsysteme mit vier Kameras. Bei 4-Megapixel-Bildverarbeitung (1280 x 960), 24-bit-Farbverarbeitung und 30 Frames/s (fps) benötigt die reine Bildspeicherung in externen Puffern 3,6 GBit/s für den Zugriff.

Sollen Bilder simultan ausgelesen und geschrieben werden, verdoppelt sich dies auf 7,2 GBit/s. Unter der Annahme einer Read/Write-Burst-Effizienz von 80 Prozent steigt sie sogar auf 8,5 GBit/s. Diese Abschätzung schließt keine Zwischenspeicherung oder Codezugriff ein, so dass kamerabasierte DA-Applikationen recht Bandbreiten-intensiv sind.

Derartige Systeme erfordern meist auch Speicher-Controller. Dies kostengünstig zu erfüllen verlangt eine effiziente Systemauslegung. Entwickler können dabei die Flexibilität von FPGAs nutzen, um diesen Anforderungen gerecht zu werden.

Die Bausteine des Typs XA Spartan-6 bieten zwei strahlungsgehärtete Speicher-Controller-Blocks (MCBs), sind konfigurierbar als 4-, 8- oder 16-Bit-DDR-, DDR2-, DDR3- oder LPDDR-Speicher-Interfaces. Die MCBs lassen sich bis zu 400 MHz takten, entsprechend einer Bandbreite von 12,8-GBit/s für den Speicherzugriff bei 16 Bit breitem Speicher. Mit zwei MCBs verdoppelt sich die rohe Bandbreite auf 25,6 GBit/s. Beide können unabhängig oder zusammen arbeiten, indem sie die FPGA-Struktur für eine virtuelle Datenbreite von 32 Bit nutzen. Fazit: FPGA-Speicher-Controller bieten Optionen für kundenspezifische externe Speicher-Interfaces, um die Anforderungen an die DA-Bandbreite zu erfüllen und alle Aspekte der Kostengleichung einzuhalten (Speichertyp, Anzahl der PCB-Layer und anderes mehr).

Bildverarbeitung für Einchip-Speicher
Außer den externen Speichern kann die kamerabasierte DA-Verarbeitung Vorteile aus einem Onchip-Speicher ziehen, der als Zeilenpuffer für den Video-Stream dient oder Bilddatenblocks analysiert. Bayer-Transformation, Korrektur von optischen Verzerrungen und Bewegungsanalysen (Optical Flow) sind Beispiele für die Video-Zeilenpufferung.

Für eine kurze Analyse lässt sich beispielsweise an einer Bayer-Transformationsfunktion mit 12 Bit pro Pixel an Helligkeitsinformation zur Erzeugung von 24-Bit-Farbdaten durchführen. Eine als Raw-Streaming implementierte bikubische Interpolation erfordert die Pufferung von vier Zeilen an Bilddaten. Das Abspeichern der 12-Bit-Helligkeitsdaten in 16-Bit-Speicherplätzen braucht etwa 20,5 KBit Speicherplatz pro Zeile, entsprechend 82 KBit für vier Zeilen.

FPGA-Bausteine bieten Onchip-Speicherung per Block-RAM (BRAM). Die Familie XA Spartan-6 erhöht das Verhältnis BRAM zu Logik, um die Bildverarbeitung zu unterstützen. Diese Bausteine bieten zwischen 216 KBit und 3 MBit BRAM, strukturiert in Dual-Port-18-KBit-Blocks mit 250-MHz-Taktung.

Video-Daten über serielles High-Speed-Interface
Ein weiterer Punkt in Bezug auf DA-Verarbeitungsplattformen ist die Übertragung von Videodaten von entfernten Kameras zu zen-tralen Verarbeitungs- oder Display-Modulen. Die meisten Kamera-Installationen basieren heute auf der Analogübertragung von Composite-Video-Signalen (FBAS-Signale wie bei PAL oder NTSC).

Für fortschrittliche DA-Systeme bringt dies allerdings Probleme. Der Zeilensprung kann die Effektivität der Objekterkennung und von Algorithmen zur Bewegungsabschätzung herabsetzen. Außerdem sind analoge Signale störempfindlich, was die Bildqualität beeinträchtigt. Und mit dem Übergang auf digitale Bildverarbeitung kann die Konversion auf oder von Composite-Video (CVBS) unnötige Systemkosten bedingen.

Deshalb wird die digitale Übertragung bevorzugt. Auch die Pa-rallelübertragung von 12-Bit-Daten kann kostspielig sein, wenn man Kabel und Steckverbinder einbezieht. Deshalb denkt man derzeit eher an die Serialisierung per LVDS (Low-voltage Differential Signaling) oder Ethernet. Die Serialisierung von Pixeldaten erfordert Bausteine mit schnellem Interface. Ein 30-fps-Megapixel-Imager mit 12 Bit Pixeltiefe generiert mehr als 500 MBit/s.

Die Bausteine des Typs XA Spartan-6 bieten differentielles I/O für Geschwindigkeiten von 1 GBit/s und mehr. Diverse Bausteine der Familie bieten sogar Gigabit-Transceiver zur Taktung mit mehr als 3 GBit/s. Es ist möglich, dieses High-Speed-I/O mit FPGA-Strukturen einzusetzen, um die entstehenden LVDS-SerDes-Signalprotokolle (Serializer/Deserializer) im FPGA zu unterstützen. Das spart externe Komponenten und reduziert die Systemkosten.

Funktionsteilung von parallelen und seriellen DA-Prozessen
Für ein Einkamera-System mit rückwärtigem Bewegungsmelder zieht die Video- und Bildverarbeitung klare Vorteile aus Parallelverarbeitung und Hardware-Beschleunigung, während die Bewegungsmeldung ein serieller Entscheidungsprozess ist. Deshalb ist eine Plattform für beide Verarbeitungstypen ein klarer Vorteil.

Die heutigen FPGA-Bausteine unterstützen Soft-Prozessoren wie den 32-Bit-RISC-Prozessor MicroBlaze, der auf Bausteinen des Typs XA Spartan-6 verfügbar ist. Die Kombination von Prozessoren mit voller Funktionalität und FPGA-Strukturen erlaubt eine optimierte Funktionsteilung. Funktionen, die von der Parallelverarbeitung oder Hardware-Beschleunigung profitieren, werden im FPGA implementiert; diejenigen, die besser für serielle Verarbeitung geeignet sind, werden in Software implementiert und auf dem MicroBlaze ausgeführt.

MicroBlaze kann SoC-Architekturen (SoC: System-on-Chip) unterstützen. Die Xilinx-Bausteine der nächsten Generation werden die Schwelle noch höher setzen – und zwar mit einer Extensible Processing Platform. Diese umfasst auch einen strahlungsgeschützten ARM-basierten Prozessor mit einem Satz von ebenfalls strahlungsgeschützten Peripherieeinheiten.

Systemdesigner, die Prozessorplattformen für Fahrerassistenz entwickeln, müssen sich mit folgenden Fragen befassen: Flexibilität der Architekturen, Plattform-Skalierbarkeit, externe Speicherbandbreite, Onchip-Speicher-Ressourcen, serielle High-Speed-Interfaces und parallele/serielle Partitionierung. Die Herausforderung liegt in der Balance dieser Anforderungen und in einer wettbewerbsfähigen Kostenbilanz für das Produkt.

Somit sind FPGAs eine nachhaltige Alternative zu Standard-ASSPs und ASICs. Die Ressourcen der Familie Xilinx Automotive Spartan-6 bieten entsprechende Optionen für die Anforderungen von DA-Plattformen. Die heutigen FPGAs in 40-nm-Technologie und der nächsten Generation mit 28 nm eignen sich gut zur DA-Verarbeitung– auch im Hinblick auf zukünftige Entwicklungen. (av) 