VISA是仪器编程的标准I/O API。
VISA的多种用途
VISA可控制GPIB、串口、USB、以太网、PXI或VXI仪器,并根据使用仪器的类型调用相应的驱动程序,用户无需学习各种仪器的通信协议。VISA独立于 *** 作系统、总线和编程环境。换言之,无论使用何种设备、 *** 作系统和编程语言,均使用相同的API。
开始使用VISA之前,应确保选择合适的仪器控制方法。
GPIB、串口、USB、以太网和某些VXI仪器使用基于消息的通信方式。对基于消息的仪器进行编程,使用的是高层的ASCII字符串。仪器使用本地处理器解析命令字符串,设置合适的寄存器位,进行用户期望的 *** 作。SCPI(可编程仪器标准命令)是用于仪器编程的ASCII命令字符串的标准。相似的仪器通常使用相似的命令。用户只需学习一组命令,而无需学习各个仪器生产厂商各种仪器的不同命令消息。最常用的基于消息的函数是:VISA读取、VISA写入、VISA置触发有效、VISA清空和VISA读取STB。
PXI和许多VXI仪器使用基于寄存器的通信方式。对基于寄存器的仪器进行编程,使用的是将直接写入仪器控制寄存器的底层二进制信息。该通信方式的优点是速度快,因为仪器不需解析命令字符串,并将信息转换为寄存器层次的程序。基于寄存器的仪器实际上是在直接硬件 *** 作层上进行通信。最常用的基于寄存器的函数是:VISA输入、VISA输出、VISA转入和VISA转出。
单片机Labview与MCU的USB通讯
山无忧
原创
关注
2点赞·980人阅读
我用的是单片机MG84,和Labview进行USB通讯。
一、创建VISA USB驱动
通过Labview自带的软件 NI-VISA Driver Wizard
选择USB
选择你的设备,ID在设备管理器中看,我这是已经插上电脑的,没有插的选择other
NEXT,选择路径,生成inf文件
生成好了后在进行安装
二、Labview写程序
首次程序是这样,会出现报错 VISA:(Hex 0xBFFF003A) 由于设置无效(导致属性被设置为不一致状态),将无法开始 *** 作
参考网上的解答,重新写了下:
报错解除,可以正常读写,此报错是因为此USB是HID类型的,并且输入和输出都是中断传输,所以需要加入USB的中断处理
在labview的visa选板中,高级visa>>事件处理,选择visa启用事件和visa等待事件。
接着,在visa选板》高级visa》总线与接口配置》visa USB中,选择visa获取usb设备中断数据
要注意必须在visa写入之后才可以读取usb中断返回的数据。不写入或是写入的数据错误导致无返回值,就会产生超时错误 VISA: (Hex 0xBFFF0015) 完成 *** 作前超时已过期。可以将超时的时间设置的长一些,看一下是不是此处的问题。如果还是在超时这里有问题,拔插一下USB,再试试吧。
连接VISA获取USB中断数据时,可能会有接线端冲突,要在 visa等待事件 定义类型,如下图所示。
另外,USB中断是需要在连线端点,右键–>创建常量–>USB中断,不能自己创建个下拉列表,不然也会报错的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)