DE112018001060T5 - Ein systolisches Prozessorsystem für ein System zur Lichtlaufzeitmessung - Google Patents

Ein systolisches Prozessorsystem für ein System zur Lichtlaufzeitmessung Download PDF

Info

Publication number
DE112018001060T5
DE112018001060T5 DE112018001060.0T DE112018001060T DE112018001060T5 DE 112018001060 T5 DE112018001060 T5 DE 112018001060T5 DE 112018001060 T DE112018001060 T DE 112018001060T DE 112018001060 T5 DE112018001060 T5 DE 112018001060T5
Authority
DE
Germany
Prior art keywords
photon
array
time
systolic
roic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112018001060.0T
Other languages
English (en)
Inventor
Peter Ferdinand Zalud
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SRI International Inc
Original Assignee
SRI International Inc
Stanford Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SRI International Inc, Stanford Research Institute filed Critical SRI International Inc
Publication of DE112018001060T5 publication Critical patent/DE112018001060T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/48Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
    • G01S7/483Details of pulse systems
    • G01S7/486Receivers
    • G01S7/4861Circuits for detection, sampling, integration or read-out
    • G01S7/4863Detector arrays, e.g. charge-transfer gates
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01LMEASURING FORCE, STRESS, TORQUE, WORK, MECHANICAL POWER, MECHANICAL EFFICIENCY, OR FLUID PRESSURE
    • G01L1/00Measuring force or stress, in general
    • G01L1/24Measuring force or stress, in general by measuring variations of optical properties of material when it is stressed, e.g. by photoelastic stress analysis using infrared, visible light, ultraviolet
    • G01L1/241Measuring force or stress, in general by measuring variations of optical properties of material when it is stressed, e.g. by photoelastic stress analysis using infrared, visible light, ultraviolet by photoelastic stress analysis
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/02Systems using the reflection of electromagnetic waves other than radio waves
    • G01S17/06Systems determining position data of a target
    • G01S17/08Systems determining position data of a target for measuring distance only
    • G01S17/10Systems determining position data of a target for measuring distance only using transmission of interrupted, pulse-modulated waves
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/48Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
    • G01S7/481Constructional features, e.g. arrangements of optical elements
    • G01S7/4816Constructional features, e.g. arrangements of optical elements of receivers alone

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Electromagnetism (AREA)
  • Optical Radar Systems And Details Thereof (AREA)

Abstract

Eine ROIC kann die systolische Verarbeitung der Lichtdetektoren ausführen.Die ROIC führt die systolische Verarbeitung der Lichtdetektoren aus, um wenigstens zu erfassen: i) wann, in Zeiteinheiten, ein ursprüngliches Photon seines reflektierten Lichtimpulses durch jeden der Lichtdetektoren in dem Array erfasst wird, ii) wo sich das Photon geografisch in Form von Spalten- und Zeilenadresse des Lichtdetektors, der das Photon erfasst, im Array befindet, iii) Scannen der durch die Lichtdetektoren erfassten Daten, und zwar wann in Zeiteinheiten und wo geografisch das Photon in einem gegebenen Lichtdetektor im Array erfasst wurde, und dann iv) Analysieren der Daten zu Wann und Wo mit einem Algorithmus, um exakt zu erkennen, wann genau, in Form von Zeiteinheiten, das Photon im Verhältnis zum Eingangssignal vom Taktschaltkreis erfasst wurde, um die Merkmale eines Objekts zu bestimmen.

