LabVIEW与USB的直接数据通信

上传人:枫** 文档编号:483501281 上传时间:2022-08-19 格式:DOC 页数:6 大小:171KB
返回 下载 相关 举报
LabVIEW与USB的直接数据通信_第1页
第1页 / 共6页
LabVIEW与USB的直接数据通信_第2页
第2页 / 共6页
LabVIEW与USB的直接数据通信_第3页
第3页 / 共6页
LabVIEW与USB的直接数据通信_第4页
第4页 / 共6页
LabVIEW与USB的直接数据通信_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《LabVIEW与USB的直接数据通信》由会员分享,可在线阅读,更多相关《LabVIEW与USB的直接数据通信(6页珍藏版)》请在金锄头文库上搜索。

1、LabVIEW 与 USB 的直接数据通信廖传书,黄道斌,孙旦均,李素芬(武汉理工大学信息工程学院 湖北武汉 430070)引言LabVIEW 是一种基于图形程序的虚拟仪器编程语言, 在测试与测量、 数据采集、 仪器控制、数字信号分析、工厂自动化等领域获得了广泛的应用。 LabVIEW 程 序采用方框图编程, 具有友好的人机界面, 在前面板中有用于模拟真实仪器面板 的控件可供调用, 可用于设置输入数值、 观察输出值以及实现图表、 文本等显示。 实现 LabVIEW 对数据的采集和处理,传统的是采用数据采集卡,但是这些数据 采集设备存在安装不便、 价格昂贵、 受计算机插槽数量、 地址、中断资源的

2、限制, 可扩展性差, 同时在一些电磁干扰性强的测试现场, 可能无法专门对其做电磁屏 蔽,从而导致采集的数据失真。在 LabVIEW 下使用 USB 总线,可以同样实现 数据采集,并且弥补了采集卡的不足。传统的用 LabVIEW 读写 USB 设备的方法是:先用 VC+ 或 Delphi 编写动态链 接库 DLL 文件,在 DLL 中通过调用 WIN API 函数读写 USB 设备的数据,并存 在缓冲区中, 在 LabVIEW 中通过对 DLL 文件的调用提取缓冲区中的数据。 介绍 了在 LabVIEW 下,通过调用 NI-VISA 子程序控件,实现与 USB 设备的直接通 信,避免了二次编程的

3、麻烦和数据的中转。2 USB 底层驱动程序设计USB 底层驱动开发工具有 Windows DDK 和第三方开发工具,如 Driver studio 和 Win driver 等,但是使用这些工具开发驱动难度大、效率底。在这里,介绍 如何借用 LabVIEW 的 NI-VISA 子程序控件作为 USB 的底层驱动。VISA(Virtual Instrument Software Architecture , ni. corn/visa)是- 个用来与 各种仪器总线进行通讯的高级应用编程接口 (API) 。他不受平台、总线和环境的 限制。通用串行总线(USB)是一个基于信息的通讯总线。这表示 PC

4、机与USB 设备通过发送指令和数据进行通讯, 而这些指令和数据是通过总线以文本或二进 制数据的形式发送的。每个 USB 设备都有各自的指令集。可以使用 NI-VISA 的 读写功能向仪器发送这些指令,并读取仪器的反馈。NI-VISA从3.0版开始支持 USB通讯,他有2种VISA类函数(Resource Class), 可以控希9 2类USB设备:USB INSTR设备与USB RAW 设备。符合USB测试 和测量类 (USBTMC) 协议的 USB 设备可以通过使用 USB INSTR 类函数控制, 他们使用 4882 标准通讯。对于这些设备,只需以与 GPIB 仪器通讯同样的方 式,使用V

