Cypress

FPGAs per USB konfigurieren

6. November 2012, 16:23 Uhr | Von Gopalakrishnan Vijayakumar
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 2

Konfiguration eines FPGAs über eine USB-Schnittstelle

Eine schnelle USB-Schnittstelle lässt sich bei FPGA-basierten Lösungen auf eine der folgenden Weisen implementieren:

  • Proprietäre Software für einen USB-Protokollstack mit externem Transceiver: Bei diesem Verfahren wird das serielle Schnittstellenengine IP (SIE) innerhalb des FPGAs oder ASICs implementiert und zusammen mit einem externen Transceiver eingesetzt. Dieses Verfahren hat den Vorteil, dass der Hardwareaufwand minimal ist. Die Entwicklung des IPs für den USB-Stack erfordert jedoch wertvolle Zeit und Entwicklungsressourcen. Auf der anderen Seite kann der Einsatz eines zugekauften IPs kostspielig sein. Die Implementierung des höheren Protokolls und der Anwendungsfunktionen beansprucht einen erheblichen Anteil wertvoller Ressourcen des FPGAs.USB-Bridge-
  • IC mit integrierter SIE und Transceiver: Bei dieser Technik wird das FPGA mit einer externen seriellen Schnittstellenengine (SIE) und einem externen Transceiver kombiniert. Das Protokollmanagement auf Signalebene wird nicht mehr vom FPGA übernommen, wodurch die Ressourcen des FPGA in einem gewissen Umfang geschont werden. Die höheren Ebenen des USB-Protokolls werden jedoch weiterhin im FPGA implementiert.  In diesem Fall muss die Entscheidung anhand eines Vergleichs der Kosten der erforderlichen externen Hardware und der eingesparten Ressourcen im FPGA getroffen werden. 
  • Controller + FPGA: Bei diesem Verfahren wird das FPGA oder ASIC mit einem intelligenten USB-Controller-IC verbunden, das das Management des USB-Protokolls auf allen Ebenen übernimmt. Controller bieten die Flexibilität einer konfigurierbaren Anzahl von Endpunkten sowie der Größe des FIFO-Speichers. Sie können sogar einen Mikrocontroller für das Management der höheren Ebenen des USB-Protokolls einschließen. Diese Peripherie-Controller können auch Fähigkeiten enthalten, um einige Funktionen auf Anwendungsebene zu übernehmen und damit das FPGA oder ASIC zu entlasten. 
Konfiguration des FPGA per USB
Konfiguration des FPGA per USB
© Cypress

Dieses letzte Verfahren lässt sich so anpassen, dass es zusätzlich die Möglichkeit bietet, das FPGA über USB zu konfigurieren. Diese Konfiguration kann über den seriellen oder den parallelen Datenpfad des FPGA erfolgen. Nach der Programmierung des FPGAs kann der USB-Controller zu seiner Standardfunktion als einfache Datenschnittstelle zu einem Host-Rechner zurückkehren.

Viele auf dem Markt erhältliche USB-Controller enthalten eine eigene programmierbare CPU, die neben der Implementierung des USB-Protokolls einige Funktionen auf Anwendungsebene ausführen kann. Um den Konfigurations-Bitstream in das FPGA zu laden, muss der USB-Controller die benötigten Konfigurationssignale erzeugen. Es gibt verschiedene Konfigurationsverfahren zur Programmierung jedes einzelnen FPGAs, und der USB-Controller kann jedes dieser Verfahren benutzen, um den Bitstream zur Konfiguration zu übertragen.

Bei Anwendungen, in denen die Mithilfe des Menschen nicht immer machbar ist (z.B. bei Satelliten und U-Booten), ist dieses Verfahren hilfreich, denn es benötigt nicht die Mitwirkung eines Technikers vor Ort. Bei fortgeschrittenen Anwendungen auf FPGA-Basis, die eine USB-Konnektivität mit hoher Geschwindigkeit erfordern, entfällt bei einer Konfiguration des FPGAs per USB die Notwendigkeit eines speziellen Konfigurationsbausteins (z.B. ein EPROM oder ein Prozessor) für das FPGA.

Beim Einschalten oder beim Empfang eines Befehls vom angeschlossenen USB-Host schaltet der USB-Controller in einen Modus, in dem er den Bitstream vom Host über den Datenendpunkt erwartet. Beim Empfang eines Bitstreams mit einer gültigen Signatur führt der USB-Controller einen Reset des FPGA aus und erzeugt die Konfigurationssignale für die Übertragung des Bitstreams zum FPGA. Nach Abschluss der Konfiguration schaltet der USB-Controller in den Datenübertragungs-Modus zurück.

 


  1. FPGAs per USB konfigurieren
  2. Arten der Konfiguration von FPGAs
  3. Konfiguration eines FPGAs über eine USB-Schnittstelle

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!