收藏 分享(赏)

用Labview基于NI VISA控制USB接口.doc

上传人:11xg27ws 文档编号:7839842 上传时间:2019-05-27 格式:DOC 页数:25 大小:1.05MB
下载 相关 举报
用Labview基于NI VISA控制USB接口.doc_第1页
第1页 / 共25页
用Labview基于NI VISA控制USB接口.doc_第2页
第2页 / 共25页
用Labview基于NI VISA控制USB接口.doc_第3页
第3页 / 共25页
用Labview基于NI VISA控制USB接口.doc_第4页
第4页 / 共25页
用Labview基于NI VISA控制USB接口.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、基于 NI-VISA 与 LabVIEW 的 USB 接口应用设计2008-01-15 嵌入式在线 收藏 | 打印通用串行总线(USB)作为一种灵活的高速总线接口技术,非常适合作为主机和外设之问的通信接口,但其结构复杂。本文以一个采集多点温度的实际系统为倒,阐述 USB 接口应用系统的总体设计思想及其层次结构,在实现方法上避开传统的 Windows 编程技术,另辟蹊径地给出使用 NI-VISA 来驱动 USB 接口以应用 LabVIEW 进行应用编程的方法。USB(Universal Serial Bus)接口是近年来应用在 PC 领域的新型接口技术。它基于单一的总线接口技术来满足多种应用领域

2、的需求;它的即插即用、支持热插拔、易于扩展等特性极大地方便了用户的使用,已逐渐成为现代数据传输的发展趋势。传统的开发 USB 应用系统的步骤是,先用 WindowsDDK(设备驱动程序开发包) 或第三方开发工具(如 DriverStudio)开发 USB 驱动程序,然后用 Visual C+编写 DLL(动态连接库),最后再调有 DLL 来开发应用程序。显然,这对 Windows 编程不熟悉的人来说有一定的难度,何况 USB 驱动程序的开发难度很大。本文介绍一种简单、快速开发 USB 接口应用系统的方法。它直接在 LabVIEW 环境下通过 NI-VISA 开发能驱动用户 USB 系统的应用程

3、序,完全避开了以前开发 USB 驱动程序的复杂性,大大缩短了开发周期。1 NI-VISA 简介NI-VISA(Virtual Instrument Software Architec-ture,以下简称为“VISA”)是美国国家仪器 NI(National Instrument)公司开发的一种用来与各种仪器总线进行通信的高级应用编程接口。VISA 总线 IO 软件是一个综合软件包,不受平台、总线和环境的限制,可用来对 USB、GPIB、串口、VXI、PXI 和以太网系统进行配置、编程和调试。VISA 是虚拟仪器系统 IO 接口软件。基于自底向上结构模型的 VISA 创造了一个统一形式的 IO

4、控制函数集。一方面,对初学者或是简单任务的设计者来说,VISA 提供了简单易用的控制函数集,在应用形式上相当简单;另一方面,对复杂系统的组建者来说,VISA 提供了非常强大的仪器控制功能与资源管理。2 LabVIEW 及其调用 VISA 的条件LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是 NI 公司开发的一种基于图形程序的编程语言。用户利用创建和调用子程序的方法编写程序,使创建的程序模块化,而且程序编制简单、直观。一个 LabVIEW 程序分为 3 部分:前面板、框图程序和图标接线端口。前面板用于模拟真实仪器的前面板

5、;框图程序是利用图形语言对前面板上的控件对象(分为控制量和指示量两种 )进行控制;图标接线端口用于把 LabVIEW 程序定义成一一个子程序,从而实现模块化编程。当进行 USB 通信时,VISA 提供了两类函数供 Lab-VIEW 调用,USB INSTR 设备与USB RAW 设备。 USBINSTR 设备是符合 USBTMC 协议的 USB 设备,可以通过使用 USB INSTR 类函数控制,通信时无需配置 NI-VISA;而 USB RAW 设备是指除了明确符合USBTMC 规格的仪器之外的任何 USB 设备,通信时要配置 NI-VISA。(1)配置 NI-VISA 的步骤使用 Driv

6、er DevelopineInt Wizard(驱动程序开发向导 )创建 INF 文档;安装 INF 文档,并安装使用 INF 文档的 USB 设备;使用 NI-VISA Interactive Control(NI-VISA 互动控制工具)对设备进行测试,以证实 USB 设备已正确安装,并获得 USB 设备的各属性值。详细过程可参考 NI 官方网站上免费提供的文档使用 NI-VISA 控制 USB 设备。(2)与 NI-VISA 相配合的 LabVIEW 横板中 VI 子节点ViOpen,打开并指定 VISA resource name 的设备的连接。ViProperty,VISA 设备的属