5、ISA Open,VISA Close,VISA Read和VISAWrite功能。USBTMC 设备符合 VISA USB INSTR 类函数能够理解的协议。 USBTMC 设备 相对来说控9较为复杂, 因为每个设备可以使用各自的通信协议, 而这些通信协 议一般都是由设备的生产厂家自定的。为了使用NI-VISA,必须先让 Windows将NI-VI-SA作为设备的缺省驱动程序使 用。在 Windows 环境中,可以通过 INF 文档做到这一点。 INF 文件是系统硬件 设备配置文件,USB驱动程序通过INF文件中的PID(产品识别号)和VID(厂商 识别号)识别 USB 设备。 NI-VIS

6、A 3. 0中包含的 VISA Driver Development Wizard(DDW) 可以为 USB 设备创建一个 INF 文档。下面简单介绍创建 INF 文档 的过程:(1) 在安装了 NI-VISA 后,启动 VISA Driver Devel-opment Wizard 程序, 出现了 为 PXIPCI 或 USB 设备创建一个 INF 文档的向导,选择 USB 设备,点 NEXT, 出现 VI-SA DDW 基本设备信息窗口。(2) 进行这一步时,需要清楚 USB的PID和VID。这些数字可以在安装 USB设 备的时候对其进行确认, 并在想要与设备通讯的时候, 寻找他的地址。

7、依据 USB 的规格,两个数字都是 16 位 16 进9数字,并应该由设备9造商提供。例如在 后面介绍基于USB的虚拟示波器用到USB接口芯片PDIUSBD12的PID和VID 分别是0x0471和0x0666 ;这一步设置完成后,点击 NEXT,进行最后一步的 设置。(3) USB Instrument Prefix(USB 仪器前缀)只是一个描述符, 可以用他来识别本设 备所用的相关文档。 在 USB Instrument Prefix 中输入相应信息, 并在 output file directory中选择存放这些文档的目录,然后点击Finish。INF文档就被建好并保 存至指定的位置。

8、这时候,只要复制生成的 INF 文件夹到系统盘 Win-dows 文件夹下 INF 文件夹, 点击右键,安装即可。这时,插上 USB 设备, Windows 系统就能探测到,并根 据INF硬件配置文件选择NI-VISA作为底层驱动程序。在Lab-VIEW中,只需 调用 NI-VISA 的相关控件,即可实现对 USB 设备的读写操作。3 LabVIEW 驱动程序编写强大、灵活的仪器控制功能是 LabVIEW 区别于其他编程语言的主要特点。 LabVIEW 不仅提供数百种不同接口测试仪器的驱动程序,而且还支持 VISA, SCPI 和 IVI 等最新的程控软件标准,为用户设计开发先进的测试系统提供

9、了软 件支持。 VISA 是用于仪器编程的标准 IO 函数库及相关规范的总称, 一般称之 为 VISA 库。 VISA 库驻留于计算机系统中, 是计算机与仪器之间的软件层连接, 用以实现对仪器的程控。 对软件开发者来说, 他是一个可调用的操作函数集, 他 本身不提供仪器编程能力,只是一个高层 API(应用程序接口),通过调用底层的 驱动程序来控制仪器设备。NI-VISA 支持 3种类型的 USB 管道:控制、批量和中断。 NI-VISA 探测到 USB 仪器时,他会对仪器进行自动扫描,寻找各种类型的最低可用端点。如使用 NI-VI-SA 中的 VISA USB Control In 和 VIS

10、A USB Control Out 来通过控制型管 道传输数据,使用 VISA Read 和 VISAWrite 来通过批量型管道传输数据。作为仪器I/ O函数库,VISA编程与传统的1/O软件编程基本相同,主要通过 设备I/ O端口的读写操作和属性控制,实现与仪器的命令与数据交换。LabVIEW 中所有的VISA节点均在Function模板f All Functions子模板f Instrument I / O子模板f VISA子模板中。在这里,只用到了 VISA Open,VISA Close,VISA Write 和 VISARead 四个节点即可实现和 USB 设备的双向通信。当完成对

