LabVIEWForum.de
FPGA to host / PC Kommunikation - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Module (/Forum-LabVIEW-Module)
+---- Forum: LabVIEW FPGA (/Forum-LabVIEW-FPGA)
+---- Thema: FPGA to host / PC Kommunikation (/Thread-FPGA-to-host-PC-Kommunikation)



FPGA to host / PC Kommunikation - urlauber1009 - 26.01.2009 12:00

Hallo LabVIEWForum,

ich habe LabVIEW und die FPGA Karte PCI-78131R. Ich möchte eine Kommunikation zwischen der Karte und einem normalen VI auf dem PC herstellen.
Ich erfasse mehrere Messgrößen wie Drehmoment, Drehzahl, Temperatur,... mit der FPGA Karte. Diese Messdaten möchte ich mit Zeitstempel bzw. zueinander zuordbar auf dem normalen VI erfassen.

Welche Möglichkeiten habe ich um die Daten zum PC zu schicken?

Momentan bin ich dabei das ganze mit FIFO´s zu realisieren. Allerdings stehen mir maximal 3 DMA Kanäle zur Verfügung und das ist zuwenig. Oder kann ich über einen Kanal mehrere Messgrößen übermitteln und zwar so dass ich sie später wieder synchronisiert zur Verfügung habe?

Gibt es noch andere Möglichkeine der Kommunikation?

Vielen Dank für eure Mühe und Hilfe

Max


FPGA to host / PC Kommunikation - chrissyPu - 26.01.2009 13:59

Hallo,

andere Kommunikationsarten kenn ich nicht wirklich (zumindest keine schnellen bzw. für große Datenmengen geeignete). Was noch geht, ist aber, mehrere Eingangskanäle in einen DMA-Channel zu packen. Da der ja U32 breit ist, kann man zwei I16-Werte der analogen Eingänge da rein packen. Geht mit "Zahl Verbinden" aus der Zahlen -> Konvertierungspalette. Das reduziert die Anzahl der DMAs schonmal auf die Hälfte. Jetzt geht es noch zusätzlich, dass man zwei bzw. mehrere von den so gebildeten U32 hintereinander in den DMA-Channel schreibt (for-Schleife auf dem FPGA). Damit kann man die Anzahl noch weiter reduzieren.

Funktioniert bei mir und der 7830R mit vier Eingangskanälen und maximaler Eingangssamplerate (200 kSa/s) in einen DMA-Channel, allerdings mach ich den DMA-Bereich auch "unendlich groß", sprich ich lese während des Schreibvorgangs nicht parallel aus. Das könnte das ggf. vielleicht nochmal langsamer machen, weiß ich aber nix so richtig konkretes.

Zeitliche Zuordnung funktioniert dann darüber, dass ich alle Kanäle zum gleichen Zeitpunkt und mit der gleichen Abtastrate einlese.

Hatte ich aus einem Beispiel von NI im Bereich FPGA, habs jetzt aber auf die schnelle nicht gefunden... Da gibt's dann auch Bildchen dazu...Wink

ch