Anwendungsschema des Bilderfassungssystems basierend auf dem EP2C5F256C6-Chip des FPGA-Geräts

einführen

In Datenerfassungssystemen mit niedriger Geschwindigkeit werden Mikrocontroller oder DSPs häufig zur Steuerung verwendet, aber für Datenerfassungszwecke mit hoher Geschwindigkeit wie Bilderfassung kann diese Lösung die Anforderungen nicht erfüllen. Daher verschwendet diese Lösung die Port-Ressourcen des Mikrocontrollers oder DSP stark und weist eine geringe Flexibilität auf; wenn die serielle Port-Methode zum Sammeln von Daten verwendet wird, wird einerseits die Datenerfassungsgeschwindigkeit verringert und andererseits Die CPU-Ressourcen werden stark verbraucht. Das System verwendet FPGA als Hauptsteuereinheit der Datenerfassung, und die gesamte Steuerlogik wird durch Hardware vervollständigt, die eine hohe Geschwindigkeit, niedrige Kosten und eine starke Flexibilität aufweist. Um die Pufferfunktion zu erhöhen, erweitert das System die 256 MB RAM außerhalb des FPGA, was nicht nur die Pufferkapazität erhöht, sondern auch die Lese- und Schreibhäufigkeit stark reduziert und die CPU des Host-Computers effektiv entlastet. Unter den Bilddatenschnittstellen sind VGA und PCI-Express weiter verbreitet.Diese Schnittstellen haben eine schlechte Skalierbarkeit und hohe Kosten. Das System verwendet eine Hochgeschwindigkeits-USB-Schnittstelle als Kommunikationsschnittstelle mit dem Host-Computer, die schnell, einfach zu installieren und flexibel ist.


1 Systemblockdiagramm


Das Blockdiagramm des Systems ist in Abbildung 1 dargestellt. Die FPGA-Steuereinheit übernimmt die Cyclone II-Serie von EP2C5F256C6A1tera, die hauptsächlich aus 4 Teilen besteht – Hauptsteuermodul, CMOS-Sensorschnittstelle, RAM-Controller und EZ-USB-Schnittstellencontroller. Die Sensorschnittstelle ist für die Vollendung der SCCB-Zeitsteuerung verantwortlich, der RAM-Controller wird verwendet, um die Zeitsteuerung von RAM-Lese-, -Schreib- und -Aktualisierungsvorgängen zu implementieren, das USB-Schnittstellenmodul vervollständigt das Lesen und Schreiben von Daten zwischen dem Hauptsteuermodul und dem EZ-USB und das Hauptsteuermodul ist für den Slave-EZ-USB verantwortlich.Der vom USB-Teil empfangene Host-Computerbefehl wird analysiert, und das entsprechendeSignal wird erzeugt, nachdem der Befehl analysiert wurde, um jedes entsprechendeModul zu steuern, wie etwa das übertragene Bildformat durch den CMOS-Sensor, den Lese- und Schreibmodus des RAM und die Burstlänge.


2 OV7620-Moduldesign


Der Bildsensor verwendet OV7620, und das Schnittstellendiagramm ist in Abbildung 2 dargestellt. Der Sensor ist leistungsstark und bietet eine Vielzahl von Datenformatausgaben, automatische Entfernung von weißem Rauschen, Weißabgleich, Farbsättigung, Farbtonsteuerung, Fenstergröße usw. können über die interne SCCB-Steuerleitung eingestellt werden. Der OV7620 ist ein CMOS-Farbbildsensor. Unterstützt kontinuierliches und verschachteltes Scannen, VGA und QVGA zwei Bildformate; maximale Pixel 664 × 492, Bildrate 30 fps; Datenformate umfassen YUV, YCrCb und RGB. 0V7620 unterstützt den SCCB-Einstellungsmodus und den Standardeinstellungsmodus zum automatischen Laden, die Auswahl wird vom SCCB gesteuert. Dieses System muss nur den SCCB-Modus unterstützen, und die SBB ist während des Entwurfs geerdet. Nach dem Einschalten stellt das FP-GA den OV7620 über den SCCB-Bus ein, und das System kann auch Befehle vom Host-Computer annehmen, um seinen Arbeitsmodus einzustellen. Das SCCB-Bus-Timing ist ähnlich dem I2C-Bus-Timing, SIO-0 ist äquivalent zu SDA und SIO-1 ist äquivalent zu SCL. OV7620 arbeitet im Slave-Modus. Senden Sie beim Schreiben des Registers zuerst die ID-Adresse des OV7620, dann die Zielregisteradresse der geschriebenen Daten und schließlich die zu schreibenden Daten.


3 RAM-Timing-Steuermodul


