www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Firewire an FPGA anschließen


Autor: Mac81 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich würde gerne Daten, die per Firwire übertragen werden, in meinem FPGA 
verarbeiten.
Kennt jemand einen IC, den ich vor mein FPGA schalten kann, der mir die 
Daten decodiert? Ich stell mir das so vor, dass ich mit jedem Takt von 
diesem IC einen Bitvektor einlesen kann. Funktioniert das so einfach? 
Wäre eine Verarbeitung der Firewire-Signale direkt auf dem FPGA (in Form 
eines IP Cores) evt. auch möglich oder sogar besser?

Danke,
Mac

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
FireWire ist eine recht aufwendige Sache. Einfach anklemmen ist da 
leider nicht. Willst du Daten vom/zum PC übertragen? Also quasi ein 
FireWire Device bauen? Dann wäre das UC1394 von www.orsys.de was für 
dich. Damit kannst du Daten vom/zum PC über ein 16 Bit breites Interface 
streamen. Auf dem Modul ist ein FPGA, ein schneller DSP mit SDRAM und 
außerdem der 1394 PHY Controller von TI. Daran sieht man schon, dass 
FireWire nicht ganz trivial umzusetzen ist. Es gibt auch IP-Cores, die 
kosten aber richtig viel Geld und dann bist du auch erst auf Link-Ebene. 
Das gesamte Protokoll musst du dann noch irgendwie hinfrickeln. Die 
recht hohen Lizenzgebühren nicht zu vergessen. Diese Module setzen wir 
seit ein paar Jahren für unsere Messtechnik ein, arbeiten schnell (max. 
40MB/s) und zuverlässig. Entwicklungsaufwand auf FPGA-Seite ist minimal, 
ist ein FIFO-Interface. Preis ist etwa 300€ netto in geringen 
Stückzahlen. Eine Eigen-Entwicklung würde ich mir ganz stark überlegen. 
Ähnlich schnell aber per USB gehts mit dem Cypress FX2 Chip, der ist 
auch noch deutlich billiger (5€) und braucht wesentlich weniger Strom. 
Was zwingt dich zu FireWire?

Autor: alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe zufällig das Buch "USB 2.0" von H. J. Kelm da und es gibt in diesem 
Buch eine Tabelle mit ungefährer Gatter-Komplexität für IEEE 1394, 400 
MBit/s.  Host Komplexität 20k-25k Gatter, Peripherie-Komplexität 15k-20k 
Gatter... Nimm RS232 ;)

Autor: tinman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mac81

schwer zu sage wie schwer es war für Agfa ( habe hier paar 
Pollin-ersteigerte platinnen ) Firewire zu implementieren,
fakt ist ein ti TSB12LV32 ( und TSB41AB2 ) hängt direkt an dem Stratix 
FPGA ( siehe bilder Beitrag "Pollin CPLD Board Erfahrungen?" 
).
Da ist zwar auch ein µC M32C drauf - der hat reine 
monitoring/controlling aufgabe und hängt auch selber an dem Stratix.

Die andere boards wo FPGA und Fireware drauf ist, sind PPC boards mit 
PCI bus - der controllerhängt da dran,also fpga hat nur eine i/o 
aufgabe.

Ich weiss nciht ob dir das weiter hilft - guck dir aber die datasheet 
von dem TI, vielleicht findest du da etwas.

Autor: Mac81 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für eure schnellen und qualifizierten Antworten. Nach erstem 
Googeln habe ich schon befürchtet, dass eine Firewire-Anbindung keine 
einfache Sache ist. Ich denke, ich werde eher auf eine USB- oder 
RS232-Schnittstelle zurückgreifen.

Idee war/ ist es, zwischen Kamera und PC einen FPGA zu plazieren, auf 
dem ein "bisschen Bild-Vorverarbeitung" betrieben wird.

Gruß,
Mac

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, da musst du das komplette DCAM Protokoll einbasteln. Das wird 
nicht leicht. Irgendwo hab ich auch mal eine Implementierung mit dem 
Virtex 4 mit PPC gesehen, war aber auch recht komplex. Nur in Logik 
gibts IP-Cores für den Link Layer, aber da drüber ist noch jede Menge 
Software.

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Mac81,

schau Dir mal die Firewire Bausteine der Fa. NXP ( vormals Philips Semi 
) an. Vor einigen Jahren habe ich mit dem PDI1394L40 experimentiert.

Dieser Baustein nimmt Dir einiges der Protokollarbeiten ab, vor allem im 
Hinblick auf das Isynchrone Streaming.
Du hast 2 Ports die dediziert als Ein- und Ausgang genutzt werden können 
und welche stark vereinfacht einem FIFO Interface gleichen.

Allerdings wirst Du nicht drumherumkommen die gesamte Protokollschicht 
rund um die Enumeration am Bus zu implementieren...

Gruss

Andreas

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.