用Labview基于NIVISA控制USB接口

上传人:自*** 文档编号:23126952 上传时间:2017-11-29 格式:DOC 页数:24 大小:1.05MB
返回 下载 相关 举报
用Labview基于NIVISA控制USB接口_第1页
第1页 / 共24页
用Labview基于NIVISA控制USB接口_第2页
第2页 / 共24页
用Labview基于NIVISA控制USB接口_第3页
第3页 / 共24页
用Labview基于NIVISA控制USB接口_第4页
第4页 / 共24页
用Labview基于NIVISA控制USB接口_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《用Labview基于NIVISA控制USB接口》由会员分享,可在线阅读,更多相关《用Labview基于NIVISA控制USB接口(24页珍藏版)》请在金锄头文库上搜索。

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 的步骤使用 Dri

6、ver 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 非易失 Fl

8、ash 程序存储器的 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 首先要发送令牌包给

11、 USB,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 驱动应用程序的捷径。本文来源:单片机及嵌入式系统应用 作者:上海交通大学 余志荣 杨莉基于

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

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

当前位置:首页 > 办公文档 > 其它办公文档

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