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
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?
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 ;)
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.
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
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.
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.