Die RAM-Controller-Schnittstelle wird hauptsächlich verwendet, um das grundlegende Betriebstiming des RAM zu realisieren, wie z. Die Lese- und Schreibbefehle werden vom Hauptsteuermodul ausgegeben und vom Hauptsteuermodul ausgeführt. Regler. Das System verwendet Hynix HY57V561620F(L)T(P), das eine Datenspeicherung mit großer Kapazität von 256 MB realisieren kann.


Die Ablaufsteuerung wird durch eine endliche Zustandsmaschine (FSM) implementiert, und ihr Zustandsübergangsdiagramm ist in Abbildung 3 dargestellt. 200 μs nach dem Einschalt-Reset sind alle RAM-Blöcke vorgeladen. Der Pin-Pegel des Ladevorgangs ist in Tabelle 1 dargestellt. Nach Abschluss des Ladevorgangs werden alle Blöcke durch tRP aufgefrischt, und nach einer Verzögerung von tRFC wird in den Moduseinstellungszustand eingetreten . Im Moduseinstellzustand ist es notwendig, die RAS-Verzögerung, die Burstlänge usw. einzustellen, nach einer Verzögerung von tMRD in den Ruhezustand einzutreten und auf die Lese- und Schreibbefehle von der Hauptsteuereinheit zu warten. Im Ruhezustand müssen alle Zeilen im RAM alle 64 ms aktualisiert werden. Bei diesem Design ist das Timing-Refresh-Modul als Zähler ausgelegt, und der Zählimpuls wird aus dem Takt des Controllers selbst ausgewählt. Da RAM ein maximales Zeitintervall zwischen Auffrischungen von nicht mehr als 64 ms erfordert, unter der Annahme einer Systemtaktfrequenz von 100 MHz, einer Taktperiode von etwa 0,01 μs, und alle 8.192 Zeilen innerhalb von 64 ms aufgefrischt werden müssen, sollte die maximale Anzahl sein 781 Mal (64 ms/8192/0,01 μs). Das System verwendet 700 Zählimpulse, um Auffrischungsanforderungen zu erzeugen.


4 EZ – USB-Übertragungscontroller


CY7C68013 ist der Chip der EZ-USB FX2-Serie von Cypress Company, und das Pin-Verbindungsdiagramm ist in Abbildung 5 dargestellt. Diese Chipserie integriert einen USB2.O-Transceiver, eine Serial Interface Engine (SIE), einen 8,5 KB erweiterten 8501-RAM auf dem Chip, 16 KB RAM, 4 KB FIFO-Speicher, E/A-Ports, Datenbus, Adressbus und Mehrzweckprogrammierung Schnittstelle (GPIF); Es gibt 3 Schnittstellenmodi – Port-Modus, Slave-FIFO-Schnittstellenmodus und GPIF-Schnittstellenmodus. Im Port-Modus können alle I/O-Pins als 805l Allzweck-I/O-Ports verwendet werden. Als grundlegendstes Datenübertragungsverfahren wird die Datenübertragung hauptsächlich durch das Firmwareprogramm abgeschlossen und erfordert die Beteiligung der CPU, sodass die Datenübertragungsrate relativ niedrig ist. Im Slave-FIFO-Schnittstellenmodus kann eine externe Logik oder ein externer Prozessor direkt mit dem FX2-Endpunkt-FIFO verbunden werden. Der GPIF-Schnittstellenmodus verwendet PORTB und PORTD, um eine 16-Bit-Datenschnittstelle zu den vier FX2-Endpunkten FIF0 (EP2, EP4, EP6 und EP8) zu bilden. Der GPIF ist als interner Hauptcontroller direkt mit dem FIFO verbunden und erzeugt benutzerprogrammierbare Steuersignale zur Kommunikation mit der externen Schnittstelle. Die Datenübertragung der letzteren zwei Modi wird durch Ausführen des USB-Protokolls selbst vervollständigt, und der Mikroprozessor nimmt nicht an der Datenübertragung teil, wodurch die Datenübertragungsrate stark verbessert wird.


abschließend


Durch das obige Design wird der Engpass der Hochgeschwindigkeits-Datenabtastung und -übertragung gut gelöst, und die Sammlung von Hochgeschwindigkeits-Bilddaten wird wirklich mit kurzer Verzögerung realisiert. Aufgrund seiner niedrigen Kosten und einfachen Installation hat es breite Marktaussichten und kann in Bereichen wie Telekonferenzen, Telemedizin und Fernunterricht eingesetzt werden, die eine hochauflösende Bildübertragung erfordern. Die Innovation dieses Designs besteht darin, sich an die Anwendungsanforderungen verschiedener Bilddaten anzupassen und eine Vielzahl von Geschwindigkeits-Lese- und Schreibmodi zu realisieren, die Echtzeit-Burst-Längen-Lesen und -Schreiben und Hochgeschwindigkeits-Vollseiten-Lesen und -Schreiben sein können.