基于NI-VISA与LabVIEW的USB接口应用设计

发布者:MindfulBeing最新更新时间:2010-10-28 来源: 上海交通大学关键字:LabVIEW  USB接口  NI-VISA 手机看文章 扫描二维码
随时随地手机看文章

  USB(Universal Serial Bus)接口是近年来应用在PC领域的新型接口技术。它基于单一的总线接口技术来满足多种应用领域的需求;它的即插即用、支持热插拔、易于扩展等特性极大地方便了用户的使用,已逐渐成为现代数据传输的发展趋势。

  传统的开发USB应用系统的步骤是,先用WindowsDDK(设备驱动程序开发包)或第三方开发工具(如DriverStudio)开发USB驱动程序,然后用Visual C++编写DLL(动态连接库),最后再调有DLL来开发应用程序。显然,这对Windows编程不熟悉的人来说有一定的难度,何况USB驱动程序的开发难度很大。本文介绍一种简单、快速开发USB接口应用系统的方法。它直接在LabVIEW环境下通过NI-VISA开发能驱动用户USB系统的应用程序,完全避开了以前开发USB驱动程序的复杂性,大大缩短了开发周期。

  1 NI-VISA简介

  NI-VISA(Virtual Instrument Software Architec-ture,以下简称为“VISA”)是美国国家仪器NI(NaTIonal Instrument)公司开发

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

  2 LabVIEW及其调用VISA的条件

  LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是NI公司开发的一种基于图形程序的编程语言。用户利用创建和调用子程序的方法编写程序,使创建的程序模块化,而且程序编制简单、直观。一个LabVIEW程序分为3部分:前面板、框图程序和图标/接线端口。前面板用于模拟真实仪器的前面板;框图程序是利用图形语言对前面板上的控件对象(分为控制量和指示量两种)进行控制;图标/接线端口用于把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的步骤

  ①使用Driver 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设备的属性子节点,可以设置端点或传输方式。
    ViWnte,向VISA resource name指定的设备写入数据。
    ViRead,从VISA resource name指定的设备读出数据。
    ViClose,结束设备读写并关闭与指定设备的连接。[page]

  (3)USB RAW设备读写的操作次序

  USB RAW设备的读写次序如图l所示。

USB RAW设备的读写次序

  下面以一个USB接口的温度采集系统为例,说明基于NI-VISA驱动的USB接口应用系统的设计与实现。

  3 系统硬件结构

  系统以Philips公司的增强型80C51单片机为核心,如图2所示。这是一个多点温度采集系统,核心器件是含有8 KB非易失Flash程序存储器的P89C52,与标准80C51完全兼容。USB通信控制芯片采用Philips公司的PDIUSBD12芯片(简称“D12”)。它是一款较新型的专用USB通信控制芯片,符合通用串行总线USBl.1版规范,内部集成有串行接口引擎SIE、320字节FIFO存储器、收发器和电压调节器。前端温度传感器采用Dallas公司生产的DSl8820。它是一线式数字温度传感器,直接以数字量输出给微处理器,可节省大量的引线和信号调理电路。DSl8820内部有一个光刻ROM。这个ROM中存有64位序列号。它可以看作足该DS18820的地址序列码,所以多路温度传感器可以挂在l条总线上,共同占用单片机的1条I/O线即可实现接口。在提升单片机I/O线驱动能力的前提下,理论上可以任意扩充检测的温度点数。

系统硬件结构

  D12与单片机的接口共有两种方式:多路地址/数据总线方式和单地址/数据总线方式。这里选择了单地址/数据总线方式,因此,D12的ALE接为低电平,而A0脚与P89C52X2的端口P3.3相连。该端口控制D12的命令和数据状态: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工作在外接电源工作方式,DQ引脚直接和P89C52X2的P1.0相连。[page]

  3.1 系统的工作原理

  根据USB协议,任何传输都是由主机(host)开始的,单片机的前台工作就是等待。主机PC首先要发送令牌包给USB,D12接收到令牌包就给单片机发中断,单片机进入中断服务程序。首先读D12的中断寄存器,判断USB令牌包的类型,然后执行相应的操作,因此,USB单片机程序主要就是中断服务程序的编写。在USB单片机程序中要完成对各种令牌包的响应,主要是对端口的编程。

  3.2 软件部分的设计

  系统的固件程序从功能上分为两部分,整个编程在Keil C环境下完成。

  (1)温度传感器D818820的读取程序

  DSl8820单线通信功能是分时实现的。它有很严格的时序要求,对它的操作必须按协议进行,即初始化→发ROM操作命令→发存储器操作命令→数据处理。

  (2)MCU和USB接口的通信程序

  本程序使用D12的端点l和端点2进行上位汁算机与MCU P89C52之间的命令和数据的传输。端点l和端点2设置成模式O(非同步方式)。其中端点1以中断传输方式进行命令的传输和应答,端点2以批量传输方式进行数据的传输。端点1接收上位机发送过来的读指令,端点2返回读成功数据。

  系统的固件程序编写以分层结构展开。它是一种积木式结构,如图3所示。