7、性子节点,可以设置端点或传输方式。ViWnte,向 VISA resource name 指定的设备写入数据。ViRead,从 VISA resource name 指定的设备读出数据。ViClose,结束设备读写并关闭与指定设备的连接。(3)USB RAW 设备读写的操作次序USB RAW 设备的读写次序如图 l 所示。下面以一个 USB 接口的温度采集系统为例,说明基于 NI-VISA 驱动的 USB 接口应用系统的设计与实现。3 系统硬件结构系统以 Philips 公司的增强型 80C51 单片机为核心,如图 2 所示。这是一个多点温度采集系统,核心器件是含有 8 KB 非易失 Flas

8、h 程序存储器的 P89C52,与标准 80C51 完全兼容。USB 通信控制芯片采用 Philips 公司的 PDIUSBD12 芯片( 简称“D12”)。它是一款较新型的专用 USB 通信控制芯片,符合通用串行总线 USBl1 版规范,内部集成有串行接口引擎 SIE、 320 字节 FIFO 存储器、收发器和电压调节器。前端温度传感器采用 Dallas 公司生产的 DSl8820。它是一线式数字温度传感器,直接以数字量输出给微处理器,可节省大量的引线和信号调理电路。DSl8820 内部有一个光刻 ROM。这个 ROM 中存有 64位序列号。它可以看作足该 DS18820 的地址序列码,所以

9、多路温度传感器可以挂在 l 条总线上,共同占用单片机的 1 条 IO 线即可实现接口。在提升单片机 IO 线驱动能力的前提下,理论上可以任意扩充检测的温度点数。D12 与单片机的接口共有两种方式:多路地址数据总线方式和单地址数据总线方式。这里选择了单地址数据总线方式,因此,D12 的 ALE 接为低电平,而 A0 脚与 P89C52X2 的端口 P33 相连。该端口控制 D12 的命令和数据状态:A0=1 ,表示数据总线上是命令;A0=0 ,表示数据总线上是数据。D12 的数据总线直接与 P0 口相连,D12 的中断引脚 INT_N 与 P89C52X2 的 INT0 相连。当 D12 的外部

10、巾断有一位为 1 时,INT_N 输出低电平,触发 P89C52X2 的外部中断。因为系统未采用 DMA,所以 D12 的 DMAcK_N 引脚接高电平,EOT_N 引脚通过电阻接到 USB 的+5 V,以正确检测到 USB 连接;INT_N引脚加一个上拉电阻。因为 D12 有片内上电复位电路,故引脚 RESET_N 直接与电源引脚VCC 相连。温度传感器 DSl8820 工作在外接电源工作方式, DQ 引脚直接和 P89C52X2的 P1 0 相连。3.1 系统的工作原理根据 USB 协议,任何传输都是由主机 (host)开始的,单片机的前台工作就是等待。主机 PC 首先要发送令牌包给 US

11、B,D12 接收到令牌包就给单片机发中断,单片机进入中断服务程序。首先读 D12 的中断寄存器,判断 USB 令牌包的类型,然后执行相应的操作,因此,USB 单片机程序主要就是中断服务程序的编写。在 USB 单片机程序中要完成对各种令牌包的响应,主要是对端口的编程。3.2 软件部分的设计系统的固件程序从功能上分为两部分,整个编程在 Keil C 环境下完成。(1)温度传感器 D818820 的读取程序DSl8820 单线通信功能是分时实现的。它有很严格的时序要求,对它的操作必须按协议进行,即初始化发 ROM 操作命令发存储器操作命令数据处理。(2)MCU 和 USB 接口的通信程序本程序使用

12、D12 的端点 l 和端点 2 进行上位汁算机与 MCU P89C52 之间的命令和数据的传输。端点 l 和端点 2 设置成模式 O(非同步方式)。其中端点 1 以中断传输方式进行命令的传输和应答,端点 2 以批量传输方式进行数据的传输。端点 1 接收上位机发送过来的读指令,端点 2 返回读成功数据。系统的固件程序编写以分层结构展开。它是一种积木式结构,如图 3 所示。硬件提取层:对单片机的 IO 口、数据总线等硬件接口进行操作。PDIUSBD12 命令接口:对 D12 器件进行操作的模块子程序集。中断服务程序:当 D12 向单片机发出中断请求时,读取 D12 中断传输来的数据,并设定事件标志

