Datenübertragung zwischen ARM und FPGA

Gast #664316
Lesenswert?
• ▲
▼
Hallo Leute,

hat eventuell jemand eine Idee wie man Daten zwischen einem FPGA und ARM 
übertragen kriegt.

Auf dem ARM soll Linux laufen. Die Daten werden in dem ARM verarbeitet 
und anschließend in einen FIFO-Speicher auf den FPGA übertragen.

Die Daten sollten schon pararell ausgegeben werden. Wie könnte das 
Problem mit dem Clock gelöst werden da der FPGA und ARM eigene Clocks 
haben…

Danke im Voraus….
Gast #664522
Lesenswert?
• ▲
▼
Naja das mit dem FIFO ist eigentlich nicht das Problem…

Aber wie werden die GPIO- Pins des ARMs angesteuert? Da auf dem ARM 
Linux laufen soll so muss folglich ein Treiber geschrieben werden der 
die Pins letztendlich ansteuert oder bin ich mit dem Treiber auf einem 
falschen Pfand…

Gibt es eventuell schon brauchbare Lösungen mit den man ein Pararell Bus 
zwischen dem ARM und FPGA aufbauen könnte…

Währe jetzt für jede Hilfe Dankbar…
Gast #664586
Lesenswert?
• ▲
▼
Habe mir erstmal dieses Board bestellt: EP9302 ARM Webserver, aus dem 
Webshop….
Link: 
http://shop.mikrocontroller.net/csc_article_details.php?nPos=0&saArticle[ID]=88&VID=aefrVheVvEyo2LSS&saSearch[word]=&saSearch[category]=ARM&saSearch[special]=

Laut Schaltplan hat der ARM eine Reihe von unbeschalteten Pins die ich 
für den FPGA nehmen könnte…

Das Problem ist wie sollen die Pins auf Seiten des ARM konfiguriert 
werden? Gibt es hierfür  schon fertige Code die das übertragen der Daten 
sowie eine Adressierung erlauben…

Es muss ja schon so was geben, ob die Daten an den FPGA angelegt werden 
oder nicht ist erstmals zweitrangig…
#664603
Lesenswert?
• ▲
▼
Ich kann da nur mit dem Kopf schütteln.

Man nehme ein paar Modewörter (ARM, Linux, FPGA, VHDL), schütte sie in 
einen großen Topf und rühre kräftig um, fertig.


Wenn man dagegen was lauffähiges haben will, muß man die Datenblätter 
schon selber lesen und verstehen.

Und für solche Boliden mit hohen Frequenzen sollte man hardwaremäßige 
Kenntnisse haben, wie MMIO funktioniert und auch vom Layouten.


Peter
Gast #664631
Lesenswert?
• ▲
▼
Eine Übertragungsrate von 12MBit währe schon mal nicht schlecht, es kann 
aber sein das eine doppelt so hohe Übertragungsrate benötigt wird 
(24Mbit)…

Ich habe mal mit den Atmel-Microcontroller sowie FPGA’s von Xilinix 
gearbeitet, da währe das ganze für mich etwas übersichtiger nur fällt 
mir in diesem Fall die Idee wie ich die Daten vom ARM runterkriege zumal 
die Daten vom Linux generiert werden… Ok ich könnte die Daten über die 
schon implementierten Bus- Schnittstellen übertragen nur die erlauben 
eine eingeschränkte Übertragungsgeschwindigkeit….

Habe hier einen Board gefunden der einen ARM sowie einen FPGA enthält 
die Übertragungsgeschwindigkeit soll laut Datenblatt 480 MBit betragen.

Link: http://www.iotech.dk/en/products/arm9_fpga/

Hätte vileicht jemand eine Idee wie die das realisiert haben??
#664699
Lesenswert?
• ▲
▼
> The FPGA is connected directly to the address and data bus of the ARM9.
> This gives a high flexibility for FPGA usage and a high data
> transmission speed to between FPGA and ARM9.

Das Datasheet ist da doch recht eindeutig... ;)

Alternativ wäre ein schnelles serielles Interface denkbar, dazu muss 
dein ARM natürlich ein entsprechendes Interface bieten. Vorteil wäre ein 
deutlich einfacheres Board Layout.

Gruß,

Dominic
#664706
Lesenswert?
• ▲
▼
Andrej wrote:

> Ich habe mal mit den Atmel-Microcontroller sowie FPGA’s von Xilinix
> gearbeitet, da währe das ganze für mich etwas übersichtiger

Der Unterschied zum AVR ist minimal (32Bit statt 8Bit Daten, 32Bit statt 
16Bit Adressen, kein Adreßlatch).


> nur fällt
> mir in diesem Fall die Idee wie ich die Daten vom ARM runterkriege zumal
> die Daten vom Linux generiert werden…

Du wirst einen Linux Treiber schreiben müssen. Linux wird Dir bestimmt 
den direkten Memory-Zugriff verwehren.


> Ok ich könnte die Daten über die
> schon implementierten Bus- Schnittstellen übertragen nur die erlauben
> eine eingeschränkte Übertragungsgeschwindigkeit….

Höher als mit dem implementierten Daten/Adreßbus geht nicht !


http://en.wikipedia.org/wiki/Memory-mapped_IO


Peter
#664805
Lesenswert?
• ▲
▼
Andrej wrote:
> Lässt sich eigentlich mit den freien Pins vom „EP9302 ARM Webserver“ ein
> Pararellbus aufbauen??

Ich denke, Du hast schon mal nen FPGA an nen AVR drangepappt ?

Dann solltest Du doch wissen, daß MMIO nur mit ganz bestimmten Pins geht 
und sonst nicht !


Bitbefehle aufm ARM sind schlichtweg scheußlich.
Einen Parallelbus aus beliebigen Pins per Bit-Banging zu emulieren, 
dürfte daher noch langsamer als SPI sein.


Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren