From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



Windows NT/2000/XP系统下用LabVIEW访问硬件寄存器和物理内存



主要软件:
主要软件版本: 7.1.1
主要软件修正版本: N/A
次要软件: LabVIEW Development Systems>>LabVIEW Professional Development System, LabVIEW Development Systems>>LabVIEW Base Development System

问题:
我希望直接在Windows NT/2000/XP系统下访问我的硬件。我如何直接与硬件I/O寄存器和物理内存通信?

解答:
  1. Windows NT/2000/XP系统下用LabVIEW访问硬件寄存器

    硬件寄存器可通过LabVIEW中的In PortOut Port VIs来访问。详细信息参见以下相应LabVIEW版本的标题:

    LabVIEW 8

    LabVIEW 8保留了LabVIEW 7.x中可用的功能,但是In PortOut Port VIs现在位置在函数选板Functions» Connectivity» Port I/O

    LabVIEW 7.x

    LabVIEW 7.x自带的In PortOut Port VIs可在 Windows NT/2000/XP下工作。它们的位置在函数选板的All Functions» Advanced» Port I/O。 并不必须要安装AccessHW库来访问硬件寄存器。新的VI为多态型,您可以选择8、16或32位的操作,但是与之前版本LabVIEW的函数接口定义不兼容。因此,将LabVIEW 6.1中使用In PortOut Port VI的应用程序升级到LabVIEW 7.x
    LabVIEW 4.0 - 6.1

    LabVIEW 4.0到6.1自带的In PortOut Port VI不能在Windows NT/2000/XP下工作,因为它们不是直接访问硬件所必须的内核模式程序。为此,需要从以下链接的Windows端口和内存工具下载和安装AccessHW库。这将安装并替代In PortOut Port VI实现Windows NT/2000/XP下工作。替代的VI将位于安装目录取代正常的In PortOut Port VI来使用。如果要转化已有的代码,您需要手工用新安装VI来替代已有的In PortOut Port


  2. 访问内存映射设备或者其它物理内存位置

    LabVIEW本身并不直接支持物理内存访问。可利用AccessHW库,安装调用LabWindows/CVI功能的VI来实现直接内存访问。AccessHW库可以在以下链接的Windows端口和内存工具获得。AccessHW库安装将会安装必须的LabWindows/CVI控件,而不需要另外安装LabWindows/CVI。


相关链接:
Developer Zone Example: Port and Memory Utilities for Windows
KnowledgeBase 17IE3USR: DAQ Register-Level Programming Resources
KnowledgeBase 19LMFHSR: Register Programming a PCI Device and Finding the Correct Address
KnowledgeBase 2RCK8PTL: How Can I Write and Read from I/O and Memory Space in CVI?

附件:





报告日期: 04/04/2006
最近更新: 12/18/2007
文档编号: 2Q1FC3K8