Description

  • QUERVERWEISE
  • Diese Patentanmeldung erhebt Anspruch auf Priorität gemäß 35 USC 119 zur US-amerikanischen provisorischen Patentanmeldung SN 62/465,040 unter dem Titel „SYSTOLISCHER PROZESSOR FÜR FOKALEBENEN-GEIGER-MODUS-APD-ARRAYS“, eingereicht am 28. Febr. 2017, deren Offenlegung hier durch Bezugnahme in ihrer Gesamtheit einbezogen ist.
  • RECHTE DER US-REGIERUNG
  • Diese Erfindung wurde mit staatlicher Unterstützung im Rahmen des Vertrags Nr. HR0011-13-C-0045, vergeben durch die Defense Advanced Research Projects Agency, gemacht. Die US-Regierung besitzt bestimmte Rechte an dieser Erfindung. Die US-Regierung besitzt bestimmte Rechte an dieser Erfindung.
  • GEBIET DER TECHNIK
  • Die Ausführungsformen dieser Offenlegung beziehen sich allgemein auf ein systolisches Prozessorsystem für ein System zur Lichtlaufzeitmessung. Insbesondere bezieht sich eine Ausführungsform auf ein systolisches Prozessorsystem für ein LiDAR-System zur Schaffung einer besseren Anzeige mit höherer Auflösung für Laufzeitmessungen.
  • ÜBERSICHT
  • Hier können verschiedene Verfahren, Vorrichtungen und Systeme für ein System zur Messung von Merkmalen eines oder mehrerer Gegenstände mit einem oder mehreren Lichtimpulsen zur Verfügung gestellt werden.
  • In einer Ausführungsform wird die systolische Verarbeitung für ein System zur Lichtlaufzeitmessung eingesetzt, um eine bessere Anzeige mit höherer Auflösung für z. B. Laufzeitmessungen zu erhalten. Eine Empfangsschaltung weist eine integrierte Ausleseschaltung (ROIC), die einen oder mehrere Lichtdetektoren enthält, wie z. B. Avalanche-Photodioden (APD), auf, die in einem Array angeordnet sind, das mit einem Taktschaltkreis zusammenwirkt. Die integrierte Ausleseschaltung ist dafür ausgelegt, wenigstens eine Laufzeit beginnend an einem ersten Bezugszeitpunkt und an einem zweiten Referenzpunkt zu messen. Jede Zeile des Arrays kann aus einer Vielzahl von Lichtdetektoren und dazugehörigen Registern bestehen.
  • Die ROIC führt die systolische Verarbeitung der Lichtdetektoren aus. Die ROIC führt die systolische Verarbeitung der Lichtdetektoren aus, um wenigstens zu erfassen: i) wann, in Zeiteinheiten, ein ursprüngliches Photon seines reflektierten Lichtimpulses durch jeden der Lichtdetektoren in dem Array erfasst wird, ii) wo sich das Photon geografisch im Array befindet, iii) Scannen der durch die Lichtdetektoren erfassten Daten und dann iv) Analysieren der gescannten Daten mit einem Algorithmus, um zu erkennen, wann in Form von Zeiteinheiten das Photon im Verhältnis zum Eingangssignal vom Taktschaltkreis erfasst wurde, um die Merkmale eines Objekts mit außerordentlich präziser Auflösung festzustellen, wie z. B. das Maß der Laufzeit.
  • Figurenliste
  • Die Zeichnungen beziehen sich auf einige Ausführungsformen der hier zur Verfügung gestellten Konstruktion, wobei:
    • 1 ein Blockdiagramm einer Ausführungsform eines als Beispiel angeführten Systems zur Lichtlaufzeitmessungveranschaulicht, um die Merkmale eines oder mehrerer Gegenstände mit einem oder mehreren Lichtimpulsen mit einer systolisch verarbeitenden integrierten Ausleseschaltung (ROIC) zu messen und um eine bessere Anzeige mit höherer Auflösung für z. B. Laufzeitmessungen zu erhalten.
    • Die Diagramme 2a bis 2g eine Ausführungsform einer als Beispiel angeführten systolischen Verarbeitung für eine ROIC in einem asynchronen Betrieb darstellen.
    • 3A und 3B Blockdiagramme einer Ausführungsform der systolisch verarbeitenden ROIC veranschaulichen.
    • 4 ein Blockdiagramm einer Ausführungsform von Abschnitten eines als Beispiel angeführten systolischen Prozessorelementsveranschaulicht.
    • 5 eine Ausführungsform eines oder mehrerer Computergeräte veranschaulicht, die ein Teil des systolischen Prozessorsystems für ein System zur Lichtlaufzeitmessung sein können.
  • Während die Konstruktion verschiedenen Modifikationen, Äquivalenten und alternativen Formen unterliegt, wurden spezifische Ausführungsformen derselben als Beispiel in den Zeichnungen angeführt und werden nunmehr im Einzelnen beschrieben. Es ist klarzustellen, dass die Konstruktion nicht auf die offengelegten einzelnen Ausführungsformen begrenzt ist, sondern im Gegensatz dazu die Absicht darin besteht, alle Modifikationen, Äquivalente und alternativen Formen mittels der spezifischen Ausführungsformen abzudecken.
  • BESCHREIBUNG
  • In der folgenden Beschreibung können zahlreiche spezifische Einzelheiten aufgeführt sein, wie z. B. Beispiele spezifischer Datensignale, benannte Bauteile, Anzahl von Rahmen usw., um für ein profundes Verständnis der vorliegenden Konstruktion zu sorgen. Es ist jedoch für Fachleute der Technik offensichtlich, dass die vorliegende Konstruktion ohnediese spezifischen Einzelheiten ausgeführt werden kann. In anderen Fällen wurden allgemein bekannte Bauteile oder Verfahren nicht im Einzelnen, sondern in einem Blockdiagramm beschrieben, um die vorliegende Konstruktion nicht durch unnötige Einzelheiten unverständlich zu machen. Ferner können spezifische numerische Verweise gemacht werden, wie z. B. das erste Computergerät. Der spezifische numerische Verweis ist jedoch nicht als eine wörtliche Reihenfolge auszulegen, sondern dass sich das erste Computergerät von einem zweiten Computergerät unterscheidet. Daher können die aufgeführten spezifischen Einzelheiten nur rein exemplarisch sein. Es kann von den spezifischen Einzelheiten abgewichen werden und dennoch gilt dies als innerhalb des Sinns und Bereichs der vorliegenden Konstruktion. Der Begriff „gekoppelt“ ist so definiert, dass er entweder als direkt mit dem Bauteil verbunden oder indirekt durch ein anderes Bauteil mit dem Bauteil verbunden bedeutet.
  • Allgemein werden eine oder mehrere Ausführungsformen eines Systems zur Lichtlaufzeitmessung erläutert, die eine ROIC verwenden, die einen oder mehrere Lichtdetektoren enthält, die in einem Array angeordnet sind und mit einem Taktschaltkreis zusammenwirken. Die ROIC kann die systolische Verarbeitung der Lichtdetektoren ausführen. Die ROIC führt die systolische Verarbeitung der Lichtdetektoren aus, um wenigstens zu erfassen: i) wann, in Zeiteinheiten, ein ursprüngliches Photon seines reflektierten Lichtimpulses durch jeden der Lichtdetektoren in dem Array erfasst wird, ii) wo sich das Photon geografisch in Form von Spalten- und Zeilenadresse des Lichtdetektors, der das Photon erfasst, im Array befindet, iii) Scannen der durch die Lichtdetektoren erfassten Daten, und zwar wenigstens wann in Zeiteinheiten und wo geografisch das Photon in einem gegebenen Lichtdetektor im Array erfasst wurde, und dann iv) Analysieren der Daten zu Wann und Wo mit einem Algorithmus, um exakt zu erkennen, wann genau, in Form von Zeiteinheiten, das Photon im Verhältnis zum Eingangssignal vom Taktschaltkreis erfasst wurde.
  • Drei wichtige Punkte: 1) Allgemein bestand in vorherigen ROIC-Architekturen eine Notwendigkeit der tatsächlichen Zeitangabe bei jedem Pixel. Das heißt, die Verlustleistung steigt linear mit der Anzahl der Pixel. Stattdessen teilen sich in dieser Konstruktion zwei oder mehrere Zeilen der systolischen Prozessorelemente einen gemeinsamen Timer, der die Zeiteinheiten verfolgt. 2) Außerdem müssen in vorherigen ROIC-Architekturen die Laufzeit-Zähler den Takt für die Dauer des Zählzyklus beibehalten und dann unbegrenzt weiterzählen. Daher laufen sie gelegentlich über und übergeordnete „Zeiten“ müssen außerhalb der ROIC gehalten werden oder sie müssen viel länger sein, was weiterhin die Verlustleistung und das von der ROIC generierte Datenvolumen steigert. 3) Außerdem besteht in vorherigen ROIC-Architekturen eine Totzeitverzögerung, wie z. B. mehrere Betriebszyklen, zwischen der Erfassung der Erkennung eines Photons und dem Zeitpunkt, an dem dieses Pixel ein weiteres Photon an dieser Stelle erkennen kann. Stattdessen kann bei dieser Konstruktion ein Set aus Lichtdetektor und seinem dazugehörigen Register das ursprüngliche Photon erkennen, das vom Ziel zu dieser geografischen Stelle im Array zurückkehrt, und dann ist zu Beginn des nächsten Zyklus dieses Set aus Lichtdetektor und seinem dazugehörigen Register in der Lage, ein anderes Photon zu erkennen, das vom Ziel zu dieser geografischen Stelle im Array zurückkehrt. Die systolische Verarbeitung der Lichtdetektoren reduziert die Totzeit der ROIC bei der Aufzeichnung der Laufzeitdaten durch Erfassen eines Photons für diesen Lichtdetektor und sein dazugehöriges Register im Array, was zu einer höheren Auflösung durch das Erkennen der reflektierten Lichtimpulse führt.
  • 1 veranschaulicht ein Blockdiagramm einer Ausführungsform eines als Beispiel angeführten Systems zur Lichtlaufzeitmessung, um die Merkmale eines oder mehrerer Gegenstände mit einem oder mehreren Lichtimpulsen mit einer systolisch verarbeitenden integrierten Ausleseschaltung (ROIC) zu messen und um eine bessere Anzeige mit höherer Auflösung für z. B. Laufzeitmessungen zu erhalten.
  • Das System zur Lichtlaufzeitmessung (100), wie z. B. ein LiDAR-System, misst die Merkmale eines oder mehrerer Gegenstände, wie z. B. Entfernungen, durch Messen einer Zeit einschließlich einer Laufzeitmessung mit einem oder mehreren Lichtimpulsen und den erkannten reflektierten Photonen. Ein oder mehrere Laser erzeugen den einen oder mehrere Lichtimpulse. Eine oder mehrere Kameras erkennen Photonen in den von einem oder mehreren Zielobjekten reflektierten Lichtimpulsen.
  • Eine Empfangsschaltung weist eine ROIC auf, die einen oder mehrere Lichtdetektoren enthält, wie z. B. Avalanche-Photodioden (APD), die in einem Array angeordnet sind, das mit einem Taktschaltkreis zusammenwirkt. Die ROIC ist dafür ausgelegt, wenigstens eine Laufzeit der reflektierten Lichtimpulse unter Verwendung eines Eingangssignals vom Taktschaltkreis zu messen und dann die Laufzeit beginnend an einem ersten Bezugszeitpunkt und endend an einem zweiten Referenzpunkt zu messen. Der erste Referenzpunkt kann der Zeitpunkt sein, an dem der Impuls anhand der Schätzung des Systems, wann dies eintreten wird, zurückerwartet wird, um ein Rauschen zu entfernen, der Zeitpunkt, an dem ein Laserimpuls den Laser verlässt oder ein anderer Bezugszeitpunkt. Der zweite Referenzpunkt kann sein, wenn ein dazugehöriger Lichtdetektor im Array ein Photon des reflektierten Lichtimpulses erkennt, wenn das System das Abtasten seiner Laufzeit beendet hat oder ein anderer Bezugszeitpunkt. Jede Reihe des Arrays kann aus einer Vielzahl von Lichtdetektoren und dazugehörigen Registern bestehen. Jede Spalte des Arrays kann ebenfalls aus einer Vielzahl von Lichtdetektoren und dazugehörigen Registern bestehen.
  • Die ROIC enthält eine Vielzahl systolischer Prozessorelemente. Jedes systolische Prozessorelement hat seinen eigenen Lichtdetektor und das dazugehörige Register. Jedes systolische Prozessorelement hat zwei Eingangssignale: i) das Ausgangssignal eines systolischen Prozessorelements vom benachbarten systolischen Prozessorelement auf der linken Seite und ii) eine Spaltenadresse des dazugehörigen Pixels im Array, um eine Standort- und Ankunftszeitinformation des erkannten Photons zu übermitteln.
  • Die ROIC führt die systolische Verarbeitung der Lichtdetektoren aus. Die ROIC führt die systolische Verarbeitung der Lichtdetektoren aus, um wenigstens zu erfassen: i) wann, in Zeiteinheiten, ein ursprüngliches Photon seines reflektierten Lichtimpulses durch jeden der Lichtdetektoren in dem Array erfasst wird, ii) wo sich das Photon geografisch in Form von Spalten- und Zeilenadresse des Lichtdetektors, der das Photon erfasst, im Array befindet, iii) Scannen der durch die Lichtdetektoren erfassten Daten, und zwar wann in Zeiteinheiten und wo geografisch das Photon in einem gegebenen Lichtdetektor im Array erfasst wurde, und dann iv) Analysieren der Daten zu Wann und Wo mit einem Algorithmus, um exakt zu erkennen, wann genau, in Form von Zeiteinheiten, das Photon im Verhältnis zum Eingangssignal vom Taktschaltkreis erfasst wurde, um die Merkmale eines Objekts mit außerordentlich genauer Auflösung zu bestimmen, wie z. B. das Maß der Laufzeit.
  • Jedes systolische Prozessorelement kann die systolische Verarbeitung wie folgt ausführen:
    1. i) ohne Photonenerkennung verlaufen die Daten im Array der systolischen Prozessorelement von links nach rechts, und das Array der systolischen Prozessorelemente bildet ein paralleles Schieberegister; und
    2. ii) wenn eine Photonenerkennung eintritt, dann wird die Spaltenadresse des aktivierten Lichtdetektors in dessen systolisches Prozessorelement injiziert und fortlaufend bei jedem nachfolgenden Taktzyklus nach rechts verschoben, bis diese Daten in einem gemeinsamen Puffer für diese Zeile gespeichert werden. Das äußerste linke systolische Prozessorelement (am Eingang zum systolischen Prozessor) hat keinen Nachbarn auf seiner linken Seite und ist dafür ausgelegt, stattdessen seine eigene Spaltenadresse weiterzugeben.
  • Das systolische Prozessorelement, das mit einem nachgeschalteten Analysemodul zusammenwirkt, bestimmt eine tatsächliche Ankunftszeit eines erkannten Photons in Bezug auf eine Zeitdauer des Flugs dieses Photons vom Laser zum Ziel und dann erfolgt die Erkennung des ursprünglichen Photons in der reflektierten Welle im Pixel im Array.
  • Eine weitere Stromquelle versorgt die Laser, den Empfänger, den Taktschaltkreis und die Kameras mit Strom.
  • In einer Ausführungsform kann das LiDAR Entfernungen mit großer Genauigkeit messen (sowohl hinsichtlich Abstand als auch räumlicher Auflösung). LiDAR misst die Entfernungen durch die Messung der Zeit, die ein Lichtimpuls benötigt, um ein Ziel zu erreichen und zurückzukehren. Ein LiDAR weist einen Laser, der kurze Lichtimpulse generiert, und eine Kamera, die die reflektierten Lichtimpulse erkennt und die Laufzeit des Lichts misst, auf. Die Einführung der APD kann durch ihre Fähigkeit, ein einzelnes Photon, das erste Photon, das von einem Ziel zurückkehrt, d. h. das Photon mit dem kürzesten Weg zwischen dem Ziel und dem LiDAR, anstatt eines beliebigen Photons, das durch sekundäre Reflexionen reflektiert wird, zu erkennen, die Leistungsfähigkeit des LiDAR stark verbessern.
  • Diese Konstruktion kann eine systolische Verarbeitungstechnik verwenden, bei der die Timer von jedem Pixel des planaren Geiger-Modus-APD-Array entfernt werden, wodurch der Stromverbrauch erheblich gesenkt und die Schaltung vereinfacht werden, um Arrays mit höherer Dichte zu ermöglichen.
  • Die ROIC kann in zahlreichen Systemen eingesetzt werden, wie hier erläutert wird. Zum Beispiel kann die ROIC in einem Passivhörersystem ohne Sender verwendet werden. Die ROIC kann außerdem in einer Anwendung wie einem Mikroskop eingesetzt werden, wo man Merkmale bestimmt. Mikroskope und ähnliche Geräte haben einen Lichtsender, der die ROIC nutzt, um die Daten zu erhalten und Merkmale wie Größe, chemische Zusammensetzung anhand des zurückkehrenden Lichts oder der Objekterkennung zu bestimmen. Zudem ist das ROIC-Array kompakt. Es ist zu beachten, dass die Abmessungen auf den Abstand zwischen angrenzenden Pixel abgestimmt werden können. Außerdem kann der Fehler durch eine Quench-Schaltung bestimmt werden.
  • Die Diagramme 2a bis 2g stellen eine Ausführungsform einer als Beispiel angeführten systolischen Verarbeitung für eine ROIC 200 in einem asynchronen Betrieb dar. Diese Abbildungen stellen eine Reihenfolge aufeinander folgender Laufzeitwerte für eine 3x3-Pixel-Kachel dar. In den Abbildungen zeigt das erste Rechteck mit dem „C“ einen Lichtdetektor an dieser Spalten- und Zeilenadresse, und das zweite Rechteck ist dessen dazugehöriges Register, das einen Wert speichert. Die dazugehörigen Register weisen darin Zahlen auf, die den Adressenplatz der Spalte darstellen können. Für einen einfacheren Vergleich können diese Rechtecke den in 3A und 3B dargestellten Beispielen entsprechen. Es ist zu beachten, dass in diesen Abbildungen nur ein Laufzeitzähler im unteren Teil nahe des linken Rands des FIFO-Puffers vorhanden ist, das Rechteck mit Feedback-Schalter. Somit können sich die zwei oder mehr Zeilen der systolischen Prozessorelemente einen gemeinsamen Timer, der die Zeiteinheiten verfolgt, teilen.
  • Der Begriff „systolische Verarbeitung“ kann verwendet werden, um eine Klasse von Computerarchitekturen zu beschreiben, die ein Array nahe liegender Nachbarn verbundener einfacher Prozessoren aufweisen. Die Daten fließen mit einer festgelegten Geschwindigkeit durch diese Prozessoren in einem Pipeline-Modus. Der Begriff „systolische Verarbeitung“ wird hier verwendet, weil er eine als Beispiel angeführte Struktur und Verarbeitung in der ROIC zur Steuerung eines Arrays an Lichtdetektoren und dazugehörigen Registern passend beschreibt. In diesem Zusammenhang weist die systolische Verarbeitung mehrere Vorteile auf:
  • Die Verzögerung zwischen Ankunft des Photons an jeder Spalte und dessen Austritt aus dem systolischen Prozessor ist ein Vielfaches der Taktzyklen.
  • Wenn die systolische Verarbeitung von links nach rechts erfolgt und die Verzögerung jedes systolischen Prozessorelements (SPE) ein Taktzyklus ist und wenn die Spalten von rechts nach links nummeriert werden können, kann der Algorithmus die Ankunftszeit des Photons als den Zeitpunkt seines Austritts aus dem systolischen Prozessor minus Spaltennummer ermitteln.
  • Es ist nicht erforderlich, dass an jedem Pixel (APD-Platz) die Zeitinformation elektronisch zur Verfügung gestellt wird. Die Zeitinformation muss nur noch am Ausgang vom systolischen Prozessor nachverfolgt werden.
  • Bei quadratischen Arrays steigt die Größe der SPE mit log2(n) an, wobei n die Anzahl der Spalten ist, z. B. jede Verdopplung der Anzahl der Spalten im Array fügt ein Bit zur Breite des SPE im synchronen oder asynchronen Modus hinzu, jedes Pixel hat eine festgelegte Breite entsprechend der Länge des Laufzeitzählers (normalerweise 10 oder mehr Bits). Wiederum ist das ROIC-Array kompakt.
  • Die Lichtdetektoren und dazugehörigen Register erfassen Daten, die darauf hinweisen, wann das Photon des reflektierten Impulses erkannt und an welcher geografischen Stelle im Array das Photon erfasst wurde. Somit widerspiegeln die Daten die Ankunftszeit eines nachgewiesenen Photons und dessen Position im Array. Bei jedem Zyklus werden die Daten vom Lichtdetektor und dem dazugehörigen Register nacheinander durch eine Zeile des Arrays zu einem Puffer verschoben, der dann die erfassten Daten in seinen eigenen Spaltenadressen-Decoder und Zeitstempel-Decoder sendet, die den Algorithmus verwenden, um zu entschlüsseln, wann genau in Zeiteinheiten das Photon im Array erfasst wurde, und zwar im Verhältnis zum Eingangssignal vom Taktschaltkreis, und wo geografisch das Photon erfasst wurde.
  • 2a beginnt bei einem Laufzeitwert von 0. 2a zeigt die systolische Verarbeitung zum Zeitpunkt 0. 2b und 2c zeigen die nächsten beiden Zyklen. 2b zeigt die systolische Verarbeitung zum Zeitpunkt 1. Es wird kein Photon nachgewiesen. 2c zeigt die systolische Verarbeitung zum Zeitpunkt 2. Ein erstes Photon kommt im obersten linken SPE an (durch Sternchen gekennzeichnet). In 2c kommt wiederum ein Photon im obersten linken Pixel (C3) an, und der Wert seiner Spaltenadresse (C3) wird in den systolischen Prozessor geladen. Es ist zu beachten, dass dieses Photon zu einer Laufzeit angekommen ist, die 2 Zeiteinheiten entspricht. 2d zeigt die systolische Verarbeitung zum Zeitpunkt 3. Zwei weitere Photonen kommen in den Spalten C2 und C1 in der zweiten Zeile des Arrays an. Zudem bewegen sich die Daten für das erste Photon durch den systolischen Prozessor einen Schritt nach rechts. Somit kommen zwei weitere Photonen an, und deren entsprechende Spaltenadressen werden in das Register des systolischen Prozessors geladen. Gleichzeitig verschieben sich die Spaltenadressen der vorherigen Photonen durch die systolische Verarbeitungspipeline einen Schritt nach rechts. Es ist zu beachten, dass diese beiden Photonen zu einer Laufzeit angekommen ist, die 3 Zeiteinheiten entspricht. 2e zeigt die systolische Verarbeitung zum Zeitpunkt 4. Die Daten, die ein Photon darstellen, verlassen den systolischen Prozessor, und ihnen wird der aktuelle Wert des Laufzeitzählers angehängt:C1 -- 4. Somit bewegt der systolische Prozessor seinen Inhalt einen Schritt nach rechts. Damit wird die äußerste rechte Spaltenadresse des Photons aus dem systolischen Prozessor gedrängt, an dieser Stelle wird der Spaltenadresse der aktuelle Laufzeitwert angehängt. Dieser Prozess kann als „mit Zeitstempel versehen“ genannt werden. 2f zeigt die systolische Verarbeitung zum Zeitpunkt 5. Die Daten, die zwei weitere Photonen repräsentieren, verlassen den systolischen Prozessor und werden „mit einem Zeitstempel versehen“:C3 - 5 und C2 - 5. Außerdem gelangen die Daten für das andere erkannte Photon, C1 - 4, in den FIFO-Puffer. Somit können die beiden restlichen Photonen mit Zeitstempel versehen werden, und das zuvor mit Zeitstempel versehene Photon wird in den FIFO-Puffer geschrieben. 2g zeigt die systolische Verarbeitung zum Zeitpunkt 6. Die Daten für alle drei Photonen werden in den FIFO-Puffer geschrieben. Daher können in 2G die letzten beiden Photonen in den FIFO-Puffer geschrieben werden.
  • Nun können die verschiedenen Decoder-Module den Inhalt des FIFO prüfen. In der obersten Zeile hat das System einen Datensatz, dass ein Photon aus Zeile 1 Spaltenadresse 3 den systolischen Prozessor zum Zeitpunkt 5 verlassen hat. In der Zeile darunter, Zeile 2, hat das System Datensätze von zwei Photonen. Ein Datensatz aus Zeile 2, Spalte 1, ist zum Zeitpunkt 4 ausgetreten. Ein zweiter Datensatz aus Zeile 2, Spalte 2, ist zum Zeitpunkt 5 ausgetreten. Der Algorithmus kann die tatsächliche Ankunftszeit des Photons wie folgt berechnen: 5 - 3 = 2 (Zeiteinheiten) für das erste ankommende Photon in Zeile Eins, und 4 - 1 = 3 (Zeiteinheiten) sowie 5 - 2 = 3 (Zeiteinheiten) für die beiden anderen Photonen aus Zeile 2.
  • Jeder Lichtdetektor in den Zeilen und Spalten, die das Array bilden, hat die Fähigkeit, ein einzelnes Photon zu erkennen, und somit das erste/ursprüngliche Photon zu erkennen, das vom Ziel zu dieser geografischen Stelle im Array zurückkehrt, anstelle jedes Photon zu erkennen, das durch sekundäre Reflexionen reflektiert wird. Zu Beginn des nächsten Zyklus ist dieses Set aus Lichtdetektor und dazugehörigem Register in der Lage, ein weiteres Photon zu erkennen, das vom Ziel zu dieser geografischen Stelle im Array zurückkehrt. Die systolische Verarbeitung der Lichtdetektoren reduziert die Totzeit der ROIC bei der Aufzeichnung der Laufzeitdaten durch Erfassen eines Photons für dieses Pixel im Array der Pixel, was zu einer höheren Auflösung/besseren Messung durch das Erkennen der reflektierten Lichtimpulse führt.
  • Drei bemerkenswerte Punkte:1) In dieser Konstruktion teilen sich zwei oder mehrere Zeilen der systolischen Prozessorelemente einen gemeinsamen Timer, der die Zeiteinheiten verfolgt. 2) In vorherigen ROIC-Architekturen müssen die Laufzeit-Zähler den Takt für die Dauer des Zählzyklus beibehalten und dann möglicherweise unbegrenzt weiterzählen. Daher laufen sie gelegentlich über, und übergeordnete „Zeiten“ müssen außerhalb der ROIC gehalten werden oder sie müssen viel länger sein, was die Verlustleistung und das von der ROIC generierte Datenvolumen steigert. 3) Außerdem besteht in vorherigen ROIC-Architekturen eine Totzeitverzögerung, wie z. B. mehrere Betriebszyklen, zwischen der Erfassung der Erkennung eines Photons und dem Zeitpunkt, an dem dieses Pixel ein weiteres Photon an dieser Stelle erkennen kann. Stattdessen kann bei dieser Konstruktion ein Set aus Lichtdetektor und seinem dazugehörigen Register das ursprüngliche Photon erkennen, das vom Ziel zu dieser geografischer Stelle im Array zurückkehrt, und dann ist zu Beginn des nächsten Zyklus dieses Set aus Lichtdetektor und seinem dazugehörigen Register in der Lage, ein anderes Photon zu erkennen, das vom Ziel zu dieser geografischen Stelle im Array zurückkehrt.
  • 3A und 3B veranschaulichen eine Ausführungsform der systolisch verarbeitenden ROIC. Die Bauteile der systolisch verarbeitenden ROIC aus 3A werden in 3B fortgesetzt. Das System 300 weist den systolischen Prozessor einschließlich seiner systolischen Prozessorelemente (SPE), den Zeitstempelblöcken (TS), dem Rundlauf-Arbiter, dem Port-FIFO, dem Serialisierer und dem LVDS-Treiber auf. Ein kompetenter FPGA-Architekt kann diese Blöcke durch einen generischen SRAM mit mehreren Ports und den entsprechenden Algorithmen zu dessen Verwaltung ersetzen.
  • Die systolischen Prozessorelemente
  • Jedes Pixel (Standort des Lichtdetektors) hat ein SPE, das mit diesem verbunden ist, und jede Zeile verbundener SPE entspricht einer Zeile von Pixeln. Jedes SPE hat zwei Eingangssignale: ein SPE-Ausgangssignal von seinem Nachbarn auf der linken Seite und eine Spaltenadresse seines dazugehörigen Pixels. Das äußerste linke SPE (am Eingang zum systolischen Prozessor) hat keinen Nachbarn auf seiner linken Seite und ist dafür ausgelegt, stattdessen seine eigene Spaltenadresse weiterzugeben. Ohne Photonenerkennung verlaufen die Informationen von links nach rechts und die Kette der SPE bildet ein paralleles Schieberegister. Mit Photonenerkennung wird die Spaltenadresse des aktivierten Pixels in sein SPE injiziert und beim nächsten Taktzyklus nach rechts verschoben.
  • Ein erster Zeitstempelblock für eine erste Zeile, ein zweiter Zeitstempelblock für eine zweite Zeile usw. im Array erhalten jeweils ein gemeinsames Zeitreferenz-Eingangssignal vom Taktschaltkreis. Jeder Zeitstempelblock besteht aus einem Taktzähler (TIMER) und dem dazugehörigen Schatten-Timerregister mit Inhalt, der als Zeitstempel (TS) bezeichnet wird. Jeder Zeitstempelblock wirkt mit einem Spaltenadressregister (CA) der Pipeline zusammen. Wenn ein Datenfluss von markierten Spaltenadressen den Zeitstempelblock passiert, wird ein Augenblickswert des Taktzählers an eine Spaltenadresse aus dem Spaltenadressregister angehängt, um den Standort und die Ankunftszeit der erkannten Photonen anzuzeigen. Jeder Zeitstempel-Decoder empfängt ein gemeinsames Zeitreferenz-Eingangssignal vom Taktschaltkreis.
  • Der systolische Prozessor, der aus einer Reihe von Ketten mit den oben beschriebenen SPE gebildet wird, erzeugt einen konstanten Fluss der Spaltenadressen mit Photon-Markierungen, die angeben, dass die Adresse das Erkennen eines Photons widerspiegelt. Dieser Fluss gelangt zum Zeitstempel-Decoderblock.
  • Die Zeitstempel
  • Der Zeitstempelblock (siehe 3B) weist jeweils einen Taktzähler (TIMER), ein Schatten-Timerregister mit Inhalt, der als Zeitstempel (TS) bezeichnet wird, und ein Pipeline-Spaltenadressregister (CA) auf. Wenn der Fluss der markierten Spaltenadressen den Zeitstempelblock passiert, wird der Augenblickswert des TIMERS der Spaltenadresse angehängt (die Spaltenadresse wird mit einem Zeitstempel versehen). Da sowohl der Standort als auch die Ankunftszeit bekannt sein müssen, wird das Ergebnis zusammen mit den Photon-Markierungen weitergeleitet.
  • Die Zeitkapazität des TIMERS ist durch seine Breite begrenzt. In der vorliegenden Anordnung beträgt die Breite des TIMERS zum Beispiel zehn (10) Bits. Bei längeren Aufnahmezeiten wird der TIMER in regelmäßigen Abständen überlaufen. Der Zeitstempelblock überwacht das Überlaufen des TIMERS und ersetzt den gesamten Inhalt von TS und CA mit einer eindeutigen Bit-Kombination, die das Überlaufen des TIMERS für die logisch folgenden Blöcke angibt.
  • Hinweis: das oben beschriebene systolische Verarbeitungsprinzip und Konzept ist völlig in der Lage, die Informationen zur erkannten Stelle und Ankunftszeit des Photons zu generieren und beizubehalten. Es kann jedoch Fälle geben, bei denen die maximale Taktgeschwindigkeit, die der gewählte IC-Prozess tolerieren kann, keine ausreichende Zeitauflösung bietet. In diesen Fällen kann die hier beschriebene Methode der Phasenverschiebung genutzt werden. Der Taktschaltkreis weist wenigstens zwei Taktsignale auf, die bei einer gleichen Frequenz generiert und um 90 Grad in Bezug aufeinander verschoben werden und an jedes Pixel im Array verteilt werdenDiese Taktsignale werden durch zwei oder mehr Signalspeicher an jedem Pixel nachverfolgt. Zu Beginn einer Erkennung der Ankunft eines Photons werden die beiden Signalspeicher in den selbsthaltenden Modus geschaltet und erfassen dabei den momentanen Zustand der beiden Taktsignale. Es ist zu beachten, dass, weil die wenigstens zwei Taktsignale um 90 Grad verschobene Takte sind, sie zu wenigstens vier binäre Kombinationen innerhalb jedes Zyklus führen, die einem Taktzyklus entsprechen. Ein Zeitstempelblock ist dafür ausgelegt, die Ankunftszeit des Photons innerhalb eines Quadranten eines Taktzyklusses zu unterscheiden und somit eine Zeitauflösung um wenigstens das Vierfache der Frequenz der Taktsignale zu erhöhen.
  • In diesem Beispiel wird ein Takt von 1 GHz verwendet, die gewünschte Auflösung beträgt jedoch 250 ps. Um dies zu erreichen, können zwei 1-GHz-Takte, die relativ zueinander um 90 Grad verschoben sind, auf jedes Pixel verteilt werden. Diese Taktsignale können durch zwei Signalspeicher an jedem Pixel nachverfolgt werden. Zu Beginn der Erkennung der Ankunft eines Photons können diese beiden Signalspeicher in den selbsthaltenden Modus geschaltet werden und erfassen dabei den momentanen Zustand der beiden Takte. Da die zwei um 90 Grad verschobenen Takte zu vier binären Kombinationen innerhalb jedes 1-Nanosekunden-Zyklus führen, kann die Ankunftszeit des Photons weiter innerhalb eines Quadranten des 1-Nanosekunden-Zyklus unterschieden werden. Der selbsthaltende Zustand dieser beiden Bits wird der Spaltenadresse im systolischen Prozessor und dem Zeitstempel im Zeitstempelblock angehängt. Es ist zu beachten, dass identische Ergebnisse ohne die beiden um 90 Grad verschobenen Takte und ohne Signalspeicher an jedem Pixel erreicht werden würden, wenn der IC-Prozess eine Taktfrequenz von 4 GHz unterstützen könnte und die Breite des TIMER-Blocks um zwei Bits erhöht werden würde.
  • ZEILEN-FIFO
  • In einem Beispiel kombiniert die maximale Anzahl der LVDS-Ausgangs-Ports vier Zeitstempel-Ausgangskanäle (Pixelzeilen) in einem Port. Um kurzzeitige Spitzendurchsatzanforderungen aufzunehmen, gibt es ein relativ flaches FIFO am Ausgang jeder Zeile. Modellierungen mit gleichmäßiger und Gauß-Verteilung von Licht ergaben, dass eine Tiefe von vier (4) Wörtern ausreichend ist. Das ZEILEN-FIFO beginnt erst bei Lichtintensitäten überzulaufen, wenn die Kapazität des SERIALISIERER beginnt, den Datenabfluss zu begrenzen. Eine Erhöhung der Tiefe des ZEILEN-FIFO in diesen Fällen erhöht nicht die Kapazität des Kanals, sie verzögert nur den Beginn des Überlaufs.
  • Im Falle eines Überlaufs behält das ZEILEN-FIFO seinen Inhalt und sondert nur die überschüssigen Photonen-Zeitstempel aus. Eine nennenswerte Ausnahme ist der TIMER-Überlaufindikator, der nicht ausgesondert werden kann und daher bei Bedarf den obersten Teil des ZEILEN-FIFO überschreibt.
  • RUNDLAUF-ARBITER
  • In einer Ausführungsform können die Ablesewerte von den ZEILEN-FIFO durch den RUNDLAUF-ARBITER gesteuert werden. Der RUNDLAUF-ARBITER überwacht die Leseanforderungen von den vier ZEILEN-FIFO und der FIFO-Vollanzeige vom PORT-FIFO. Der RUNDLAUF-ARBITERweist einen einfachen Sequenzer auf, der ausgehend von seinem aktuellen Status zwischen den vier ZEILEN-FIFO vermittelt. In dem Fall, dass das PORT-FIFO nicht voll ist und alle vier ZEILEN-FIFOeinen Ablesewert anfordern, erfüllt der Arbiter diese Anforderungen in einer Rundlaufreihenfolge (daher die Bezeichnung RUNDLAUF-ARBITER). Wenn nicht alle vier ZEILEN-FIFO einen Ablesewert anfordern, wird die Rundlaufreihenfolge abgekürzt, d. h., die leeren ZEILEN-FIFO können übersprungen werden, um die Eingangskapazität des PORT-FIFO voll auszunutzen. Letztendlich werden, wenn nur ein ZEILEN-FIFO Inhalte hat, diese an das PORT-FIFO durch einen Transfer pro einem Taktzyklus übertragen. Da der RUNDLAUF-ARBITER weiß, welches ZEILEN-FIFO bedient wird, hängt er an den Inhalt des ZEILEN-FIFO zwei zusätzliche Bits an, die die Zeilenadresse angeben. Daher wird am Eingang des PORT-FIFO jedes Ereignis einer Photonenankunft durch dessen Zeitstempel, Spaltenadresse und Zeilenadresse identifiziert.
  • PORT-FIFO
  • Die Funktion des PORT-FIFO besteht darin, die Geschwindigkeit der kurzzeitigen Spitzendurchsatzanforderungen des systolischen Prozessors mit der maximalen Übertragungskapazität des seriellen LVDS-Ports in Übereinstimmung zu bringen. Die gleiche Modellierung, die für das ZEILEN-FIFO verwendet wurde, lässt darauf schließen, dass eine Tiefe des PORT-FIFO von sechzehn (16) Wörtern in über 98% der Fälle mit zufälligen Photonenankunftsraten die Spitzenanforderungen erfüllt, solange die gesamte Photonenankunftsrate unter der Kapazität des seriellen Ports liegt. Übersteigt die gesamte Photonenankunftsrate die Kapazität des seriellen Ports, wird das PORT-FIFO schließlich ungeachtet seiner Tiefe überlaufen und seine Entleerung wird übermäßig Zeit beanspruchen.
  • Das PORT-FIFO ist die FIFO-Grundstruktur, da kein Überlauf erfolgen kann. Der RUNDLAUF-ARBITER stoppt einfach das Schreiben in ein volles PORT-FIFO und verschiebt das Überlaufproblem zu den ZEILEN-FIFO.
  • Die Ablesewerte vom PORT-FIFO können durch den SERIALISIERER gesteuert werden. Der Serialisierer ruft neue Inhalte vom PORT-FIFO am Ende des vorherigen Zeichens ab. Sollte der Serialisierer ein neues Zeichen zu dem Zeitpunkt benötigen, an dem das PORT-FIFO leer ist, generiert er ein LEER-ZEICHEN - eine eindeutige Zeichenkette mit Einsen und Nullen, die nicht mit gültigen Zeichen einer Photonenankunft kollidieren - wodurch der Empfänger gesperrt bleibt und für die nächsten gültigen Daten bereit ist.
  • 4 veranschaulicht ein Blockdiagramm einer Ausführungsform von beispielhaften Abschnitten eines systolischen Prozessorelements. Jedes systolische Prozessorelement weist ferner i) einen Multiplexer oder ein gleichwertiges Boole'sche Logik-Gate an seinem Eingang, ii) einen Generator einer lokalen Spaltenadresse (CAxx) und iii) eine Multiplexer-Eingangswähllogik (SEL) auf, um die Daten seriell durch das Array zu verschieben, das die Ankunft des erkannten Photons und dessen Spalten- und Zeilenadresse widerspiegelt.
  • Im Einzelnen werden in 4 zwei benachbarte SPE 400 dargestellt. Das systolische Prozessorelementweist ein Register (REG) mit 2:1-Multiplexer (2:1 MUX) an seinem Eingang, den Generator der lokalen Spaltenadresse (CAxx) und die Multiplexer-Eingangswähllogik (SEL) auf. Die Breite des REG ist von der Länge der systolischen Prozessorkette abhängig. In dieser Anordnung ist die Anzahl der von jeder systolischen Prozessorkette verarbeiteten Pixel sechzehn (16), daher ist die Breite des REG vier Bits (log216 = 4). Ferner gibt es ein zusätzliches Bit (oben in 4 dargestellt), das angibt, ob der Adresseninhalt des REG die Ankunft eines erkannten Photons widerspiegelt (eine Photon-Markierung). Der 2:1-MUX gibt entweder den Inhalt des REG von seinem linken Nachbarn oder die Spaltenadresse seines eigenen Pixels weiter. Der CAxx-Spaltenadressengenerator kann fest verdrahtet sein (Kombination von VSS- und VDD-Verbindungen), was zusätzlich Strom spart. Der SEL-Block überwacht die Photonen-Markierungen seines linken Nachbarn und seines eigenen Pixels. Der standardmäßige SEL-Ausgang wählt den Inhalt des Nachbarn ungeachtet der Photonenmarkierung des Nachbarn. Nur wenn sein eigenes Pixel ein Photon erkennt, injiziert der SEL seine CAxx für einen Zyklus. Offensichtlich kann es zu einer kollidierenden Anforderung kommen, wenn sowohl der Nachbar als auch sein eigenes Pixel den Zugang zum REG während des gleichen Taktzyklus beanspruchen. In dieser Anordnung hat der Nachbar Vorrang vor den Pixeln aus der Mitte des Imagers auf Kosten der Peripherie.
  • In einer Ausführungsform sind die Lichtdetektoren planare Arrays von Avalanche-Photodioden (APD) mit Geiger-Modus, und die ROIC sind dafür ausgelegt, ein Array von APD als Lichtdetektoren und eine Schaltung zur Steuerung des Betriebs im Geiger-Modus zu enthalten, und ein erstes APD-Set und dessen dazugehörige Register verfügen über eine Bypass-Schaltung, um diese APD und das dazugehörige Register zu umgehen, so dass die Daten seriell durch ein defektes APD-Set und das dazugehörige Register in eine vorgegebene Zeile des Array verschoben werden können.
  • ANWENDUNGEN
  • Sowohl die synchronen als auch die asynchronen planaren APD-Arrays mit Geiger-Modus können in LiDAR für luft- und bodengestützte 3D-Bildgebung, Abstandsmessung, Kartierung, Vermeidung von Kollisionen, Targeting usw. eingesetzt werden. Die Vorteile der 3D-Bildgebung wurden zum Beispiel beim Erkennen von Objekten nachgewiesen, die unter dichter tropischer Belaubung versteckt waren. Erst kürzlich ließen frühe Erfahrungen mit autonomen Fahrzeugen auf öffentlichen Straßen darauf schließen, dass LiDAR erforderlich sein wird, um die Fähigkeiten anderer Sensoren, wie z. B. 360°-Radar, passive Videokameras usw., zu ergänzen.
  • Wärmeabgabe und Schaltungskomplexität können die maximale Größe und den minimalen Pixelabstand der vorhandenen planaren und im Geiger-Modus betriebenen APD-Arrays begrenzen. Diese Grenze ist das Ergebnis der vorhandenen ROIC-Architekturen, die eine Laufzeitinformation an jedem Pixel erfordern. Die Arrays nach dem bekannten gegenwärtigen Stand der Technik können eine Größe von 256 x 64 Pixel mit einem Pixelabstand von 50 µm aufweisen und die Laufzeitmessung ist auf 1 - 2 Mikrosekunden begrenzt. Der Stromverbrauch begrenzt die Dauer der Mission, während der Pixelabstand die Verwendung großer Linsen erforderlich macht, was das Gewicht der Kamera und die Kosten erhöht. Der breitere industrielle Einsatz dieser Technologie in Zukunft ist von der Senkung des Stromverbrauchs in Kombination mit einem geringeren Pixelabstand und höherer räumlicher Auflösung (höhere Pixelanzahl) abhängig.
  • Liste der Abkürzungen
  • APD -Avalanche-Photodiode: eine Photodiode, die dafür ausgelegt ist, die Vorteile der lawinenartigen Multiplikation des Fotostroms zu nutzen. Wenn sich die Sperrvorspannung der Durchschlagspannung nähert, werden Elektronen-Loch-Paare, die durch das absorbierte Photon entstanden sind, durch das starke elektrische Feld beschleunigt, um ausreichend Energie aufzunehmen, um bei einer Kollision mit Ionen zusätzliche Elektronen-Loch-Paare entstehen zu lassen, wodurch der erzeugte Strom multipliziert wird.
  • Geiger-Modus - APD können in zwei Modi betrieben werden: linearer und Geiger-Modus. Im linearen Modus ist die APD-Vorspannung nicht ausreichend, um eine Lawine auszulösen, und die APD arbeitet mit einer Verstärkung (normalerweise zwischen 1 und 5). Im Geiger-Modus wird die APD-Vorspannung flexibel zwischen den Stufen gesteuert, die zur Auslösung einer Lawine ausreichen, und den Stufen, die diese unterdrücken. In diesem Modus weist die APD Fotostromverstärkungen zwischen 100 und 1000 auf.
  • ROIC - Integrierte Ausleseschaltung: Integrierter Schaltkreis unter Verwendung des standardmäßigen CMOS-Foundry-Prozesses bietet eine In-Pixel-Digitalisierung und eine digitale Anzeige. ROIC können zu einem Array von Photodioden (mit unterschiedlichen Typen von Photodioden) hybridisiert werden und im Fall von APD weisen sie einen Schaltkreis zur Steuerung des Betriebs im Geiger-Modus auf.
  • LiDAR - Lichtabbildung, -erkennung und -laufzeitmessung: Messung von Entfernungen durch Beleuchten des Ziels mit einem Laserlichtimpuls und Messung der Laufzeit des zurückgekehrten (reflektierten) Lichts. Das wird genutzt, um hochauflösende 3D-Karten in der Geologie, Landwirtschaft, Archäologie, Meteorologie, Physik und Astronomie, beim Militär und seit kurzem in der Automobilindustrie in autonomen Fahrzeugenherzustellen.
  • 5 veranschaulicht eine Ausführungsform eines oder mehrerer Computergeräte 900, die ein Teil des systolischen Prozessorsystems für ein System zur Lichtlaufzeitmessung sein können. Das Computergerät kann Folgendes aufweisen: einen oder mehrere Prozessoren oder Verarbeitungseinheiten 920 zur Ausführung von Anweisungen, einen oder mehrere Speicher 930 - 932 zum Speichern von Informationen, eine oder mehrere Dateneingabekomponenten 960 - 963 zum Empfangen der Dateneingabe von einem Nutzer des Computergeräts 900, ein oder mehrere Module, das oder die das Verwaltungsmodul aufweisen, ein Netzwerkschnittstellen-Kommunikationsschaltkreis 970 zum Herstellen einer Kommunikationsverbindung zur Kommunikation mit anderen Computergeräten außerhalb des Computergeräts, einen oder mehrere Sensoren, wobei ein Ausgangswert der Sensoren genutzt wird, um einen spezifischen auslösenden Zustand zu erkennen und dann entsprechend eine oder mehrere programmierte Aktionen auszulösen, einen Bildschirm 991 zum Anzeigen von wenigstens einigen der in dem einen oder in mehreren Speichern 930 - 932 und anderen Komponenten gespeicherten Informationen. Es ist zu beachten, dass Teile dieses Systems, die in der Software 944, 945, 946 implementiert werden, in dem einen oder den mehreren Speichern 930 - 932 gespeichert und durch den einen oder die mehreren Prozessoren 920 ausgeführt werden können.
  • Der Systemspeicher 930 weist Computerspeichermedien in Form von flüchtigen bzw. nichtflüchtigen Speichern auf, wie z. B. Festplattenspeicher (ROM) 931 und Arbeitsspeicher (RAM) 932. Diese maschinenlesbaren Medien können beliebige verfügbare Medien sein, auf die das Computersystem 900 zugreifen kann. Als Beispiel und nicht als Einschränkung weist der Einsatz von maschinenlesbaren Medien das Speichern von Informationen auf, wie z. B. computerlesbare Anweisungen, Datenstrukturen, sonstige ausführbare Software oder andere Daten. Computerspeichermedien weisen u. a. RAM, ROM, EEPROM, Flash-Speicher oder andere Speichertechnologie, CD-ROM, Digital Versatile Disks (DVD) oder andere optische Plattenspeicher, Magnetkassetten, Magnetbänder, magnetische Plattenspeicher oder andere magnetische Speichergeräte oder alle anderen materiellen Träger auf, die genutzt werden können, um die gewünschten Informationen zu speichern, und auf die durch das Computergerät 900 zugegriffen werden kann. Zwischenmedien, wie z. B. Funkkanäle, sind nicht in den maschinenlesbaren Medien enthalten. Die Kommunikationsmedien verkörpern normalerweise computerlesbare Anweisungen, Datenstrukturen, andere ausführbare Software oder andere Transportmechanismen und enthalten alle Informationen liefernde Medien.
  • Das System weist ferner ein grundlegendes Eingabe-/Ausgabesystem 933 (BIOS) auf, das die Basisroutinen enthält, die zur Übertragung der Informationen zwischen den Elementen des Computersystems 900 beitragen, wie z. B. während des Hochfahrens, und normalerweise im ROM 931 gespeichert sind. RAM 932 enthält normalerweise Daten bzw. Software, die durch die Verarbeitungseinheit 920 unmittelbar zugänglich sind bzw. von dieser betrieben werden. Als Beispiel und nicht als Einschränkung kann der RAM 932 einen Teil des Betriebssystems 934, Anwendungsprogramme 935, andere ausführbare Software 936 und Programmdaten 937 aufweisen.
  • Das Computersystem 900 kann außerdem andere entfernbare/nicht entfernbare flüchtige/nichtflüchtige Computerspeichermedien aufweisen. Nur als Beispiel verfügt das System über einen Festkörperspeicher 941. Der Festkörperspeicher 941 ist normalerweise mit dem Systembus 921 über eine nicht entfernbare Speicherschnittstelle, wie z. B. Schnittstelle 940, verbunden und das USB-Laufwerk 951 ist normalerweise mit dem Systembus 921 über eine entfernbare Speicherschnittstelle, wie z. B. Schnittstelle 950, verbunden.
  • Ein Anwender kann Befehle und Informationen in das Computersystem 900 über Eingabegeräte, wie z. B. Tastatur, Touchscreen oder Software- oder Hardware-Eingabeschaltflächen 962, Mikrofon 963, Zeigegerät bzw. Scrolling-Eingabekomponenten, wie z. B. Maus, Trackball oder Touchpad, eingeben. Diese und andere Eingabegeräte sind oftmals mit der Verarbeitungseinheit 920 über eine Anwendereingabeschnittstelle 960 verbunden, die mit dem Systembus 921 gekoppelt ist, sie können aber auch durch andere Schnittstellen- und Busstrukturen angeschlossen sein, wie z. B. einem parallelen Anschluss, Gameport oder Universal Serial Bus (USB). Ein Anzeigemonitor 991 oder ein anderer Typ eines Bildschirmgeräts ist ebenfalls mit dem Systembus 921 über eine Schnittstelle verbunden, wie z. B. eine Anzeigeschnittstelle 990. Neben dem Monitor 991 können die Computergeräte auch andere periphere Ausgabegeräte aufweisen, wie z. B. Lautsprecher 997, einen Vibrator 999 und andere Ausgabegeräte, die durch eine periphere Ausgabeschnittstelle 995 angeschlossen werden können.
  • Das Computersystem 900 kann in einer Netzwerkumgebung unter Verwendung logischer Verbindungen zu einem oder mehreren Remotecomputer/Client-Geräten betrieben werden, wie z. B. einem Remote-Computersystem 980. Das Remote-Computersystem 980 kann ein Personalcomputer, ein mobiles Computergerät, ein Server, ein Router, ein Netzwerk-PC, ein Peer-Gerät oder ein anderer gemeinsamer Netzwerkknoten sein und weist normalerweise viele oder alle der oben beschriebenen Elemente in Bezug auf das Computersystem 900 auf. Die in 5 dargestellten logischen Verbindungen können ein Personal Area Network (PAN) 972 (z. B. Bluetooth®), ein lokales Netzwerk (LAN) 971 (z. B. WLAN) und ein Wide Area Network (WAN) 973 (z. B. Mobilfunknetz) aufweisen, sie können aber auch andere Netzwerke, wie z. B. ein Personal Area Network (z. B. Bluetooth®),aufweisen. Solche Netzwerkumgebungen sind üblich in Büros, unternehmensweiten Computernetzwerken, Intranets und im Internet. Eine Browser-Anwendung kann sich auf dem Computergerät befinden und im Speicher gespeichert sein.
  • Bei Einsatz in einer LAN-Netzwerkumgebung ist das Computersystem 900 mit dem LAN 971 durch eine Netzwerkschnittstelle 970 verbunden, die zum Beispiel ein Bluetooth®- oder WLAN-Adapter sein kann. Bei Einsatz in einer WAN-Netzwerkumgebung (z. B. Internet) weist das Computersystem 900 normalerweise einige Mittel zur Herstellung der Kommunikation über das WAN 973 auf. In Bezug auf mobile Telekommunikationstechnologien, zum Beispiel eine Funkschnittstelle, die intern oder extern sein kann, kann diese mit dem Systembus 921 über die Netzwerkschnittstelle 970 oder einen anderen geeigneten Mechanismus verbunden sein. In einer Netzwerkumgebung können eine andere Software, die in Bezug auf das Computersystem 900 dargestellt ist, oder Teile derselben im Remote-Speichergerät gespeichert werden. Als Beispiel und nicht als Einschränkung verfügt das System über Remote-Anwendungsprogramme 985, die sich auf dem Remote-Computergerät 980 befinden. Es versteht sich, dass die dargestellten Netzwerkverbindungen Beispiele sind und dass andere Mittel zur Herstellung einer Kommunikationsverbindung zwischen den Computergeräten genutzt werden können.
  • Wie erläutert, kann das Computersystem 900 mobile Geräte mit einer Verarbeitungseinheit 920, einem Speicher (z. B. ROM 931, RAM 932 usw.), einer eingebauten Batterie zur Stromversorgung des Computergeräts, einem AC-Netzeingang zum Aufladen der Batterie, einem Anzeigebildschirm, einem eingebauten WLAN-Schaltkreis zur drahtlosen Kommunikation mit einem Remote-Computergerät, das mit dem Netzwerk verbunden ist, aufweisen.
  • Es ist anzumerken, dass die vorliegende Anordnung auf einem Computersystem wie dem, das in Bezug auf 5 beschrieben wird, ausgeführt werden kann. Dennoch kann die vorliegende Anordnung auf einem Server, einem Computergerät, das der Nachrichtenübermittlung gewidmet ist, oder auf einem dezentralen System ausgeführt werden, in dem unterschiedliche Teile der vorliegenden Anordnung auf unterschiedlichen Teilen des dezentralen Computersystems ausgeführt werden.
  • In einigen Ausführungsformen kann die Software, die zur Ermöglichung der hier erläuterten Algorithmen genutzt wird, auf einem nichtflüchtigen maschinenlesbaren Medium enthalten sein. Ein maschinenlesbares Medium weist alle Mechanismen auf, die Informationen in einer Form speichern, die durch eine Maschine (z. B. einen Computer) lesbar ist. Zum Beispiel kann ein nichtflüchtiges maschinenlesbares Medium einen Festplattenspeicher (ROM); Arbeitsspeicher (RAM); Magnetplattenspeichermedien; optische Speichermedien; Flash-Speichergeräte; Digital Versatile Disk (DVD), EPROM, EEPROM, FLASH-Speicher, Magnet- oder optische Karten oder jede Art von Medien aufweisen, die zum Speichern elektronischer Anweisungen geeignet sind.
  • Es ist zu beachten, dass eine hier beschriebene Anwendung u. a. Softwareanwendungen, mobile Anwendungen und Programme aufweist, die Teil einer Betriebssystemanwendung sind. Einige Teile dieser Beschreibung sind in Form von Algorithmen und symbolischen Darstellungen der Operationen von Datenbits innerhalb eines Computerspeichers dargestellt. Diese Beschreibungen und Darstellungen von Algorithmen sind die von Kennern der Datenverarbeitung verwendeten Mittel, um am effektivsten anderen Kennern der Technik das Wesen ihrer Arbeit zu vermitteln. Ein Algorithmus wird hier und allgemein als eine in sich konsistente Reihenfolge von Schritten verstanden, die zu einem gewünschten Ergebnis führen. Die Schritte sind die, die physische Manipulationen physikalischer Größen erfordern. Normalerweise, aber nicht notwendigerweise, haben diese Größen die Form von elektrischen oder magnetischen Signalen, die gespeichert, übertragen, kombiniert, verglichen oder anderweitig manipuliert werden können. Es hat sich zuweilen als günstig erwiesen, hauptsächlich aus Gründen der allgemeinen Verwendung, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Begriffe, Zahlen und ähnliches zu bezeichnen. Diese Algorithmen können in einer Reihe unterschiedlicher Software-Programmiersprachen geschrieben werden, wie z. B. C, C+, HTTP, Java oder andere ähnliche Sprachen. Ein Algorithmus kann außerdem mit Codezeilen in der Software, konfigurierten Logik-Gates in der Software oder einer Kombination beider implementiert werden. In einer Ausführungsform besteht die Logik aus elektronischen Schaltungen, die den Regeln der Boole'schen Logik folgen, Software, die Anweisungsmuster enthält, oder einer beliebigen Kombination beider. Alle Teile eines Algorithmus, der in der Software implementiert wird, kann in einem ausführbaren Format in einem Teil eines Speichers gespeichert werden und wird durch einen oder mehrere Prozessoren ausgeführt.
  • Es ist jedoch zu beachten, dass alle diese und ähnliche Begriffe mit den entsprechenden physikalischen Größen in Verbindung zu bringen sind und nur eine praktische Kennzeichnung für diese Größen sind. Wenn nichts Anderes spezifisch angegeben wird, wie es aus den obigen Erläuterungen offensichtlich ist, wird davon ausgegangen, dass in der gesamten Beschreibung Erläuterungen, die Begriffe, wie z. B. „verarbeiten“ oder „Computer“ oder „berechnen“ oder „bestimmen“ oder „anzeigen“ oder Ähnliches, verwenden, sich auf Aktionen und Prozesse eines Computersystems oder eines ähnlichen elektronischen Computergeräts beziehen, das Daten manipuliert und umwandelt, die als physikalische (elektronische) Größen innerhalb der Register und Speicher des Computersystems dargestellt werden, und zwar in Daten, die in ähnlicher Weise als physikalische Größen innerhalb der Speicher oder Register des Computersystems oder in einem anderen Informationsspeicher, Übertragungs- oder Anzeigegeräten dargestellt werden.
  • Viele Funktionen, die durch elektronische Hardware-Komponenten ausgeführt werden, können durch Software-Emulation dupliziert werden. Somit kann ein Softwareprogramm, das geschrieben wird, um diese gleichen Funktionen auszuführen, die Funktionalität der Hardware-Komponenten in einem Eingangs-/Ausgangsschaltkreis nachbilden. Somit sind hier ein oder mehrere nichtflüchtige maschinenlesbare Medien vorgesehen, die zum Speichern der Anweisungen und Daten dafür ausgelegt sind, wenn sie durch einen oder mehrere Prozessoren auf dem Computergerät des vorstehenden Systems ausgeführt werden, das Computergerät zu veranlassen, die hier beschriebenen Operationen auszuführen.
  • Verweise in der Patentschrift auf „eine Ausführungsform“, „ein Beispiel“ usw. weisen darauf hin, dass die beschriebene Ausführungsform oder das Beispiel eine bestimmte Funktion, Struktur oder ein Merkmal aufweist, aber nicht jede Ausführungsform weist die bestimmte Funktion, Struktur oder das Merkmal zwangsläufig auf. Diese Begriffe können sich nicht unbedingt auf die gleiche Ausführungsform beziehen. Wenn eine bestimmte Funktion, Struktur oder ein Merkmal in Verbindung mit einer Ausführungsform beschrieben wird, wird ferner davon ausgegangen, dass Kenner der Technik wissen, dass diese Funktion, Struktur oder das Merkmal sich in Verbindung mit anderen Ausführungsformen auswirken, egal, ob dies ausdrücklich angegeben ist oder nicht.
  • Während die vorstehende Konstruktion und die Ausführungsformen derselben ausführlich dargestellt wurden, ist es nicht die Absicht des/der Anmelder, dass die hier zur Verfügung gestellte Konstruktion und die Ausführungsformen einschränkend sind. Weitere Anpassungen und/oder Modifizierungen sind möglich, und im weiteren Sinn sind diese Anpassungen und/oder Modifizierungen ebenfalls eingeschlossen. Dementsprechend können Abweichungen von der vorhergehenden Konstruktion und den Ausführungsformen vorgenommen werden, ohne vom Geltungsbereich der folgenden Ansprüche abzuweichen, wobei der Geltungsbereich nur durch die Ansprüche begrenzt ist, wenn diese entsprechend ausgelegt werden.

