当前位置:首页 >> 信息与通信 >>

LabVIEW与USB的直接数据通信(转载)


廖传书,黄道斌,孙旦均,李素芬 (武汉理工大学信息工程学院 湖北武汉 430070) 引言 LabVIEW是一种基于图形程序的虚拟仪器编程语言,在测试与测量、数据采集、仪器控制、数字信号 分析、工厂自动化等领域获得了广泛的应用。LabVIEW程序采用方框图编程,具有友好的人机界面, 在前面板中有用于模拟真实仪器面板的控件可供调用,可用于设置输入数值、观察输出值以及实现图 表、文本等显示。实现LabVIEW对数据的采集和处理,传统的是采用数据采集卡,但是这些数据采集 设备存在安装不便、价格昂贵、受计算机插槽数量、地址、中断资源的限制,可扩展性差,同时在一 些电磁干扰性强的测试现场,可能无法专门对其做电磁屏蔽,从而导致采集的数据失真。在LabVIEW 传统的用LabVIEW读写USB设备的方法是:先用VC++或Delphi编写动态链接库DLL文件,在DLL中 通过调用WIN API函数读写USB设备的数据,并存在缓冲区中,在LabVIEW中通过对DLL文件的调 用提取缓冲区中的数据。介绍了在LabVIEW下,通过调用NI-VISA子程序控件,实现与USB设备的 2 USB底层驱动程序设计 USB底层驱动开发工具有Windows DDK和第三方开发工具 如Driver studio和 Win driver等,但 DDK和第三方开发工具,如Driver driver等 但 是使用这些工具开发驱动难度大、效率底。在这里,介绍如何借用LabVIEW的NI-VISA子程序控件作 VISA(Virtual Instrument Software Architecture,ni.corn/visa)是一个用来与各种仪器总线 进行通讯的高级应用编程接口(API)。他不受平台、总线和环境的限制。通用串行总线(USB)是一个基 于信息的通讯总线。这表示PC机与USB设备通过发送指令和数据进行通讯,而这些指令和数据是通过 总线以文本或二进制数据的形式发送的。每个USB设备都有各自的指令集。可以使用NI-VISA的读写 NI-VISA从3.0版开始支持USB通讯,他有2种VISA类函数(Resource Class),可以控制2类USB ( ) 设备:USB INSTR设备与USB RAW设备。符合USB测试和测量类(USBTMC)协议的USB设备可以 通过使用USB INSTR类函数控制,他们使用488.2标准通讯。对于这些设备,只需以与GPIB仪器通 讯同样的方式,使用"VISA Open","VISA Close","VISA Read"和"VISAWrite"功能。USBTMC 设备符合VISA USB INSTR类函数能够理解的协议。USBTMC设备相对来说控制较为复杂,因为每 为了使用NI-VISA,必须先让Windows将NI-VI-SA作为设备的缺省驱动程序使用。在Windows环境 中,可以通过INF文档做到这一点。INF文件是系统硬件设备配置文件,USB驱动程序通过INF文件中 的PID(产品识别号)和VID(厂商识别号)识别USB设备。NI VISA 的PID(产品识别号)和VID(厂商识别号)识别USB设备。NI-VISA 3.0中包含的VISA Driver Development Wizard(DDW)可以为USB设备创建一个INF文档。下面简单介绍创建INF文档的过 (1)在安装了NI-VISA后,启动VISA Driver Devel-opment Wizard程序,出现了为PXI/PCI或 USB设备创建一个INF文档的向导,选择USB设备,点NEXT,出现VI-SA DDW基本设备信息窗口。 (2)进行这一步时,需要清楚USB的PID和VID。这些数字可以在安装USB设备的时候对其进行确认, 并在想要与设备通讯的时候,寻找他的地址。依据USB的规格,两个数字都是16位16进制数字,并应 该由设备制造商提供。例如在后面介绍基于USB的虚拟示波器用到USB接口芯片PDIUSBD12的PID 和VID分别是0x0471和0x0666;这一步设置完成后,点击NEXT,进行最后一步的设置。 和VID分别是0x0471和0x0666 这 步设置完成后 点击NEXT 进行最后 步的设置 (3)USB Instrument Prefix(USB仪器前缀)只是一个描述符,可以用他来识别本设备所用的相关文 档。在USB Instrument Prefix中输入相应信息,并在"output file directory"中选择存放这些文档 的目录,然后点击Finish。INF文档就被建好并保存至指定的位置。 这时候,只要复制生成的INF文件夹到系统盘Win-dows文件夹下INF文件夹,点击右键,安装即可。 这时,插上USB设备,Windows系统就能探测到,并根据INF硬件配置文件选择NI-VISA作为底层驱 动程序。在Lab-VIEW中,只需调用NI-VISA的相关控件,即可实现对USB设备的读写操作。 3 LabVIEW驱动程序编写 强大、灵活的仪器控制功能是LabVIEW区别于其他编程语言的主要特点。LabVIEW不仅提供数百种 不同接口测试仪器的驱动程序,而且还支持VISA,SCPI和IVI等最新的程控软件标准,为用户设计开 发先进的测试系统提供了软件支持。VISA是用于仪器编程的标准I/O函数库及相关规范的总称,一 般称之为VISA库。VISA库驻留于计算机系统中,是计算机与仪器之间的软件层连接,用以实现对仪 器的程控。对软件开发者来说,他是一个可调用的操作函数集,他本身不提供仪器编程能力,只是一 NI VISA支持3种类型的USB管道:控制、批量和中断。NI VISA探测到USB仪器时,他会对仪器进 NI-VISA支持3种类型的USB管道:控制、批量和中断。NI-VISA探测到USB仪器时,他会对仪器进 行自动扫描,寻找各种类型的最低可用端点。如使用NI-VI-SA中的VISA USB Control In和VISA USB Control Out来通过控制型管道传输数据,使用VISA Read和VISAWrite来通过批量型管道传

作为仪器I/O函数库,VISA编程与传统的I/O软件编程基本相同,主要通过设备I/O端口的读写操 作和属性控制,实现与仪器的命令与数据交换。LabVIEW中所有的VISA节点均在Function模板→All Functions子模板→Instrument I/O子模板→VISA子模板中。在这里,只用到了VISA Open, VISA Close,VISA Write和VISARead四个节点即可实现和USB设备的双向通信。当完成对USB设 备的INF硬件配置后,就可以用VISA Open节点打开该资源,建立计算机与这些VISA资源的通信管 道;与VISA Open节点相反,VISA Close节点用于将打开的VISA资源关闭;VISA Write节点的功 介绍完上面的4个节点,就可以用上面4个节点实现LabVIEW对USB批量数据收发,如图1所示。当 然,这需要前述INF文件的支持和与USB接口的单片机程序的支持,在图1中VISA resource name 端口用于指定需要打开的VISA资源的名称,实际上就是前面生成INF配置文件中的VISA资源仪器描 述符。这里,向USB发送字符串“connect test”,连接测试,单片机通过USB接口芯片将发送过去的

4 基于IJSB的虚拟示波器的实现 本系统为在LabVIEW中实现示波器的功能。单片机对向USB示波器调理电路输出的信号进行96 本系统为在LabVIEW中实现示波器的功能 单片机对向USB示波器调理电路输出的信号进行96 k(多 档可调)的高速连续AD采样,并将采样到的数据通过USB口传给PC机的LabVIEW,LabVlEW对USB 口传来的数据进行处理、测量、波形还原和显示等相关操作。虚拟示波器的程序运行界面如图2所示, 当前输入的是2.001 kHz的正弦波信号,在软件中显示的波形以及测量结果与实际示波器上得到的 结果基本无异。在该程序模块中,通过调用Lab-VIEW的相关控件,实现了对输入的模拟信号的波形

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

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



相关文章:
基于Labview的USB数据采集系统设计
基于Labview的USB数据采集系统设计_计算机软件及应用_...系统的通信驱动程序、数据储存回放程序、数据处理...先选择要读取的文本 目录,然后打开要读取的文件,...
基于Labview的USB接口上位机设计
基于Labview的USB接口上位机设计_信息与通信_工程科技_专业资料。高速的数据采集产品...这里我们应用 USB 的设备模式,也就是 DE0 开发板通过 USB 接口与主机(电脑)...
LabVIEW中实现USB 数据收发
0 版开始支持USB 通讯,他有2 种VI2SA 类 函数( Resource Class) ,可以控制...LabVIEW与USB的直接数据... 6页 免费 基于LabVIEW与USB接口的... 5页 免费 ...
用Labview基于NI VISA控制USB接口_图文
Labview基于NI VISA控制USB接口_信息与通信_工程科技_专业资料。基于NI的...D12 的数据总线直接与 P0 口相连,D12 的中断 引脚 INT_N 与 P89C52X2 ...
基于USB和LabVIEW的虚拟仪器的设计
基于USB和LabVIEW的虚拟仪器的设计_计算机软件及应用_...本文介绍了几种设计方案,就一种简单、易行 的方法...实质上所有针对虚拟串口的数据通信都是通过 USB 总线...
labview通过USB控制agilent33220
通过 USB 接口直接连接 PC agilent33220 任意波形发生器,运用 labview 来...集成了与满足 GPIB、VXI、RS-232 和 RS-485 协议的硬件及数据采集卡 通讯的...
非常好--LabVIEW串口通信详解
非常好--LabVIEW串口通信详解_信息与通信_工程科技_...很少听说有其它问题的,所以大家在使用便宜的 USB-...另一类是被动接收形的,即下位机会一直发送数据上来...
labview调用MATLAB
labview调用MATLAB_信息与通信_工程科技_专业资料。LABVIEW 与 MATLAB 交互为了...NI 公司说由于数据传输格式的问题, LabVIEW 无法对 USB webcam 提供直接支持,...
LabvIEW与usb使用方法
http://www.vihome.com.cn/bbs/forum.php?mod=viewthread&tid=27417 其实我们还有另外的方法,是通过 LabVIEW 调用 DLL 文件,实现 USB HID 的双向通信。 (...
基于NI-VISA与LabVIEW的USB接口应用设计
设备是指除了明确符合 USBTMC 规格的 仪器之外的任何 USB 设备,通信时要配置 ...LabVIEW与USB的直接数据... 6页 免费 LabVIEW与USB的直接数据... 3页 免费 ...
更多相关标签: