Forum: FPGA, VHDL & Co. Datenübertragungsprobleme mit dem Spartan 3E


von Peter (Gast)


Lesenswert?

Hallo alle zusammen!

Folgendes Problem.Ich möchte mittels Labview mir Daten vom Spartan 3E 
ausgeben lassen.Es wird eine Spannung an den Eingang des ADC gelegt und 
mit Labview kann ich mir das Signal angucken.Das klappt soweit ganz gut 
und es werden mir die richtigen Werte angezeigt bei Gleichspannung bei 
minimalem Rauschen.Wenn ich aber einen Sinus anlege,dann sieht der Sinus 
nur für sehr geringe Frequenzen nach einem Sinus aus(bis 500mHZ).Bei 
höheren Frequenzen wirkt der Sinus abgehakt und sehr spitz,als wenn er 
mit dem sampeln nicht hinterherkommt.Die Frage ist,woran liegt das:Das 
Spartan 3 E ist über ein USB-Kabel mit dem PC verbunden.Wenn ich Daten 
Einles und Anzeigen lasse,geht der REchner manchmal leicht in die 
Knie(50%Rechnerauslastung).Jetzt habe ich im Netz gelesen,das die 
USB-Schnittstelle nicht DMA-fähig ist.Könnte das die Ursache sein?Ist 
eine ande Schnitstelle DMA-fähig?RS232?Netzwerk?JTAG?
Wenn das die Ursache sein sollte,wie kann man das Problem am besten 
Umgehen mit der Laufzeit?Gibt es eine Labviewlösung(Buffer,FIFO,etc.)?
Was mich auch interessieren würde,ob es nicht am besten ist ds Board 
"stand alone" zubetreiben.Das man sich die VI`s auf den Flash downloaded 
und eine Spannung an den ADC angelegt wird und die Daten im 
Flashspeicher gespeichert werden.Kann man die gespeicherten Daten 
einfach wieder auslesen mittels USB,wenn man den REchenr weider 
anschließt oder muss dies über eine andere Schnittstelle 
geschehen(RS232)?Würde mich freuen,wenn mir einer helfen könnte.

Mit freundlichen Grüßen
Peter

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter schrieb:
> Wenn ich Daten Einles und Anzeigen lasse,geht der REchner manchmal
> leicht in die Knie(50%Rechnerauslastung).
Und wer zwingt den in die Knie?

> Jetzt habe ich im Netz gelesen,das die
> USB-Schnittstelle nicht DMA-fähig ist.
Was man nicht so alles liest...

> Könnte das die Ursache sein?
Nein, das mit dem DMA ist nicht dein Problem.

von FPGAschubser (Gast)


Lesenswert?

Wow....

wer soll denn daraus schlau werden ?
ADC ?  DMA-fähig?RS232?Netzwerk?JTAG?

???????

Willst Du die einfache Antwort ?
Sie lautet: Äheemmm - wat is ?

von Anguel S. (anguel)


Lesenswert?

Du meinst wohl das spartan 3e board von national instruments, das sich 
mit labview für fpga programmieren lässt. Da kocht national instruments 
sein eigenes süppchen und will Geld verdienen. Also am  besten gleich an 
deren support wenden.

von Peter (Gast)


Lesenswert?

Genau,ich meine das Spartan 3 Starter Kit.
@ Lothar Miller
Der Computer ist leistungsfähig.Aber,wenn ich den 
ADC(Analog-Digital-Converter) auslese und mir graphisch darstellen 
lassen will auf dem Rechner,dann verschwimmt der Sinus teilweise,wenn 
der REchner nicht hinterherkommt.Es bricht teilweise eine Halbwelle weg.
Hatte jemand schon ein ähnliches Problem?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter schrieb:
> Hatte jemand schon ein ähnliches Problem?
Das Problem heißt wohl Labview und Windows.
Denn der Rechner ist garantiert schnell genug für die paar Bytes.

von Peter (Gast)


Lesenswert?

Wäre es sinnvoll,sich die daten in einen Ringbuffer einlesen zu lassen 
und alle in einem Aray schalgartig weider ausgeben zu lassen?Wurde das 
die Verzögerung neutralsieren?Ich meine online können wir die WErte eh 
nicht einsehen,aber vllt kann man nachhaltig ordentich Messreihen 
aufnehmen und abspeichern!

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter schrieb:
> Wäre es sinnvoll,sich die daten in einen Ringbuffer einlesen zu lassen
> und alle in einem Aray schalgartig weider ausgeben zu lassen?
Es wäre sicher sinnvoll, Windows nicht dauernd das Fenster neu malen zu 
lassen. Aber ein Stück Software wie Labview sollte das eigentlich 
berücksichtigen... :-/

von Christian R. (supachris)


Lesenswert?

Wie wird denn jetzt abgetatstet? Etwa software-gesteuert auf Kommando 
hin? Das kann nicht gut gehn. Die normale und sichere Vorgehensweise 
wäre, auf Kommando hin die Messung zu starten, das Abtasten und 
Speichern der Werte in einen FIFO übernimmt das FPGA. Dann können die 
Daten in alle Ruhe auf der anderen Seite des FIFOs zum PC übertragen 
werden. Wenn du alle Daten hast, startest du eine neue Messung. Für 
echtes Streaming brauchst du auch einen Speicher und deine Übertragung 
und Verarbeitung muss auch unter worst-case Bedingungen schneller sein 
als die Abtastung, sonst verliert der wieder Daten bzw. der FIFO läuft 
voll.

von Peter (Gast)


Lesenswert?

Ja,es wird Softwaregesteuert abgetastet.Wie würde so eine FIFO-GEsichte 
ungefähr aussehen?

von Christian R. (supachris)


Lesenswert?

Das ist natürlich Murks. Dann bekommst du nie eine äquidistante 
Abtastung hin. Im einfachsten Fall ein FIFO aus dem Core Generator, den 
du mit den ADC Daten beschreibst und auf der Lese-Seite deine 
PC-Interface Logik dran hast. Wenn das ganze rund werden soll, dann ein 
Sample-Zähler, der per Kommando gestartet wird, und eine bestimmte 
Anzahl Samples in den FIFO schreibt, die du dann ausliest. Mehr kann man 
ohne Kenntnis deines Designs nicht sagen.

von Peter (Gast)


Lesenswert?

was würdest du denn zum dEsign wissen wollen?Liest man den FIFO auf dem 
Board aus(Flash) oder lässt man quasi den Speicher(Computer) voll laufen 
und liesst dann aus?

von Christian R. (supachris)


Lesenswert?

Welcher Flash? Hast du überhaupt irgendwelche Vorbildung im 
FPGA-Bereich? Deinen Fragen nach zu urteilen weißt du weder viel über 
Signalverarbeitung noch über FPGAs. Da wirds extrem schwierig....

von Anguel S. (anguel)


Lesenswert?

Das Problem ist, dass NI die Leute glauben machen will, dass jeder die 
Stärken der FPGAs ohne Vorkenntnisse nutzen kann. Ich wäre auch beinahe 
auf sowas reingefallen, habe damals aber zum Glück mit VHDL angefangen. 
Das Problem ist, dass Du bei FPGAs mit Labview weder genau weißt, was 
der FPGA macht, noch was die übrige HW auf dem Board macht, noch was 
Labview nachher mit den Daten macht. Die Leute die hier mit FPGAs 
arbeiten wissen dagegen meistens genau, was mit jedem Baustein auf dem 
Board und mit jedem Bit im FPGA passiert. Fragen wie deine haben leider 
nix mit FPGAs als solches zu tun, sondern sind sehr speziell auf das 
NI-Board bezogen. Wenn du Labview und das Board gekauft hast, hast du 
sicher auch Support. Ob dir der Support in solchen Fällen helfen kann 
ist eine andere Frage.
Es gibt z.B. FPGA-Entwickler, die z.B. mehre MB große FIFOs nutzen, um 
eine Übertragung der Daten zum PC zu gewährleisten. Macht NI sowas? Ist 
überhaupt Zweck des Boards sowas zu gewährleisten? Oder ist das eh nur 
ein Experimentierboard (soweit ich weiß ist es so). Für was richtiges 
bräuchte man dann ein Virtex-Board für mehrere tausend Euro. Das sind 
fragen, die Dir der NI Support sicher beantworten kann, vielleicht 
wissen die inzwischen, dass es Labview f. FPGAs gibt, vor einiger Zeit 
war das nicht der Fall... Ansonsten kannst Du erstmal schauen, ob dir 
Labview die Daten auf dem PC in eine Datei ohne Verlust schreiben kann, 
ohne sie aufm Monitor auszugeben. Danach kannst Du sie Dir anschauen. 
Das Problem bei dir ist vermutlich genau diese Ausgabe, die bei vielen 
Daten nicht mitkommt. Bei graphischer Ausgabe ist Labview langsam, 
ausserdem ist das ganze auch sehr stark von deinem Programmierstil 
abhängig. Für effiziente Labview-Programmierung gibt es wieder mehrere 
Labview Bücher.
Apropos Labview - das Programm ist eigentlich gar nicht mal so schlecht, 
wenn man mal auf die Schnelle was graphisch ansprechendes hinbekommen 
will und wenn man von mehreren nicht durchdachten Sachen absieht. Hab 
heute z.B. einen ganzen Tag damit verbracht, ein bestehendes 
Labview-Projekt in ein neues Verzeichnis zu duplizieren. Sowas 
alltägliches ist anscheinend nicht vorgesehen. Anruf beim Support hat 
wieder mal nix gebracht... Ich musste eigentlich dem netten Spezialisten 
erklären, wie Labview funktioniert.

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
Noch kein Account? Hier anmelden.