-
Ausführungsbeispiele betreffen allgemein integrierte Radarsignalverarbeitungsschaltungen.
-
Ergebnisse einer Radardetektion können in Form von Bitkarten (engl. Bitmaps) repräsentiert werden. Jeder Eintrag einer solchen Bitkarte wird durch die Werte von zwei Indizes referenziert (z.B. den Wert eines Entfernungsindex und durch den Wert eines Dopplerindex (oder Geschwindigkeitsindex)) und zeigt an, ob ein Ziel in der durch die Werte der zwei Indizes entsprechenden Richtung, Entfernung bzw. mit der dem Wert eines der zwei Indizes entsprechenden Geschwindigkeit detektiert wurde. Beispielsweise ist der erste Index ein Entfernungsindex und der zweite Index ist ein Geschwindigkeitsindex und der Wert der Bitkarte gibt für jede Kombination von Werten für den Entfernungsindex und den Geschwindigkeitsindex an, ob ein Ziel bei in der dem Entfernungsindexwert entsprechenden Entfernung mit der dem Geschwindigkeitsindexwert entsprechenden Geschwindigkeit detektiert wurde. Andere mögliche Kombinationen sind Entfernung und Richtung sowie Geschwindigkeit und Richtung. Für die weitere Verarbeitung (z.B. Richtungsbestimmung, Zusammenfassung von detektierten Zielen zu Objekten etc.) ist es typischerweise erforderlich, solche Bitkarten bitweise zu verarbeiten. Effiziente Herangehensweisen für eine solche Verarbeitung sind wünschenswert, um schnell Ergebnisse der Radarverarbeitung zu ermitteln, um beispielsweise beim Einsatz eines Radarsystems in einem autonomen Fahrzeug schnell reagieren zu können, um Unfälle zu vermeiden.
-
Die Druckschrift
WO 2015/059514 A1 beschreibt eine Signalverarbeitungseinheit und ein Verfahren zur Suche nach Peak-Werten in einer zweidimensionalen Matrix. Die Matrix wird Zeile für Zeile und dann Spalte für Spalte analysiert. Die Ergebnisse werden zusammengefügt, sodass eine Liste von Peaks erzeugt werden kann. Die Operationen können in Hardware implementiert werden.
-
Gemäß einer Ausführungsform wird eine integrierte Radarsignalverarbeitungsschaltung bereitgestellt, die aufweist: Eine Signalverarbeitungseinheit, eingerichtet zum Erzeugen einer Radar-Karte, die durch ein Feld mit einem ersten Index und einem zweiten Index repräsentiert wird, eine Peak-Detektionseinheit, eingerichtet zum Identifizieren von potentiellen Zielen in der Radar-Karte, wobei die Peak-Detektionseinheit eine erste Peak-Detektionsuntereinheit, die eingerichtet ist, die Radar-Karte entlang des ersten Index abzutasten und in einen Radardatenspeicher eine erste Detektions-Bitkarte zu speichern, die Peaks als Funktion des ersten Index identifiziert und eine zweite Peak-Detektionsuntereinheit aufweist, die eingerichtet ist, die Radar-Karte entlang des zweiten Index abzutasten und in den Radardatenspeicher eine zweite Detektions-Bitkarte auszugeben, die Peaks als Funktion des zweiten Index identifiziert, wobei die erste Detektions-Bitkarte und die zweite Detektions-Bitkarte jeden der Peaks unter Verwendung eines einzelnen Bits identifizieren, und einen Hardwarebeschleuniger, der mit dem Radardatenspeicher verbunden ist, wobei der Hardwarebeschleuniger ein Bit-orientierter Hardwarebeschleuniger ist, der eingerichtet ist, individuelle Bits der ersten Detektions-Bitkarte und der zweiten Detektions-Bitkarte zu verarbeiten, wobei der Hardwarebeschleuniger eingerichtet ist, die erste Detektions-Bitkarte und die zweite Detektions-Bitkarte zu einer kombinierten Detektions-Bitkarte zu kombinieren, wobei der Hardwarebeschleuniger ein Speicherelement zum Speichern der kombinierten Bitkarte, einen Hardware-Zähler zum Zählen von Bits und eine Vergleicherlogik zum Empfangen des Bits, das durch den Hardware-Zähler identifiziert wird, und Ausgeben eines entsprechenden Ereignisses, falls das Bit einen Peak identifiziert, und eine Listenerzeugungsschaltung aufweist, wobei die Vergleicherlogik eingerichtet ist, das Ereignis an die Listenerzeugungsschaltung auszugeben, die eingerichtet ist, einen ersten Wert, der durch höherwertige Bits des Hardware-Zählers gegeben ist und einen zweiten Wert, der durch niederwertige Bits des Hardware-Zählers gegeben ist, als Indexwertpaar eines Peaks auszugeben.
-
Die Figuren geben nicht die tatsächlichen Größenverhältnisse wieder, sondern sollen dazu dienen, die Prinzipien der verschiedenen Ausführungsbeispiele zu illustrieren. Im Folgenden werden verschiedene Ausführungsbeispiele mit Bezug auf die folgenden Figuren beschrieben.
- 1 zeigt eine Radaranordnung.
- 2 zeigt ein FMCW(Frequency Modulated Continuous Wave)-Radarsystem.
- 3 zeigt die Verarbeitung eines Datenwürfels.
- 4 zeigt ein Beispiel einer Radardetektion mit drei Sendekanälen.
- 5 zeigt einen Hardwarebeschleuniger zur Verarbeitung von Bitkarten gemäß einer Ausführungsform.
- 6 zeigt eine integrierte Radarverarbeitungsschaltung gemäß einer Ausführungsform.
-
Die folgende detaillierte Beschreibung bezieht sich auf die beiliegenden Figuren, die Details und Ausführungsbeispiele zeigen. Diese Ausführungsbeispiele sind so detailliert beschrieben, dass der Fachmann die Erfindung ausführen kann. Andere Ausführungsformen sind auch möglich und die Ausführungsbeispiele können in struktureller, logischer und elektrischer Hinsicht geändert werden, ohne vom Gegenstand der Erfindung abzuweichen. Die verschiedenen Ausführungsbeispiele schließen sich nicht notwendig gegenseitig aus, sondern es können verschiedene Ausführungsformen miteinander kombiniert werden, so dass neue Ausführungsformen entstehen. Im Rahmen dieser Beschreibung werden die Begriffe „verbunden“, „angeschlossen“ sowie „gekoppelt“ verwendet zum Beschreiben sowohl einer direkten als auch einer indirekten Verbindung, eines direkten oder indirekten Anschlusses sowie einer direkten oder indirekten Kopplung.
-
1 zeigt eine Radaranordnung 100.
-
Die Radaranordnung 100 umfasst ein Radarsystem 101, das eine Antennenanordnung 102 und eine Radarvorrichtung 103 enthält. Die Radarvorrichtung 103 umfasst einen oder mehrere (Radar-)Sender 104, einen Duplexer 105 (d. h. eine Schaltung zur Trennung von Sende- und Empfangssignalen), einen (Radar-)Empfänger 106 und eine Steuereinrichtung 107. Die Radaranordnung, obwohl hier als eine Schüssel dargestellt, kann mehrere Sendeantennen in Form eines Sendeantennenarrays und mehrere Empfangsantennen in Form eines Empfangsantennenarrays enthalten und z.B. in einem Fahrzeug angeordnet sein.
-
Für die Erkennung eines Objekts 108 steuert die Steuereinrichtung 107 den einen oder mehrere Sender 104, den Duplexer 105 und den Empfänger 106 wie folgt:
- 1. Der eine oder die mehreren Sender 104 senden ein Sendesignal 109 über die Antennenanordnung 102.
- 2. Das Sendesignal 109 wird von einem Ziel reflektiert;
- 3. Das Radarsystem 101 empfängt das Echo 110 des Sendesignals als Empfangssignal.
-
Aus dem empfangenen Signal berechnet das Radarvorrichtung 103 (z. B. eine integrierte Radarsignalverarbeitungsschaltung 111) Informationen über Position und Geschwindigkeit des Objekts 108.
-
Es sollte beachtet werden, dass, während in der Radaranordnung 100 von 1 das Radarsystem 101 als eine (große) stationäre Einrichtung dargestellt ist, die ein großes Objekt 108 wie das dargestellte Fahrzeug erfasst, ein Radarsystem 101 auch mobil sein kann, kleiner sein kann und für die Erfassung kleinerer Objekte verwendet werden kann. Beispielsweise kann eine Radarvorrichtung in einem Fahrzeug zur Erkennung von Objekten in der Nähe installiert sein, insbesondere für das autonome Fahren.
-
Das Sendesignal 109 kann eine Mehrzahl von Impulsen enthalten. Die Impulsübertragung beinhaltet die Übertragung von kurzen Bursts mit hoher Leistung in Kombination mit Zeiten, in denen das Radarsystem 101 auf Echos 110 wartet. Dies ist typischerweise nicht optimal für eine hochdynamische Situation wie in einem Fahrzeug-Szenario.
-
Daher kann stattdessen eine kontinuierliche Wellenform als Sendesignal verwendet werden. Da eine kontinuierliche Wellenform nur eine Geschwindigkeitsbestimmung ermöglicht, aber keine Entfernungsinformationen liefert (aufgrund des Fehlens einer Zeitmarke, die eine Entfernungsberechnung ermöglichen könnte), ist ein Ansatz das frequenzmodulierte Dauerstrichradar (FMCW).
-
In 2 ist ein FMCW-Radarsystem 200 dargestellt.
-
In einem FMCW-Radarsystem wird die Frequenz des Sendesignals nicht mit einer konstanten Frequenz gesendet, sondern periodisch entsprechend einer Sägezahn- (oder alternativ einer Dreieck-) Wellenform 201 hochgefahren und zurückgesetzt. Die Sägezahn-Wellenform 201 moduliert die Frequenz eines Oszillators 202 und das resultierende Sendesignal wird einer Sendeantenne 203 zugeführt.
-
Eine Empfangsantenne 204 empfängt das Echo des Sendesignals (zusätzlich zum Rauschen etc.) als Empfangssignal. Ein Mischer 205 mischt das Sendesignal mit dem Empfangssignal. Das Ergebnis der Mischung wird durch ein Tiefpassfilter 206 gefiltert und von einem Spektrumsanalysator 207 verarbeitet.
-
Das Sendesignal hat die Form einer Folge von Chirps, die sich aus der Modulation einer Sinuskurve mit der Sägezahn-Wellenform 201 ergeben. Ein einzelner Chirp 208 entspricht der Sinuskurve des Oszillatorsignals, die um einen „Zahn“ der Sägezahnwellenform 201 von der Minimalfrequenz bis zur Maximalfrequenz frequenzmoduliert ist.
-
Der Spektrumsanalysator 207 (z. B. implementiert durch die Radarsignalverarbeitungsschaltung 111) implementiert (mindestens) zwei FFT-Stufen (Fast Fourier Transform), um Entfernungsinformationen (durch eine erste FFT-Stufe) sowie Geschwindigkeitsinformationen (durch eine zweite FFT-Stufe) aus dem Empfangssignal zu extrahieren. Die zweite FFT-Stufe kann auch Winkelinformationen extrahieren oder es kann auch eine dritte FFT-Stufe vorgesehen sein, die Winkelinformationen extrahiert. Im vorliegenden Ausführungsbeispiel, in dem eine Entfernungs-Doppler-Karte erzeugt wird, extrahiert die zweite FFT Stufe Geschwindigkeitsinformationen. Es ist zu beachten, dass der Spektrumsanalysator 207 mit digitalen Abtastwerten arbeitet, so dass eine A/D-Wandlung (Analog-DigitalWandlung) im Pfad von der Empfangsantenne 204 zum Spektrumsanalysator 207 enthalten ist. Beispielsweise ist das Filter 206 ein analoges Filter und ein Analog-DigitalWandler (ADC) ist zwischen dem Filter 206 und dem Spektrumsanalysator 207 angeordnet.
-
Um weiterhin eine Richtungsbestimmung des Objekts 108 in Bezug auf das Radarsystem 101 zu ermöglichen, kann die Antennenanordnung 102 eine Mehrzahl von Empfangsantennen, d.h. ein Array von Empfangsantennen, umfassen. Die Richtung eines Objekts 108 kann dann aus Phasendifferenzen bestimmt werden, mit denen die Empfangsantennen ein Echo von einem Objekt 110 empfangen. Dementsprechend kann ein Radarempfänger einen Mischer 205, ein analoges Filter 206 und einen ADC für jede Empfangsantenne enthalten.
-
Die digitalisierten Empfangssignale für alle Empfangsantennen werden typischerweise in einem sogenannten Datenwürfel (engl. data cube) gesammelt.
-
3 zeigt die Verarbeitung eines Datenwürfels 300.
-
Der Datenwürfel 300 enthält digitalisierte Abtastwerte der Empfangssignale von M Antennen, die ein Empfangsantennenarray 303 bilden. Die digitalen Abtastwerte werden durch Analog/Digital-Wandlung erzeugt.
-
Zum Beispiel wird für jeden Chirp (z. B. K=64 Chirps) das empfangene Signal so abgetastet, dass es L Abtastwerte hat (z. B. L = 512).
-
Die für jeden Chirp gesammelten L-Abtastwerte werden von der ersten FFT-Stufe verarbeitet.
-
Die Verarbeitung der ersten FFT-Stufe wird für jeden Chirp und jede Antenne durchgeführt, so dass das Ergebnis der Verarbeitung des Datenwürfels 300 durch die erste FFT-Stufe wieder dreidimensional ist und die Größe des Datenwürfels 300 haben kann, aber nicht mehr Werte für L Abtastzeitpunkte, sondern Werte für L Entfernungs-Bins enthält. Es ist zu beachten, dass bei reellen Eingangssignalen der ersten FFT-Stufe in der Regel nur die Entfernungs-Bins 0 bis L/2 sinnvoll sind, da das Spektrum der ersten FFT an L/2 gespiegelt wird und die zweite Hälfte verworfen werden kann.
-
Das Ergebnis der Verarbeitung des Datenwürfels 300 durch die erste FFT-Stufe wird dann von der zweiten FFT-Stufe entlang der Chirps (für jede Antenne und für jedes Entfernungs-Bin) verarbeitet.
-
Die Richtung der FFT der ersten Stufe wird als schnelle Zeit bezeichnet, während die Richtung der FFT der zweiten Stufe als langsame Zeit bezeichnet wird (Richtung der Chirps).
-
Das Ergebnis der FFT der zweiten Stufe ergibt für jede Antenne eine Entfernungs-Doppler-Karte, die, wenn sie über die Antennen aggregiert wird (z. B. unter Verwendung von NCI (nicht-kohärente Integration) oder CI (kohärente Integration), um das Signal-Rausch-Verhältnis zu verbessern und eine höhere Erkennungswahrscheinlichkeit zu haben), zu einer Entfernungs-Doppler-Karte 301 führt. Die Entfernungs-Doppler-Karte 301 enthält für jede Kombination aus Entfernungs-Bin und Doppler-Bin einen FFT-Ausgabewert, ist also ein Feld mit einem Entfernungsindex und einem Dopplerindex.
-
Für bestimmte Kombination aus Entfernungs-Bin und Doppler-Bin (d. h. für bestimmte Entfernungs-/Doppler-Bins) weist die Entfernungs-Doppler-Karte 301 FFT-Peaks 302 (d.h. Peaks der FFT-Ausgangswerte (also Spitzenwerte hinsichtlich des Absolutbetrags)) auf.
-
Um FFT-Peaks 302 zu identifizieren, wird eine Peak-Detektion auf die Entfernungs-Doppler-Karte 301 angewendet, typischerweise in beiden Dimensionen (Entfernung und Doppler). Das heißt, dass Maxima in Spaltenrichtung (hier Entfernung) und Maxima in Zeilenrichtung (hier Geschwindigkeit) in der Entfernungs-Doppler-Karte 301 (die Zeilen und Spalten FFT-Ausgabewerten für die Entfernungs/Doppler-Bins aufweist) gesucht werden (unter Betrachtung der Absolutbeträge der FFT-Ausgabewerte).
-
Das Ergebnis ist, für jede Dimension, eine jeweilige Detektions-Bitkarte (engl. Bitmap) 304, 305, d.h. ein Feld von Bits, das für jeden Entfernungs/Doppler-Bin (indiziert durch einen Wert des Entfernungsindex und einen Wert des Dopplerindex) eine 1 enthält, falls bei der Detektion in Richtung der jeweiligen Dimension ein Maximum gefunden wurde und Null sonst. Eine 1 zeigt somit ein potentielles Ziel an.
-
Die beiden Detektions-Bitkarten 304, 305 werden dann zu einer („finalen“ oder „kombinierten“) Detektions-Bitkarte 306 logisch kombiniert (z.B. multipliziert, d.h. UND-kombiniert, wobei auch andere logische Verknüpfungen (OR, XOR, etc.) möglich sind).
-
Es sollte beachtet werden, dass es erforderlich ist, dass die Daten (also die Entfernungs-Doppler-Karte) vollständig vorhanden sind, bevor die Detektion in den beiden Dimensionen (2D-Detektion) durchgeführt werden kann. Die 2D-Detektion (auch als 2D-Filterung bezeichnet) ist außerdem aufwändig hinsichtlich Flächenaufwand und Energieverbrauch. Nichtsdestotrotz ist es typischerweise wünschenswert, die Detektion in Richtung beider Dimensionen durchzuführen.
-
Für Nachbearbeitung (engl. Post-Processing) ist es außerdem typischerweise erforderlich, weitere Daten aus der Entfernungs-Doppler-Karte zu extrahieren (z.B. zu einem Peak benachbarte FFT-Punkte wie z.B. kleinere Peaks).
-
Die Weiterverarbeitung der Bitkarten 304, 305 oder auch der finalen Bitkarte 306 erfordert verschiedene Operationen, die einen hohen Rechenaufwand erfordern. Speziell sind bitweise Operationen erforderlich, deren Durchführung mittels einer CPU oder einen DSP (den bzw. die die Radarvorrichtung 103 enthält) aufwändig ist und deshalb die Latenz der Radarverarbeitung stark erhöhen können.
-
Beispielsweise haben die Bitkarten 304, 305 typischerweise unterschiedliche Orientierungen. Damit sie zu der finalen Bitkarte 306 logisch kombiniert werden können, muss deshalb eine der Bitkarten 304, 305 transponiert werden.
-
Ein weiteres Beispiel für eine aufwändige bitweise Verarbeitung ist die Extraktion von Indizes der finalen Bitkarte 306, d.h. die Ermittlung des Indexwerts des Entferungs-Bins (d.h. des Entfernungs-Indexwerts) und des Indexwerts des Doppler(oder Geschwindigkeits)-Bins (d.h. des Doppler-Indexwerts), für jeden Peak, den die finale Bitkarte 306 (durch eine jeweilige 1) anzeigt. Dies ist insbesondere für Radarnachbearbeitungsoperationen wie Zusammenfassung von Peaks zu Objekten (engl. Clustering), Berechnung von Geschwindigkeit und Entfernung von Objekten erforderlich.
-
Dementsprechend ist auch die Extraktion der Adressen der zu dem Peak gehörigen FFT-Ausgabewerte im physikalischen Speicher (absolute Systemadressen) aufwändig. Die FFT-Ausgabewerte werden z.B. zur Richtungsbestimmung von detektierten Objekten benötigt.
-
Eine weitere bitweise Verarbeitung ist bei DDM(Doppler Division Multiplexing) MIMO(Multiple Input Multiple Output)-Radarsystemen erforderlich. Bei einem solchen System tritt jeder Peak in der finalen Bitkarte 306 mehrfach auf, einmal pro Sendekanal mit einem festen Doppler-Versatz. Die finale Bitkarte 306 muss deshalb für jeden Sendekanal (gemäß dem jeweiligen Doppler-Versatz) rotiert werden und die Ergebnisse werden bitweise logisch kombiniert (multipliziert).
-
4 zeigt ein Beispiel mit drei Sendekanälen.
-
Die Sendekanäle werden dadurch realisiert, dass aufeinanderfolge Chirps für die Sendekanäle unterschiedliche Phasenversätze haben (z.B. gemäß einer BPSK (Binary Phase Shift Keying), QPSK (Quadrature PSK) oder mPSK-Modulation).
-
Im Beispiel von 4 haben aufeinanderfolgende Chirps 401 (hier dargestellt durch Zacken eines Frequenzmodulationssignals) des ersten Sendekanals (TX1) keinen Phasenversatz zueinander, aufeinanderfolgende Chirps 402 des zweiten Sendekanals (TX2) einen Phasen von 90° zueinander, und aufeinanderfolgende Chirps 403 des dritten Sendekanals (TX3) einen Phasenversatz von 180° zueinander.
-
Die finale Bitkarte 404 enthält in diesem Fall Information für alle drei Sendekanäle.
-
Um diese Informationen zu kombinieren, wird die finale Bitkarte 404 mit rotierten Versionen 405, 406 ihrer selbst logisch kombiniert.
-
In dem Beispiel von 4 werden die rotierten Version 405, 406 durch Rotation der Zeilen erzeugt (d.h. jede Zeile gehört in der Darstellung von 4 zum selben Doppler-Bin).
-
Die oben genannten bitweisen Operationen (Transposition einer Bitkarte, Kombination von Bitkarten, insbesondere von rotierten Bitkarten zur Sendedemodulation, Indexwert- und Adressenextraktion) kann von einer CPU (oder einem DSP) durchgeführt werden. Diese entnimmt beispielsweise die Bitkarten aus einem Speicher, in dem eine Signalverarbeitungseinheit (SPU für engl. Signal Processing Unit), die Bitkarten wie oben beschrieben erzeugt, ablegt. Die CPU (oder der DSP) führt dazu eine entsprechende Software aus.
-
Die Durchführung der oben genannten bitweisen Operationen in Software ist jedoch wie oben erwähnt sehr aufwändig.
-
Hat beispielsweise eine Bitkarte 256 Zeilen (für die Doppler-Bins) und 128 Spalten (für die Entfernungs-Bins) und verarbeitet die CPU 8-Bit-Worte, so werden jeweils 8 Bits zu einem Wort zusammengefasst (z.B. die 128 Spalten zu 16 Spalten mit 8-Bit-Worten). Es sind dann für das Extrahieren von Indizes drei For-Schleifen erforderlich (eine Schleife über den Entfernungs-Index, eine Schleife über die Bit-Position innerhalb des 8-Bit-Worts und eine Schleife über den Doppler-Index) wobei je nach Bit-Position das 8-Bit-Wort entsprechend verschoben und/oder maskiert werden muss.
-
Für eine Transposition muss die CPU jedes Bit (z.B. durch ein Verschieben und ein logisches UND zum Maskieren) aus einem jeweiligen 8-Bit-Wert entnehmen und in einen neuen 8-Bit-Wert schreiben (z.B. durch ein Verschieben und ein logisches ODER zum Kombinieren mit dem neuen 8-Bit-Wert).
-
Zum Kombinieren von zwei Bitkarten muss die CPU über alle (z.B. 256*16) 8-Bit-Werte-Positionen iterieren, die zwei 8-Bit-Werte an einer jeweiligen Position auslesen, sie logisch bitweise kombinieren und den resultierenden 8-Bit-Wert in den Speicher zurückschreiben.
-
Gemäß verschiedenen Ausführungsformen wird ein Hardwarebeschleuniger für eine bitweise Verarbeitung von (Detektions-)Bitkarten, d.h. für Operationen, beispielsweise die oben beschriebenen Operationen, bereitgestellt. Der Hardwarebeschleuniger ist dazu eingerichtet, Bits der Bitkarten individuell zu verarbeiten, d.h. ist in der Lage, auf individuelle Bits (für die Verarbeitung) zuzugreifen, ohne dass er dabei auch auf benachbarte Bits in der jeweiligen Bitkarte zugreift bzw. zugreifen muss. Beispielsweise kann er Bits individuell aus einem Bitstrom, in dem die Bits der Bitkarte für die Verarbeitung (z.B. aus einem Speicher) weitergeleitet werden, verarbeiten. Der Hardware-Beschleuniger ist damit gemäß verschiedenen Ausführungsformen in der Lage, bitweise Operationen auf Bitkarten, wie die oben beschriebenen Operationen, effizient auszuführen.
-
Der Hardware-Beschleuniger kann eng an eine SPU, die die Bitkarten erzeugt, angebunden sein, kann aber auch als selbständige Einheit („standalone“) betrieben werden und beispielsweise Daten selbst aus einem Speicher auslesen und Ergebnisse dort speichern. Beispielsweise ist der Hardware-Beschleuniger in der Verarbeitungs-Pipeline zwischen der SPU und einer CPU angeordnet. Der Hardwarebeschleuniger und die SPU werden beispielsweise durch die integrierte Radarsignalverarbeitungsschaltung 111 implementiert. Ergebnisse seiner Verarbeitung kann der Hardwarebeschleuniger in einem (Radardaten-)Speicher (z.B. der Radarvorrichtung 103) speichern, sodass die CPU (der Radarvorrichtung 103) auf die entsprechenden Ergebnisse für die Weiterverarbeitung (Nachbearbeitung) zugreifen kann. Beispielsweise kann die CPU mittels der Indizes der Peaks auf die FFT-Ausgabewerte der Peaks sowie auf Nachbarwerte (in unterschiedlichen Dimensionen) zugreifen.
-
Auch ein DMA(Direct Memory Access)-Zugriff auf die Ergebnisse im Speicher kann vorgesehen sein.
-
5 zeigt einen Hardwarebeschleuniger 500 gemäß einer Ausführungsform.
-
Der Hardwarebeschleuniger 500 weist eine Eingangsschnittstelle (Leseschnittstelle) 501, mit der er zu verarbeitende Bitkarten aus einem Radardatenspeicher 503 liest, und eine Ausgangsschnittstelle (Schreibeschnittstelle) 502 auf, mittels der er in den Radardatenspeicher 503 oder in einen anderen Speicher Verarbeitungsergebnisse schreibt.
-
Die Eingangsschnittstelle 501 hat beispielsweise eine hohe Bit-Breite, sodass der Hardwarebeschleuniger 500 Bitkarten schnell in einen internen Bitkarten-Speicher 504 einlesen kann. Beispielsweise ist die Eingangsschnittstelle 501 256 Bit breit und ermöglicht somit das spaltenweise Einlesen von 128bit*256bit-Bitkarten. Der Bitkarte-Speicher 504 wird beispielsweise durch ein SRAM (Static Random Access Memory) oder Register implementiert. Der Hardware-Beschleuniger 500 enthält außerdem ein oder mehrere Konfigurationsregister 505, mit der die von ihm durchgeführte Verarbeitung gesteuert bzw. eingestellt werden kann (z.B. durch die CPU).
-
Im Folgenden wird die Struktur und die Funktionsweise des Hardwarebeschleunigers 500 für die Extraktion der Indizes von Peaks beschrieben, d.h. für die Erzeugung einer Liste 507, die für jede 1 in einer im Bitkarten-Speicher 504 gespeicherten Bitkarte 506 den Entfernungs-Indexwert und den Doppler-Indexwert der 1 (und damit die Position der 1 in der Bitkarte 506) angibt.
-
Gemäß einer Ausführungsform enthält der Hardwarebeschleuniger 500 für diese Operation einen Hardware-Zähler 512, eine Vergleichslogikschaltung (d.h. eine Hardware-Vergleicherlogik) 510 und eine Listenerzeugungslogikschaltung 511.
-
Die Bitkarte wird in einem Bitstrom der Vergleichslogikschaltung 510 zugeführt. Dies erfolgt in diesem Beispiel spaltenweise (d.h. in Richtung der Doppler-Bins) und in jedem Taktzyklus eines Takts des Hardwarebeschleunigers wird ein Bit der Vergleichslogikschaltung 510 zugeführt.
-
Der Hardware-Zähler 512 zählt von Null bis zu der Anzahl von Doppler-Bins (#Doppler) mal der Anzahl von Entfernungs-Bins (#Entfernung). Diese sind einstellbar über die Konfigurationsregister 505 und der Hardware-Zähler 512 zählt in Inkrementen von 1, wobei sein Zählwert in jedem Taktzyklus inkrementiert wird. Er beginnt zu zählen, wenn die gesamte Bitkarte 506 geladen wurde. Nach #Doppler * #Entfernung springt er wieder auf 0.
-
In jedem Taktzyklus vergleicht die Vergleichslogikschaltung 511 den ihr gerade zugeführten Bitwert mit 1. Ist der Bitwert gleich 1, so gibt sie „Wahr“-Ereignis an die Listenerzeugungsschaltung 511 aus. Die Listenerzeugungsschaltung 511 liest in Reaktion auf ein „Wahr“-Ereignis den aktuellen Zählerstand des Hardware-Zählers 512 aus und schreibt die höherwertigen Bits 508 (als Entfernungsindex) und die niederwertigen Bits 509 (als Dopplerindex) als Indexwertpaar in die Liste 507.
-
Das heißt, die Listenerzeugungsschaltung ermittelt den Dopplerindex aus den niederwertigen Zählerwert-Bits (z.B. den sieben niederwertigen Bits (Bits 0 bis 6) falls #Doppler = 128) und den Entfernungsindex aus den höherwertigen Zählerwert-Bits (z.B. den acht höherwertigen Bits (Bits 7 bis 14), falls #Entfernung = 256).
-
Wenn die Länge des Teils der Liste, den sie erzeugt hat, gleich der Breite der Ausgangsschnittstelle 502 ist, triggert sie die Ausgabe des Teils der Liste über die Ausgangsschnittstelle (d.h. gibt die Liste beispielsweise in 256-bit-Stücken aus).
-
Somit ermittelt der Hardware-Beschleuniger 500 die Liste 507 mittels zweiter For-Schleifen (wobei jede durch die höherwertigen Bits bzw. niederwertigen Bits des Hardware-Zählers 512 realisiert wird) und arbeitet direkt auf dem internen Speicher 506. Die Bitwerte der Bitkarte 506 werden in Entfernungsrichtung und Dopplerrichtung ausgelesen.
-
Der Hardware-Beschleuniger 500 kann damit die gesamte Listenerzeugung auf einmal (d.h. getriggert durch einen Software-Befehl, d.h. durch eine Ansteuerung durch die CPU) übernehmen. Aus Sicht der CPU ist somit nur ein Befehl erforderlich.
-
Auf ähnliche Weise können die anderen bitweisen Operationen durch einen Hardware-Beschleuniger realisiert werden, wobei dafür weitere Hardware-Beschleuniger vorgesehen sein können oder ein Hardware-Beschleuniger vorgesehen ist, der mehrere der bitweisen Operationen unterstützt.
-
Für die bitweise Kombination ist ein interner Bitkarten-Speicher 504 für beide Bitkartenvorgesehen und an die Stelle des Vergleichers (UND-Kombination mit 1) tritt eine UND-Kombination zwischen zwei Bits der beiden Bitkarten die zum selben Entfernungsindexwert und zum selben Dopplerindexwert gehören. Anstatt der Liste 507 wird eine resultierende Bitkarte erzeugt, die die Ergebnisse der UND-Kombinationen (jeweils wieder an der durch den jeweiligen Entfernungsindexwert und jeweiligen Dopplerindexwert gegebenen Position) enthält. Dabei kann eine der Bitkarten auch transponiert werden, entweder durch Transponieren, bevor die beiden Bitkarten kombiniert werden, oder beim Kombinieren, indem eine der Bitkarten spaltenweise und eine der Bitkarten zeilenweise aus dem Speicher 504 ausgelesen wird (eine der Bitkarten liegt dann beispielsweise als 128 * 256 Bit-Feld im Speicher 504).
-
Für die Transposition entfällt der Vergleicher und anstatt der Liste 507 wird eine resultierende Bitkarte erzeugt, die jedes Bit aus der Bitkarte 506 enthält, aber die Position entsprechend der Transposition vertauscht ist (d.h. der Dopplerindexwert des Bits in der resultierende Bitkarte ist der Entfernungsindexwert des Bits in der eingegebenen Bitkarte und umgekehrt).
-
Zusammenfassend wird gemäß verschiedenen Ausführungsformen eine integrierte Radarsignalverarbeitungsschaltung bereitgestellt, wie sie in 6 dargestellt ist.
-
6 zeigt eine integrierte Radarverarbeitungsschaltung 600 gemäß einer Ausführungsform.
-
Die integrierte Radarsignalverarbeitungsschaltung 600 weist eine Signalverarbeitungseinheit 601 auf, die zum Erzeugen einer Radar-Karte, die durch ein Feld (d.h. ein Array) mit einem ersten Index und einem zweiten Index repräsentiert wird, eingerichtet ist.
-
Die integrierte Radarsignalverarbeitungsschaltung 600 weist ferner eine Peak-Detektionseinheit 602 auf, die zum Identifizieren von potentiellen Zielen in der Radar-Karte eingerichtet ist.
-
Die Peak-Detektionseinheit 602 weist eine erste Peak-Detektionsuntereinheit 603 auf, die eingerichtet ist, die Radar-Karte entlang des ersten Index abzutasten und in einen Radardatenspeicher eine erste Detektions-Bitkarte zu speichern, die Peaks als Funktion des ersten Index identifiziert.
-
Die Peak-Detektionseinheit 602 weist außerdem eine zweite Peak-Detektionsuntereinheit 604 auf, die eingerichtet ist, die Radar-Karte entlang des zweiten Index abzutasten und in den Radardatenspeicher eine zweite Detektions-Bitkarte auszugeben, die Peaks als Funktion des zweiten Index identifiziert.
-
Die erste Detektions-Bitkarte und die zweite Detektions-Bitkarte identifizieren jeden der Peaks unter Verwendung eines einzelnen Bits.
-
Ferner weist die integrierte Radarsignalverarbeitungsschaltung 600 einen Hardwarebeschleuniger 605 auf, der mit dem Radardatenspeicher 503 verbunden ist, wobei der Hardwarebeschleuniger 605 ein Bit-orientierter Hardwarebeschleuniger ist, der eingerichtet ist, individuelle Bits der ersten Detektions-Bitkarte und der zweiten Detektions-Bitkarte zu verarbeiten.
-
Die Herangehensweise von 6 ermöglicht gegenüber einer Software-basierten Durchführung von bitweisen Operationen (wie sie z.B. oben beschrieben sind) durch eine CPU oder einen DSP einen reduzierten Energieverbrauch aufgrund der reduzierten Anzahl von Speicherzugriffen, eine reduzierte Latenz aufgrund der Beschleunigung durch dedizierte Hardware und eine Verringerung der Last für die CPU oder den DSP, sodass diese andere Aufgaben übernehmen können.
-
Dies ermöglicht insbesondere den Einsatz von Radar in Szenarien, in denen Ergebnisse einer Radarverarbeitung verlässlich mit hoher Geschwindigkeit bereitgestellt werden müssen, wie z.B. in einem autonomen Fahrzeug, wo es von hoher Wichtigkeit für die Sicherheit ist, dass Objekte schnell detektiert werden können.
-
Im Folgenden werden verschiedene Ausführungsbeispiele angegeben.
-
Ausführungsbeispiel 1 ist eine integrierte Radarsignalverarbeitungsschaltung, wie mit Bezug auf 6 beschrieben, wobei der Hardwarebeschleuniger eingerichtet ist, die erste Detektions-Bitkarte und die zweite Detektions-Bitkarte zu einer kombinierten Detektions-Bitkarte zu kombinieren, wobei der Hardwarebeschleuniger ein Speicherelement zum Speichern der kombinierten Bitkarte, einen Hardware-Zähler zum Zählen von Bits und eine Vergleicherlogik zum Empfangen des Bits, das durch den Hardware-Zähler identifiziert wird, und Ausgeben eines entsprechenden Ereignisses, falls das Bit einen Peak identifiziert, und eine Listenerzeugungsschaltung aufweist, wobei die Vergleicherlogik eingerichtet ist, das Ereignis an die Listenerzeugungsschaltung auszugeben, die eingerichtet ist, einen ersten Wert, der durch höherwertige Bits des Hardware-Zählers gegeben ist und einen zweiten Wert, der durch niederwertige Bits des Hardware-Zählers gegeben ist, als Indexwertpaar eines Peaks auszugeben.
-
Ausführungsbeispiel 2 ist eine integrierte Radarsignalverarbeitungsschaltung nach Ausführungsbeispiel 1, wobei der Hardwarebeschleuniger eingerichtet ist, die erste Detektions-Bitkarte und/oder die zweite Detektions-Bitkarte zu transponieren.
-
Ausführungsbeispiel 3 ist eine integrierte Radarsignalverarbeitungsschaltung nach Ausführungsbeispiel 1 oder 2, wobei das Kombinieren der der ersten Detektions-Bitkarte mit der zweiten Detektions-Bitkarte die Multiplikation jedes Bits der ersten Detektions-Bitkarte mit einem jeweiligen Bit der zweiten Detektions-Bitkarte aufweist, sodass die kombinierte Detektions-Bitkarte Peaks identifiziert, die sowohl von der ersten Detektions-Bitkarte als auch von der zweiten Detektions-Bitkarte identifiziert werden.
-
Ausführungsbeispiel 4 ist eine integrierte Radarsignalverarbeitungsschaltung nach einem der Ausführungsbeispiele 1 bis 3, wobei der Hardwarebeschleuniger eingerichtet ist, die erste Detektions-Bitkarte für die Kombination zu transponieren, sodass beim Kombinieren jedes Bit der ersten Detektions-Bitkarte mit dem Bit der zweiten Detektions-Bitkarte kombiniert wird, das den Wert des ersten Index des Bits der ersten Detektions-Bitkarte als Wert des zweiten Index und den Wert des zweiten Index des Bits der ersten Detektions-Bitkarte als Wert des ersten Index hat.
-
Ausführungsbeispiel 5 ist eine integrierte Radarsignalverarbeitungsschaltung nach Ausführungsbeispiel einem der Ausführungsbeispiele 1 bis 4, wobei der Hardwarebeschleuniger eingerichtet ist, eine Liste von Werten des ersten Index und zugehörigen Werten des zweiten Index der durch die kombinierte Detektions-Bitkarte identifizierten Peaks zu erzeugen und auszugeben.
-
Ausführungsbeispiel 6 ist eine integrierte Radarsignalverarbeitungsschaltung nach einem der Ausführungsbeispiele 1 bis 5, wobei der Radardatenspeicher ein interner Speicher der integrierten Radarsignalverarbeitungsschaltung ist.
-
Ausführungsbeispiel 7 ist eine integrierte Radarsignalverarbeitungsschaltung nach einem der Ausführungsbeispiele 1 bis 6, wobei der Hardwarebeschleuniger einen internen Bitkarten-Speicher aufweist, der eingerichtet ist, die erste Detektions-Bitkarte, die zweite Detektions-Bitkarte und/oder eine Kombination der ersten Detektions-Bitkarte mit der zweiten Detektions-Bitkarte zu speichern und eingerichtet ist, die gespeicherte Bitkarte als Bitstrom an eine Verarbeitungslogikschaltung des Hardwarebeschleunigers auszugeben, die eingerichtet ist, die Bits des Bitstroms einzeln zu verarbeiten.
-
Ausführungsbeispiel 8 ist eine integrierte Radarsignalverarbeitungsschaltung nach Ausführungsbeispiel 7, wobei die Verarbeitungslogikschaltung eingerichtet ist, jedes Bit des Bitstroms mit einem festen Wert zu vergleichen oder mit einem jeweiligen Bit eines Bitstroms einer anderen Bitkarte zu kombinieren.
-
Ausführungsbeispiel 9 ist eine integrierte Radarsignalverarbeitungsschaltung nach Ausführungsbeispiel 7 oder 8, wobei der Hardwarebeschleuniger eingerichtet ist, die erste Detektions-Bitkarte, die zweite Detektions-Bitkarte und/oder die Kombination der ersten Detektions-Bitkarte mit der zweiten Detektions-Bitkarte vollständig in den internen Bitkarten-Speicher einzulesen und dann bitweise zu verarbeiten.
-
Ausführungsbeispiel 10 ist eine integrierte Radarsignalverarbeitungsschaltung nach einem der Ausführungsbeispiele 7 bis 9, wobei der Hardwarebeschleuniger eine Leseschnittstelle aufweist, die eingerichtet ist, die erste Detektions-Bitkarte, die zweite Detektions-Bitkarte und/oder die Kombination der ersten Detektions-Bitkarte mit der zweiten Detektions-Bitkarte aus dem Radardatenspeicher in den internen Bitkarten-Speicher einzulesen, wobei sie eingerichtet ist, Zeilen oder Spalten der ersten Detektions-Bitkarte, der zweiten Detektions-Bitkarte und/oder der Kombination der ersten Detektions-Bitkarte mit der zweiten Detektions-Bitkarte parallel einzulesen.
-
Ausführungsbeispiel 11 ist eine integrierte Radarsignalverarbeitungsschaltung nach einem der Ausführungsbeispiele 1 bis 10, wobei der erste Index ein Entfernungsindex und der zweite Index ein Dopplerindex ist, wobei der erste Index ein Entfernungsindex und der zweite Index ein Richtungsindex ist oder wobei der erste Index ein Geschwindigkeitsindex und der zweite Index ein Richtungsindex ist.
-
Obwohl die Erfindung vor allem unter Bezugnahme auf bestimmte Ausführungsformen gezeigt und beschrieben wurde, sollte es von denjenigen, die mit dem Fachgebiet vertraut sind, verstanden werden, dass zahlreiche Änderungen bezüglich Ausgestaltung und Details daran vorgenommen werden können, ohne vom Wesen und Bereich der Erfindung, wie er durch die nachfolgenden Ansprüche definiert wird, abzuweichen. Der Bereich der Erfindung wird daher durch die angefügten Ansprüche bestimmt, und es ist beabsichtigt, dass sämtliche Änderungen, welche unter den Wortsinn oder den Äquivalenzbereich der Ansprüche fallen, umfasst werden.
-
Bezugszeichenliste
-
- 100
- Radaranordnung
- 101
- Radarvorrichtung
- 102
- Antennenanordnung
- 103
- Radarsteuereinrichtung
- 104
- Sender
- 105
- Duplexer
- 106
- Empfänger
- 107
- Steuereinrichtung
- 108
- Objekt
- 109
- Sendesignal
- 110
- Echo
- 111
- Radar-Signalverarbeitungsschaltung
- 200
- FMCW-Radaranordnung
- 201
- Sägezahn-Wellenform
- 202
- Oszillator
- 203
- Sendeantenne
- 204
- Empfangsantenne
- 205
- Mixer
- 206
- Tiefpassfilter
- 207
- Spektrumsanalysator
- 208
- Chirp
- 300
- Datenwürfel
- 301
- Entfernungs/Doppler-Karte
- 302
- FFT-Peaks
- 303
- Empfangsantennen
- 304-306
- Bitkarten
- 401-403
- Chirps
- 404
- Bitkarte
- 405, 406
- rotierte Bitkarten
- 500
- Hardwarebeschleuniger
- 501
- Eingangsschnittstelle
- 502
- Ausgangsschnittstelle
- 503
- Radardatenspeicher
- 504
- Bitkarten-Speicher
- 505
- Konfigurationsregister
- 506
- Bitkarte
- 507
- Liste
- 508
- Höherwertige Bits des Hardware-Zählers
- 509
- Niederwertige Bits des Hardware-Zählers
- 510
- Vergleichslogikschaltung
- 511
- Listenerzeugungslogikschaltung
- 512
- Hardware-Zähler
- 600
- Integrierte Radarverarbeitungsschaltung
- 601
- Signalverarbeitungseinheit
- 602
- Peak-Detektionseinheit
- 603,604
- Peak-Detektionsuntereinheiten
- 605
- Hardwarebeschleuniger