11、 USB 设备的 INF 硬件配置后,就可以用 VISA Open 节点打开该资源,建立计算机与 这些 VISA 资源的通信管道;与 VISA Open 节点相反, VISA Close 节点用于将 打开的VISA资源关闭;VISA Write节点的功能是将 writebuffer端口输入字符串 数据发送到仪器中; VISA Read 节点的功能是从仪器中读出数据;介绍完上面的4个节点,就可以用上面4个节点实现LabVIEW对USB批量数 据收发,如图1所示。当然,这需要前述INF文件的支持和与USB接口的单片 机程序的支持,在图1中VISA resource name 端口用于指定需要打开的

12、 VISA 资源的名称,实际上就是前面生成INF配置文件中的VISA资源仪器描述符。这 里,向USB发送字符串“connect test,连接测试,单片机通过 USB接口芯片 将发送过去的数据回传给LabVIEW。在前面板的read buffer显示框中能显示出“ connect test字符 串。啊t LaHVIKW沪填现1 SK 境就屯4基于IJSB的虚拟示波器的实现本系统为在LabVIEW中实现示波器的功能。单片机对向 USB示波器调理电路 输出的信号进行96 k(多档可调)的高速连续AD采样,并将采样到的数据通过USB 口传给PC机的LabVIEW,LabVlEW 对USB 口传来的数

13、据进行处理、测 量、波形还原和显示等相关操作。虚拟示波器的程序运行界面如图2所示,当前 输入的是2. 001 kHz的正弦波信号,在软件中显示的波形以及测量结果与实际 示波器上得到的结果基本无异。在该程序模块中,通过调用Lab-VIEW的相关控件,实现了对输入的模拟信号的波形还原显示、频率测量、峰值测量、直流漂移测量等操作。旧2 虐枇示減SHJE睜诞廿,幕禹系统采用单片机和Philip公司生产的PDIUSBD12芯片构成USB设备。由单片 机实现AD采样,经USB接口完成采样数据的传输。单片机的电路设计和软件 构成在这里就不做详细介绍。此系统硬件部分USB接口芯片采用的PDIUSBD12,他支

14、持批量数据的长度为 64B,所以就以64B为一帧进行数据和命令的收发。在系统启动即检测USB设备是否连接正常,正常才启动检测,否则提示连接不正常。当启动检测时,USB 总线上的数据的传输过程遵循以下步骤:LabVIEW向USB设备发送启动控制命令帧,其中包含采样频率、存贮深度、 持续时间等相关内容。由于控制命令字不满 64B,其他部分进行比特填充。(2)单片机通过USB接口芯片接收到控制命令,即按要求开始启动采样。若为大 于8k高速采样命令,则进行连续采样,将采样的数据存贮在数据缓冲区中,采 样结束后,将数据缓冲区中的数据进行 60B每帧的拆分,并在60B数据的前面 加上4个字节的数据帧编号等

15、相关内容,通过 USB总线将这些数据帧批量传输 给 LabVIEW。(3)若为小于8k的低速采样命令,则进行中断采样,将采样的数据存储在一个队 列中,在采样过程中,若采样的数据多于60B,即在主程序中取出队列中60个 字节数据并封装成数据帧, 启动 USB 数据的传输过程。 采样过程直至 LabVIEW 向 USB 设备发送停止命令帧。(4) 在一次数据采样结束后, LabVIEW 向 USB 设备发送启动控制命令帧即可马 上进行再次采样。5 结语用户可以根据不同的环境和要求选择不同的通信方式, 在低速的情况下可以采用 串口,并口等方式,高速数据采集可以采用 USB 口,专用数据采集卡等,使用 USB2 0 协议的芯片支持的批量的数据帧长度可以达到 512B ,并且有更高的数 据传输速度。介绍了在 LabVIEW 中实现 USB 通信的设计方法,并给出具体的 设计步骤和方框图程序。 该方法具有硬件接口简单、 软件编程方便、 实用的特点, 在实际数据采集过程中具有一定参考价值。本文摘自现代电子制作

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号