13、“EPP-FLAGS”和 Settup 包数据缓冲区“CONROL_XFER”传输给主循环程序。标准设备请求处理程序:对 USB 的标准设备请求进行处理。厂商请求处理程序:对用户添加的厂商请求进行处理。主程序:发出 USB 数据传输请求,处理总线事件和调用用户自定义功能子程序。以 NI-VISA 为驱动的主机 LabVIEW 应用程序的设计,NI-VISA 采用 32 版本,LabVIEW 采用 7 1 版本。整个应用程序的主框架使用了 WHILF 循环来进行不断的查询。在程序的编写过程中,采用了类似 Windows 程序中的事件驱动机制,LabVIEW 提供了这样的结构事件结构。各个消息的产

14、生利用了各种界面控件并由 Case 选择结构给出。程序框图如图 4 所示。为了便于说明 USB 操作次序,把图 4 中事件结构展开,有图 5 所示的具体 USB 操作次序。在图 5 中, USB RAW 设备通信采用端点 1 以中断传输方式接收上位机操作命令,协议可以自己约定。端点 2 以批量传输方式给上位机发回温度数据。其中端点数“130”是对应十六进制数“0082”的十进制数,此数表示端点 2 批量输入;而端点数 “1”则是对应十六进制数“0001” 的十进制数,此数表示端点 1 中断输出。因为 NI-VISA32 版本不支持 USB 属性“中断输出”(interrupt out),因此为

15、了实现 USB 端点 1 的中断输出问题,这里把 USB 属性“批量输出”(bulk out pipe)和“VI Write”节点组合在一起,来实现端点 l 中断输出。从 NI-VISA33 起,可以直接利用“ 中断输出”(interruptout)属性来实现。结语经实践证明,采用基于 NI-VISA 驱动的 USB 接口应用系统的设计非常容易,开发难度低,对开发者的要求不高;开发出的系统稳定可靠,即使对 Windows 编程不熟悉的人也可以开发出 USB 应用系统,它提供了另一种开发 USB 驱动应用程序的捷径。本文来源:单片机及嵌入式系统应用 作者:上海交通大学 余志荣 杨莉基于 NI-V

16、ISA 与 LabVIEW 的 USB 接口应用设计作者姓名: 余志荣 杨莉作者单位: 上海交通大学USB(Universal Serial Bus)接口是近年来应用在 PC 领域的新型接口技术。它基于单一的总线接口技术来满足多种应用领域的需求;它的即插即用、支持热插拔、易于扩展等特性极大地方便了用户的使用,已逐渐成为现代数据传输的发展趋势。传统的开发 USB 应用系统的步骤是,先用 WindowsDDK(设备驱动程序开发包)或第三方开发工具(如 DriverStudio)开发 USB 驱动程序,然后用 Visual C+编写 DLL(动态连接库),最后再调有 DLL 来开发应用程序。显然,这

17、对 Windows 编程不熟悉的人来说有一定的难度,何况 USB 驱动程序的开发难度很大。本文介绍一种简单、快速开发 USB接口应用系统的方法。它直接在 LabVIEW 环境下通过 NI-VISA 开发能驱动用户 USB 系统的应用程序,完全避开了以前开发 USB 驱动程序的复杂性,大大缩短了开发周期。1 NI-VISA 简介NI-VISA(Virtual Instrument Software Architec-ture,以下简称为“VISA”)是美国国家仪器 NI(National Instrument)公司开发 的一种用来与各种仪器总线进行通信的高级应用编程接口。VISA 总线 IO 软

18、件是一个综合软件包,不受平台、总线和环境的限制,可用来对 USB、GPIB、串口、VXI、PXI和以太网系统进行配置、编程和调试。VISA 是虚拟仪器系统 IO 接口软件。基于自底向上结构模型的 VISA 创造了一个统一形式的 IO 控制函数集。一方面,对初学者或是简单任务的设计者来说,VISA 提供了简单易用的控制函数集,在应用形式上相当简单;另一方面,对复杂系统的组建者来说,VISA 提供了非常强大的仪器控制功能与资源管理。2 LabVIEW 及其调用 VISA 的条件LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是

