INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

RT/FPGA: Nullen in Netzwerkvariable



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

03.09.2012, 14:51 (Dieser Beitrag wurde zuletzt bearbeitet: 03.09.2012 20:51 von jg.)
Beitrag #1

Danjo Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Jan 2012

2009
2012
DE



RT/FPGA: Nullen in Netzwerkvariable
Hallo zusammen,

mittlerweile habe ich mich mal an ein RealTime System von NI herangewagt. Ich bin also noch ein Neuling in dem Gebiet, habe aber die Grundlagen verstanden (denke ich). Meinen prinzipiellen Softwareaufbau habe ich in einem Beispielprojekt mal angehängt.

Wir benutzen ein CRio 9074 mit 4 NI-9205 A/D Wandlern. Datentransport zum PC über Netzwerkkabel.

Die Software besteht aus FPGA und RT-Ebene. Die Daten (fs = 20kHz) werden mit einem DMA-FIFO von der FPGA an die RT-Ebene übergeben. In der RT-Ebene werden die Pakete (50ms Länge) dann in einer zeitgesteuerten Schleife in die Variable "Daten" (RT-FIFO) geschrieben. In einer separaten zeitgesteuerten Schleife wird die Variable "Daten" in eine Netzwerkvariable ("nvar_Daten") geschrieben zu werden. Genau an diesem Punkt schleichen sich zahlreiche Nullen in den Datensatz ein. In den Diagrammen im RT_b.vi (Anhang) kann man sich das auch ganz gut anschauen. Die Daten werden für wenige Sekunden Problemlos übergeben, bis für einen kurzen Zeitraum einige Nullen geschrieben werden. Das ganze passiert anscheinend auch komplett willkürlich, also ohne erkennbares zeitliches Muster.

Das FIFO stellt beim Auslesen den Ausgang verbleibende Elemente zur Verfügung. Diese Anzahl ist leider nicht immer konstant, weshalb die Probleme zu stande kommen. Es stehen nicht immer genug Werte im FIFO zur Verfügung und deshalb werden dann Nullen "aufgefüllt".

- Ist die grundsätzliche Architektur mit den zeitgesteuerten Schleifen so überhaupt umsetzbar (wäre praktisch, wenn ja, da ich die Pakete zum ungefähren Timing mit einem weiteren USB-Wandler nutzen kann)?
- Woher kommt die Schwankung der Elemente im FIFO, warum hält das Zusammenspiel FPGA/Realtime seine Rate nicht konstant?
- Was passiert mit dem Timing für die gesamte Messung (Es sollen auch Frequenzanalysen gemacht werden)
- Welchem Timing ist mehr zu trauen, dem des FPGA oder dem der Realtimeebene?


Die CPU-Auslastung vom CRIO habe ich überprüft. Diese liegt bei ca. 40% und sollte somit in Ordnung sein. Wichtig ist das die Samplingfrequenz stimmt, damit ich das Timing für die Versuchsnachbearbeitung in den Griff bekomme (Habe am echten System noch einen USB Wandler etc...).

Stellt man eine feste Anzahl an auszulesenden Werten für das FIFO ein, klappt es ohne die oben beschriebenen Probleme. Allerdings verstehe ich nicht, was dann mit dem Timing passiert.

Falls ihr noch Daten etc. braucht um besser ins Thema zu kommen, dann sagt bescheid.
Ich bin für jede Hilfe dankbar!!!

Viele Grüße

Danjo

lv11_img


Angehängte Datei(en) Thumbnail(s)
           

0.0 .rar  Mein_quellcode.rar (Größe: 302,78 KB / Downloads: 201)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Nachrichten in diesem Thema
RT/FPGA: Nullen in Netzwerkvariable - Danjo - 03.09.2012 14:51

Gehe zu: