博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LabVIEW串口通信
阅读量:6275 次
发布时间:2019-06-22

本文共 2503 字,大约阅读时间需要 8 分钟。

  • Instrument I/O

  利用LabVIEW内置的驱动程序库和具有工业标准的设备驱动软件,可对 GPIB(通用接口总线)、Ethernet(以太网)接口、RS-232(标准串行接口总线)/RS-485 等 I/O 仪器设备进行控制。在LabVIEW的仪器I/O子模板上提供了多种图标可对各种I/O仪器设备进行驱动。

  在LabVIEW功能模板的Instrument I/O→Serial中包含进行串行通信操作的多个功能模块,如下图所示,分别可实现串口缓存检测、串口写、串口读、中断、串口设置、关闭串口驱动等功能。

  利用计算机的RS-232串行口,实现双机通信的硬件连接线路如下图所示,图中采用的是最简单的三线制连接方式。TxD 为发送数据端,RxD 为接收数据端,GND 为接地端。

  • VISA 

  VISA是Virtual Instrument Software Architecture的简称,是由组成 VXI plug & play 系统联盟的 35 家最大的仪器仪表公司所统一制定的 I/O 接口软件标准及其相关规范的总称。一般称这个 I/O 函数库为 VISA 库(用于仪器编程的标准 I/O 函数库)。VISA 函数库是计算机与仪器之间的标准软件通信接口,用以实现对仪器的程控。VISA对于测试软件开发者来说是一个可调用的操作函数集,本身并不提供仪器编程能力,它只是一个高层 API,通过调用低层的驱动程序来控制仪器。NI-VISA 的层次结构如下图所示:

  VISA是整个仪器行业用于仪器驱动程序的标准 API ,用户可以用一个 API 控制包括 VXI、GPIB、RS-232 串口、USB(通用串行通信总线)串口等不同类型的仪器(根据所使用的仪器类型调用相应的驱动程序)。使用 VISA 有许多优点,它方便用户在不同的平台对不同类型的仪器进行开发移植及升级测控系统。

  1. 大多数的VISA功能模块使用了VISA resource name控制参数,该参数标识了与之通信的设备名称以及进行I/O操作必须的配置信息。MAX可用于配置VISA资源名称。

  2. 使VISA资源名称指定的串口按特定设置初始化。具体信息可参考LabVIEW的帮助文档

  3. VISA Write 模块把write buffer中的字符串(命令或数据)写入VISA Resource Name端参数指定的设备。return count返回实际传送的字节数。error in 和 error out 字串包含出错状况。

  4. VISA Read函数读取由 VISA Resource Name指定设备中的数据。byte count 指明读入 read buffer 中的字节数。

  5. VISA Bytes at Serial Port返回指定串口的输入缓冲区的字节数。

  6. 打开与 VISA 资源的会话连接也会占用计算机的系统资源,因此当VISA 程序结束时,必须关闭所有打开的会话通道。LabVIEW 为此提供了VISA Close函数。该函数关闭由 VISA Resource Name 端参数指定的设备的通信过程,释放 VISA Session占用的计算机系统资源。

  •  一个简单的串口通信程序

  在定时模块中找到等待(ms)子模块,放置在while循环中进行延时。等待指定长度的毫秒数,并返回毫秒计时器的值。计时器的精度由系统确定,依据使用平台的不同,精度有可能低于1毫秒。

  添加布尔类型的确定按钮和停止按钮,更改属性为“保持转换直到释放”,即按下去的时候会变true,释放会变false

  添加4个数值常量:编程(Programming)→数值(Numeric)→ 数值常量(数值常量(Numeric Constant),值分别为9600(波特率:波特率定义为每秒钟传送二进制数码的位数,以位/秒(bit/s)为单位,亦称“波特”。)、8(数据位)、0(校验位,无)、10(对应停止位1)。

  添加一个比较函数,将输入缓冲区的字节数与0比较,只有当串口接收缓冲区的数据个数不等于 时,才将数据读入到接收区。

  注意在条件结构(case structure)的false条件下也要接好到VISA Close模块的线,否则会出错。

  将全部模块连接好之后,点击运行按钮。如果运行程序发现弹出如下错误,说明没有安装VISA驱动,可以在下载合适的VISA驱动程序。

  装完后可以打开NI MAX,在软件这个模块下可以查看目前已经安装的一些软件,可以看到NI-VISA已经装好。NI MAX即NI的配置管理软件(Measurement & Automation Explorer),主要用来配置管理本机和远程系统上的各种软硬件资源。它可以执行系统诊断,添加新的通道、接口和虚拟通道,还可以查看连接在系统上的设备和仪器。 

  再次运行还是弹出了错误,如下图所示。网上查找了相关原因和解决方法,很可能是由于串口被占用导致。按照网上的方法通过删除注册表中的一个数值项来清除串口配置:在“运行”对话框中输入“regedit”进入注册表;然后进入HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter这时我们可以找到该数值项:ComDB,它的值代表目前使用中的串口端号。比如1d,它的二进制:0001 1101,则从右往左数代表第1,3,4,5端口被占用。这样我们只需要把ComDB这个数据项删除,关闭注册表(不用重启电脑)即可。然后在设备管理器中通过串口“属性”中的“高级”来重新配置端口的编号。

  将USB转串口线的RXD和TXD接到一起进行单机测试,如下图所示,在发送区写入字符串"hello,world!"之后点击发送字符按钮发送,接收区会显示发送的字符串。

 

参考:

转载于:https://www.cnblogs.com/21207-iHome/p/6099339.html

你可能感兴趣的文章
JavaScript—数组(17)
查看>>
Android 密钥保护和 C/S 网络传输安全理论指南
查看>>
以太坊ERC20代币合约优化版
查看>>
Why I Began
查看>>
同一台电脑上Windows 7和Ubuntu 14.04的CPU温度和GPU温度对比
查看>>
linux下查看和添加PATH环境变量
查看>>
js数组的操作
查看>>
springmvc Could not write content: No serializer
查看>>
Python系语言发展综述
查看>>
新手 开博
查看>>
借助开源工具高效完成Java应用的运行分析
查看>>
163 yum
查看>>
nginx 限速
查看>>
html5 聊天机器人
查看>>
第三章:Shiro的配置——深入浅出学Shiro细粒度权限开发框架
查看>>
openstack虚拟机修改IP地址
查看>>
80后创业的经验谈(转,朴实但实用!推荐)
查看>>
初识 lex
查看>>
让Windows图片查看器和windows资源管理器显示WebP格式
查看>>
我的友情链接
查看>>