Hallo Zusammen, ich brauche hilfe (Ideen) im Bezug auf folgendes Problem: ich hab ein FPGA DE0 von Terasic und dieses hat nur eine besetzte USB Schnittstelle zum konfigurieren. Jetzt brauche ich ein zweites USB Interface zum Datentransfer und bin verzweifelt. Da ich mit großen Datenmenge arbeite möchte ich möglichst auf ne USB schnittstelle erweitern über die 20pin Header(um weiterhin bei der selben Datenrate eines USBs zu bleiben) allerdings fällt mir schwer von 20Pin Header auf USB zu kommen da ich kein geeignetes "Adapter" gefunden habe wäre für jede Hilfe, Idee sehr Dankbar!!! dachte es gäbe sowas http://www.akasa.com.tw/img/product/common/gallery/00/AK-CBUB09-15BK_g01.jpg ABER konfigurierbar* weil diese nur für USB3.0 ausgelegt sind Liebsten Grüße
Wie groß sind denn Deine Datenmengen und wie schnell willst Du die übertragen? USB ist etwas mehr als ein Adapterkäbelchen... Falls Du es wirklich im FPGA machen willst brauchst Du einen IP-Core (wie http://opencores.org/project,usb) und einen PHY um die Ein- und Ausgänge Deines FPGAs entsprechend in USB-konforme Signale zu übersetzen. Wenn die geforderte Übertragungsrate es erlaubt, ist es deutlich einfacher auf ICs von FTDI oder einen µC mit USB (Cypress sieht man in diesem Zusammenhang öfters) zurückzugreifen.
Dir ist hoffentlich schon klar, dass diese "besetzte USB-Schnittstelle" dein Programmer ist. Und mitnichten etwas, was du zur Kommunikaiton mit dem FPGA verwenden hättest können. Such mal nach USB-RS232-TTL interface und bastle das an dein FPGA. Dann kannst du das Board mit einem simplen Terminalprogramm ansprechen. > allerdings fällt mir schwer von 20Pin Header auf USB zu kommen da ich > kein geeignetes "Adapter" gefunden habe Es hilft auch rein gar nichts, vom Pinheader auf eine USB-Buchse zu kommen, wenn du keine USB-Hardware im FPGA hast. Oder meinst du, einfach durch einstecken eines Kabel kann das FPGA dann USB? Und wieder mal: WAS willst du machen? WAS ist deine eigentliche Aufgabe? fpgastudent schrieb: > dachte es gäbe sowas Sieht aus wie ein simples Adapterkabel... > ABER konfigurierbar* Soso... > fpgastudent Das gibt mir zu denken...
Danke für die schnelle Antwort @Martin: ich arbeite mit Bilddaten von einem Datenscanner und deshalb möchte ich gerne bei usb datenrate bleiben (~400mbit/s), die variante mit einem zusätzl. µC mit usb schnittstelle wäre meine Notlösung, und dachte deshalb auf "so ne Art Adapter"... @Miller: ja vom Programmer ist auch nicht die Rede und genau das was du meinst will ich machen "..USB-RS232-TTL interface.." aber leider ist mir S232 zu langsam deswegn bin ich au der Suche nach einer andern Idee aber wenn ich lese "..Es hilft auch rein gar nichts, vom Pinheader auf eine USB-Buchse zu kommen, wenn du keine USB-Hardware im FPGA hast." un das stimmen sollte dann bin ich etwas pesimist ob da überhaupt ne Lösung dafür gäbe denn genau das wollte ich ja machen -.- es ist mir klar das das kein adapterekäblchn wird nur ob ich in der richtung was bastln könnte oder evlt. ohne weiterem baustein auf usb kommmen könnte danke nochmal :)
Moin, da fällt mir nur spontan der Cypress FX2 ein, um wenigstens in die Nähe der 400 MBit/s zu kommen. Allerdings sollte man sich über einiges im Klaren sein: - Timing u.U. knackig (nicht mit allen FPGAs einfach zu schaffen) - Isochron gehen nur max. 24 MByte/s in eine Richtung (einigermassen stabil laufen bei mir 18 MB/s) - Der FX2 ist eine "Bitch", d.h. ein 8051, der programmiert werden will... Gibt aber ne Menge OpenSource (siehe usrp/gnuradio) Alternativ sonst noch: der FTDI 2232H. Aber: Da ist das Timing am FIFO noch knackiger, und was iso-Transfer angeht, habe ich keine Erfahrung/Messwerte. Bulk ist ohne Pufferung auf FPGA-Seite eklig, d.h. man braucht schon eine DRAM-Anbindung, damits sauber läuft. Vorteil: Es gibt eine Menge fertiger Platinen mit FTDI, die sich möglicherweise gut anstöpseln lassen. Von den USB-Softcores würde ich erst mal die Finger lassen. Eher noch auf UDP-Übertragung gehen... Viel Erfolg, - Strubi
fpgastudent schrieb: > ich hab ein FPGA DE0 von Terasic und dieses hat nur eine besetzte USB > Schnittstelle zum konfigurieren. Jetzt brauche ich ein zweites USB > Interface zum Datentransfer und bin verzweifelt. Schmeiss das Board weg und besorg dir eins mit FPGA und USB-Controller (FX2), bspw: -http://www.ztex.de/index.d.html -http://www.cesys.com/produkte/kategorie/fpga-karten-spartan/produkt/efm-01/ -http://www.altera.com/education/univ/materials/boards/de2-115/unv-de2-115-board.html
Direkt einfach ein paar FPGA-Pins an nen Stecker löten und schon hast du USB.. das funktioniert nicht. Da steckt immer ein Protokoll und eine Busphysik dahinter und beides ist in deinem Fall nicht "einfach so" vorhanden. Aber schau doch mal, ob es für das Board einen Ethernet-Adapter mit PHY gibt (Für den Expansion-Stecker). Ein paar Daten über nen MAC-Frame zu verschicken ist kein Hexenwerk und du brauchst eigentlich erstmal gar kein Protokoll dazu. Aber ich befürchte fast anhand deiner Fragestellung, dass du im Grunde noch viel zu weit von der Materie entfernt bist, als dass dir so ohne Weiteres gelingen wird, via MII einen MAC Frame über den PHY rauszupusten. Aber es ist einfacher, als USB in den FPGA zu implementieren. Ggf musst du mal schauen, ob dir 100MBit Ethernet ausreichen würde.
fpgastudent schrieb: > @Martin: ich arbeite mit Bilddaten von einem Datenscanner und deshalb > möchte ich gerne bei usb datenrate bleiben (~400mbit/s), die variante > mit einem > zusätzl. µC mit usb schnittstelle wäre meine Notlösung, und dachte > deshalb auf "so ne Art Adapter"... Die Datenrate mit USB tatsächlich hinzukriegen ist schonmal nicht ohne. Lies Dich etwas in die USB-Thematik (Protokoll, Transfer-Modi, Treiber, etc.) ein und entscheide dann, ob Du das mit dem USB weiter verfolgen willst. Wahrscheinlich ist (Gigabit-)Ethernet die bessere Wahl... > es ist mir klar das das kein adapterekäblchn wird nur ob ich in der > richtung was bastln könnte oder evlt. ohne weiterem baustein auf usb > kommmen könnte Ohne zusätzliche Hardware oder ein anderes Board wird's so oder so nix... Noch was - Bitte gewöhne Dir an in verständlichen Sätzen mit Punkt und Komma zu schreiben, auch wenn es mehr Aufwand auf Deiner Seite bedeutet. Durch diese Faulheit machst Du es potentiellen Helfern schwer, Dein Problem nachzuvollziehen und vergraulst den einen oder anderen sogar. Bitte keine faulen Ausreden von wegen "mit dem Handy isses aba so schwär vanümpftig zu schreiben" - die kann ich langsam nimmer hören!
400MBit/s also 50MB/s sind auch mit 2.0 High Speed nicht drin. Da kriegst du per Bulk max. 41 rüber, mit riesigen Puffern. Da müsstest du schon den FX3 nehmen. Im 8 Bit Slave Fifo Modus könnte das auch mit wenigen Leitungen an einem FX3 Demo Board klappen.
Besorg dir ein Altera DE-2 Board (2 Nummern größer) Das hat auch USB, sowie 2mal Gigabit Ethernet. Ich würde da aber mit GBit-Ethernet arbeiten, weil es wesentlich leichter zu verstehen und implementieren ist. (Meine Erfahrung) Mit dem DE-0 wirst du nicht weiter kommen.
PittyJ schrieb: > Besorg dir ein Altera DE-2 Board (2 Nummern größer) > Das hat auch USB, sowie 2mal Gigabit Ethernet. Hm, DE-2 scheint USB nur bis Full-Speed (12 Mbit/s) zu unterstützen, da ist der Philips ISP1362 und nicht der cypress FX2 im Einsatz. MfG
@ Strubi: vielen herzl. Dank ich tendiere eher deinen vorschläge nachzugehn und würde s evtl. mit einem FTDI versuchn; scheint laut erfahrungsberichte eher geeignet :) (zb. http://www.teamknox.com/ARM/IMG_0021AKI-FTDI2.jpg ) Leider hab ich das Board schon gekauft und bereits einiges fertig gemacht (u.a. richtigen Platz im Scanner..) ich hätt mich vllt früher erkundigen sollen :), ich hatte ja einen LCPD und war mit DE0 erstmal sehr glücklich. Gesucht war deshalb eine Lösung zum bereits vorhandenen Board8 (kein neues Board). @Martin: danke und ich weiß deine Bemerkung zu schätzen. Von mir kommt keine Ausrede :) Vielen Dank für eure Hilfe!
Nochmals Warnung: Klär am besten vorher noch ab, ob du a) mit Bulk Transfers arbeiten kannst (Pufferung per DRAM möglich?) oder b) dein Chip auch wirklich isochron kann. Der 'alte' C Typ und die BM-Varianten sollen es können, aber ob es wirklich geht, habe ich nie probiert. Und ganz wichtig c): das I/O-Timing solltest du für dein FPGA vorab mal simulieren, sonst tut sich ev. gar nichts. UDP/IP ist insofern kritisch, dass man einiges an mid-level-Kram (ICMP, ARP, ...) dazustricken muss, damit das Ding im Netzwerk UDP-Pakete verschicken kann, d.h. man kommt schon mal ohne Soft-CPU kaum aus.
ISO Streaming erreicht aber unter USB 2.0 High Speed auch "nur" 24MB/s also nicht annähernd die gewünschten 400MBit/s. Mit BULK kommt man da schon eher hin und hat außerdem noch die Neuversuche bei Fehler.
fpgastudent schrieb: > Danke für die schnelle Antwort > > @Martin: ich arbeite mit Bilddaten von einem Datenscanner und deshalb > möchte ich gerne bei usb datenrate bleiben (~400mbit/s), die variante > mit einem > zusätzl. µC mit usb schnittstelle wäre meine Notlösung, und dachte > deshalb auf "so ne Art Adapter"... Meines Wissens arbeit USB mit einer 8b/10b Leitungscodierung bei 480 Mbit/s Bitrate, so dass Netto bestenfalls 384 Mbit/s möglich sind. Davon fressen Paketframing und Protokolldaten (Paket=Header+Payload) nochmals ein paar Prozente so dass die 400 Mbit garantiert unerreichbar sind.
Strubi schrieb: > UDP/IP ist insofern kritisch, dass man einiges an mid-level-Kram (ICMP, > ARP, ...) dazustricken muss, damit das Ding im Netzwerk UDP-Pakete > verschicken kann, d.h. man kommt schon mal ohne Soft-CPU kaum aus. Wenn es nur eine Punkt-zu-Punkt Verbindung (wie USB) sein soll, kann man auch einfach simple Ethernet II Frames hin und her schicken. Damit lassen sich die geforderten Datenraten leicht erreichen.
Rainbow Dash schrieb: > Strubi schrieb: >> UDP/IP ist insofern kritisch, dass man einiges an mid-level-Kram (ICMP, >> ARP, ...) dazustricken muss, damit das Ding im Netzwerk UDP-Pakete >> verschicken kann, d.h. man kommt schon mal ohne Soft-CPU kaum aus. > > Wenn es nur eine Punkt-zu-Punkt Verbindung (wie USB) sein soll, kann man > auch einfach simple Ethernet II Frames hin und her schicken. Damit > lassen sich die geforderten Datenraten leicht erreichen. So etwas habe ich schon mit dem DE-2 ohne Softcore gemacht. ICMP und ARP sind nicht notwendig, wenn die Gegenseite anständig mitspielt. (Evtl kein Windows)
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.