-
Ausführungsformen der vorliegenden Erfindung betreffen Radaranwendungen, insbesondere einen effizienten Weg zum Verarbeiten von Radarsignalen, die von mindestens einem Radarsensor, zum Beispiel über mindestens eine Antenne, aufgenommen werden. In dieser Hinsicht betrifft das Verarbeiten von Radarsignalen insbesondere Radarsignale, die von einem Sensor oder einer Antenne empfangen werden.
-
Einige Radarvarianten werden in Autos für verschiedene Anwendungen verwendet. Zum Beispiel kann Radar für Totwinkel-Detektion (Einparkhilfe, Fußgängerschutz, Querverkehr), Kollisionsmilderung, Spurverlassen-Hilfe und adaptive Geschwindigkeitsregelung verwendet werden. Zahlreiche Anwendungsfall-Szenarien für Radargeräte können in verschiedene Richtungen (z.B. Rück, Seite, Front), variierende Winkel (z.B. Azimut-Richtungswinkel) und/oder verschiedene Entfernungen (kurz-, mittel- oder langreichweitig) ausgerichtet sein. Eine adaptive Geschwindigkeitsregelung kann zum Beispiel einen ±18 Grad betragenden Azimut-Richtungswinkel verwenden, wobei das Radarsignal von der Front des Autos emittiert wird, was eine Detektionsreichweite von mehreren hundert Metern erlaubt.
-
Eine Radarquelle emittiert ein Signal und ein Sensor detektiert ein zurückgekehrtes Signal. Eine Frequenzverschiebung zwischen dem emittierten Signal und dem detektierten Signal (basierend auf zum Beispiel einem sich bewegenden Auto, das das Radarsignal emittiert) kann dazu verwendet werden, Informationen zu erhalten, die auf der Reflexion des emittierten Signals basieren. Frontend-Verarbeitung des von dem Sensor erhaltenen Signals kann eine schnelle Fourier-Transformation (Fast Fourier Transformation - FFT) umfassen, die ein Signalspektrum ergeben kann, d.h. ein über die Frequenz verteiltes Signal. Die Amplitude des Signals kann eine Stärke eines Echos anzeigen, wobei eine Spitze ein Ziel repräsentieren kann, das detektiert werden soll, und kann für weitere Verarbeitung verwendet werden, beispielsweise zum Anpassen der Geschwindigkeit des Autos basierend auf einem anderen, voraus fahrenden Auto.
-
EP 2 725 498 A2 betrifft eine DMA-Engine mit einem Puffer für eine parallele Datenverarbeitung.
-
In [LUDLOFF, A.: „Handbuch Radar und Radarsignalverarbeitung“] ist die diskrete Fourier-Transformation (DFT) beschrieben.
-
-
-
Die Aufgabe besteht darin, bekannte Ansätze zur Verarbeitung von Radarsignalen zu verbessern.
-
Diese Aufgabe wird gemäß den Merkmalen der unabhängigen Patentansprüche gelöst. Weiterbildungen der Erfindung ergeben sich auch aus den abhängigen Ansprüchen.
-
Eine erste Ausführungsform betrifft eine Vorrichtung zum Verarbeiten von Radarsignalen, die Folgendes umfasst:
- - eine DMA-Engine,
- - einen Puffer,
- - eine Verarbeitungsstufe,
- - wobei die DMA-Engine angeordnet ist zum
- - Durchführen eines Lesezugriffs auf einen Speicher, wobei ein derartiger Lesezugriff mindestens zwei aneinander angrenzende Dateneinträge umfasst, und
- - Füllen des Puffers durch Umsortieren der mindestens zwei aneinander angrenzenden Dateneinträge, so dass sie Teil verschiedener Verarbeitungsströme werden,
- - wobei die Verarbeitungsstufe zum Verarbeiten der in dem Puffer gespeicherten Daten ausgelegt ist, wobei jeder Verarbeitungsstrom getrennt durch die Verarbeitungsstufe durchgeleitet wird.
-
Eine zweite Ausführungsform betrifft ein Verfahren zum Verarbeiten von Radarsignalen, wobei das Verfahren die folgenden Schritte umfasst:
- (a) Durchführen eines Lesezugriffs auf einen Speicher, wobei ein derartiger Lesezugriff mindestens zwei aneinander angrenzenden Dateneinträge umfasst,
- (b) Füllen eines Puffers durch Umsortieren der mindestens zwei aneinander angrenzende Dateneinträge, so dass sie Teil verschiedener Verarbeitungsströme werden,
- (c) Verarbeiten des Inhalts des Puffers durch eine Verarbeitungsstufe, wobei jeder Verarbeitungsstrom getrennt durch die Verarbeitungsstufe durchgeleitet wird.
-
Eine dritte Ausführungsform betrifft eine Vorrichtung zum Verarbeiten von Radarsignalen, die Folgendes umfasst:
- - Mittel zum Durchführen eines Lesezugriffs auf einen Speicher, wobei ein derartiger Lesezugriff mindestens zwei aneinander angrenzende Dateneinträge umfasst,
- - Mittel zum Füllen eines Puffers durch Umsortieren der mindestens zwei aneinander angrenzenden Dateneinträge, so dass sie Teil verschiedener Verarbeitungsströme werden,
- - Mittel zum Verarbeiten des Inhalts des Puffers durch eine Verarbeitungsstufe, wobei jeder Verarbeitungsstrom getrennt durch die Verarbeitungsstufe durchgeleitet wird.
-
Eine vierte Ausführungsform richtet sich auf ein Computerprogrammprodukt, das direkt in einen Speicher einer digitalen Rechenvorrichtung ladbar ist, das Softwarecodeteile zum Durchführen von Schritten des hier beschriebenen Verfahrens umfasst.
-
Eine fünfte Ausführungsform richtet sich auf ein Radarsystem, das mindestens eine Vorrichtung umfasst, wie sie hier beschrieben ist.
-
Ausführungsformen werden unter Bezugnahme auf die Zeichnungen gezeigt und veranschaulicht. Die Zeichnungen dienen dazu, das Grundprinzip zu veranschaulichen, so dass nur für das Verständnis der Grundprinzipien notwendige Aspekte veranschaulicht sind. Die Zeichnungen sind nicht maßstabsgetreu. In den Zeichnungen bezeichnen dieselben Bezugszeichen gleiche Merkmale.
- 1 zeigt ein schematisches Diagramm, das ein beispielhaftes Radarsystem umfasst, das Radarsignale emittiert und zurückgekehrte Radarsignale empfängt;
- 2 zeigt ein Schema eines Rampensignals, das mehrere Rampen umfasst;
- 3 zeigt ein schematisches Diagramm einer Radarsignal-Verarbeitungsvorrichtung;
- 4 zeigt eine beispielhafte Zuteilung des Speichers zu Dateneinträgen pro Antenne und Rampe;
- 5 zeigt den 256 Bit-Lesezugriff auf Daten einer Antenne A (über die Rampen hinweg) und es zeigt wie der Eingangspuffer mit transponierten Daten gefüllt wird.
-
In einer Radar-Verarbeitungsumgebung emittiert eine Radarquelle ein Signal und ein Sensor detektiert ein zurückgekehrtes Signal. Das zurückgekehrte Signal kann in einem Zeitbereich von mindestens einer Antenne erfasst werden, insbesondere von mehreren Antennen. Das zurückgekehrte Signal kann dann durch Durchführen einer schnellen Fourier-Transformation (FFT) in den Frequenzbereich gewandelt werden, was ein Signalspektrum ergeben kann, d.h. ein über die Frequenz verteiltes Signal. Frequenzspitzen können dafür verwendet werden, potentielle Ziele, z.B. entlang einer Bewegungsrichtung eines Fahrzeugs, zu bestimmen.
-
Eine diskrete Fourier-Transformation (DFT) kann in Computern mittels numerischen Algorithmen oder dedizierter Hardware implementiert sein. Eine derartige Implementation kann FFT-Algorithmen einsetzen. Somit können die Begriffe „FFT“ und „DFT“ austauschbar verwendet werden.
-
Die hier bereitgestellten Beispiele ermöglichen insbesondere ein effizientes Bestimmen eines Azimutwinkels des zurückgekehrten Signals, der über die mehreren Antennen hinweg ausgewertet wird.
-
1 zeigt ein schematisches Diagramm, das ein beispielhaftes Radarsystem 101 umfasst, das Radarsignale 102 emittiert und zurückgekehrte Radarsignale 103 empfängt. Das Radarsystem 101 bestimmt eine Entfernung 104, eine Geschwindigkeit 105 und einen Azimutwinkel 106, der auf den zurückgekehrten Radarsignalen 103 basiert.
-
Durch Verwenden mehrerer Empfangsantennen kann eine Phasendifferenz des empfangenen zurückgekehrten Radarsignals 103 verwendet werden, um den Azimutwinkel 106 über eine Drittstufen-FFT zu bestimmen. Eine Erststufen-FFT, die auf den empfangenen zurückgekehrten (z.B. reflektierten emittierten) Radarsignalen 103 basiert, wird verwendet, um die Entfernung 104 zu bestimmen, eine Zweitstufen-FFT, die auf der Entfernung 104 basiert, wird verwendet, um die Geschwindigkeit 105 zu bestimmen, und die Drittstufen-FFT, die auf der Geschwindigkeit 105 basiert, wird verwendet, um den Azimutwinkel 106 zu bestimmen.
-
In einem beispielhaften Szenarium können die emittierten Radarsignale 102 zu einem beispielhaften Objekt von zwei Sendeantennen ausgehen. Die Signale 102 werden am Objekt reflektiert und kommen an mehreren (z.B. vier) Empfangsantennen, in Abhängigkeit vom Azimutwinkel, unter verschiedenen Phasenpositionen an. Somit gelten die Abstände zwischen dem Einzelobjekt, den Sendeantennen und den Empfangsantennen als unterschiedlich.
-
2 zeigt ein Schema eines Rampensignals, das mehrere Rampen 201 umfasst, wobei jede Rampe 201 eine vorbestimmte Dauer aufweisen kann, während der die Frequenz des emittierten Radarsignals geändert, z.B. erhöht, wurde. Mit anderen Worten kann jede Rampe 201 Signale zunehmender Frequenz umfassen und eine Abfolge von Rampen kann das Radarsignal bestimmen, das über die Sendeantennen emittiert wird.
-
Das emittierte Radarsignal wird an dem (entfernten) Objekt reflektiert und die Reflexion des Radarsignals wird an den Empfangsantennen empfangen und abgetastet.
-
Somit werden an jeder Antenne N Abtastungen bestimmt, die jeweils einer Rampe 201 entsprechen, wobei eine Anzahl von M Rampen zu einer Gesamtanzahl von N*M-Abtastungen pro Antenne führt. Die Abtastungen können auch als Rohdaten bezeichnet werden und werden in einer Verarbeitungsstufe, z.B. einer FFT-Stufe verarbeitet werden.
-
Radardaten, auf die hier Bezug genommen wird, können Rohdaten, die an der mindestens einen Empfangsantenne empfangen werden,
Verarbeitungszwischenergebnisse und/oder Endverarbeitungsergebnisse, z.B. nach FFT-Verarbeitung, umfassen. Derartige Radardaten können in den folgenden Dimensionen strukturiert sein: pro Rampe, pro Antenne, pro Erfassung.
-
3 zeigt ein schematisches Diagramm einer Radarsignal-Verarbeitungsvorrichtung, die einen Speicher 301 (der ein Radarspeicher sein kann, der die abgetasteten Radardaten umfasst), eine DMA-Engine 302 (DMA: Direkter Speicherzugriff), einen Eingangspuffer 303 und eine Verarbeitungsstufe 304 umfasst.
-
Daten werden über die DMA-Engine 302 aus dem Speicher 301 ausgelesen und in dem Eingangspuffer 303 gespeichert. Die Verarbeitungsstufe 304 verwendet die Daten, wie sie in dem Eingangspuffer 303 gespeichert sind, um Operationen effizient durchzuführen. Die Verarbeitungsstufe 304 kann dafür ausgelegt sein, auf einer Anzahl von Daten, wie sie in dem Eingangspuffer 303 gespeichert sind, lineare Verarbeitung durchzuführen. Die Verarbeitungsstufe 304 kann zum Beispiel eine FFT-Verarbeitungsstufe sein, die FFT-Ergebnisse für eine Anzahl von 256 Abtastungen bereitstellt, die in linearer Reihenfolge bereitgestellt sind, wie sie von dem Eingangspuffer 303 verarbeitet werden.
-
Es sei angemerkt, dass die Verarbeitungsstufe 304 eine beliebige der Folgenden sein kann: eine erste FFT-Verarbeitungsstufe, eine zweite FFT-Verarbeitungsstufe, eine dritte FFT-Verarbeitungsstufe, eine vierte FFT-Verarbeitungsstufe, eine Fensterungsstufe, eine Strahlformungsstufe, eine Verarbeitungsstufe, die kohärente Integration bereitstellt, eine Verarbeitungsstufe, die nicht-kohärente Integration bereitstellt, eine Verarbeitungsstufe, die lokale Maximumsuchen durchführt, oder eine Verarbeitungsstufe, die Statistik bereitstellt.
-
Es sei ferner angemerkt, dass mehr als ein Eingangspuffer 303 bereitgestellt sein kann. Die Verarbeitungsstufe 304 kann auf Daten arbeiten, die wechselweise mindestens zwei Eingangspuffern zugeführt werden.
-
Als eine Option kann der Eingangspuffer 303 Teil der DMA-Engine 302 oder der Verarbeitungsstufe 304 sein. Der Eingangspuffer 303 kann auch als ein separater Speicher bereitgestellt sein.
-
Die DMA-Engine 302 kann insbesondere mindestens einen FIFO-Speicher 305 umfassen (FIFO: first-in-first-out - zuerst-herein-zuerst-hinaus). Die DMA-Engine 302 kann somit eine hohe Flexibilität dafür bereitstellen, wie aus dem Speicher 301 ausgelesene Daten in den Puffer 303 gefüttert werden, und werden dadurch effizient von der Verarbeitungsstufe 304 verarbeitet. Ein Transponieren von Daten kann zum Beispiel entweder dann erfolgen, wenn der FIFO-Speicher 305 der DMA-Engine 302 gefüllt wird, oder wenn der Eingangspuffer 303 gefüllt wird.
-
Die in der Verarbeitungsstufe 304 berechneten Ergebnisse können in einem beliebigem Speicher gespeichert werden. In einer beispielhaften Ausführungsform, die ebenfalls in 3 gezeigt ist, können solche Ergebnisse in dem Speicher 301 gespeichert werden. Es kann insbesondere eine Option sein, die Ergebnisse an dem Ort im Speicher 301 zu speichern, von dem die zu diesen Ergebnissen zu verarbeitenden Daten eingelesen wurden. Somit wird mindestens ein Ausgangspuffer 306 bereitgestellt, der von der Verarbeitungsstufe gefüllt wird. Eine DMA-Engine 307 - die einen FIFO-Speicher 308 umfassen kann, der das bezüglich der DMA-Engine 302 beschriebene Konzept verwendet - verwendet Zurückschreiben der Daten vom Ausgangspuffer 306 zum Speicher 301.
-
Es sei angemekrt, dass die DMA-Engine 302 als eine Eingangs-DMA-Engine angesehen werden kann, und die DMA-Engine 307 als eine Ausgangs-DMA-Engine angesehen werden kann. Beide DMA-Engines 302, 307 können in einem Block 309 kombiniert sein, der eine kombinierte DMA-Funktionalität (Eingang und Ausgang) bereitstellt.
-
Es sei ferner angemerkt, dass die Ausgabe der Verarbeitungsstufe 304 an exakt denselben Ort (dieselben Adressen) des Speichers 301, von dem die jeweilige Eingabe gelesen wurde, geschrieben werden kann. Dies kann für Radaranwendungen, bei denen Rohdaten nur erforderlich sind, um Erststufen-FFT-Daten zu berechnen (woraufhin die Rohdaten nie wieder verwendet würden), effizient sein: somit werden die Erststufen-FFT-Daten über die Rohdaten geschrieben. Dies kann entsprechend auf Höher-Stufen-FFT-Berechnungen anwendbar sein. Es ist ebenfalls eine Option, die Daten im Speicher 301 nicht zu überschreiben, insbesondere die von der Verarbeitungsstufe 304 berechneten Ergebnisse in andere Adressen des Speichers 301 zu schreiben.
-
4 zeigt eine beispielhafte Zuteilung des Speichers 301 (oder zumindest eines Teiles davon). Jeder Eintrag (in diesem Beispiel ein 64-Bit-Wert) im Speicher repräsentiert ein Erststufen-FFT-Ergebnis. Die in 4 verwendeten Eintrag-Bezüge können folgendermaßen übersetzt werden:
- - Der erste Buchstabe (A bis D) gibt die Empfangsantenne an; in diesem Beispiel werden 4 Empfangsantennen verwendet;
- - Die erste Zahl gibt die Anzahl der Rampe an (0 bis 4); in diesem Beispiel wird eine Gesamtanzahl von M=5 Rampen verwendet;
- - Die zweite Zahl gibt die Anzahl der Abtastungen an (innerhalb jeder Rampe für jede Antenne); jede Rampe kann von z.B. 8, 16, 32, 64, 128 oder 256 Abtastungen abgetastet werden.
-
Eine Zweitstufen-FFT wird auf den wie im Speicher 301 gespeicherten Erststufen-FFT-Daten durchgeführt. Um eine derartige Zweitstufen-FFT auf eine effiziente Weise durchzuführen, müssen die Daten, die der Zweitstufen-FFT unterworfen werden, der Verarbeitungsstufe 304 allerdings auf eine lineare Weise zugeführt werden. Zu diesem Zwecke wird von der DMA-Engine 302 auf den Speicher 301 zugegriffen und der Eingangspuffer 303 wird mit den linearen Daten beliefert, die zum effizienten Durchführen der Zweitstufen-FFT (durch die Verarbeitungsstufe 304) erforderlich sind.
-
Lesezugriff auf den Speicher 301 wird mit einer bestimmten Breite (z.B. 256 Bit) durchgeführt, was in dem in 4 gezeigten Beispiel zum Lesen von vier Einträgen (jedes zu 64 Bit) im Speicher führt. Diese vier Einträge werden in den FIFO-Speicher 305 eingelesen und in dem Eingangspuffer 303 in transponierter Form gespeichert. Als eine Option kann ein derartiges Transponieren auch vorgenommen werden, wenn der FIFO-Speicher 305 aus dem Speicher 301 befüllt wird.
-
5 visualisiert den 256 Bit-Lesezugriff auf Daten der Antenne A (über die Rampen hinweg) und sie zeigt wie der Eingangspuffer 303 befüllt wird, wodurch transponierte Daten bereitgestellt werden. Der FIFO-Speicher 305 kann in diesem Beispiel vier FIFO-Zellen mit jeweils der Größe von 256 Bit aufweisen. So kann der Inhalt von 4 Lesezugriffen auf den Speicher 301 in dem FIFO-Speicher 305 gespeichert werden (durch einen Rahmen 501 angedeutet). Die einzelnen FIFO-Zellen des FIFO-Speichers 305 werden, wie in 5 gezeigt, verarbeitet: Die erste FIFO-Zelle umfasst die Einträge A00, A01, A02 und A03. Diese Einträge werden in transponierter Form in den Eingangspuffer 303 geschrieben (deshalb wird die Zeile in der FIFO-Zelle zu einer Spalte im Eingangspuffer 303). Danach wird die nächste Zeile im FIFO-Speicher 305 verarbeitet; zusätzlich kann eine zusätzliche Zeile aus dem Speicher 301 in den FIFO-Speicher 305 gelesen werden (d.h., dass sich der Rahmen 501 eine Zeile herunter bewegt). Dieser Ansatz wird weitergeführt bis der Eingangspuffer 303 gefüllt ist. Die Verarbeitungsstufe 304 ist derart ausgelegt, dass sie den Eingangspuffer 303 effizient zeilenweise verarbeitet. Folglich wird der FIFO-Speicher 305 verwendet, um den Eingangspuffer 303 zu füllen, so dass effizientes Verarbeiten an der Verarbeitungsstufe 304 unterstützt wird.
-
Es sei angemerkt, dass Null-Stopfen verwendet werden kann, um die leeren Einträge aufzufüllen. In dem Beispiel von 4 und 5 werden acht Werte von der Verarbeitungsstufe 305 verarbeitet, wohingegen nur 5 Rampen verfügbar sind. In diesem Fall kann Null-Stopfen für die verbliebenen drei Einträge verwendet werden.
-
Es sei angemerkt, dass der Lesezugriff auf den Speicher 301 auf aufeinanderfolgende Einträge oder zu Einträgen, die einen vordefinierten Versatz aufweisen, gerichtet werden kann.
-
In dem Beispiel von 4 wird der Eingangspuffer 303 so mit Einträgen aus dem Speicher 301 befüllt, dass in der Verarbeitungsstufe 304 effizient eine Zweitstufen-FFT durchgeführt werden kann. Dies kann Teil einer Geschwindigkeitsberechnung der Radardaten sein. Mit der 256 Bit breiten Leseoperation werden jeweils vier Einträge des Speichers 301 gelesen für
- - jede Antenne A bis D,
- - jede Rampe 0 bis 4.
-
Dann wird die Basisadresse geändert (um 4 erhöht), so dass eine nachfolgende 256 Bit breite Leseoperation zu den nächsten vier Einträgen geleitet wird und derselbe, oben beschriebene Mechanismus anwendbar ist (d.h. für jede Antenne, für jede Rampe).
-
Es ist ebenfalls eine Option, nicht jede Rampe zu verarbeiten, sondern stattdessen nur jede nte Rampe.
-
Eine weitere Option kann das Verarbeiten jeder Antenne sein, z.B. für Winkelberechnungszwecke: Die 256 Bit breite Leseoperation wird jeweils auf vier Einträge des Speichers 301 gerichtet für
- - jede Rampe 0 bis 4,
- - jede Antenne A bis D.
-
Als nächstes kann die Basisadresse darauf eingestellt werden, wie oben beschrieben, den nächsten Satz von Einträgen aus dem Speicher 301 zu lesen.
-
Die präsentierte Lösung ermöglicht insbesondere das effiziente Verwenden breiten Speicherzugriffs, wobei bei jedem Speicherzugriff mehr als ein Operand (Eintrag) gelesen wird. Dies ist insbesondere im Falle, dass die gelesenen Operanden zu den selben Plätzen im Speicher zurück geschrieben werden sollen, anwendbar. Dies kann im Falle von Lese-, Modifikations- und Schreib-Operationen zu Speicherplätzen, die ECC-geschützte Plätze sind (ECC: Error Correcting Code - Fehlerkorrektucode), die gemieden werden müssen, vorteilhaft sein.
-
Die Verarbeitungsstufe 304 erfordert Streuzugriff auf die im Speicher 301 gespeicherten Daten. Es kann viele Motivationen für solchen Streuzugriff geben; ein Beispiel ist eine Zweitstufen-FFT, die Eingabe-Operanden aus dem Speicher benötigt, die noch nicht auf eine lineare Weise aufgereiht sind, um der Zweitstufen-FFT zu erlauben, effizient als eine Verarbeitungsstufe zu arbeiten. Die Verarbeitungsstufe kann am zeiteffizientesten arbeiten, wenn eine gewisse Anzahl von Eingabe-Operanden, z.B. 256, hintereinander über den Puffer bereitgestellt wird, wohingegen einzelne Leseoperationen, die zu Adressen geleitet sind, die über den Speicher hinweg verstreut sind, und das Verarbeiten der einzelnen Leseergebnisse durch die Verarbeitungsstufe, eher ineffizient sein würden.
-
Der hier beschriebene Speicherzugriff kann vorteilhafterweise derart optimiert werden, dass alle Operanden, die über eine Leseoperation erhalten werden, verwendet werden und kein derartiger Operand verworfen werden muss. Ein weiterer Vorteil ist, dass Speicherschreibtransfer voller Breite verwendet wird, was insbesondere beim Verwenden von ECC vorteilhaft ist.
-
Hier präsentierte Beispiele ermöglichen das Lesen mehrerer Operanden aus dem Speicher und das Schreiben der Ergebnisse der Verarbeitungsstufe zu diesem Teil des Speichers (oder, als eine Alternative, zu einem anderen Teil dieses oder eines separaten Speichers). Somit erlaubt der präsentierte Ansatz volle Flexibilität beim Verwenden von mindestens einem Speicher in Kombination mit der Verarbeitungsstufe.
-
Zum Beispiel kann eine Adresse Dest auf der Basis der folgenden Formel berechnet werden:
wobei
- Base
- eine Basisadresse ist;
- C
- ein Zähler ist;
- O
- ein Offset ist;
- S
- sich auf ein(e) Abtastungs- (oder Fach-) Schleife bezieht;
- R
- sich auf eine innere Schleife bezieht, die als Antennenschleife oder irgendeine andere Schleife verwendet werden kann; und
- A
- sich auf eine äußere Schleife bezieht, die als Rampenschleife oder irgendeine andere Schleife verwendet werden kann.
-
Demnach wird die Adresse Dest auf der Basis einer Basisadresse in Kombination mit drei Schleifen bestimmt, einer Abtastschleife, einer Rampenschleife und einer Antennenschleife. Jede Schleife umfasst einen Zähler und einen Offset.
-
Die DMA-Engine kann FIFO-Speicher umfassen, um Datenlesesoperationen mit voller Breite aus dem Speicher und/oder Datenschreiboperationen mit voller Breite in den Speicher zu unterstützen.
-
Eine Transponieroperation kann auf den gelesenen Daten entweder, wenn Radardaten aus dem Speicher gelesen und Füllen des FIFO-Speichers durchgeführt werden oder wenn der Puffer gefüllt wird, durchgeführt werden. Die inverse Transponieroperation kann entweder vor dem Schreiben der Radardaten in den Speicher durch Füllen des FIFO-Speichers durchgeführt werden oder durch Füllen des Puffers.
-
Eine Ausgangs-DMA-Engine kann die Adressensabfolge, die für die Eingangs-DMA-Engine verwendet wurde, duplizieren, um die Ergebnisse an denselben Ort zu schreiben, von dem sie zuvor gelesen wurden. Dies verwendet den Speicherplatz auf eine effiziente Weise. Die DMA-Engine kann mindestens einen FIFO-Speicher umfassen, insbesondere mindestens eine FIFO-Zelle.
-
Hier beschriebene Beispiele legen insbesondere eine DMA-Engine nahe, die mindestens einen FIFO-Speicher verwendet (der mehrere FIFO-Zellen umfasst). Der mindestens eine FIFO-Speicher kann mit der DMA-Engine verbunden sein. Der mindestens eine FIFO-Speicher kann ein Teil der DMA-Engine sein.
-
Die präsentierte Lösung ermöglicht aufgrund der verringerten Anzahl von Speicherzugriffen eine höhere Leistungsfähigkeit des Radarsystems und eine verminderte Leistungsaufnahme.
-
Die hier vorgeschlagenen Beispiele können insbesondere auf mindestens einer der folgenden Lösungen basieren. Insbesondere können Kombinationen der folgenden Merkmale verwendet werden, um ein gewünschtes Ergebnis zu erreichen. Die Merkmale des Verfahrens könnten mit (einem) beliebigen anderen Merkmal(en) der Einrichtung, der Vorrichtung oder des Systems oder umgekehrt kombiniert werden.
-
Eine Vorrichtung zum Verarbeiten von Radarsignalen wird bereitgestellt, wobei die Vorrichtung Folgendes umfasst:
- - eine DMA-Engine,
- - einen Puffer,
- - eine Verarbeitungsstufe,
- - wobei die DMA-Engine ausgelegt ist zum
- - Durchführen eines Lesezugriffs auf einen Speicher, wobei ein derartiger Lesezugriff mindestens zwei Dateneinträge umfasst, und
- - Füllen des Puffers durch Umsortieren der mindestens zwei Dateneinträge,
- - wobei die Verarbeitungsstufe zum Verarbeiten der in dem Puffer gespeicherten Daten ausgelegt ist.
-
Das Radarsignal kann irgendein Signal sein (z.B. Abtast-, Roh- oder verarbeitete Daten), das auf einem Signal basiert, das von mindestens einer Empfangsantenne empfangen wird.
-
Die DMA-Engine erlaubt direkten Speicherzugriff zu einem Speicher, der Teil der Vorrichtung oder außerhalb der Vorrichtung sein kann. Der Puffer ist ein Speicher, der das Aufreihen von Daten derart ermöglicht, dass sie auf eine effiziente Weise von der Verarbeitungsstufe verarbeitet werden können. Der Puffer kann Teil der Verarbeitungsstufe sein oder er kann außerhalb der Verarbeitungsstufe bereitgestellt sein.
-
Somit können, basierend auf der Breite des Lesezugriffs, mehrere Dateneinträge auf einmal ausgelesen werden. Diese Dateneinträge können allerdings in dieser Reihenfolge keiner linearen Verarbeitung durch die Verarbeitungsstufe unterzogen werden. Stattdessen können die Dateneinträge abhängig von anderen Strömen sein, die von der Verarbeitungsstufe verarbeitet werden sollen. Somit ermöglicht die DMA-Engine das Umsortieren dieser Dateneinträge, so dass sie zum Beispiel Teil verschiedener Ströme werden. Jeder Strom kann eine Abfolge von Einträgen sein, die effizient von der Verarbeitungsstufe verarbeitet werden können. Somit kann ein derartiges Umsortieren durch Speichern der mindestens zwei Dateneinträge im Puffer in einer transponierten Form erreicht werden.
-
Es kann eine Option sein, dass das von der DMA-Engine bereitgestellte Umsortier-Merkmal freigeschaltet oder blockiert sein kann.
-
In einer Ausführungsform ist die DMA-Engine ausgelegt zum Auffüllen des Puffers durch Speichern der mindestens zwei Dateneinträge in transponierter Form.
-
Der Ausdruck „in transponierter Form“ kann sich insbesondere auf das Speichern von Dateneinträgen beziehen, die aneinander angrenzten, so dass sie Teil verschiedener Verarbeitungsströme werden, wobei jeder Verarbeitungsstrom getrennt durch die Verarbeitungsstufe durchgeleitet wird.
-
In einer Ausführungsform umfasst die DMA-Engine mindestens einen FIFO-Speicher, wobei die DMA-Engine ausgelegt ist zum Auffüllen des Puffers durch Umsortieren der mindestens zwei Dateneinträge über den mindestens einen FIFO-Speicher.
-
Es sei angemerkt, dass das Transponieren der mindestens zwei Dateneinträge ausgeführt werden kann, wenn der FIFO-Speicher aus dem Speicher aufgefüllt wird oder wenn der Puffer aus dem FIFO-Speicher aufgefüllt wird.
-
Es kann eine Option sein, durch Auswählen der Anzahl von aktiven FIFO-Speichern (oder FIFO-Zellen, für den Fall, dass ein FIFO-Speicher mehrere auswählbare FIFO-Zellen aufweist), verschiedene Anzahlen von Dateneinträgen zu handhaben.
-
In einer Ausführungsform umfasst die Verarbeitungsstufe mindestens eines der Folgenden:
- - eine FFT-Verarbeitungsstufe,
- - eine Fensterungsstufe,
- - eine Strahlformungsstufe,
- - eine Verarbeitungsstufe, die kohärente Integration bereitstellt,
- - eine Verarbeitungsstufe, die nicht-kohärente Integration bereitstellt,
- - eine Verarbeitungsstufe, die lokale Maximumsuchen durchführt,
- - eine Verarbeitungsstufe, die Statistiken bereitstellt.
-
In einer Ausführungsform umfasst
- - die DMA-Engine eine Eingangs-DMA-Engine und eine Ausgangs-DMA-Engine,
- - der Puffer einen Eingangspuffer und einen Ausgangspuffer,
- - wobei die Eingangs-DMA-Engine ausgelegt ist zum
- - Durchführen eines Lesezugriffs auf den Speicher, wobei ein derartiger Lesezugriff mindestens zwei Dateneinträge umfasst, und
- - Füllen des Eingangspuffers durch Umsortieren der mindestens zwei Dateneinträge,
- - wobei die Verarbeitungsstufe ausgelegt ist zum Verarbeiten der in dem Eingangspuffer gespeicherten Daten und zum Schreiben von Ergebnissen der Verarbeitungsstufe in den Ausgangspuffer,
- - wobei die Ausgangs-DMA-Engine ausgelegt ist zum
- - Durchführen eines Schreibzugriffs auf den Speicher, wobei ein derartiger Schreibzugriff das Speichern von mindestens zwei Dateneinträgen aus dem Ausgangspuffer in den Speicher umfasst.
-
Es ist insbesondere eine Option, dass die von der Verarbeitungsstufe bestimmten Ergebnisse an genau derselben Stelle der als Eingabe dienenden Dateneinträge gespeichert werden.
-
In einer Ausführungsform umfasst die Vorrichtung ferner den Speicher.
-
Auch wird ein Verfahren zum Verarbeiten von Radarsignalen vorgeschlagen, wobei das Verfahren die folgenden Schritte umfasst:
- (a) Durchführen eines Lesezugriffs auf einen Speicher, wobei ein derartiger Lesezugriff mindestens zwei Dateneinträge umfasst,
- (b) Füllen eines Puffers durch Umsortieren der mindestens zwei Dateneinträge,
- (c) Verarbeiten des Inhalts des Puffers durch eine Verarbeitungsstufe.
-
Die Dateneinträge des Lesezugriffs können auf der Breite des Lesezugriffs basieren. Solch ein Lesezugriff kann zu 256 Bit führen, die vier angrenzende 64 Bit Dateneinträge umfassen.
-
In einer Ausführungsform können der Schritt (a) und der Schritt (b) Teil einer Schleife sein, die verarbeitet wird, bis eine Abbruchbedingung erfüllt ist.
-
In einer Ausführungsform basiert die Abbruchbedingung auf mindestens einem der Folgenden:
- - einer Anzahl von Rampen;
- - einer Anzahl von Antennen;
- - einer Anzahl von Abtastungen.
-
In einer Ausführungsform werden der Schritt (a) und der Schritt (b) von einer DMA-Engine durchgeführt.
-
In einer Ausführungsform umfasst das Auffüllen des Puffers durch Umsortieren das Folgende: Auffüllen des Puffers durch Speichern der mindestens zwei Dateneinträge in transponierter Form.
-
In einer Ausführungsform umfasst das Verfahren ferner das Folgende:
- (d) Schreiben der Ergebnisse der Verarbeitungsstufe in einen Ausgangspuffer,
- (e) Durchführen eines Schreibzugriffs auf den Speicher, wobei ein derartiger Schreibzugriff das Speichern von mindestens zwei Dateneinträgen aus dem Ausgangspuffer in den Speicher umfasst.
-
In einer Ausführungsform wird der Schritt (e) durch die DMA-Engine durchgeführt.
-
Auch wird eine Vorrichtung zum Verarbeiten von Radarsignalen vorgeschlagen, wobei die Vorrichtung Folgendes umfasst:
- - Mittel zum Durchführen eines Lesezugriffs auf einen Speicher, wobei ein derartiger Lesezugriff mindestens zwei Dateneinträge umfasst,
- - Mittel zum Füllen eines Puffers durch Umsortieren der mindestens zwei Dateneinträge,
- - Mittel zum Verarbeiten des Inhalts des Puffers durch eine Verarbeitungsstufe.
-
Ein Computerprogrammprodukt wird bereitgestellt, das direkt in einen Speicher einer digitalen Rechenvorrichtung ladbar ist, das Softwarecodeteile zum Durchführen der wie hier beschriebenen Schritte des Verfahrens umfasst.
-
Ein Radarsystem wird vorgeschlagen, das mindestens eine Vorrichtung umfasst, wie sie hier beschrieben ist.
-
In einem oder mehreren Beispielen können die hier beschriebenen Funktionen zumindest teilweise in Hardware implementiert sein, wie etwa als spezielle Hardwarekomponenten oder als ein Prozessor. Allgemeiner können die Techniken in Hardware, Prozessoren, Software, Firmware oder einer beliebigen Kombination dieser implementiert sein. Wenn in Software implementiert, können die Funktionen in einer oder mehreren Anweisungen oder Code auf einem computerlesbaren Medium gespeichert oder über ein solches übertragen sein und können von einer hardwarebasierten Verarbeitungseinheit ausgeführt werden. Computerlesbare Medien können computerlesbare Speichermedien beinhalten, die einem greifbaren Medium entsprechen, wie etwa Datenspeichermedien, oder Kommunikationsmedien einschließlich jeglichen Mediums, das ein Übertragen eines Computerprogramms von einer Stelle zu einer anderen, z.B. gemäß einem Kommunikationsprotokoll, erleichtert. Auf diese Weise können computerlesbare Medien allgemein (1) greifbaren computerlesbaren Speichermedien, die nicht vergänglich sind, oder (2) einem Kommunikationsmedium, wie etwa einem Signal oder einer Trägerwelle, entsprechen. Datenspeichermedien können irgendwelche verfügbaren Medien sein, auf die von einem oder mehreren Computern oder von einem oder mehreren Prozessoren zugegriffen werden kann, um Anweisungen, Code und/oder Datenstrukturen zur Implementierung der in dieser Offenbarung beschriebenen Techniken abzurufen. Ein Computerprogrammprodukt kann ein computerlesbares Medium beinhalten.
-
Auf beispielhaftem Wege und nicht durch Beschränkung können derartige computerlesbare Speichermedien RAM, ROM, EEPROM, CD-ROM oder andere optische Plattenspeicher, magnetische Plattenspeicher oder andere magnetische Speichervorrichtungen, Flash-Speicher oder jegliches anderes Medium, das zum Speichern gewünschten Programmcodes in der Form von Anweisungen oder Datenstrukturen verwendet werden kann und auf das von einem Computer zugegriffen werden kann, umfassen. Ebenfalls ist jede Verbindung genau als ein computerlesbares Medium, d.h. als ein computerlesbares Übertragungsmedium, bezeichnet. Wenn zum Beispiel Anweisungen von einer Website, einem Server oder anderen abgesetzten Quellen unter Verwendung von Koaxialkabeln, Glasfaserkabeln, verdrillten Paaren, digitalen Teilnehmerleitungen (DSL) oder drahtlosen Technologien, wie etwa Infrarot, Funk, und Mikrowellen übertragen werden, dann sind Koaxialkabel, Glasfaserkabel, verdrillte Paare, DSL oder drahtlose Technologien, wie etwa Infrarot, Funk und Mikrowellen in der Definition von Medium eingeschlossen. Es versteht sich allerdings, dass computerlesbare Speichermedien und Datenspeichermedien keine Verbindungen, Trägerwellen, Signale oder andere transiente Medien beinhalten, sondern stattdessen auf nicht-transiente, greifbare Speichermedien abzielen. Disk und Disc beinhalten, so wie sie hier verwendet werden, eine Compact Disc (CD), eine Laser Disc, eine optische Disc, eine Digital Versatile Disc (DVD), eine Floppy-Disk und eine Blu-ray Disc, wobei Disks Daten gewöhnlicherweise magnetisch reproduzieren, wohingegen Discs Daten optisch mit Lasern reproduzieren. Kombinationen des Obigen sollten ebenfalls innerhalb des Wesens von computerlesbaren Medien eingeschlossen sein.
-
Anweisungen können von einem oder mehreren Prozessoren ausgeführt werden, wie etwa von einer oder mehreren zentralen Recheneinheiten (central processing units - CPUs), Digitalen Signalprozessoren (DSPs), Allzweck-Mikroprozessoren, anwendungsspezifischen integrierten Schaltungen (application specific integrated circuits - ASICs), feldprogrammierbaren Logikgattern (field programmable logic arrays - FPGAs), oder anderen äquivalenten integrierten oder diskreten Logikschaltungen. Demnach kann sich der Ausdruck „Prozessor“, so wie er hier verwendet wird, auf irgendeine der vorhergehenden Struktur oder beliebige andere für Implementation der hier beschriebenen Techniken geeignete Struktur beziehen. Zusätzlich kann die hier beschriebene Funktionalität in manchen Aspekten innerhalb dedizierter Hardware- und/oder Software-Module bereitgestellt sein, die ausgelegt sind zum Codieren und Decodieren oder in einem kombinierten Codec realisiert sind. Auch könnten die Techniken vollständig in einer oder mehreren Schaltungen oder Logikelementen implementiert sein.
-
Die Techniken dieser Offenbarung können in einer breiten Vielfalt von Geräten und Vorrichtungen implementiert werden, einschließlich einem drahtlosen Handapparat, einer integrierten Schaltung (IC) oder einem Satz von ICs (z.B. einem Chip-Set). Verschiedene Komponenten, Module oder Einheiten werden in dieser Offenbarung beschrieben, um funktionale Aspekte von Einrichtungen zu betonen, die dafür ausgelegt sind, die offenbarten Techniken durchzuführen, aber nicht notwendigerweise eine Realisierung durch verschiedene Hardwareeinheiten erfordern. Eher können, wie oben beschrieben, verschiedene Einheiten in einer einzigen Hardwareeinheit kombiniert oder durch eine Ansammlung von interoperativen Hardwareeinheiten bereitgestellt werden, einschließlich, wie oben beschrieben, eines oder mehrerer Prozessoren zusammen mit geeigneter Software und/oder Firmware.