Claims (20)

  1. System zum Messen des Vorhandenseins eines oder mehrerer Objekte mit einem oder mehreren Lichtimpulsen, Folgendes umfassend: einen oder mehrere Laser, die dafür ausgelegt sind, einen oder mehrere Lichtimpulse zu erzeugen; eine oder mehrere Kameras, die dafür ausgelegt sind, von einem oder mehreren Zielobjekten reflektierte Lichtimpulse zu erkennen; eine Empfangsschaltung, die eine integrierte Ausleseschaltung (ROIC) aufweist, die einen oder mehrere Lichtdetektoren enthält, die in einem Array angeordnet sind, das mit einem Taktschaltkreis zusammenwirkt, wobei die ROIC dafür ausgelegt ist, wenigstens eine Laufzeit der reflektierten Lichtimpulse unter Verwendung eines Eingangssignals vom Taktschaltkreis zu messen und dann die Laufzeit beginnend an einem ersten Bezugszeitpunkt und endend an einem zweiten Referenzpunkt zu messen, wobei die ROIC dafür ausgelegt ist, die systolische Verarbeitung der Lichtdetektoren auszuführen, wobei die ROIC die systolische Verarbeitung ausführt, um wenigstens zu erfassen: i) wann, in Zeiteinheiten, ein ursprüngliches Photon seines reflektierten Lichtimpulses durch jeden der Lichtdetektoren in dem Array erfasst wird, ii) wo sich das Photon geografisch im Array befindet, iii) Scannen der durch die Lichtdetektoren erfassten Daten, und dann iv) Analysieren der gescannten Daten mit einem Algorithmus, um zu erkennen, wann, in Form von Zeiteinheiten, das Photon im Verhältnis zum Eingangssignal vom Taktschaltkreis erfasst wurde; und eine weitere Stromquelle, die dafür ausgelegt ist, den Laser, den Empfänger, den Taktschaltkreis und die Kameras mit Strom zu versorgen.
  2. Vorrichtung nach Anspruch 1, wobei die Lichtdetektoren und dazugehörigen Register dafür ausgelegt sind, Daten zu erfassen, die darauf hinweisen, wann das Photon des reflektierten Impulses erkannt und an welcher geografischen Stelle im Array das Photon erfasst wurde, wobei die Lichtdetektoren und dazugehörigen Register dafür ausgelegt sind, ihre Daten fortlaufend durch eine Zeile des Array zu einem Puffer zu verschieben, der dann die erfassten Daten in seinen eigenen Spaltenadressen-Decoder und Zeitstempel-Decoder sendet, die den Algorithmus verwenden, um zu entschlüsseln, wann, in Zeiteinheiten, das Photon im Array erfasst wurde, und zwar im Verhältnis zum Eingangssignal vom Taktschaltkreis, und wo geografisch das Photon erfasst wurde, wobei jeder Zeitstempel-Decoder ein gemeinsames Zeitreferenz-Eingangssignal vom Taktschaltkreis empfängt.
  3. Vorrichtung nach Anspruch 1, wobei das System ein LiDAR-System ist und jede Zeile des Array aus einer Vielzahl von Lichtdetektoren und dazugehörigen Registern besteht und jede Spalte des Arrays ebenfalls aus einer Vielzahl von Lichtdetektoren und dazugehörigen Registernbesteht.
  4. Vorrichtung nach Anspruch 3, wobei die ROIC eine Vielzahl systolischer Prozessorelemente enthält, jedes systolische Prozessorelement seinen eigenen Lichtdetektor und das dazugehörige Register aufweist, jedes systolische Prozessorelement zwei Eingangssignale hat: i) das Ausgangssignal eines systolischen Prozessorelements vom benachbarten systolischen Prozessorelement auf der linken Seite und ii) eine Spaltenadresse des dazugehörigen Pixels im Array, um eine Standort- und Ankunftszeitinformation des erkannten Photons zu übermitteln.
  5. Vorrichtung nach Anspruch 4, wobei jedes systolische Prozessorelement außerdem ferner i) einen Multiplexer oder ein gleichwertiges Boole'sche Logik-Gate an seinem Eingang, ii) einen Generator einer lokalen Spaltenadresse und iii) eine Multiplexer-Eingangswähllogik aufweist, um die Daten seriell durch das Array zu verschieben, die die Ankunft des erkannten Photons und dessen Spalten- und Zeilenadresse widerspiegeln.
  6. Vorrichtung nach Anspruch 1, wobei ein erster Zeitstempelblock für eine erste Zeile und ein zweiter Zeitstempelblock für eine zweite Zeile im Array jeweils ein gemeinsames Zeitreferenz-Eingangssignal vom Taktschaltkreis erhalten, wobei jeder Zeitstempelblock aus einem Taktzähler und dem dazugehörigen Schatten-Timerregister mit Inhalt, der als Zeitstempel bezeichnet wird, bestehtund mit einem Spaltenadressregister der Pipeline zusammenwirkt, wobei wenn ein Datenfluss von markierten Spaltenadressen den Zeitstempelblock passiert, ein Augenblickswert des Taktzählers an eine Spaltenadresse aus dem Spaltenadressregister der Pipeline angehängt wird, um den Standort und die Ankunftszeit der erkannten Photonen anzuzeigen.
  7. Vorrichtung nach Anspruch 1, wobei die Lichtdetektoren planare Arrays von Avalanche-Photodioden (APD) mit Geiger-Modus sind und die ROIC dafür ausgelegt sind, ein Array von APD als Lichtdetektoren und eine Schaltung zur Steuerung des Betriebs im Geiger-Modus zu enthalten, und wobei ein erstes APD-Set und dessen dazugehörige Register über eine Bypass-Schaltung verfügen, um diese APD und das dazugehörige Register zu umgehen, so dass die Daten seriell durch ein defektes APD-Setmit dazugehörigem Register in einer vorgegebenen Zeile des Array verschoben werden können.
  8. Vorrichtung nach Anspruch 1, wobei die ROIC eine Vielzahl systolischer Prozessorelemente enthält, wobei jedes systolische Prozessorelement seinen eigenen Lichtdetektor und das dazugehörige Register aufweist, wobei jedes systolische Prozessorelement dafür ausgelegt ist, die systolische Verarbeitung wie folgt auszuführen: i) ohne Photonenerkennung verlaufen die Daten von links nach rechts im Array der systolischen Prozessorelemente in Form eines parallelen Schieberegisters; und ii) mit Photonenerkennung wird die Spaltenadresse des aktivierten Lichtdetektors in sein systolisches Prozessorelement injiziert und bei jedem nächsten Taktzyklus seriell nach rechts verschoben, bis die Daten in einem gemeinsamen Puffer für diese Zeile gespeichert werden; und wobei sich zwei oder mehrere Zeilen der systolischen Prozessorelemente einen gemeinsamen Timer teilen, der die Zeiteinheiten verfolgt.
  9. Vorrichtung nach Anspruch 2, wobei die systolische Verarbeitung der Lichtdetektoren die Totzeit der ROIC bei der Aufzeichnung der Laufzeitdaten durch Erfassen eines Photons für diesen Lichtdetektor und sein dazugehöriges Register im Array reduziert, was zu einer höheren Auflösung durch das Erkennen der reflektierten Lichtimpulse führt.
  10. Verfahren zur Verwendung eines Systems zum Messen der Merkmale eines oder mehrerer Objekte mit einem oder mehreren Lichtimpulsen, Folgendes umfassend: Erzeugen eines oder mehrerer Lichtimpulse; Erkennen der von einem oder mehreren Zielobjekten reflektierten Lichtimpulse; und Verwenden einer Empfangsschaltung, die eine integrierte Ausleseschaltung (ROIC) aufweist, die einen oder mehrere Lichtdetektoren aufweist, die in einem Array angeordnet sind, das mit einem Taktschaltkreis zusammenwirkt, wobei die ROIC dafür ausgelegt ist, wenigstens eine Laufzeit der reflektierten Lichtimpulse unter Verwendung eines Eingangssignals vom Taktschaltkreis zu messen und dann die Laufzeit beginnend an einem ersten Bezugszeitpunkt und endend an einem zweiten Referenzpunkt zu messen, wobei die ROIC dafür ausgelegt ist, die systolische Verarbeitung der Lichtdetektoren auszuführen, wobei die ROIC die systolische Verarbeitung ausführt, um wenigstens zu erfassen: i) wann, in Zeiteinheiten, ein ursprüngliches Photon seines reflektierten Lichtimpulses durch jeden der Lichtdetektoren in dem Array erfasst wird, ii) wo sich das Photon geografisch im Array befindet, iii) Scannen der durch die Lichtdetektoren erfassten Daten zu wann in Zeiteinheiten und wo geografisch gesehen das Photon in einem bestimmten Lichtdetektor im Array erfasst wurde, und dann iv) Analysieren der gescannten Daten mit einem Algorithmus, um zu erkennen, wann, in Form von Zeiteinheiten, das Photon im Verhältnis zum Eingangssignal vom Taktschaltkreis erfasst wurde.
  11. Verfahren nach Anspruch 10, ferner Folgendes umfassend: Erfassen der Daten, die anzeigen, wann das Photon des reflektierten Impulses erkannt wurde und wo geografisch gesehen im Array das Photon erfasst wurde, wo die Daten bei jedem Zyklus durch die Lichtdetektoren und die dazugehörigen Register nacheinander durch eine Zeile des Arrays zu einem Puffer verschoben werden, der dann die erfassten Daten in seinen eigenen Spaltenadressen-Decoder und Zeitstempel-Decoder sendet, die den Algorithmus verwenden, um zu entschlüsseln, wann, in Zeiteinheiten, das Photon im Array bezogen zum Eingangssignal vom Taktschaltkreiserfasst wurde und wo geografisch das Photon erfasst wurde.
  12. Verfahren nach Anspruch 10, wobei das System ein LiDAR-System ist und jede Zeile des Array aus einer Vielzahl von Lichtdetektoren und dazugehörigen Registern besteht und jede Spalte des Arrays ebenfalls aus einer Vielzahl von Lichtdetektoren und dazugehörigen Registernbesteht.
  13. Verfahren nach Anspruch 12, wobei die ROIC eine Vielzahl systolischer Prozessorelemente enthält, wobei jedes systolische Prozessorelement seinen eigenen Lichtdetektor und das dazugehörige Register aufweist, wobei jedes systolische Prozessorelement zwei Eingangssignale hat: i) das Ausgangssignal eines systolischen Prozessorelements vom benachbarten systolischen Prozessorelement auf der linken Seite und ii) eine Spaltenadresse des dazugehörigen Pixels im Array, um eine Standort- und Ankunftszeitinformation des erkannten Photons zu übermitteln.
  14. Verfahren nach Anspruch 10, ferner Folgendes umfassend: Bereitstellen eines ersten Zeitstempelblocks für eine erste Zeile und eines zweiten Zeitstempelblocks für eine zweite Zeile im Array mit einem gemeinsamen Zeitreferenz-Eingangssignal vom Taktschaltkreis, wobei jeder Zeitstempelblock aus einem Taktzähler und dem dazugehörigen Schatten-Timerregister mit Inhalt besteht, der als Zeitstempel bezeichnet wird und mit einem Spaltenadressregister der Pipeline zusammenwirkt, wobei, wenn ein Datenfluss von markierten Spaltenadressen den Zeitstempelblock passiert, ein Augenblickswert des Taktzählers an eine Spaltenadresse angehängt wird, um den Standort und die Ankunftszeit der erkannten Photonen anzuzeigen.
  15. Verfahren nach Anspruch 10, ferner Folgendes umfassend: Verwenden des Taktschaltkreises, der wenigstens zwei Taktsignale aufweist, die bei einer gleichen Frequenz generiert und um 90 Grad gegeneinander verschoben und an jedes Pixel im Array verteilt werden, wobei diese Taktsignale durch zwei Signalspeicher an jedem Pixel nachverfolgt werden, wobei zu Beginn einer Erkennung der Ankunft eines Photons diese beiden Signalspeicher in den selbsthaltenden Modus geschaltet werden und dabei den momentanen Zustand der beiden Taktsignale erfassen, wobei, da die wenigstens zwei Taktsignale um 90 Grad verschobene Takte sind, sie zu wenigstens vier binären Kombinationen innerhalb jedes Zyklus führen, die einem Taktzyklus entsprechen, wobei ein Zeitstempelblock dafür ausgelegt ist, die Ankunftszeit des Photons innerhalb eines Quadranten eines Taktzyklusses zu unterscheiden, und somit eine Zeitauflösung um wenigstens das Vierfache der Frequenz der Taktsignale erhöht wird.
  16. Verfahren nach Anspruch 10, wobei die Lichtdetektoren planare Arrays von Avalanche-Photodioden (APD) mit Geiger-Modus sind und die ROIC dafür ausgelegt sind, ein Array von APD als Lichtdetektoren und eine Schaltung zur Steuerung des Betriebs im Geiger-Modus zu enthalten, wobei ein erstes APD-Set und dessen dazugehörige Register über eine Bypass-Schaltung verfügen, um diese APD und das dazugehörige Register zu umgehen, so dass die Daten seriell durch ein defektes APD-Setmit dazugehörigem Register in eine vorgegebenen Zeile des Array verschoben werden können.
  17. Verfahren nach Anspruch 10, wobei die ROIC eine Vielzahl systolischer Prozessorelemente enthält, wobei jedes systolische Prozessorelement seinen eigenen Lichtdetektor und das dazugehörige Register aufweist, wobei jedes systolische Prozessorelement dafür ausgelegt ist, die systolische Verarbeitung wie folgt auszuführen: i) ohne Photonenerkennung verlaufen die Daten von links nach rechts im Array der systolischen Prozessorelemente in Form eines parallelen Schieberegisters; und ii) mit Photonenerkennung wird die Spaltenadresse des aktivierten Lichtdetektors in sein systolisches Prozessorelement injiziert und bei jedem nächsten Taktzyklus seriell nach rechts verschoben, bis die Daten in einem gemeinsamen Puffer für diese Zeile gespeichert werden; und wobei sich zwei oder mehrere Zeilen der systolischen Prozessorelemente einen gemeinsamen Timer teilen, der die Zeiteinheiten verfolgt.
  18. Vorrichtung, umfassend: eine integrierte Ausleseschaltung (ROIC), die einen oder mehrere Lichtdetektoren enthält, die in einem Array angeordnet sind, das mit einem Taktschaltkreis zusammenwirkt, wobei die ROIC dafür ausgelegt ist, wenigstens eine Laufzeit der reflektierten Lichtimpulse unter Verwendung eines Eingangssignals vom Taktschaltkreis zu messen und dann die Laufzeit beginnend an einem ersten Bezugszeitpunkt und endend an einem zweiten Referenzpunkt zu messen, wobei die ROIC dafür ausgelegt ist, die systolische Verarbeitung der Lichtdetektoren auszuführen, wobei die ROIC die systolische Verarbeitung ausführt, um wenigstensFolgendes zu erfassen: i) wann, in Zeiteinheiten, ein ursprüngliches Photon seines reflektierten Lichtimpulses durch jeden der Lichtdetektoren in dem Array erfasst wird, ii) wo sich das Photon geografisch im Array befindet, iii) Scannen der durch die Lichtdetektoren erfassten Daten, und dann iv) Analysieren der gescannten Daten mit einem Algorithmus, um zu erkennen, wann, in Form von Zeiteinheiten, das Photon im Verhältnis zum Eingangssignal vom Taktschaltkreis erfasst wurde.
  19. Vorrichtung nach Anspruch 18, wobei die ROIC eine Vielzahl systolischer Prozessorelemente enthält, wobei jedes systolische Prozessorelement seinen eigenen Lichtdetektor und das dazugehörige Register aufweist, wobei jedes systolische Prozessorelement zwei Eingangssignale hat: i) das Ausgangssignal eines systolischen Prozessorelements vom benachbarten systolischen Prozessorelement auf der linken Seite und ii) eine Spaltenadresse des dazugehörigen Pixels im Array, um eine Standort- und Ankunftszeitinformation des erkannten Photons zu übermitteln.
  20. Vorrichtung nach Anspruch 18, wobei die ROIC eine Vielzahl systolischer Prozessorelemente enthält, wobei jedes systolische Prozessorelement seinen eigenen Lichtdetektor und das dazugehörige Register aufweist, wobei jedes systolische Prozessorelement dafür ausgelegt ist, die systolische Verarbeitung wie folgt auszuführen: i) ohne Photonenerkennung verlaufen die Daten von links nach rechts im Array der systolischen Prozessorelemente in Form eines parallelen Schieberegisters; und ii) mit Photonenerkennung wird die Spaltenadresse des aktivierten Lichtdetektors in sein systolisches Prozessorelement injiziert und bei jedem nächsten Taktzyklus seriell nach rechts verschoben, bis die Daten in einem gemeinsamen Puffer für diese Zeile gespeichert werden; und wobei sich zwei oder mehrere Zeilen der systolischen Prozessorelemente einen gemeinsamen Timer teilen, der die Zeiteinheiten verfolgt.
