历史上的今天
今天是:2024年11月07日(星期四)
2019年11月07日 | 我的LABVIEW快速开发串口测试软件实例
2019-11-07 来源:elecfans
LABVIEW是美国国家仪器公司(National Instruments,简称NI)的创新产品,它允许编程人员使用图形方式来进行编程,摒弃了艰涩难懂的代码,只需要拖动相应图形控件然后连线,进行简单的配置即可完成一个应用程序的开发。让更多的相关人员加入到编程的行列中。
虚拟仪器软件架构(VISA,Virtual Instruments Software Architecture)是对包含GPIB、VXI、PXI、串口(RS232/485)、以太网、USB和/或IEEE 1394接口的仪器系统进行配置、编程和故障排除的标准。NI-VISA是NI贯彻执行的VISA I/O标准。VISA提供了硬件与NI LabVIEW、LabWindows/CVI和Measurement Studio(用于Microsoft Visual Studio)等应用开发环境之间的编程界面。在LabVIEW中编写的VISA接口程序,当外部设备变更时,只需要更换几个程序模块即可使用,简单方便而且开发效率高。
串口通信(Serial Communication), 是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。由于其开发难度相对于其他接口相对较低,且成本低受到许多工程师的青睐,对于一些速度要求不高的数据交换业物来说,串口适信是非常不错的一个选择。
本文主要介绍如何利用VISA(虚拟仪器架构,以下直接用VISA)在LABVIEW中开发串口应用程序,在开发之前请确保你的电脑安装了NI公司的LABVIEW软件(推荐使用2013版本)和VISA软件,如果需要请到http://china.ni.com/搜索下载。
1. 相关资源介绍
在LabVIEW 中利用VISA节点进行串行通信编程。为了方便用户使用,LabVIEW将这些VISA节点单独组成一个子模块,共包含8个节点,分别实现初始化串口、串口写、串口读、中断以及关闭串口等功能,具体如下图所示(在程序框图界面中右键然后依次鼠标放在相应的图标上即可得到如下图菜单,左键点击任意一个VI即可到框图界面中放置):

1.1 VISA配置串口

该VI用于配置串口传输时的参数:
VISA资源名称:指PC的串口名,例:COMl,COM2等。
错误输入:表明节点运行前发生的错误。该输入将提供标准错误输入功能。
波特率:串口速率,默认为9600bps。
数据比特:一帧信息中的位数,LabVIEW 中允许5~8位数据,默认为8。
奇偶:奇偶校验位,可选为无校验、奇校验或偶校验,默认为无校验。
停止位:一帧信息中的停止位的位数,可选为1位、1.5位或2位。
流控制:设置传输机制使用的控制类型,可选为None、XON/XOFF软件流控或RTS/CTS硬件流控,默认为None。
终止符:设置一帧数据的结束符,即当接收串口数据时,当收到终止符时,软件自动结束一帧数据接收。
这里做一点说明,对于第一次使用LABVIEW串口的开发人员,对于属性的配置最好是右键创建输入控件,这样不空易出现输入类型和输入范围上的错误。
1.2 VISA写入

该节点主要用于向串口的发送缓冲写入数据,主要的参数有“VISA资源名称”和“写入缓冲区”。“VISA资源名称”接1.1中配置好的串口VI的“VI资源名称输出”(在串口应用中使用同一串口的VI中“VISA资源名称”应该相同,且具有传导性)。“写入缓冲区”则可以直接连接字符串,这样就可以直接将该字符串写入串口发送缓冲区进行数据输出操作。VISA资源名称输出用于和其他相关VI共享VISA资源。返回数用于返回发送成功的字节数。
1.3 VISA读取

该节点主要用于读取串口中的数据,如上图所示。
字节总数:要读取的字节数量(可以直接用“VISA串口字节数”节点的输出来一次性将数据全部读出,参见1.5)。
读取缓冲区:PC串口收到的数据。
返回数:实际读取的字节数,字节总数应大于或等于返回数,否则会丢数。
1.4 VISA关闭

该节点主要用于关闭已打开的串口,释放串口资源,以便串口被其他程序所调用,如上图所示。
1.5 VISA串口字节数
该节点用于返回串口输入缓冲区中的字节数,可以将其输出结果送给VISA读取节点的“字节总数”参数,这样可以一次性将串口输入缓冲区中的数据全部读出。
1.6 VISA串口中断

该节点用于发送指定端口上的中断。通过连线数据至VISA资源名称输入端可确定要使用的多态实例,也可手动选择实例。
1.7 VISA设置I/O缓冲区大小

该节点用于设置I/O缓冲区大小。如需设置串口缓冲区大小,须先运行VISA配置串口VI。
1.8 VISA清空I/O缓冲区

该节点用于清空由屏蔽指定的I/O缓冲区。
2. 编程
在LabVIEW 中,进行串口通信的基本步骤分为3步:
第一:串口初始化,利用ⅥSA Configure Serial Port.vi节点设定串口的端口号、波特率、停止位、校验位、数据位。
第二:读写串口,利用VISA Read节点和VISA Write节点对串口进行读写。
第三:关闭串口,停止所有读写操作。
根据以上步骤,绘制了如下程序框图(框图看不清楚可以下载文章最后的例程来看(LABVIEW 2013版本)):

调整相应控件之后就可以在下面界面中进行串口通信的测试了:

史海拾趣
|
我照资料上做的怎么不能提供恒流呢,电流还是随电阻变化,二极管一定要用IN457吗?? 这是我的电路,Vin是5V,R1=133欧,R2=1330欧,我把R1=68欧,R2=680欧也不能提供1mA恒流… 查看全部问答> |
|
如果要开发一个驱动涉及到寄存器的配置吗?外设寄存器,比如Timer,Watchdog,DMA等好像是在bootloader阶段配置的,是不是在开发驱动的时候如果涉及到寄存器的配置就要修改bootloader了?刚接触嵌入式,对整个开发流程还很模糊,希望有人给指点迷津。… 查看全部问答> |
|
本帖最后由 dontium 于 2015-1-23 13:25 编辑 你好 请问在CCS下用C语言编程,请问需不需要自己去定义各个寄存器的地址和名字呢?因为我看一些例程中都是自己写两个h文件去定义的。不知道CCS有没有自带的寄存器定义呢? 是不是每个不同的片子都要 ...… 查看全部问答> |
|
真是孤陋寡闻,核心板插到底板原来还需要知道点技巧一开始(晚上)感觉就应该平着插进去,用旁边两卡扣卡住,可是老是只能插进去一半(带金属部分),然后卡口也不好卡住,接好串口线,上电也没信息出来,重插了N遍还是没反应,为了验证我的串口线 ...… 查看全部问答> |
|
总经理 接上司: 董事长 工作职责: 1、 执行董事会决议,主持全面工作,保证经营目标的实现,完成董事会下达的任务和利润指标。 2、 组织实施董事会批准的公司年度工作计划和财务预算报告及利润分配使用方案。 3、&n ...… 查看全部问答> |
|
用1个协调器和5个终端节点组成星网络。协调器与组态王通讯,终端与PLC通讯。刚开始1小时通讯正常,以后经常断线,在以后就连不上了。是不是zigbee模块发射功率衰减问题?请帮忙分析一下!后来设置树网也是这样。… 查看全部问答> |
|
在开关电源中,经过整流桥以后的是脉动直流,波动范围很大。后面一般用大小两个电容大电容用来稳定输出,众所周知电容两端电压不能突变,因此可以使输出平滑小电容是用来滤除高频干扰的,使输出电压纯净电容越小,谐振频率越高,可滤除的干扰频率越 ...… 查看全部问答> |