19、 NI 公司开发的一种基于图形程序的编程语言。用户利用创建和调用子程序的方法编写程序,使创建的程序模块化,而且程序编制简单、直观。一个 LabVIEW 程序分为 3 部分:前面板、框图程序和图标接线端口。前面板用于模拟真实仪器的前面板;框图程序是利用图形语言对前面板上的控件对象(分为控制量和指示量两种)进行控制;图标接线端口用于把 LabVIEW 程序定义成一一个子程序,从而实现模块化编程。当进行 USB 通信时,VISA 提供了两类函数供 Lab-VIEW 调用,USB INSTR 设备与USB RAW 设备。USBINSTR 设备是符合 USBTMC 协议的 USB 设备,可以通过使用 U

20、SB INSTR 类函数控制,通信时无需配置 NI-VISA;而 USB RAW 设备是指除了明确符合USBTMC 规格的仪器之外的任何 USB 设备,通信时要配置 NI-VISA。(1)配置 NI-VISA 的步骤使用 Driver DevelopineInt Wizard(驱动程序开发向导)创建 INF 文档;安装 INF 文档,并安装使用 INF 文档的 USB 设备;使用 NI-VISA Interactive Control(NI-VISA 互动控制工具)对设备进行测试,以证实 USB 设备已正确安装,并获得 USB 设备的各属性值。详细过程可参考 NI 官方网站上免费提供的文档使用

21、 NI-VISA 控制 USB 设备。(2)与 NI-VISA 相配合的 LabVIEW 横板中 VI 子节点ViOpen,打开并指定 VISA resource name 的设备的连接。ViProperty,VISA 设备的属性子节点,可以设置端点或传输方式。ViWnte,向 VISA resource name 指定的设备写入数据。ViRead,从 VISA resource name 指定的设备读出数据。ViClose,结束设备读写并关闭与指定设备的连接。(3)USB RAW 设备读写的操作次序USB RAW 设备的读写次序如图 l 所示。下面以一个 USB 接口的温度采集系统为例,说明

22、基于 NI-VISA 驱动的 USB 接口应用系统的设计与实现。3 系统硬件结构系统以 Philips 公司的增强型 80C51 单片机为核心,如图 2 所示。这是一个多点温度采集系统,核心器件是含有 8 KB 非易失 Flash 程序存储器的 P89C52,与标准80C51 完全兼容。USB 通信控制芯片采用 Philips 公司的 PDIUSBD12 芯片(简称“D12”)。它是一款较新型的专用 USB 通信控制芯片,符合通用串行总线 USBl1 版规范,内部集成有串行接口引擎 SIE、320 字节 FIFO 存储器、收发器和电压调节器。前端温度传感器采用 Dallas 公司生产的 DSl

23、8820。它是一线式数字温度传感器,直接以数字量输出给微处理器,可节省大量的引线和信号调理电路。DSl8820 内部有一个光刻 ROM。这个 ROM 中存有 64 位序列号。它可以看作足该 DS18820 的地址序列码,所以多路温度传感器可以挂在 l 条总线上,共同占用单片机的 1 条 IO 线即可实现接口。在提升单片机 IO 线驱动能力的前提下,理论上可以任意扩充检测的温度点数。D12 与单片机的接口共有两种方式:多路地址数据总线方式和单地址数据总线方式。这里选择了单地址数据总线方式,因此,D12 的 ALE 接为低电平,而 A0 脚与P89C52X2 的端口 P33 相连。该端口控制 D1

24、2 的命令和数据状态:A0=1,表示数据总线上是命令;A0=0,表示数据总线上是数据。D12 的数据总线直接与 P0 口相连,D12的中断引脚 INT_N 与 P89C52X2 的 INT0 相连。当 D12 的外部巾断有一位为 1 时,INT_N输出低电平,触发 P89C52X2 的外部中断 。因为系统未采用 DMA,所以 D12 的 DMAcK_N 引脚接高电平,EOT_N 引脚通过电阻接到 USB 的+5 V,以正确检测到 USB 连接;INT_N 引脚加一个上拉电阻。因为 D12 有片内上电复位电路,故引脚 RESET_N 直接与电源引脚 VCC 相连。温度传感器 DSl8820 工作

25、在外接电源工作方式,DQ 引脚直接和 P89C52X2 的 P10 相连。3.1 系统的工作原理根据 USB 协议,任何传输都是由主机(host)开始的,单片机的前台工作就是等待。主机 PC 首先要发送令牌包给 USB,D12 接收到令牌包就给单片机发中断,单片机进入中断服务程序。首先读 D12 的中断寄存器,判断 USB 令牌包的类型,然后执行相应的操作,因此,USB 单片机程序主要就是中断服务程序的编写。在 USB 单片机程序中要完成对各种令牌包的响应,主要是对端口的编程。3.2 软件部分的设计系统的固件程序从功能上分为两部分,整个编程在 Keil C 环境下完成。(1)温度传感器 D81

