www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Datenübertragung zwischen ARM und FPGA


Autor: Andrej (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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….

Autor: Uwe Bonnes (Firma: TU Darmstadt) (uwebonnes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit FIFOs

Autor: Andrej (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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…

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Andrej (Gast)

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

Hat der ARM keinen exteren Bus? Dann könnte man das FPGA ganz einfach 
anschliessen, wie eien exterenen RAM.

MFG
Falk

Autor: Andrej (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe mir erstmal dieses Board bestellt: EP9302 ARM Webserver, aus dem 
Webshop….
Link: 
http://shop.mikrocontroller.net/csc_article_detail...

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…

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Bus ist bei diesem Board nicht herausgeführt. GPIOs zu verwenden ist 
nicht optimal, die CPU wird stark belastet und man kann kein DMA nutzen. 
Einfacher wäre SPI, aber wenn ich mich richtig erinnere ist der SPI-Takt 
beim EP9302 auf ca. 14 MHz begrenzt. Welche Übertragungsrate brauchst du 
denn?

Autor: Andrej (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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??

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der ARM wird vermutlich direkt mit dem Datenbus am FPGA hängen.

Autor: Dominic R. (dominic)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christoph Lechner (clechner)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Interessantes Board. Das FPGA hängt in der Tat am Adressbus, siehe 
http://www.iotech.dk/download/presentations/s1_dat... Seite 4.
Derartige Datenraten auf anderem Wege auszutauschen wäre auch nicht 
besonders sinnvoll :)

Autor: Christoph Lechner (clechner)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oha, da waren andere wohl schneller als ich.

Aber das mit dem Linux-Treiber ist ja auch nicht soo schwer. Es gibt 
sicher genug Anschauungsmaterial ...

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Christoph Lechner (clechner)

>Derartige Datenraten auf anderem Wege auszutauschen wäre auch nicht
>besonders sinnvoll :)

Alles relativ. PCI-Express ist seriell mit 2,5Gbit/s/Kanal. So ählich 
arbeiten auch schnelle Speicher GDDR3 etc.

MfG
Falk

Autor: Andrej (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lässt sich eigentlich mit den freien Pins vom „EP9302 ARM Webserver“ ein 
Pararellbus aufbauen??

Kenn eventuell jemand ein vergleichbares Board denn ich oben erwähnt 
habe mit dem FPGA und ARM am besten von einem deutschen Hersteller??

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andrej (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank an alle für die Tollen Anregungen …

War etwas überrascht wie schnell die Beiträge geschrieben wurde…

Gruß
Andrej

Autor: michael s (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
habe die frage nach Herstellern nochmal aufgegriffen:
Beitrag "Dev Board mit FPGA & µC"

MfG
Michael

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]
  • [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.