LabVIEWForum.de - ein DMA FIFO für verschieden Datentypen ?

LabVIEWForum.de

Normale Version: ein DMA FIFO für verschieden Datentypen ?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ich stehe vor einem Problem. Recherche im Netz ergab keine Lösung.Wall

Ich möchte einen DMA für Vorzeichenbehaftete und nicht Vorzeichenbehaftete Signale benutzen.
Damit meine ich Thermoelemente (+ - 125mV) und Widerstandsthermometer (pos. Werte).

Ausgang FPGA I/0 Node Widerstadsthermometer = Festkomma Wertebereich von +32bit
Ausgang FPGA I/0 Node Thermoelement = Festkomma Wertebereich +-32bit

Meine Idee war eine DMA vom Typ "Festkomma Vorzeichenbehaftet" für beide Signale (+32bit & +-32bit). Das habe ich eingestellt und die Signale aus den FPGA I/0 Node´s direkt mit dem DMA verbunden. Funktioniert nicht. Somit wollte ich mir die Typumwandlung sparen, schließlich gibt es in der Version 2010 DMA vom Typ Festkomma. (bei älteren Versionen war der DMA-Datentyp Festkomma nicht möglich)

Bis jetzt habe ich jeweil zwei versch DMA´s benutzt und es hat funktioniert.:
Das Signal wurde im FPGA Typumgewandelt FXP/I --> DMA-I32-Write bzw. DMA-U32-Write.
Auf dem cRio, dann anschließend DMA-I32-Read bzw. DMA-U32-Red --> Typumwandlung I/FXP. Also zunächst umwandeln im FPGA und anschließend im LabView zurückumwandeln.


Gibt es eine Möglichkeit für dieses Problem? Schließlich stehen nur max. 3DMA´s zur Verfügung.
Siehe Anhang--> Funktioniert aber nicht !


cRio 9114
FPGA (Version 5...)
Lv10
Auch wenn der Beitrag schon etwas älter ist und ich keine Leichen schänden möchte.
Trotzdem mal eine kleine Erläuterung, da ich zufällig auch das Thema untersucht habe.

Grundsätzlich kann ein DMA nur einen speziellen Datentyp aufnehmen!
Das währen z.B. Int, UInt und neuerdings auch FXP.

Grundsätzlich ist es aber auch möglich vorher den eigenen Datentyp ins richtige Format zu "casten". Das ist keine Typwandlung an sich, sondern ein anders Interpretieren der vorhanden Bits. Natürlich muss auf dem Host beim auslesen wieder zurück zum Ursprünglichen Datentyp "gecastet" werden.
Bei diesen uminterpretieren muss im Endeffekt nur die gegebene Bitzahl mit der des DMAs übereinstimmen.
Erreichen kann man das mit den unten Dargestellten Blöcken. Dabei wird in den Blöcken die Propertie auf den gewünschten datentyp gesetzt.
[attachment=38871]
Die einzige Schwierigkeit bei mehreren unterschiedlichen Datentypen ist das Interpretieren auf der Host-Seite. Man muss also vorher wissen, welche Daten man in dem DMA erwartet und sie dementsprechend umwandeln. Ist es nicht möglich zu sagen, wann welche Daten ankommen, so ist auch ein zusammenfassen der Datenströme in einem DMA nicht möglich.

Ich hoffe ich konnte die Sache damit etwas aufklären.
Referenz-URLs