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 

PCI-Express mit LabVIEW



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!

25.06.2008, 08:37 (Dieser Beitrag wurde zuletzt bearbeitet: 25.06.2008 08:39 von rolfk.)
Beitrag #2

rolfk Offline
LVF-Guru
*****


Beiträge: 2.317
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
PCI-Express mit LabVIEW
' schrieb:Hi @ all

Es gibt seit einiger Zeit FPGA-Platinen zu kaufen, die über eine PCI-Express-Interface verfügen. Daher liegt es nahe Daten über PCI-Express zu versenden. Gibt es möglichkeiten in LabVIEW den PCI-Express-Bus anzusprechen?

Hardware Zugriff ist nicht etwas was eine Applikation aus Userspace auch nur versuchen sollte. Dazu gibt es Kernel Device Driver. Zwar kannst Du theoretisch mit InPort und OutPort auf die Register zugreifen aber PCI ist PnP, d.h. die Adressen können ganz einfach veränderen und müssen mit PnP Funktionen des OSes immer erst abgefragt werden.

Zudem benützt PCI meist auch mapped memory was die InPort und OutPort Funktionen nicht können.

Last but not least sind InPort und OutPort relativ langsam da sie für jeden Registerzugriff einen Roundtrip zum Kerneltreiber und zurück machen müssen. Solche Roundtrips kosten Zeit da es dabei nicht nur einen Prozess umzuschalten gibt (Multitasking) aber auch noch in den privilegierten Ring1 Kernelmode umgeschaltet werden muss.

Ein Kerneltreiber direkt für die Karte kann Operationen optimalisieren und zusammenfassen in komplexere Funktionen die viele Registerzugriffe gleichzeitig tut, wobei jede dieser Funktionen jeweils nur eine Roundtrip erfordert.

Um einen solchen Kerneltreiber in einer Applikation benützen zu können muss man dann noch eine sogenannte Userspace DLL haben die die Umsetzung des Kerneltreiber APIs in gut funktionierende Funktionen macht und diese Userspace DLL importierst Du dann in LabVIEW mittels der Call Library node.

Direkter Hardwarezugriff von Applikationen aus ist echt etwas aus guten alten DOS Zeiten wo eine Applikation alles tun dürfte inklusiv den ganzen Computer crashen, aber da drauf ist LabVIEW aus vielen Gründen nie gelaufen und könnte es auch nicht.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
PCI-Express mit LabVIEW - joedoe1979 - 24.06.2008, 17:03
RE: PCI-Express mit LabVIEW - jg - 10.08.2011, 12:47
PCI-Express mit LabVIEW - rolfk - 25.06.2008 08:37
RE: PCI-Express mit LabVIEW - M@rRy - 10.08.2011, 12:21
PCI-Express mit LabVIEW - joedoe1979 - 25.06.2008, 12:31
PCI-Express mit LabVIEW - rolfk - 25.06.2008, 12:43
PCI-Express mit LabVIEW - joedoe1979 - 25.06.2008, 22:10
PCI-Express mit LabVIEW - dc6xs - 25.06.2008, 22:21
PCI-Express mit LabVIEW - joedoe1979 - 26.06.2008, 00:02
PCI-Express mit LabVIEW - rolfk - 26.06.2008, 00:14
PCI-Express mit LabVIEW - joedoe1979 - 26.06.2008, 13:32

Gehe zu: