![]() |
ein DMA FIFO für verschieden Datentypen ? - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Module (/Forum-LabVIEW-Module) +---- Forum: LabVIEW FPGA (/Forum-LabVIEW-FPGA) +---- Thema: ein DMA FIFO für verschieden Datentypen ? (/Thread-ein-DMA-FIFO-fuer-verschieden-Datentypen) |
ein DMA FIFO für verschieden Datentypen ? - car - 11.11.2011 18:56 Ich stehe vor einem Problem. Recherche im Netz ergab keine Lösung. ![]() 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...) ![]() RE: ein DMA FIFO für verschieden Datentypen ? - RoKi0815 - 29.02.2012 14:27 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. |