26、8820 的读取程序DSl8820 单线通信功能是分时实现的。它有很严格的时序要求,对它的操作必须按协议进行,即初始化发 ROM 操作命令发存储器操作命令数据处理。(2)MCU 和 USB 接口的通信程序本程序使用 D12 的端点 l 和端点 2 进行上位汁算机与 MCU P89C52 之间的命令和数据的传输。端点 l 和端点 2 设置成模式 O(非同步方式)。其中端点 1 以中断传输方式进行命令的传输和应答,端点 2 以批量传输方式进行数据的传输。端点 1 接收上位机发送过来的读指令,端点 2 返回读成功数据。系统的固件程序编写以分层结构展开。它是一种积木式结构,如图 3 所示。硬件提取层:

27、对单片机的 IO 口、数据总线等硬件接口进行操作。PDIUSBD12 命令接口:对 D12 器件进行操作的模块子程序集。中断服务程序:当 D12 向单片机发出中断请求时,读取 D12 中断传输来的数据,并设定事件标志“EPP-FLAGS”和 Settup 包数据缓冲区“CONROL_XFER”传输给主循环程序。标准设备请求处理程序:对 USB 的标准设备请求进行处理。厂商请求处理程序:对用户添加的厂商请求进行处理。主程序:发出 USB 数据传输请求,处理总线事件和调用用户自定义功能子程序。以 NI-VISA 为驱动的主机 LabVIEW 应用程序的设计,NI-VISA 采用 32 版本,Lab

28、VIEW 采用 71 版本。整个应用程序的主框架使用了 WHILF 循环来进行不断的查询。在程序的编写过程中,采用了类似 Windows 程序中的事件驱动机制,LabVIEW 提供了这样的结构事件结构。各个消息的产生利用了各种界面控件并由 Case 选择结构给出。程序框图如图 4所示。为了便于说明 USB 操作次序,把图 4 中事件结构展开,有图 5 所示的具体 USB 操作次序。在图 5 中,USB RAW 设备通信采用端点 1 以中断传输方式接收上位机操作命令,协议可以自己约定。端点 2 以批量传输方式给上位机发回温度数据。其中端点数“130”是对应十六进制数“0082”的十进制数,此数表

29、示端点 2 批量输入;而端点数“1”则是对应十六进制数“0001”的十进制数,此数表示端点 1 中断输出。因为 NI-VISA32 版本不支持 USB 属性“中断输出”(interrupt out),因此为了实现 USB 端点 1 的中断输出问题,这里把 USB 属性“批量输出”(bulk out pipe)和“VI Write”节点组合在一起,来实现端点 l 中断输出。从 NI-VISA33 起,可以直接利用“中断输出”(interruptout)属性来实现。 结语经实践证明,采用基于 NI-VISA 驱动的 USB 接口应用系统的设计非常容易,开发难度低,对开发者的要求不高;开发出的系统稳

30、定可靠,即使对 Windows 编程不熟悉的人也可以开发出 USB 应用系统,它提供了另一种开发 USB 驱动应用程序的捷径。出处:单片机及嵌入式系统应用 页面功能 【我来说两句】【字体:大 中 小】【打印】 【关闭】 相关连接 微型虚拟示波器的设计与实现 基于虚拟仪器的频率测量软件系统设计 基于嵌入式系统的虚拟仪器设计 基于 LabVIEW 的相关滤波器的设计与改进 基于虚拟仪器的热膨胀仪测试系统设计 基于虚拟仪器的 ARINC429 总线信号仿真和测试方案 基于虚拟仪器技术新型混沌信号产生器的设计 基于虚拟仪器的胎儿心电图仪的研制 USB 仪器控制教程2 评级 | 4.50 out of

31、5打印 概览本教程可作为通过 NI-VISA 与 USB 设备通信的起步指导。 本教程不作为学习USB 构架或各种 USB 通信协议的起步指导。 读完本教程,只要您能理解设备通信协议,便可安装 USB 设备并利用 NI-VISA 实现与 USB 的通信。 目录1. USB 和 VISA 的背景 2. 通过配置 NI-VISA, 控制您的 USB 设备 3. 通过使用 NI-VISA, 与您的 USB 设备通信 4. Linux 和 Mac 系统上的 USBUSB 和 VISA 的背景VISA 是一款可与仪器总线通信的高级应用程序接口(API)。 VISA 独立于平台、总线和环境。 换言之,无论