积木式结构

  ①硬件提取层:对单片机的I/O口、数据总线等硬件接口进行操作。

  ②PDIUSBD12命令接口:对D12器件进行操作的模块子程序集。

  ③中断服务程序:当D12向单片机发出中断请求时,读取D12中断传输来的数据,并设定事件标志“EPP-FLAGS”和Settup包数据缓冲区“CONROL_XFER”传输给主循环程序。

  ④标准设备请求处理程序:对USB的标准设备请求进行处理。

  ⑤厂商请求处理程序:对用户添加的厂商请求进行处理。

  ⑥主程序:发出USB数据传输请求,处理总线事件和调用用户自定义功能子程序。

  以NI-VISA为驱动的主机LabVIEW应用程序的设计,NI-VISA采用3.2版本,LabVIEW采用7.1版本。[page]

  整个应用程序的主框架使用了WHILF循环来进行不断的查询。在程序的编写过程中,采用了类似Windows程序中的事件驱动机制,LabVIEW提供了这样的结构——事件结构。各个消息的产生利用了各种界面控件并由Case选择结构给出。程序框图如图4所示。

程序框图

  为了便于说明USB操作次序,把图4中事件结构展开,有图5所示的具体USB操作次序。
具体USB操作次序

  在图5中,USB RAW设备通信采用端点1以中断传输方式接收上位机操作命令,协议可以自己约定。端点2以批量传输方式给上位机发回温度数据。其中端点数“130”是对应十六进制数“0082”的十进制数,此数表示端点2批量输入;而端点数“1”则是对应十六进制数“0001”的十进制数,此数表示端点1中断输出。

  因为NI-VISA3.2版本不支持USB属性“中断输出”(interrupt out),因此为了实现USB端点1的中断输出问题,这里把USB属性“批量输出”(bulk out pipe)和“VI Write”节点组合在一起,来实现端点l中断输出。从NI-VISA3.3起,可以直接利用“中断输出”(interruptout)属性来实现。

  结语

  经实践证明,采用基于NI-VISA驱动的USB接口应用系统的设计非常容易,开发难度低,对开发者的要求不高;开发出的系统稳定可靠,即使对Windows编程不熟悉的人也可以开发出USB应用系统,它提供了另一种开发USB驱动应用程序的捷径。

关键字:LabVIEW  USB接口  NI-VISA 引用地址:基于NI-VISA与LabVIEW的USB接口应用设计

上一篇:虚拟仪器在磁轴承数字控制中的应用
下一篇:自制便携式虚拟仪器的一种快速实现方法

推荐阅读最新更新时间:2024-03-30 22:12

基于LabVIEW与OPC的船舶机舱报警系统设计
O 引 言 船舶机舱监控系统是现代自动化船舶中最基本和最重要的系统,目前船舶集中监控系统大多采用分布式结构,而集散式控制、分布式控制的船舶自动化监控系统将逐步被以现场总线为基础的集中监控系统所取代,从而最大程度地实现船舶航行的安全性、可靠性和经济性。相对于在传统开发环境(VB,VC++,C等)下开发机舱监控系统周期长,运行速度慢,调试和维护困难,系统采用LabVIEW作为编程语言,它编程高效、灵活、面向对象,其强大的图形编程能力及可视化编程环境得到很多软件开发人员的青睐。PLC作为现代控制技术的重要支柱之一,以其可靠性高、抗干扰能力强等特点在现代控制系统中得到广泛的应用,它能适应船舶机舱的恶劣环境。把LabVIEW与PLC相结
[测试测量]
基于<font color='red'>LabVIEW</font>与OPC的船舶机舱报警系统设计
Windows2000下USB接口的IC卡读写装置客户程序设计
    摘要: 分析了Windows2000下USB客户程序的框架,并就如何开发Windows2000下USB接口的IC卡读写装置客户程序进行了阐述。     关键词: USB总线 客户程序 IC卡 Windows2000 IC卡是高科技的产物,它广泛用于银行、电信、交通运输、小区管理、校园管理等领域,体现了它的巨大优越性。作者在开发一个IC卡机房收费系统时遇到了新问题,那就是当计算机和IC卡装置通信的时候,如果采用传统的串行通信方式固然可行,但供电必须休用单独的外置电源,这样加大了读卡装置的体积。通过翻阅资料发现USB接口可以输出5V电压、500mA的电流,能满足IC卡装置对电源的要求。另外,USB接口和Wi