DE112018001060.0T 2017-02-28 2018-02-20 Ein systolisches Prozessorsystem für ein System zur Lichtlaufzeitmessung Pending DE112018001060T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762465040P 2017-02-28 2017-02-28
US62/465,040 2017-02-28
PCT/US2018/018843 WO2018160395A1 (en) 2017-02-28 2018-02-20 A systolic processor system for a light ranging system

Publications (1)

Publication Number Publication Date
DE112018001060T5 true DE112018001060T5 (de) 2020-10-29

Family

ID=63370217

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018001060.0T Pending DE112018001060T5 (de) 2017-02-28 2018-02-20 Ein systolisches Prozessorsystem für ein System zur Lichtlaufzeitmessung

Country Status (4)

Country Link
US (1) US11442153B2 (de)
JP (1) JP7100049B2 (de)
DE (1) DE112018001060T5 (de)
WO (1) WO2018160395A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101976643B1 (ko) * 2018-10-15 2019-05-10 주식회사 로이첸 회전식 조리기
KR102048656B1 (ko) * 2019-05-03 2020-01-08 김영희 경사바닥체 일체형 경사진 볶음기
US11573302B2 (en) * 2019-10-17 2023-02-07 Argo AI, LLC LiDAR system comprising a Geiger-mode avalanche photodiode-based receiver having pixels with multiple-return capability
US11709248B2 (en) * 2020-11-10 2023-07-25 Texas Instruments Incorporated Beamforming hardware accelerator for radar systems
WO2023206352A1 (en) * 2022-04-29 2023-11-02 Huawei Technologies Co., Ltd. Apparatus for light detection and ranging
JP2024023058A (ja) * 2022-08-08 2024-02-21 ソニーセミコンダクタソリューションズ株式会社 光検出装置および光検出システム

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001209897A (ja) 2000-01-26 2001-08-03 Mitsubishi Electric Corp 路上監視装置
US7202941B2 (en) * 2002-11-26 2007-04-10 Munro James F Apparatus for high accuracy distance and velocity measurement and methods thereof
US7489834B2 (en) * 2003-01-17 2009-02-10 Parimics, Inc. Method and apparatus for image processing
KR100503820B1 (ko) 2003-01-30 2005-07-27 학교법인 포항공과대학교 시스톨릭 어레이를 이용한 멀티레이어 실시간 입체 영상정합 시스템 및 방법
WO2008008970A2 (en) 2006-07-13 2008-01-17 Velodyne Acoustics, Inc High definition lidar system
JP2011128024A (ja) 2009-12-17 2011-06-30 Sharp Corp 3次元撮像装置
US8976340B2 (en) * 2011-04-15 2015-03-10 Advanced Scientific Concepts, Inc. Ladar sensor for landing, docking and approach
US9244924B2 (en) 2012-04-23 2016-01-26 Sri International Classification, search, and retrieval of complex video events
US9734730B2 (en) 2013-01-31 2017-08-15 Sri International Multi-modal modeling of temporal interaction sequences
US20140212854A1 (en) 2013-01-31 2014-07-31 Sri International Multi-modal modeling of temporal interaction sequences
US9904852B2 (en) 2013-05-23 2018-02-27 Sri International Real-time object detection, tracking and occlusion reasoning
JPWO2015033497A1 (ja) 2013-09-06 2017-03-02 パナソニックIpマネジメント株式会社 固体撮像装置、撮像装置及びその駆動方法
AU2014352833B2 (en) * 2013-11-22 2019-12-05 Aurora Operations, Inc. LiDAR scanner calibration
JP6171975B2 (ja) 2014-02-21 2017-08-02 株式会社豊田中央研究所 ヒストグラム作成装置及びレーザレーダ装置
US9875445B2 (en) 2014-02-25 2018-01-23 Sri International Dynamic hybrid models for multimodal analysis
US9575184B2 (en) 2014-07-03 2017-02-21 Continental Advanced Lidar Solutions Us, Inc. LADAR sensor for a dense environment
US10000000B2 (en) 2015-03-10 2018-06-19 Raytheon Company Coherent LADAR using intra-pixel quadrature detection
US10126411B2 (en) * 2015-03-13 2018-11-13 Continental Advanced Lidar Solutions Us, Llc. Beam steering LADAR sensor
US10884503B2 (en) 2015-12-07 2021-01-05 Sri International VPA with integrated object recognition and facial expression recognition