32、是在运行 Windows 2000 操作系统的计算机上借助LabVIEW 创建与 USB 设备通信的程序,还是在运行 Mac OS X 操作系统的计算机上借助 C 创建与 GPIB 设备通信的程序,均可使用相同的 API。通用序列总线(USB)是一款基于消息的通信总线。这表示:PC 和 USB 设备通过在总线上发送文本或二进制数据格式的指令和数据,实现通信。 每款 USB 设备都有着各自的指令集。 您可通过“NI-VISA 读写”函数将这些指令发送给仪器并从仪器上读取响应。 您可以和仪器制造商确认,获得关于自身仪器的有效指令列表。NI-VISA 自 3.0 版起,支持 USB 通信。 有 2

33、种类型的 VISA 资源参与支持: USB INSTR 和 USB RAW。USB INSTR 资源类型用于符合“USB 测试和测量类型(USBTMC)”协议的 USB 设备。USBTMC 设备符合 VISA USB INSTR 资源类型可以理解的一项协议。 您无需配置即可实现与 USBTMC 设备的通信。 若您想了解和 USBTMC 仪器通信的内容,请参阅第 3 节。更多关于 USBTMC 规范的信息,请参阅以下“USB 实施者论坛网”的页面链接。USB RAW 仪器是任何不符合 USBTMC 专用规范的 USB 仪器。 若您正在使用 USB RAW 设备,可根据第 2 节的指南,配置 NI

34、-VISA 并控制自身设备。 若您想详细了解自身设备的通信协议和指令集,请与仪器制造商联系。关于 NI-VISA API 的详细信息,请参阅 NI-VISA 帮助 。 您可在 NI-VISA 或本教程结尾的链接中,查取该文件。通过配置 NI-VISA, 控制您的 USB 设备本节概述的 USB RAW 设备配置步骤,可令 NI-VISA 3.0 通过基于 Windows 的计算机控制 USB RAW 设备。 若您正使用与 USBTMC 兼容的设备,请连接自身设备并跳转至 2.3 节。现在,您应在计算机上安装 NI-VISA,但不要连接 USB 设备。 此外,不应安装任何 USB 设备的驱动。

35、您可以通过以下 3 步,配置 USB 设备并使用 NI-VISA:1.2. 通过“驱动程序开发向导”,创建 INF 文件。3. 通过 INF 文件,安装 INF 文件和 USB 设备。4. 通过 NI-VISA 交互式控件测试设备。 本教程根据自身目的,将 NI DAQPad-6020E 作为 USB 设备的范例,并将其安装于 Windows XP 系统。 由于本教程旨在诠释通用 USB 设备的配置,因此DAQPad-6020E 的个别细节不在讨论之列。 请注意:NI-DAQ 是 DAQPad-6020E 所支持的唯一的驱动。2.1. 通过 “驱动程序开发向导“, 创建 INF 文件若您想使用

36、 NI-VISA,必须首先通知 Windows 系统将 NI-VISA 用作设备的默认驱动。 在 Windows 环境下,您可以通过 INF 文件实现该目标。 NI-VISA 3.0及更高版本包括:可为 USB 设备创建 NIF 文件的“VISA 驱动程序开发向导”。1. 打开 DDW,选择 开始程序National InstrumentsVISAVISA 驱动开发者向导。 图 1 显示了打开的屏幕。图 1. VISA DDW 硬件总线窗口您可以通过该向导为 PXI/PCI、USB 或火线设备,创建 INF 文件。 由于是为USB 设备创建驱动,请您单击 USB 和 下一步。 图 2 显示了打

37、开的“VISA DDW基本设备信息”窗口。图 2. VISA DDW 基本设备信息窗口2. 在本步骤中,您必须获知自身 USB 仪器的厂商 ID 和产品 ID。 当您安装 USB设备、标注设备地址,并希望与设备通信时,这些数字可识别出您的 USB 设备。依照 USB 规范,两组数字均为 16 位十六进制数字,且由设备制造商提供。若您想获知 USB 的厂商 ID 和产品 ID,可将 USB 设备插入计算机,令其辨识新设备。 取消并退出可能开启的“发现新硬件向导”。 通过“控制面板”打开“设备管理器(Device Manager)”,从列表中找出 USB 设备;其位置通常在“其它设备”之下。 若该

