历史上的今天
返回首页

历史上的今天

今天是: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版本)):

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


推荐阅读

史海拾趣

创都(CAX)公司的发展小趣事

随着市场竞争的加剧,单一企业的力量往往难以应对复杂多变的市场环境。创都公司意识到了这一点,因此积极寻求跨界合作的机会。他们与多家知名企业建立了战略合作伙伴关系,共同研发新产品、开拓市场。这些合作不仅为创都公司带来了更多的资源和机会,还提升了公司的综合竞争力。其中,与某知名互联网公司的合作项目尤为成功,双方共同推出了一款智能家居产品,该产品凭借其便捷的功能和优秀的品质迅速在市场上走红,为双方带来了可观的收益。

Acmelux Taiwan Inc公司的发展小趣事

在电子产品市场竞争激烈的今天,品质成为企业生存和发展的关键。Acmelux Taiwan Inc公司始终坚持品质至上的原则,从原材料采购、生产制造到产品测试,每一个环节都严格把关,确保产品的稳定性和可靠性。正是这种对品质的执着追求,使得Acmelux的产品在市场上赢得了良好的口碑,成为众多客户的首选品牌。

Elcoma公司的发展小趣事

随着全球对环保问题的日益关注,Elcoma公司也积极响应,将环保理念融入到企业的发展战略中。他们采用环保材料和工艺,减少生产过程中的污染排放,同时推出了一系列环保型电子产品,满足消费者对环保产品的需求。这种对环保的重视不仅提升了Elcoma的品牌形象,也为企业带来了可持续发展的动力。

中科芯(CKS)公司的发展小趣事

在技术创新方面,中科芯不断推出具有竞争力的新产品。其中,CKS32系列MCU是公司近年来推出的一款高性能微控制器产品。该产品具有高可靠性、高兼容性和高性价比的特点,在市场上广受好评。在苏州先进技术成果交易大会上,CKS32系列MCU以其卓越的性能和广泛的应用领域吸引了众多关注。该产品的推出不仅提升了中科芯在微控制器领域的市场地位,也为中国电子行业的发展注入了新的活力。

Discera公司的发展小趣事

2001年,位于美国加利福尼亚州圣荷塞市的Discera公司正式成立,由一群热衷于半导体技术的工程师和投资者共同创立。他们看到了CMOS MEMS谐振器技术的巨大潜力,并决定将其作为公司的核心业务。经过数年的研发和测试,Discera终于成功开发出了一款性能优越的CMOS MEMS谐振器,该产品具有防震效果强、温度稳定性好和频率可编程性等显著优势。

安普康(AMPCOM)公司的发展小趣事

随着业务的不断发展,安普康开始积极寻求市场拓展和战略合作的机会。公司在香港市场取得了显著的成绩后,决定进一步拓展内地市场。通过设立深圳安普康科技有限公司等分支机构,安普康逐步在内地市场建立了完善的销售网络和服务体系。同时,公司还与多家知名企业建立了长期合作关系,共同开拓市场、分享资源。这些合作不仅提升了安普康的市场地位,也为其未来的发展奠定了坚实的基础。

问答坊 | AI 解惑

谁能给个LM334提供1mA电流的恒流源电路??

我照资料上做的怎么不能提供恒流呢,电流还是随电阻变化,二极管一定要用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有没有自带的寄存器定义呢? 是不是每个不同的片子都要 ...…

查看全部问答>

TI的DDS在哪?

本帖最后由 dontium 于 2015-1-23 12:51 编辑 请问大哥大姐,TI公司的DDS(直接数字频率合成器)芯片在哪?我想选个TI的DDS,但不知道在哪个网站上选择,请大哥大姐告知 …

查看全部问答>

SEED DIM3517核心板&底板接口

真是孤陋寡闻,核心板插到底板原来还需要知道点技巧一开始(晚上)感觉就应该平着插进去,用旁边两卡扣卡住,可是老是只能插进去一半(带金属部分),然后卡口也不好卡住,接好串口线,上电也没信息出来,重插了N遍还是没反应,为了验证我的串口线 ...…

查看全部问答>

复赛题目有多少做出来的?

本帖最后由 paulhyde 于 2014-9-15 03:50 编辑 324做三角波发生器、加法器、滤波器、比较器……  …

查看全部问答>

【TI学习】M3

    我之前没学过TI M3的东西,但看到没人发学习的这个板块,所以我就写几句,呵呵~~~     我现在一直在学习STM32,已经有一段时间了,在淘宝买了一块开发板,花了四百左右,开始是学习板子自带光盘上的资料,但那 ...…

查看全部问答>

汽车传感器行业找总经理=

总经理 接上司: 董事长 工作职责: 1、   执行董事会决议,主持全面工作,保证经营目标的实现,完成董事会下达的任务和利润指标。 2、   组织实施董事会批准的公司年度工作计划和财务预算报告及利润分配使用方案。 3、&n ...…

查看全部问答>

zigbee模块发射功率衰减问题

用1个协调器和5个终端节点组成星网络。协调器与组态王通讯,终端与PLC通讯。刚开始1小时通讯正常,以后经常断线,在以后就连不上了。是不是zigbee模块发射功率衰减问题?请帮忙分析一下!后来设置树网也是这样。…

查看全部问答>

开关电源中滤波电容的一些问题杂谈

在开关电源中,经过整流桥以后的是脉动直流,波动范围很大。后面一般用大小两个电容大电容用来稳定输出,众所周知电容两端电压不能突变,因此可以使输出平滑小电容是用来滤除高频干扰的,使输出电压纯净电容越小,谐振频率越高,可滤除的干扰频率越 ...…

查看全部问答>