Also Published As

Publication number Publication date
WO2018160395A1 (en) 2018-09-07
US20200003876A1 (en) 2020-01-02
JP7100049B2 (ja) 2022-07-12
US11442153B2 (en) 2022-09-13
JP2020524258A (ja) 2020-08-13

Similar Documents

Publication Publication Date Title
DE112018001060T5 (de) Ein systolisches Prozessorsystem für ein System zur Lichtlaufzeitmessung
EP3185038B1 (de) Optoelektronischer sensor und verfahren zur messung einer entfernung
EP3258228B1 (de) Lichtempfänger mit lawinenphotodioden im geiger-modus und verfahren zum auslesen
DE102012109129B4 (de) Sensor-Pixelanordnung und getrennte Anordnung einer Speicherung und Akkumulation mit parallelem Erfassen und Auslesen
DE112015001704T5 (de) Bildsensor mit hoher Auflösung, Frame-Rate und niedrigem Stromverbrauch
DE60120010T2 (de) Schaltung zur hochpräzisen Ermittlung der Ankunftszeit von Photonen auf durch einzelne Photonen getriggerte Avalanche-Dioden
DE102016100038B4 (de) Bildsensor
EP2635918B1 (de) Optoelektronischer sensor und verfahren zur erfassung und abstandsbestimmung von objekten
DE112020001783T5 (de) Flugzeitsensor
DE112010004328T5 (de) Mehrstufiger Demodulationsbildpunkt und Verfahren
DE2846627B2 (de) Korrelations-Verfolgungsgerät
DE2819880A1 (de) Signalverarbeitungsschaltung, insbesondere fuer radar- und sonaranlagen
DE102011089629A1 (de) Lichtlaufzeitkamera
DE112018006021T5 (de) Einzelchip-rgb-d-kamera
DE102005055656B3 (de) Verfahren und Vorrichtung zur Verarbeitung von Detektorsignalen
DE102016114416B4 (de) Fotoelektrisches Wandlungselement, fotoelektrische Wandlungsvorrichtung unter Verwendung desselben, Abstandsdetektionssensor, Informationsverarbeitungs-system und Fahrzeug
DE3039264C2 (de) Verfahren und Vorrichtung zur Ladungsübertragung bei einer Festkörper-Bildabtastvorrichtung
DE102013014360A1 (de) Ortsempfindlicher Detektor mit digitaler Auswerteelektronik zur Detektion von Photonen- oder Teilchenverteilungen
DE2813913C2 (de)
DE1190231B (de) Anordnung zur Bestimmung der zeitlichen Mittelwerte von Funktionen
DE10156629A1 (de) Anordnung von Steuerelementen
DE112020006326T5 (de) Laufzeitsensor, laufzeitsystem und system
WO2020234216A1 (de) Betriebsverfahren und steuereinheit für eine spad-basierte detektoranordnung, lidar-system und arbeitsvorrichtung
DE102018130022A1 (de) Verfahren zur Bestimmung einer Ankunftszeit eines eine physikalische Messgröße repräsentierenden, digitalisierten Signalpulses, Auswerteeinheit, Vorrichtung, Auswertsystem und Strahlendetektionssystem
DE3132168C2 (de)