38、 USB 属于未知设备,会出现一个黄色的感叹号。 双击该设备,打开属性。 选择“详细情况”标签,确保属性下拉式列表中显示“设备实例 ID”。 图 3 近似显示了一串字符。“VID_“和“PID_“右边的 4 个字符分别代表您的厂商 ID 和产品 ID。 请您记下这 2 组设备字符,关闭“设备管理器(Device Manager)”,并从计算机上拔去设备。 或者,您也可以联系设备制造商获取该信息。图 3. 从 “设备管理器 (Device Manager)“上找出厂商 ID 和产品 IDDAQPad-6020E 的厂商 ID 和产品 ID 分别是:0x3923 和 0x12C0。 若您的设备不是

39、 NI DAQPad-6020E,由于设备不同,你的厂商 ID 和产品 ID 也存在差异。注意: 通过“驱动程序开发向导”继续配置以前,您应保证已经从计算机上移除了 USB 设备。在各个栏目中,相应地输入厂商 ID、产品 ID、制造商姓名和产品名称。点击 下一步。 图 4 展现了“输出文件属性”窗口。图 4. VISA DDW 输出文件属性窗口3. USB 仪器前缀(USB Instrument Prefix)就是一种描述符,用来定义 USB 设备使用的文件。 键入 USB 仪器前缀(USB Instrument Prefix),选择您希望存放此类文件的目录,并单击 下一步。 接下来的窗口将为

40、您提供安装选项。 默认选项是安装操作系统的设置信息,这通常也是最佳选项。 一旦选择某个选项,请您单击 完成并退出向导。 INF 文件根据您在前一个窗口的输出文件目录栏中指定的目录,创建形成。2.2. 安装 INF 文件和 USB 设备。INF 文件的安装因 Windows 版本的不同而各有差异。 当 DDW 创建 INF 文件时,安装指南便被纳入 INF 文件顶部的标题中。 采用 ASCII 文本格式的 INF 文件,能够接受记事本等各种文本编辑器的读取。 若您想了解 INF 文件的安装详情,请在文本编辑器中打开 INF 文件,并依照文件顶部的指南操作。 本教程假设您使用的是 Windows

41、XP。1. 将 INF 文件复制到 INF 文件夹。 在 Windows XP 操作系统中,该文件夹通常位于 C:WINDOWSINF。 该文件夹可能被隐藏,这就可能需要您更改自身的文件夹选项以便查看隐藏的文件。 2. 右键单击 C:WINDOWSINF 中的 INF 文件,并点击 安装。 本过程为您的设备创建出一个 PNF 文件。 现在,您已做好了安装 USB 设备的准备。 3. 连接您的 USB 设备。 由于 USB 是热插拔,Windows 系统可以检测您的 USB 设备;一旦您将 USB 设备与 USB 端口相连, “添加新硬件向导”将自动打开。 依照该向导的屏幕指南。 当您收到为该设

42、备选择一个驱动的提示时,应浏览 INF 文件夹并选择之前通过 DDW 创建的 INF 文件。 2.3. 借助 VISA 交互式控件, 测试通信。1. 打开 Measurement & Automation Explorer。 选择 工具刷新 ,刷新查看内容。 如图 5 所示,您的 USB 应当在 设备和接口(Devices and Interfaces) 的下方,作为 USB 设备列出。现在您经过安装和配置的 USB 已能使用 NI-VISA。若您选择自身的 USB 设备,“USB 设置(USB Settings)”窗口将显示其设备信息。 您可以利用该窗口,对设备的制造商 ID、产品代码、序列

43、号等信息进行访问。+ 放大图片 图 5. Measurement & Automation Explorer 显示的 USB 设备2. 借助您设备上的 VISA 仪器描述符,与使用 VISA 的设备实现通信。 USB INSTR 设备的仪器描述符格式是 USB板卡: 制造商 ID: 产品代码: 序列号: USB 接口号:INSTR。 USB RAW 设备的仪器描述符格式是 USB板卡: 制造商 ID: 产品代码: 序列号: USB 接口号:RAW。依照 USBTMC 规范,所有 USBTMC 设备必须具有一个序列号。 某些 USB RAW 设备可能没有序列号。 若您的设备没有序列号,NI-VI