[应用]
解读车载USB接口的方方面面
哪有白来的充电方便,都是工程师在幕后想了很多办法。面向未来,不支持USB Type-C接口的汽车不要买。 随着便携式电子设备的广泛普及,用户在开车时为自己的设备充电变得越来越频繁。USB供电功能让设备充电变得极为便利。USB的高数据率也让新一代信息娱乐系统支持丰富多样的车载功能,如音频播放、屏幕和应用共享,以及数据连接等等。 传统USB Type-A接口已经广泛应用于汽车OEM厂商的各种车型,其供电能力最高为7.5W(5V电压,最高1.5A电流)。随着USB Type-C接口在PC机、智能手机和其它便携式电子设备上快速普及,USB Type-A接口正迅速被淘汰。USB Type-C半导体市场预计出货量到2022年将超过9亿
[嵌入式]
解读车载<font color='red'>USB接口</font>的方方面面
Labview初学者常见问题以及解答
1、Labview如何实现由一个事件引发其他三个事件的顺序发生,且这三次事件间的时间间隔为50ms?回答:可以引用状态机来设计程序,将触发事件作为状态机的状态控制参数,后面发生的三个事件依次作为状态机的三个顺序状态,设置状态切换时间间隔为500ms. 2、labview在主程序通过局部变量不能实时看子vi的参数回答:通过局部变量只能得到子vi运行完之后的结果。可以用control reference 方式,在子vi加一个属性节点引出一个reference。主程序里把需要显示的控件创建一个reference连到子vi的reference输入端口。另外也可以用vi server方式实现。 3、如何在一个graph或chart显示多个Y
[测试测量]
LabVIEW开发SDH/PDH远程测试系统
  采用虚拟仪器和现代分布式网络测控技术构建远程测试系统,可解决对通信网异地实时监控的问题,本文介绍一种利用 LabVIEW网络功能实现在Internet中使用的基于客户机/服务器模式的 SDH/ PDH远程测试系统。      随着近年来光同步传输网的迅速发展以及用户要求的不断提高,对通信网进行异地实时监控的需求越来越多。另外测试技术的不断革新也促使新的网络测控技术应用到通信网的监测监控中,以提高通信网的可靠性,保证通信网的安全稳定运行。      这里实现的SDH/PDH远程测控系统是基于客户机/服务器(Clients/Server)模式,服务器通过PCI- GPIB接口卡与HP37717B的HP-IB接口相连,然后HP377
[测试测量]
基于LabVIEW的多路仪器温度测控系统
引言 我们开发氮氧化物化学发光法分析仪时,整个系统有三处需要温度测控:反应室,钼转换室,光子计数器PMT。反应室中的温度对化学反应(一氧化氮与臭氧反应)有一定的影响,我们要找到最佳温度,使反应效率最大。钼转换室的温度影响二氧化氮转换为一氧化氮的效率,因此也需要效率最大时的温度。温度测量与控制的要求是:反应室的测控温度范围为:30 70OC,波动: 0.5 OC;钼转换室的测控范围为:250 370 OC,波动: 3 OC。光子计数器PMT受温度的影响很大,温度越高光子计数器PMT的暗计数越高。在对光子计数器PMT制冷的同时,对它的温度也进行监视,以确定其是在低温(约5OC)环境下工作。系统要求测温精度为0.05OC。 为保
[测试测量]
基于<font color='red'>LabVIEW</font>的多路仪器温度测控系统
无线接入网技术USB接口设计详解
     引言     目前,用于室内计算机数据通信的无线接入网技术主要有蓝牙、红外和HomeRF等。从传输速率来看,蓝牙为1Mbps,FIR标准的红外线可以达到4Mbps (未来的VFIR标准红外线将达到16Mbps);HomeRF的传输速率只有1Mbps~2Mbps(FCC建议增加到8Mbps~11Mbps)。而且,它们的实际测试速度都与理论值之间有不小的差距,仅可以满足对速度要求不高的无线接入网技术。然而,实际应用对速度的要求越来越高,为了适应高速无线接入网技术,满足大容量的高速数据传输要求,专家学者们正在研究更高传输速率的无线接入网技术。计算机USB接口和无线光通信技术的结合将为计算机提供高速的无线接入。    
[网络通信]
基于LabVIEw的信号发生器的设计
0 引言 信号发生器是许多电子设备特别是测试设备必备的一部分,用以输入基准源信号给被测设备,通过接收被测设备返回的信息,分析研究被检测设备的情况。衡量或评定一个信号发生器的精度时,主要是对其中最基本和最重要的部分即正弦信号进行检测。检测正弦信号性能的重要指标是频率准确度和频率稳定度、信噪比和谐波畸变。 编程对工程技术人员来说比较麻烦,LabVIEW软件用图形编程语言,直观简单、易于操作。用户使用LabVIEW可以随意创建程序,并把它当作子程序调用,以创建更复杂的程序,且调用的层次没有限制LabVIEW这种创建和调用子程序的方法,使创建的程序结构模块化,更易于调试、理解和维护。同时,LabVIEW能够虚拟很多常规仪器,通过计
[测试测量]
基于<font color='red'>LabVIEw</font>的信号发生器的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
最新测试测量文章
更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved