NI-VISA简介

原文地址::NI-VISA简介 - 搜档网

相关文章

1、VISA(虚拟仪器软件结构)_百度百科

N1-VISA简介

NI-VISA(Virtual Instrument Software Architecture,以下简称为"VISA")是美国国家仪器

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

2 LabVIEW及其调用VISA的条件

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

当进行USB通信时,VISA提供了两类函数供LabVIEW调用,USB INSTR设备与USB RAW设备。USB INSTR设备是符合USBTMC协议的USB设备,可以通过使用USB INSTR类函数控制,通信时无需配置NI-VISA;而USB RAW设备是指除了明确符合USBTMC规格的仪器之外的任何USB设备,通信时要配置NI-VISA。

(1)配置NI-VISA的步骤

①使用Driver Development wizard(驱动程序开发向导)创建INF文档;

②安装INF文档,并安装使用INF文档的USB设备

③使用NI-VISA Interactive Control(NI-VISA互动控制工具)对设备进行测试,以证实USB设备已正确安装,并

获得USB设备的各属性值。

详细过程可参考NI官方网站上免费提供的文档《使用NI-VISA控制USB设备》。

(2)与Nl-VISA相配合的LabVIEW模板中VI子节点

ViOpen,打开并指定VISA resource name的设备的连接。

ViProperty,VISA设备的属性子节点,可以设置端点或传输方式。

ViWrite,向VISA resource name指定的设备写入数据。

ViRead,从VISA resource name指定的设备读出数据。

ViClose,结束设备读写并关闭与指定设备的连接。

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

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

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

3系统硬件结构

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

D12与单片机的接口共有两种方式:多路地址/数据总线方式和单地址/数据总线方式。这里选择了单地址/数据总线方式,因此,D12的ALE接为低电平,而A0脚与P89C52X2的端口P3.3相连。该端口控制D12的命令和数据状态:A0=1,表示数据总线上是命令;A0=O,表示数据总线上是数据。D12的数据总线直接与P0口相连,D12的中断引脚INT_N与:P89C52X2的INTO相连。当D12的外部中断有一位为1时,INT_N输出低电平,触发P89C52X2的外部中断。因为系统未采用DMA,所以D12的DMACK_N引脚接高电平,EOT_N引脚通过电阻接到USB的+5V,以正确检测到USB连接;INT_N引脚加一个上拉电阻。因为D12有片内上电复位电路,故引脚RESET_N直接与电源引脚VCC相连。温度传感器DSl8B20工作在外接电源工作方式,DQ引脚直接和P89C52X2的P1.O相连。

3.1 系统的工作原理

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

3.2软件部分的设计

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

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

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

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

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

系统的固件程序编写以分层结构展开。它足一种积木式结构。

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

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

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

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

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

⑥主程序:出USB数据传输请求,处理总线事件和调用用户自定义功能子程序以NI-VISA为驱动的主机LabVIEW应用程序的设计,NI-VISA采用3.2版本,LabVIEW采用7.1版本。整个应用程序的主要框架使用了WHILE循环来进行不断的查询。在程序的编写过程中,采用了类似Windows程序中的事件驱动机制,LabVIEW提供了这样的结构--事件结构。各个消息的产生利用了各种界面控件并由Case选择结构给出。

为了便于说明USB操作次序,把图4中事件结构展发USB驱动应用程序的捷径。在图5中,USB RAW设备通信采用端点l以中断传输方式接收上位机操作命令,协议可以自己约定。端点2以批量传输方式给上位机发回温度数据。其中端点数"130"是对应十六进制数"0082"的十进制数,此数表示端点2批量输入;而端点数"1"则是对应十六进制数"0001"的十进制数,此数表示端点1中断输出。

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

结语

经实践证明,采用基于NI-VISA驱动的USB接口应用系统的设计非常容易,开

发难度低,对开发者的要求不高;开发出的系统稳定可靠,即使对Windows编程不熟悉的人也可以开发USB出应用系统。它提供了另一种开发USB驱动应

用程序的捷径。

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340