44、SA 将为该设备自动分配一个VISA 特定序列号。 序列号的格式为:NI-VISA-#,其中#是一组自动生成的数字。某些 USB 设备具有多个接口。 这相当于一款 PCI 设备可以具有多个函数。 若设备仅支持一个接口,您无需包括 USB 接口号。DAQPad-6020E 使用 RAW 类型,制造商代码和产品代码分别是:0x3923 和0x12C0。 针对 DAQPad-6020E 的仪器描述符是USB0:0x3923:0x12C0:00B50DAE:RAW。若您想使用该设备测试通信,请打开 Measurement & Automation Explorer。 选择 工具NI-VISA交互式控件

45、。 图 6 近似地显示出一个打开的窗口。图 6. VISA 交互式控件3. VISA 交互式控件 (VISAIC)是一项可与所有 VISA 资源进行轻松交流的实用程序。 USB 分支中会列出经配置可以使用 VISA 的 USB 设备。 双击您的设备,打开设备的 VISA 会话。 图 7 显示出一个打开的窗口。+ 放大图片图 7. VISA 交互式控件开启 VISA 会话当您通过 VISAIC 打开“VISA 会话”时,“模板”标签和“属性节点(设置)”标签被自动选定。 若您想读取属性,可以选中“属性节点(获取)”标签,选择希望读取的属性并点击 执行。 当前值 指示器将显示属性名称中指定属性的当

46、前值。 如图 7 所示, 资源名称 属性被读取。更多关于 VISAIC 的使用信息,请参阅 Developer Zone: VISA 交互式控件 (VISAIC)。 若您想了解有关 NI-VISA API 的信息,请审阅 NI-VISA 帮助 。 两者可通过本教程结尾的链接获得。 您可以和仪器制造商联系,获得关于自身USB 仪器的有效指令列表。通过使用 NI-VISA, 与您的 USB 设备通信本节诠释了如何通过 NI-VISA 3.0 及更高版本,与您的 USB 设备通信。 回顾:USB 设备具有 2 种类型。 通信方式取决于您的设备类型。3.1 USB INSTR 类型 (USBTMC)符

47、合 USB 测试和测量类型 (USBTMC)的设备采用 NI-VISA USB INSTR 类型。 这些设备采用 488.2 类型的通信。 针对这些设备,您只需借助“VISA 打开 (VISA Open)”、“VISA 关闭 (VISA Close)”、“VISA 读取 (VISA Read)”和“VISA 编写 (VISA Write)”函数,采用与 GPIB 仪器一样的通信手段。图 8 显示了与 USBTMC 设备通信的 LabVIEW VI。 在该范例中,针对 USB 设备的VISA 会话被打开。 指令被写入设备,响应被读回。 如本例所示,正在接受传送的特定指令是针对设备的 ID 查询。

48、 您可与设备制造商确认自身设备的指令集。 所有通信结束之后,VISA 会话关闭。图 8. USBTMC LabVIEW 范例程序框图3.2 USB RAW 类型与 USB RAW 类型的通信更为复杂,因为每款设备可使用各自的通信协议。 若您想详细了解自身设备的通信协议,请与仪器制造商联系。USB 利用 4 类通道或端点,实现通信。 控制端点、批量端点、中断端点和同步端点。 每类通道传输一种不同类型的信息。 此外,任一端点号码可属于任一端点类型。 您可以将端点视为通信插槽。 若您想详细了解关于 USB 架构的内容,请审阅以下有关 USB 规范的链接。NI-VISA 支持 3 类 USB 通道:

49、控制端点、批量端点和中断端点。 一旦 NI-VISA检测出您的 USB 仪器,将自动扫描您的仪器,查找各类型当先最低的端点。一旦 VISA 检测出当先最低的端点,便将这一数值分配给合适的 VISA 属性。 批量输入端点和批量输出端点被分别储存在“VI_ATTR_USB_BULK_IN_PIPE”属性和“VI_ATTR_USB_BULK_OUT_PIPE”属性中。 中断端点被储存在“VI_ATTR_USB_INTR_IN_PIPE”属性中。 若数值为-1,则表示 USB 设备不支持相应的通道类型。 控制渠道只支持端点 0。 若您使用的是 C API,可通过“vi配置属性 (viSetAttribute)”函数改变端点。 您可在 LabVIEW 中使用“编写VISA 属性 (Write VISA Property)”节点。NI-VISA 包含 4 类借由 USB 通道传输数据的函数。 您在利用这些函数与设备通信之前,需要通过 VISA USB 的属性,设置通信协议。 以下列表描述了现有函数。 通过 VISA USB Control

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报