-
Die
vorliegende Erfindung bezieht sich auf das Gebiet der Bildsensoren
und insbesondere auf das Bilden einer Schnittstelle von Hochgeschwindigkeitsbildsensoren
mit digitaler Logik.
-
Bildsensoren,
wie z. B. CCD- oder CMOS-Sensoren, sind kostengünstiger geworden und haben
sich bei Qualität
und Leistungsfähigkeit verbessert,
was es wünschenswert
macht, dieselben in kleinen elektronischen Geräten und Systemen aufzunehmen.
Als ein Beispiel kann der Micron MT9M413-Sensor von Micron Technologies 1,3 Megapixelbilder
bei bis zu 500 Rahmen pro Sekunde erfassen. Teilrahmen (Rahmen mit
reduzierter Auflösung)
können
bei mehr als 10.000 Rahmen pro Sekunde erfasst werden.
-
Es
ist jedoch schwierig, solche Sensoren in eingebetteten Systemen
zu verwenden. Dieselben geben Daten und Synchronisationssignale
bei hohen Geschwindigkeiten aus, und erfordern viele I/O-Verbindungen.
Der MT9M413 wird in einem 280-Stift-Keramikgehäuse geliefert.
Die Datenschnittestelle umfasst zehn Datentore (jeweils zehn Bits), die
bei 66 MHz arbeiten. Die Systeme, die diese Vorrichtungen verwenden,
müssen
ausreichend Rechenleistung aufweisen, um die Synchronisationssignale
zu decodieren und die sequentiellen Daten ordnungsgemäß zu interpretieren.
Folglich werden Hochgeschwindigkeitsbildsensoren selten in eingebetteten
Systemen kleiner Leistung verwendet.
-
Hochgeschwindigkeitsbildsensoren
erzeugen Daten bei einer so hohen Geschwindigkeit, dass dieselben
nicht in Echtzeit verarbeitet werden können. Folglich werden die meisten
Hochgeschwindigkeitsbildsensoren in Aufzeichnungssystemen verwendet.
Das System wird allgemein mit einer Hochge schwindigkeitskamera und
einem PC implementiert. Die Hochgeschwindigkeitskamera liefert eine Steuerschnittstelle
(typischerweise RS-232), die verwendet wird, um die Erfassungsbedingungen
(z. B. Belichtungszeit) einzustellen, und eine Hochgeschwindigkeitsdatenschnittstelle. Üblicherweise
verwendete Hochgeschwindigkeitsschnittstellen umfassen IEEE 1394,
CameraLink und Gigabit Ethernet.
-
Nachteile
von Hochgeschwindigkeitssensoren, insbesondere für den Entwickler von kleinen oder
eingebetteten Systemen, umfassen:
Auf Daten kann nur sequentiell
zugegriffen werden. Die erste Zeile muss vor der zweiten Zeile ausgelesen
werden, usw.
-
Kein
Puffern ist vorgesehen. Insbesondere eingebettete Systeme haben
begrenzten internen Speicher und sind möglicherweise nicht in der Lage, einen
vollständigen
Bildrahmen aufzunehmen, es sei denn, es ist ein externer Speicher
vorgesehen.
-
Hochgeschwindigkeitssynchronisationssignale
müssen
decodiert werden, um die Bilddaten zu interpretieren. Aufgrund der
hohen Datenrate ist eine externe Synchronisationslogik erforderlich.
-
Der
Sensor „drückt" bzw. liest Daten
bei einer festen Geschwindigkeit ein. Daten müssen bei einer festen Geschwindigkeit
aus dem Sensor ausgelesen werden oder Artefakte erscheinen in dem
Bild. Daten müssen
bei der Geschwindigkeit, bei der sie erzeugt werden „geschluckt" werden. Bei hoher
Geschwindigkeit sind externe Speicherpuffer erforderlich.
-
Ein
Hochgeschwindigkeitstakt muss vorgesehen sein, und muss mit anderen
Elementen des Systems für
Datenübertragung
synchronisiert sein.
-
Daten-
und Steuersignale verlaufen auf unterschiedlichen Wegen.
-
Hoher
Stiftzählwert;
viele I/O-Leitungen sind erforderlich, um den Bildsensor zu steuern
und Videodaten zu empfangen.
-
Der
Leistungsverbrauch ist typischerweise hoch, daher ist die Vorrichtung
nicht geeignet für
die Verwendung in Systemen kleiner Leistung.
-
Es
ist die Aufgabe der vorliegenden Erfindung, eine integrierte Bilderfassung-Parallel-Schnittstellen-RAM-Schaltung
mit verbesserten Charakteristika zu schaffen.
-
Diese
Aufgabe wird durch eine Schaltung gemäß Anspruch 1 gelöst.
-
Ein
Einzelchipbildsensor liefert eine parallele Schnittstelle, die Direktzugriffsspeicher-(RAM-)Chips gemeinsam
ist. Der Bilderfassung-Parallel-Schnittstellen-RAM (IPIRAM) enthält ein Pixelarray,
das mit einem Zwei- bzw. Dual-Tor-RAM eine Schnittstelle bildet. Alle
Daten- und Steuertransaktionen werden durch die parallele RAM-Schnittstelle
durchgeführt. Der
RAM-Adressraum ist in einen Bereich von Bildpuffern und einen Bereich
für speicherabgebildete Steuer-
und Statusregister unterteilt.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Beschreibung werden nachfolgend mit Bezugnahme
auf die beiliegende Zeichnung näher
erläutert.
Es zeigt:
-
1 ein
Blockdiagramm eines Bilderfassung-Parallel-Schnittstellen-RAM.
-
Gemäß der vorliegenden
Erfindung, und wie es in 1 gezeigt ist, ist eine Bilderfassungsvorrichtung
als ein Einzelne-Integrierte-Schaltung-(IC-)Parallelschnittstel len-RAM
(IPIRAM) präsentiert.
Der IPIRAM 100 verbindet den Zweitor-RAM 200 schnittstellenmäßig mit
der externen Logik mit parallelen Adressleitungen 210,
parallelen Datenleitungen 220 und Steuerleitungen, die
bei dem gezeigten Beispiel Takt- 230, Chipauswahl- (CS) 240,
Lese/Schreib-Leitung 250 und Statusleitung 260 umfassen.
Mehrere Chipauswahlleitungen können
verwendet werden, und andere bekannte Variationen von Vorrichtungsauswahl
können
ebenfalls verwendet werden. Bei einer Vorrichtung, die als 64k (65536
dezimal) 8-Bit-Bytes organisiert ist, würden 16 Adressleitungen und
8 Datenleitungen verwendet.
-
Zwei-Tor-RAM-Entwürfe sind
in der Technik gut bekannt. Wesentlich für den Betrieb eines Zwei-Tor-RAM
ist eine Adressenkonfliktlogik 270, die Zugriff zu RAM-Inhalten
zwischen externer Schnittstelle, Adress- Daten- und Steuerleitungen 210 bis 260 und
interne Zugriffe entscheidet.
-
Der
Adressraum des RAM ist vorzugsweise als ein oder mehrere Bildpuffer 280 und
speicherabgebildete Steuer- und Statusregister 290 organisiert. Obwohl
die Steuer- und Statusregister irgendwo in dem RAM-Adressraum abgebildet
sein können,
sind dieselben bei dem gezeigten Ausführungsbeispiel in die letzten
n Positionen des RAM abgebildet. Beim Lesen vom Speicher wird den
Adressleitungen 210 ein Adresswert präsentiert, und die Steuerleitungen werden
hin- und hergeschaltet, um eine Leseoperation einzuleiten, die die
ausgewählten
Daten auf den Datenbus 220 platziert. Datenwerte in dem
Bildpuffer 280 werden jedes Mal überschrieben, wenn ein neuer
Rahmen erfasst ist. Die Konfliktlogik kann externe Schreibvorgänge von
externen Schnittstellenleitungen 210 bis 270 durch
den Bildpuffer 280 ermöglichen,
so dass auf diesen Speicher als Universalspeicher zugegriffen werden
kann, oder der Bildpufferbereich 280 könnte als Nur-Lese behandelt
werden, wobei Schreibanforderungen ignoriert werden.
-
Bei
dem gezeigten Ausführungsbeispiel
liegen interne Daten- 310,
Adress- 320 und Steuer- 330 Busse vor.
-
Das
Bilderfassungspixelarray 400 wird durch die Erfassungssteuerung 410 getrieben,
die mit dem internen Steuerbus 330 und der Konfliktlogik 270 kommuniziert.
Während
der Bilderfassung ist der Oszillator 420 durch den Steuerbus 330 aktiviert
und liefert Taktsignale an den Adressgenerator 430 und
die Bilderfassungssteuerung 410. Daten von dem Bilderfassungsarray
werden durch den Multiplexer 440 dem programmierbaren Gewinnverstärker (PGA) 450 und
dem Analog/Digital-Wandler (ADC) 460 zugeführt, wo
analoge Pixelwerte in digitale umgewandelt werden und auf dem internen
Datenbus 310 präsentiert
werden, zusammen mit einer Adresse auf dem Adressbus 320,
um in dem RAM 200 gespeichert zu werden.
-
Vie
unterschiedliche Pixelarrayarchitekturen könnten verwendet werden, wie
z. B. ein CCD-Array oder eine CMOS-Aktiv-Pixel-(APS-)Architektur. Ein CCD-Betrieb
wird beispielsweise erörtert
in Solid-State Imaging with Charged Coupled Devices von Theuwiessen
(S. 109 – 128,
Springer, 1995). APS-Architekturen, wie z. B. der Drei-Transistor-(3T-) APS-Lösungsansatz überwinden
einige der Nachteile von CCD-Sensoren. Die Adressereignisbilderfassungsarchitektur
von Culurciello, beschrieben in Proc. IEEE Intl. Symp. On Circuits
and Systems 2001 (ISCAS 2001), Bd. 3, S. III – 505 bis III – 508, könnte ebenfalls
verwendet werden. Bei dieser asynchronen Architektur wird jedes
Mal, wenn die Spannung eines Pixels einen Schwellenwert überschreitet,
ein Satz von Pixelkoordinaten ausgegeben. Diese Koordinaten könnten verwendet
werden um einen Zähler
an dieser Pixelposition in dem Pufferspeicher 200 zu inkrementieren.
-
Das
Bereitstellen eines Bildpuffers in RAM 200 ermöglicht es
einer externen Schaltungsanordnung, wie z. B. kostengünstigen
Mikroprozessoren, in einem Daten-„Zieh"-Modus zu arbeiten, und Daten anzufordern,
wenn dieselben benötigt werden,
anstatt durch das Bilderfassungsarray Bilddaten zwangsweise zugeführt zu bekommen.
Das gesamte Bild kann bei einer langsamen Geschwindigkeit auf Zufallszugriffsweise
abgefragt werden, oder eine ausgewählte Gruppe von Pixeln kann
bei einer hohen Geschwindigkeit abgefragt werden. Diese Abfrage wird
durch die externe Vorrichtung und nicht durch das Bilderfassungsarray
gesteuert.
-
Steuer-
und Statusregister 290 liefern eine Steuerung der Vorrichtung
und des Bilderfassungsprozesses. Diese Register liefern typischerweise
die Steuerung der Belichtungsperiode, des PGA-Gewinns und anderer
Bilderfassungsparameter, wie z. B. der Auflösung. Steuerbits oder -bytes
werden verwendet, um die Bilderfassung zu aktivieren oder zu deaktivieren.
Bildmodi, wie z. B. Einzelrahmenerfassung und fortlaufende Erfassung
können
vorgesehen sein. Erfassung bei geringer Rahmengeschwindigkeit könnte auch
vorgesehen sein, oder das Synchronisieren von Bilderfassung mit
einer bestimmten Steuerleitung und einem Steuersignal, so dass Bilderfassung
mit einem externen Ereignis synchronisiert werden könnte, wie
z. B. Strobe-Licht oder andere Beleuchtung.
-
Diese
Steuerregister können
von der externen Schnittstelle beschrieben werden, die die Leitungen 210 bis 260 umfasst.
Statusregister werden von der externen Schnittstelle gelesen und
liefern den Status der Vorrichtung. Statusregister können als
getrennte Bytes organisiert sein, oder Steuer- und Statusinformationen können zusammen
organisiert sein, wobei einige Bits und/oder Felder nur für Statusinformationen
gelesen werden, und andere Felder für die Steuerung gelesen/beschrieben
oder nur beschrieben werden. Als ein Beispiel kann das Einstellen
des höchstwertigsten
Bits eines Statusregisterbytes auf Eins zurücksenden, wenn Bilderfassung
aktiv ist, den Programmierungsprozess vereinfachen.
-
CCD-
und CMOS-Bildsensoren verbrauchen typischerweise von 20 bis mehr
als 100 Milliwatt Leistung, wenn dieselben aktiv sind. Bilderfassungsvorrichtungen,
die Videodatenströme
erzeugen, erfordern präzise
stabile Takte für
den Betrieb bei Standardvideoraten und zum Verringern der Sichtbarkeit von
Beleuchtungsartefakten, wie z. B. Flackern. Solche Systeme verwenden
typischerweise einen Kristalltakt zum Liefern der benötigten Präzision und
Stabilität.
Kristalltakte beginnen langsam, in der Größenordnung von Hunderten von
Millisekunden, damit dieselben nicht schnell angehalten und gestartet
werden können.
Da die vorliegende Erfindung Bilddaten in RAM 200 puffert,
muss der Oszillator 420 im Gegensatz dazu nicht präzise oder
stabil sein. Bei dem bevorzugten Ausführungsbeispiel wird ein schnellstartender
Oszillator, wie z. B. ein RC-Oszillator,
als Oszillator 420 verwendet. Die Zeitkomponenten für den Oszillator 420 können vollständig auf
dem Chip oder außerhalb
des Chips liegen. Durch Lieferung der Steuerung des Oszillators 420 durch
Steuer- und Status-Register 290 kann der Bilderfassungsprozess und
Oszillator 420 angehalten und gestartet werden, wodurch
Leistungseinsparungen geliefert werden. Da Bilddaten in dem Array 200 gespeichert
werden, sind die Bilddaten nach wie vor verfügbar, wenn die Bilderfassungsschaltungsanordnung
in einem Standby- oder Niedrigleistungsmodus ist. Steuer- und Statusregister 290 können optional
Niedrigauflösungsbilderfassung
mit dem Bilderfassungsarray 400 liefern, was die Anzahl
von erforderlichen Pixelumwandlungen reduziert. Hochauflösungsbilderfassung und
der zugeordnete höhere
Leistungsverbrauch können
nur verwendet werden, wenn sie benötigt werden.
-
Optional
kann die Hilfsverarbeitungslogik 500 auf dem Chip vorgesehen
sein. Solche Hilfsverarbeitungslogik könnte Funktionen, wie z. B.
das Skalieren der Bildgröße, das
Skalieren der Bildintensität,
Randerfassung, Merkmalsextraktion, Bildkomprimierung, Bewegungserfassung,
Bewegungsschätzung,
automatische Belichtung, automatischer Weißab gleich und/oder dynamische
Bereichserweiterung umfassen, durch Kombinieren von Bildern mit
unterschiedlichen Belichtungsdauern in einem einzigen Bild. Diese
Hilfsverarbeitungslogik kann vom Typ einer festen Logik, eines Gatterarrays,
wie z. B. eines FPGA, oder eines Mikroprozessors sein. Bei Mikroprozessorimplementierungen
kann Speicher, der die Programmsequenzen enthält, die für Hilfsverarbeitung notwendig
sind, in Nur-Lese-Speicher (ROM), in elektrisch änderbarem Speicher, wie z.
B. EPROM, EEPROM oder Flash gespeichert sein. Programmsequenzen
können
ebenfalls durch den RAM 200 geliefert werden.