教你如何使用Labview与单片机通信(串口)
使用LabVIEW进行串口通信
使用LabVIEW进行串口通信LabVIEW是一种流行的集成开发环境(IDE),用于编写和执行控制、测量和数据采集应用程序。
它可以非常方便地与硬件设备进行通信,其中包括通过串口进行通信。
本文将介绍如何使用LabVIEW进行串口通信。
一、LabVIEW介绍LabVIEW是一款图形化编程语言,以可视化编程为特点。
用户可以使用LabVIEW快速开发有效的控制和数据采集系统,而无需深入理解底层的编程语言。
二、串口通信原理串口是一种用于将数据传输到计算机或其他设备的接口。
在串口通信中,数据以字节的形式通过传输线路进行传输,其中利用的是一对称为TX和RX的引脚。
发送数据时,数据通过TX引脚发送到接收方;接收数据时,数据则通过RX引脚接收。
三、配置串口通信在LabVIEW中,可以使用VISA(Virtual Instrument Software Architecture)函数库来实现串口通信。
通过配置相关参数,可以指定通信的波特率、数据位数、校验位等。
首先,在LabVIEW中创建一个新的VI文件。
然后,在Front Panel界面中,双击空白处,打开Block Diagram界面。
在Block Diagram界面中,拖拽VISA Serial和VISA Close VIs到界面上。
接下来,双击VISA Serial VIs,打开参数设置面板。
在面板上,可以设置串口号、波特率、数据位数、校验位等。
根据具体需求进行配置。
四、数据的发送和接收在LabVIEW中,使用串口进行数据发送和接收非常简单。
可以使用VISA Write和VISA Read VIs来分别执行发送和接收操作。
在Block Diagram界面中,从VISA Serial VIs中拖拽VISA Write VI,将其连接到VISA Serial VIs和VISA Close VIs之间。
然后,从VISA Serial VIs中拖拽VISA Read VI,将其连接到VISA Write VI的右侧。
labview实现PC与单片机之间的串口通信
labview实现PC与单片机之间的串口通信使用Proteus 进行单片机仿真,仿真硬件连接,串口通信部分使用keil 与labview 编写程序,实现:PC 通过串行口将数字(00,01,02,03...,FF,十六进制)发送给单片机,单片机收到后回传这个数字,PC 接收到回传数据后显示出来,若发送的数据和接收到的数据相等,则串行通信正确,否则有错误。
启始符是数字00,结束符是数字FF。
实验中注意PC 的串口名compim 与VISA 资源名称要相同,compim 中的参数值要调对,最好不要用虚拟的串口。
keil 中的程序为:# pragma db code# include# define uchar unsigned charvoid rece(void);void init(void);uchar re[17];void main(void){uchar temp;init();do{while(RI==0);temp=SBUF;if(temp==0x00){rece();}elsebreak;}while(1);}void init(void){TMOD=0x20;//定时器1--方式2PCON=0x80;//电源控制SCON=0x50;//方式1TL1=0xF3;TH1=0xF3;//22.1184MHz 晶振,波特率为4800 0xf396000xfa19200 0xfdTR1=1;}void rece(void){chari;i=0;do{while(RI==0);re[i]=SBUF;RI=0;SBUF=re[i];while(TI==0);TI=0;i++;}while(re[i-1]!=255);}labview 的前面板跟程序框图以及Proteus 图为tips:感谢大家的阅读,本文由我司收集整编。
仅供参阅!。
labview如何进行串口通信——labview串口通信全方位了解(1)
串口可以说是我们最容易见到,也最容易接触到的一种总线,台式机上一般都有二个,而现在很多下位机、仪器等很多都还是使用串口通信的。
论坛上很多朋友都经常会使用到串口,并遇到一些问题,这里有必要做一个详细的说明,以方便广大会员朋友方便使用。
首先补充一个比较重要的问题,就是在LabVIEW中使用串口的话一定要先安装VISA这个驱动,然后生成的EXE运行时也需要在目标机上安装VISA Runtime Engine,可以在打包时一起打包。
1.串口扩展的问题:先说一下串口的扩展问题,一般的台式机或工控机上都至少有二个串口,一般都是够用的,但是现在市场上已经很难找到带串口的笔记本了,而有时候在外出调试时需要在笔记本中使用到串口的,这时一般是使用USB-RS232的转接线,价格从十几到一百多都有,很多朋友反应在使用价格低的转接线时会出现乱七八糟的问题,而贵一点的线就很少听说有其它问题的,所以大家在使用便宜的USB-RS232转接线时要特别注意线的质量,遇到一些奇怪的问题时先考虑换一根好一点的线。
PCI-RS232扩展卡也同理,便宜的卡也容易出问题,尽量买好一点的,以免因小失大。
PCI-RS232一般至少能扩展2个串口,有些BT一点的可以扩展到8-16个,一堆线和接头。
转接线和扩展卡一般是要装驱动的。
2.串口功能的确认:在使用串口之前,最好先确认一下串口是否正常,特别是使用转换接或扩展卡的。
检查的方法很简单,就是将串口的2、3脚短接起来,3脚是发送数据,2脚接收数据,就是这个串口自发自收。
电脑上的串口软件一般是用串口调试助手,很出名的,也好用。
如下图所示:图1串口调试助手打开软件,选择已经短接好的串口号,点击“手动发送”,如果串口是好的,2、3脚又短接起来了,马上就可以在上面的接收框里看到接收的数据就是发送的数据。
稍微要注意一下的是有些电脑的COM1和COM2的位置是反过来的,所以要确定好串口调试助手左上角的串口上择的是已经短接的那一个,如果COM1没接收到,可以再先COM2再发一次看一下。
在LabVIEW中使用串口
第一部分使用LabVIEW系统VI一、串口VI介绍LabVIEW的串口通讯VI位于Instrument I/O Platte的Serial中,包括:VI名称 VI功能VISA Configure Serial Port 初始化VISA resource name指定的串口通讯参数VISA Write 将输出缓冲区中的数据发送到VISA resource name指定的串口VISA Read 将VISA resource name指定的串口接收缓冲区中的数据读取指定字节数的数据到计算机内存中 VISA Serial Break 向VISA resource name指定的串口发送一个暂停信号VISA Bytes at Serial Port 查询VISA resource name指定的串口接收缓冲区中的数据字节数 VISA Close 结束与VISA resource name指定的串口资源之间的会话VISA Set I/O Buffer Size 设置VISA resource name指定的串口的输入输出缓冲区大小VISA Flush I/O Buffer 清空VISA resource name指定的串口的输入输出缓冲区二、使用说明在LabVIEW环境中使用串口与在其它开发环境中开发过程类似,基本的流程框图如下。
图1、串口操作数据流图首先需要调用VISA Configure Serial Port完成串口参数的设置,包括串口资源分配、波特率、数据位、停止位、校验位和流控等等。
图2、初始化串口如果初始化没有问题,就可以使用这个串口进行数据收发。
发送数据使用VISA Write,接收数据使用VISA Read。
在接收数据之前需要使用VISA Bytes at Serial Port查询当前串口接收缓冲区中的数据字节数,如果VISA Read要读取的字节数大于缓冲区中的数据字节数,VISA Read操作将一直等待,直至Timeout或者缓冲区中的数据字节数达到要求的字节数。
Labview与C51单片机实现串口通信
Labview与C51单片机实现串口通信
Labview 串口通信学会两种方法,一种是利用visa(虚拟仪器软件构架),另一种是调用activeX 控件。
第一种方法(VISA)程序如图
首先,设置串口参数,串口初始化,循环内利用VISA WITE 实现对串口的写操作,延时200 毫秒,用VISA READ 实现读操作,中间有个端口属性节点的作用是计算端口的总的字节数。
非常简单,但我花了一天时间搞懂。
第二种方法调用active X 程序图如下所示
ACTIVE X 串口通信的最大优点是可以利用中断实现数据的传送或对下位机的控制,MSCOMM32 控件实现串口通信主要是通过对其属性节点的设置来实现的。
并利用到了事件回调方法实现中断程序。
tips:感谢大家的阅读,本文由我司收集整编。
仅供参阅!。
LabVIEW中的串口通信和硬件连接
LabVIEW中的串口通信和硬件连接概述:LabVIEW是一款功能强大的图形化编程软件,广泛用于各种科学实验和工程应用中。
本文将讨论LabVIEW中的串口通信和硬件连接,包括串口通信的原理、LabVIEW中串口通信的配置方法以及如何通过硬件连接实现串口通信。
一、串口通信原理串口通信是一种通过串行数据传输来实现设备之间通信的方式。
它将数据按照位的顺序逐位传输,并利用起始位、停止位、数据位和校验位等信息来保证数据的可靠传输。
常见的串口通信协议有RS232、RS485等。
二、LabVIEW中的串口通信配置在LabVIEW中,使用VISA(Virtual Instrument Software Architecture)库来实现串口通信。
下面是配置串口通信的步骤:1. 打开LabVIEW软件,创建一个新的VI(Virtual Instrument)。
2. 在VI中添加VISA组件,可在工具栏中选择"Functions",然后在弹出的菜单中选择"Measurement I/O",再选择"VISA"。
3. 在VISA组件中,选择"Configurations",然后点击鼠标右键,选择"Create New VISA Resource"。
4. 在弹出的对话框中,选择要使用的串口资源,如COM1。
点击"OK"完成串口资源的配置。
5. 在VISA组件中选择"VISA Resource Name",将刚才配置的串口资源名称输入。
6. 现在可以通过VISA组件的其他函数实现对串口的读写操作,如"VISA Read"和"VISA Write"。
三、通过硬件连接实现串口通信除了LabVIEW软件中的配置,还需要通过硬件连接来实现串口通信。
一般情况下,需要使用串口转USB转接器、串口线等硬件设备来连接计算机和目标设备。
labview,串口通信实现过程
Labview实现串口通信步骤1.在程序面板上添加VISA配置接口2.添加后,开启帮助文档的显示。
菜单的Help->showcontexthelp,如下图鼠标选择目标则会显示帮助框。
如下图所示。
3.创建相应的配置在程序面板中鼠标移动到对应的引脚上,点击鼠标右键->create->control,创建后,界面面板上会出现对应的控制框。
如下图所示,创建个VISAresourcename。
图-创建窗口选择控件前面板显示如下:图-前面板显示控件选择4依次创建,波特率、停止位、数据位等如下图所示。
5.创建个while循环,用于放置发送的程序鼠标移动到循环条件控制的引脚上,创建个control。
用于调试,不对条件处理,会报错。
6前面板放置个按钮,用于控制数据的发送7.创建个事件,用于响应发送按钮鼠标移动到timeout的位置,鼠标右键选择editevents…如下图所示。
操作上面后,出现如下界面:选择需要响应的控件,这里选择“okbutton”,选择鼠标按下。
点击ok后,事件的名称也变化了。
如下图所示。
如果鼠标点击按键,则会进入事件处理。
8创建VISA写函数9连接端口和写函数10添加个关闭函数11.创建字符串控件,传递给写函数,用于发送选中VISAWrite的writebuffer,右键create->control,12界面如下所示13.安装虚拟串口,提供一个下载地址用虚拟串口配置两个端口,配置好后,这两个串口之间是自动连接上,模拟硬件上两个串口对接上的。
如上图,指定好端口,点击Addpair。
14运行串口工具,提供一个下载地址15.运行串口工具,打开串口,运行VI,发送数据我的电脑配置的是COM12和COM13,vi选择COM12.运行VI,在writebuffer里面填写test,点击OK发送。
每点击一次,发送一次。
16.建立接收模块添加个while循环,创建while循环,用于接收。
在LabVIEW中使用串口
第一部分使用LabVIEW系统VI一、串口VI介绍LabVIEW的串口通讯VI位于Instrument I/O Platte的Serial中,包括:VI名称 VI功能VISA Configure Serial Port 初始化VISA resource name指定的串口通讯参数VISA Write 将输出缓冲区中的数据发送到VISA resource name指定的串口VISA Read 将VISA resource name指定的串口接收缓冲区中的数据读取指定字节数的数据到计算机内存中 VISA Serial Break 向VISA resource name指定的串口发送一个暂停信号VISA Bytes at Serial Port 查询VISA resource name指定的串口接收缓冲区中的数据字节数 VISA Close 结束与VISA resource name指定的串口资源之间的会话VISA Set I/O Buffer Size 设置VISA resource name指定的串口的输入输出缓冲区大小VISA Flush I/O Buffer 清空VISA resource name指定的串口的输入输出缓冲区二、使用说明在LabVIEW环境中使用串口与在其它开发环境中开发过程类似,基本的流程框图如下。
图1、串口操作数据流图首先需要调用VISA Configure Serial Port完成串口参数的设置,包括串口资源分配、波特率、数据位、停止位、校验位和流控等等。
图2、初始化串口如果初始化没有问题,就可以使用这个串口进行数据收发。
发送数据使用VISA Write,接收数据使用VISA Read。
在接收数据之前需要使用VISA Bytes at Serial Port查询当前串口接收缓冲区中的数据字节数,如果VISA Read要读取的字节数大于缓冲区中的数据字节数,VISA Read操作将一直等待,直至Timeout或者缓冲区中的数据字节数达到要求的字节数。
LabVIEW中的串口通信和数据解析
LabVIEW中的串口通信和数据解析一、引言在LabVIEW中,串口通信是一种常见的用于与外部设备进行数据交互的方式。
通过串口通信,我们可以与各类传感器、仪器、控制器等设备进行数据的传输与控制。
本文将介绍LabVIEW中如何进行串口通信和数据解析的方法和技巧。
二、LabVIEW中的串口通信1. 准备工作在进行串口通信之前,首先需要准备好相应的硬件设备和驱动程序。
一般来说,我们需要一台计算机、一个串口转USB转接器以及相关的串口设备。
另外,还需要安装相应的串口驱动程序,以便在LabVIEW中进行串口通信。
2. 配置串口通信在LabVIEW中,配置串口通信需要使用到“VISA”(Virtual Instrument Software Architecture)工具。
通过VISA,我们可以对串口进行打开、设置波特率、校验位、数据位等参数,并进行数据的发送和接收。
3. 打开串口在LabVIEW的程序中,使用“VISA Open”函数来打开串口。
我们需要指定对应的串口号以及串口的配置参数。
通过这一步,LabVIEW就可以与串口建立通信连接。
4. 配置串口参数在串口打开之后,需要进行串口参数的配置,包括波特率、校验位、数据位等。
这些参数需要与外部设备的参数保持一致,才能正确地进行数据的传输和解析。
5. 读取和发送数据在LabVIEW中,可以使用“VISA Read”和“VISA Write”函数来进行数据的读取和发送。
通过这两个函数,我们可以实现与外部设备的数据交互。
读取到的数据可以在LabVIEW中进行进一步处理和解析。
三、LabVIEW中的数据解析1. 数据格式在进行数据解析之前,首先需要了解数据的格式。
不同的外部设备会使用不同的数据格式进行数据的传输。
常见的数据格式包括二进制、十六进制、ASCII等。
根据实际情况,选择合适的数据格式进行解析。
2. 数据解析方法在LabVIEW中,可以使用字符串相关的函数来进行数据的解析。
【串口通信】labview实现串口通信
【串⼝通信】labview实现串⼝通信学习labview有⼀段时间了,发现了其中功能的强⼤和编程的简洁性,⾼效性现在初步实现了串⼝的通信,把其中的体会和实现过程写出来,权当抛砖引⽟其中的串⼝采⽤的是Rs-232,D型⼝,共九跟针,其中能⽤的就是三跟针脚,2,3,5,⼀个是发送⼀个是接受,⼀个是接地,如果做⼀个串⼝线延长线的话,只需连接这三根针脚即可,就是2连3,3连2,5连5。
在labview中采⽤的visa,⾸先是进⾏串⼝设置,设置串⼝号,波特率,在这⾥⾯只要设置这两个就可以了,其余的采⽤默认,其中特别注意的是要安装visa驱动包,只有安装了这个驱动包,你的串⼝才可以选择,⼀般现在的电脑上只有⼀个串⼝,那么为了调试⽅便,这⾥有两个⼯具可以推荐,⼀个叫做串⼝虚拟软件,我⽤的是VSPDXP5,就是⼀个虚拟串⼝的软件,让你的电脑能够多虚拟两个串⼝,你要设置成让他们互联,另⼀个就是串⼝调试⼯具,叫sscom32.exe,⽤来调试串⼝通信的,可以验证通信时候成功。
visa驱动包在ni⽹站上有,具体什么地址你可以到搜索⼀下.再就是visa read作⽤是从串⼝读取数据,这⾥⾯有个read buffer,从串⼝读取的数据visawrite向串⼝写⼊数据或者是命令还有visa close结束串⼝读取数据,⽬的是读完数据后,释放串⼝资源我的例⼦前⾯板图程序图labview也可以调⽤mscomm控件来实现串⼝通信,但是编程相对来讲⽐较复杂,⼀般不推荐,直接⽤labview中⾃带的visa是最⽅便的,在调试过程中的注意事项,⼀、串⼝通讯的波特率设置要精确,⽐如要求9600的波特率,则晶振应选择11.0593MHz或其倍数。
⼆、由于通常情况下LabVIEW串⼝VI接收或发送的都是字符串(Normal),这⾥是指串⼝通信中,如果不是在串⼝通信,我们可以做个⼩⼩的验证,在前⾯板中,字符串在正常显⽰的情况下,你输⼊00,跟字符串00也会匹配,指⽰灯也会亮的,但是在串⼝通信中,⼀定注意,所以如果需要发送或接收⼗六进制数值(Hex),请在发送或接收之前进⾏必要的转换。
LABVIEW 串口的使用
本站原创,转载请注明出处AVR与虚拟仪器串口的使用本页关键词:labview labview 下载labview8.2 labview教程labview论坛labview 8.20 labview 7.0 labview 序列号labview7.1labview 8.0 串口的使用串行通讯终端与计算机之间或者计算机与计算机之间进行交换信息时,除了采用并行通讯方式之外,还经常采用串行通讯方式。
并行通讯是指数据的各位同时进行传送,其有点是传送数据速度快,缺点是有多少位数据就需要多少根传输线,这在数据位数较多,传送距离较远时就不宜采用。
串行通讯是指数据一位一位地按顺序传送,其突出优点是只需一根传输线,特别适应于远距离传输,缺点是传送速度较慢。
在微机测量,控制系统中,目前串行数据的传输大多采用异步通讯的方式。
同步通讯和异步通讯串行通讯分为同步传送和异步传送两种方式。
? 同步传送方式要求通信双方以相同的速率进行,而且要准确地协调。
它通过共享一个单个时钟或定时脉冲源以保证发送方和接受方准确同步。
其特点是允许连续发送一组字符序列(而非单个字符),每个字符数据位数相同,没有起始位和停止位,效率高。
? 异步传送方式不要求通信双方同步,发送方和接受方可以有各自的时钟源。
为了能够实现通信,双方必须都遵循异步通信协议。
在异步通信中,通信双方必须规定两件事:一是字符格式,即规定字符各部分所占的位数,是否采用奇偶校验,以及校验的方式;二是采用的波特率,以及时钟率与波特率之间的比例关系。
由此可见,异步通信方式的传输效率比同步通信方式低,但它对通信双方的同步要求大大降低,因而成本也比同步通信方式低。
DTE和DCE在串行通讯中,用于发送和接收数据的设备称为数据终端设备(Data Terminal Equipment 简写为DTE)。
DTE既可以是一台计算机,也可以是一台只接收数据的打印机。
用于连接DTE 与数据通信网络的设备称为数据通信设备(Data Communications Equipment 简写为DCE),或称为数据电路终接设备。
基于LABVIEW通过串口通讯控制51单片机的的IO口
利用labview作上位机实现51单片机串口通讯控制灯的实验作者Second z.k. BEST工具(人机界面:LABVIEW 底层:51单片机编译器:Keil uVision4烧录器:STC-ISP)底层代码如下(利用开发板串口教程)/*********************************************************************** **************** 串口通信实验*实现现象:下载程序后打开串口调试助手,将波特率设置为4800,选择发送的数据就可以显示在串口助手上。
具体操作参考操作视频注意事项:无。
************************************************************************ ***************/#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器#include <string.h>#include<ctype.h>typedef unsigned int u16; //对数据类型进行声明定义typedef unsigned char u8;/*********************************************************************** ********* 函数名 :UsartInit()* 函数功能 :设置串口* 输入 : 无* 输出: 无************************************************************************ *******/void UsartInit(){SCON=0X50; //设置为工作方式1TMOD=0X20; //设置计数器工作方式2PCON=0X80; //波特率加倍TH1=0XF3; //计数器初始值设置,注意波特率是4800的TL1=0XF3;ES=1; //打开接收中断EA=1; //打开总中断TR1=1; //打开计数器}/*********************************************************************** ********* 函数名 : main* 函数功能: 主函数* 输入 : 无* 输出 : 无************************************************************************ *******/void main(){UsartInit(); // 串口初始化while(1);}/*********************************************************************** ********* 函数名 : Usart() interrupt 4* 函数功能: 串口通信中断函数* 输入 : 无* 输出: 无************************************************************************ *******/void Usart() interrupt 4{u8 receiveData; //P0=0x00;receiveData=SBUF;//出去接收到的数据RI = 0;//清除接收中断标志位SBUF=receiveData;//将接收到的数据放入到发送寄存器while(!TI); //等待发送数据完成TI=0; //清除发送完成标志位P0=receiveData-’0’;//receiveData收到的数据类型是字符,}上位机前面板如图下所示通过改变数组2布尔(灯)的状态,来控制硬件底层的显示。
基于LabVIEW的单片机串口通信设计
Parity :奇偶校验设置。 可为无校验、奇校验或
偶校验;
flow control :该参数数据类型为簇,用于串行通
讯中的握手方式。
VISA Write 模块把 Write buffer 中的字符串写入
指定的设备,返回实际传送的字节数。 VISA Read 根 据指定读取的字节数读入设备中的数据,返回实际传 送 的 字 节 数 。 VISA Close 关 闭 与 指 定 设 备 的 通 讯 过 程,释放系统资源。 本文在实现 LabVIEW 与 AT89S51 单片机串口通 信的串口通讯设置上,采用波特率为 9600,无奇偶校 验,8 位数据位,1 位停止位,禁止软、硬件握手。
VIEW 的单片机串口通信设计
陈 诚1
, 李言武 1 , 葛立峰 2
(1. 安徽大学电子科学与技术学院,安徽 230039 ; 2. 安徽工贸职业技术学院,安徽 232007 ) 摘 要: 在 简 要 介 绍 图 形 化 虚 拟 仪 器 平 台 LabVIEW 的 基 础 上 , 分 析 AT89S51 单 片 机 与 Lab-
现 代 计 算 机 ( 总 第 二 九 九 期 )
(School of Computer Science and Technology,Wuhan University of Technology, Wuhan 430063 )
Abstract: The technology of intercommunication between SMS communicating network and Internet is widely used, according to the dealers ’ requirement that transmitting information quickly and sorting out the sales information, using the technology of serial interface communication between GSM modem and SMS Server, designs and implements a simple SMS receiving and sending system, realizes the purpose of the dealers that gets the sales information from seller immediately and results of sorting out information. Keywords : Short Message; Web Service; Serial Interface Communication
教你如何使用Labview与单片机通信(串口)
第 13 章 LabVIEW 串口通信程序设计
环结构的条件端子 设置为“真时停止(Stop if True)” ,则不需要添加非(Not)函数。 (11)添加两个条件结构:编程(Programming)→结构(Structures)→ 条件结构(Case
Structure)。添加理由:发送字符时,需要单击按钮“发送字符”,因此需要判断是否单击了 发送按钮;接收数据时,需要判断串口接收缓冲区的数据个数是否不为 0。
(2)添加 4 个数值常量:编程(Programming)→数值(Numeric)→ 数值常量(数值常量 (Numeric Constant),值分别为 9600(波特率)、8(数据位)、0(校验位,无)、1(停止位)。
(3)添加两个关闭串口函数:编程(Programming)→仪器 I/O(Instrument I/O)→串口 (Serial)→VISA 关闭(VISA Close)。
(2)将数值常量 9600、8、0、1 分别与串口配置(VISA Configure Serial Port)函数的输 入端口波特率(baud rate)、数据比特(data bits)、奇偶(parity)、停止位(stop bits)相连。
(3)将数值常量(值为 500)与等待下一个整数倍毫秒(Wait Until Next ms Multiple)函 数的输入端口毫秒倍数(millisecond multiple)相连。
第 13 章 LabVIEW串口通信程序设计
以 PC 作为上位机,以调制解调器(Modem)、串行打印机、各种监控模块、PLC、摄像 头云台、数控机床、单片机及智能设备等作为下位机广泛应用于测控领域。本章举几个典型 实例,详细介绍利用 LabVIEW 实现 PC 与各种下位机设备串口通信的程序设计方法。
labview与单片机串口通信
串口,VISA和MSComm控件,与单片机通信visa编写串口程序时是不是必须要安装MSComm控件?首先是labview有自带的串口资源,即visa控件,不需要安装MSComm控件。
MSComm控件也可以被labview调用来实现对串口的编程。
但是,visa控件的图标在安装labview之后虽然在控件库里可以显示但是不能用,必须安装visa 驱动,这个驱动可以在官网下载。
win7 winvista的系统和低版本的labview最好安装最新的visa驱动,不然可能会出现错误。
其次我用labview做的上位机,但是用的笔记本没有串口,这时候,用一条 usb转串口线(安装合适的驱动)直接虚拟串口,visa可以对这个虚拟串口操作。
最后,labview和单片机通信,由于labview的visa控件只可对字符写出或者读上来的显示为ascii字符,而单片机的通信协议的命令帧和数据帧可能是由十六进制定义的,最开始的想法是,将输入数值型数据(十进制的)转成为十六进制数,再将此十六进制转为相对应的ascii码(网上也有相应的labview函数),最后将ascii码下传给单片机;一个简单的办法:---------------------字符型的数据(输入字符串,输出字符串,常量字符等等)的属性里有一个选项,将显示样式由正常改为十六进制显示即可,这时就可以直接输入十六进制了。
以下使用NI-VISA与USB设备eZ430-RF2500进行通信,是在使用LabVIEW2010和NI-VISA503full的开发环境通过的。
1、USB与VISA背景VISA是一个高级API用来与仪器控制总线进行通信。
它是平台独立、总线独立、环境独立的。
USB是一个基于消息的通信总线。
这意味着PC和USB设备通过在总线上以文本或二进制数据格式发送指令和数据进行通信。
每个USB设备都有自己的指令集。
可以使用NI-VISA读函数与写函数,将这些指令发送到仪器上,并从这些仪器上读取响应。
在LabVIEW中使用串口
第一部分使用LabVIEW系统VI一、串口VI介绍LabVIEW的串口通讯VI位于Instrument I/O Platte的Serial中,包括:VI名称 VI功能VISA Configure Serial Port 初始化VISA resource name指定的串口通讯参数VISA Write 将输出缓冲区中的数据发送到VISA resource name指定的串口VISA Read 将VISA resource name指定的串口接收缓冲区中的数据读取指定字节数的数据到计算机内存中 VISA Serial Break 向VISA resource name指定的串口发送一个暂停信号VISA Bytes at Serial Port 查询VISA resource name指定的串口接收缓冲区中的数据字节数 VISA Close 结束与VISA resource name指定的串口资源之间的会话VISA Set I/O Buffer Size 设置VISA resource name指定的串口的输入输出缓冲区大小VISA Flush I/O Buffer 清空VISA resource name指定的串口的输入输出缓冲区二、使用说明在LabVIEW环境中使用串口与在其它开发环境中开发过程类似,基本的流程框图如下。
图1、串口操作数据流图首先需要调用VISA Configure Serial Port完成串口参数的设置,包括串口资源分配、波特率、数据位、停止位、校验位和流控等等。
图2、初始化串口如果初始化没有问题,就可以使用这个串口进行数据收发。
发送数据使用VISA Write,接收数据使用VISA Read。
在接收数据之前需要使用VISA Bytes at Serial Port查询当前串口接收缓冲区中的数据字节数,如果VISA Read要读取的字节数大于缓冲区中的数据字节数,VISA Read操作将一直等待,直至Timeout或者缓冲区中的数据字节数达到要求的字节数。
非常好LabVIEW串口通信详解
LabVIEW串口通信详解串口可以说是我们最容易见到,也最容易接触到的一种总线,台式机上一般都有二个,而现在很多下位机、仪器等很多都还是使用串口通信的。
论坛上很多朋友都经常会使用到串口,并遇到一些问题,这里有必要做一个详细的说明,以方便广大会员朋友,文章请勿转载到其它地方,谢谢。
论坛上早先发布过一个贴子,叫《串口WORD资料》,里面有一些中英文的串口的资料,这个文章是对那个资料的补充,如果是初接触串口的朋友建议先看一下上一个贴子先。
上一个贴子中提到过的内容这里不再进行补充。
首先补充一个比较重要的问题,就是在LabVIEW中使用串口的话一定要先安装VISA这个驱动,然后生成的EXE运行时也需要在目标机上安装VISA Runtime Engine,可以在打包时一起打包。
VISA的驱动可以在NI网站上下载到:1.串口扩展的问题:先说一下串口的扩展问题,一般的台式机或工控机上都至少有二个串口,一般都是够用的,但是现在市场上已经很难找到带串口的笔记本了,而有时候在外出调试时需要在笔记本中使用到串口的,这时一般是使用USB-RS232的转接线,价格从十几到一百多都有,很多朋友反应在使用价格低的转接线时会出现乱七八糟的问题,而贵一点的线就很少听说有其它问题的,所以大家在使用便宜的USB-RS232转接线时要特别注意线的质量,遇到一些奇怪的问题时先考虑换一根好一点的线。
PCI-RS232扩展卡也同理,便宜的卡也容易出问题,尽量买好一点的,以免因小失大。
PCI-RS232一般至少能扩展2个串口,有些BT一点的可以扩展到8-16个,一堆线和接头。
转接线和扩展卡一般是要装驱动的。
2.串口功能的确认:在使用串口之前,最好先确认一下串口是否正常,特别是使用转换接或扩展卡的。
检查的方法很简单,就是将串口的2、3脚短接起来,3脚是发送数据,2脚接收数据,就是这个串口自发自收。
电脑上的串口软件一般是用串口调试助手,很出名的,也好用。
LabVIEW与单片机通讯
LabVIEW单片机通讯1.串口扩展的问题:先说一下串口的扩展问题,一般的台式机或工控机上都至少有二个串口,一般都是够用的,但是现在市场上已经很难找到带串口的笔记本了,而有时候在外出调试时需要在笔记本中使用到串口的,这时一般是使用USB-RS232的转接线,价格从十几到一百多都有,很多朋友反应在使用价格低的转接线时会出现乱七八糟的问题,而贵一点的线就很少听说有其它问题的,所以大家在使用便宜的USB-RS232转接线时要特别注意线的质量,遇到一些奇怪的问题时先考虑换一根好一点的线。
PCI-RS232扩展卡也同理,便宜的卡也容易出问题,尽量买好一点的,以免因小失大。
PCI-RS232一般至少能扩展2个串口,有些BT一点的可以扩展到8-16个,一堆线和接头。
转接线和扩展卡一般是要装驱动的。
2.串口功能的确认:在使用串口之前,最好先确认一下串口是否正常,特别是使用转换接或扩展卡的。
检查的方法很简单,就是将串口的2、3脚短接起来,3脚是发送数据,2脚接收数据,就是这个串口自发自收。
电脑上的串口软件一般是用串口调试助手,很出名的,也好用。
如下图所示:图1 串口调试助手打开软件,选择已经短接好的串口号,点击“手动发送”,如果串口是好的,2、3脚又短接起来了,马上就可以在上面的接收框里看到接收的数据就是发送的数据。
稍微要注意一下的是有些电脑的COM1和COM2的位置是反过来的,所以要确定好串口调试助手左上角的串口上择的是已经短接的那一个,如果COM1没接收到,可以再先COM2再发一次看一下。
3.串口线的检查:检查好串口后,一般也要注意一下使用的串口线,标准的串口线是9根线都是用上的,但有一些是只使用了三根线的:2、3、5。
第3个脚管是发送,第2个管脚接收,另一个5是地线,这里叫它简化的串口线,简化的串口线能用上的地方,标准的串口线也肯定能用上,因为标准线的9根线已经包括了简化串口线中的3根线,但标准串口线能用上的地方,简化串口线就不一定能用上,所以在使用串口线之间一定要确定好串口线的类型,一般买的串口线都是标准线,但自制的串口线因为应用场合不同就要先确定一下。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
以 PC 作为上位机,以调制解调器(Modem)、串行打印机、各种监控模块、PLC、摄像 头云台、数控机床、单片机及智能设备等作为下位机广泛应用于测控领域。本章举几个典型 实例,详细介绍利用 LabVIEW 实现 PC 与各种下位机设备串口通信的程序设计方法。
在 RS-232 的应用中,很少严格按照 RS-232 标准。其主要原因是因为许多定义的信号在 大多数的应用中并没有用上。在许多应用中,例如 Modem,只用了 9 个信号(两条数据线、 6 条控制线、一条地线);在其他一些应用中,可能只需要 5 个信号(两条数据线、两条握手 线、一条地线);还有一些应用,可能只需要数据线,而不需要握手线,即只需要 3 个信号线。 因为在控制领域,在近距离通信时常采用 RS-232,所以这里只对近距离通信的线路连接进行 讨论。
13.1.3 任务实现
1.建立新VI程序
启动 NI LabVIEW 程序,选择新建(New)选项中的 VI 项,建立一个新 VI 程序。
2.程序前面板设计
在前面板设计区空白处单击鼠标右键,显示控件选板(Controls)。 (1)添加一个字符串输入控件:控件(Controls)→新式(Modern)→字符串与路径(String & Path)→字符串输入控件(String Control),将标签改为“发送区:”。 (2)添加一个字符串显示控件:控件(Controls)→新式(Modern)→字符串与路径(String & Path)→ 字符串显示控件(String Indicator),将标签改为“接收区:”。 (3)添加一个串口资源检测控件:控件(Controls)→新式(Modern)→ I/O →VISA 资 源名称(VISA resource name);单击控件箭头,选择串口号,如 COM1 或 ASRL1:。 (4)添加一个确定(OK)按钮控件:控件(Controls)→新式(Modern)→布尔(Boolean)→ 确定按钮(OK Butoon),将标题改为“发送字符”。 (5)添加一个停止(Stop)按钮控件:控件(Controls)→新式(Modern)→布尔(Boolean)→
出(VISA resource name out)与串口关闭(VISA Close)函数(上)的输入端口 VISA 资源名 称(VISA resource name)相连。
(13)在条件结构(下)中将串口读取(VISA Read)函数的输出端口 VISA 资源名称输 出与关闭串口函数 VISA Close(下)的输入端口 VISA 资源名称相连。
(14)将字符输入控件图标(标签为“发送区:”)拖入条件结构(上)的真(True)选项框 架中,将字符显示控件图标(标签为“接收区:”)拖入条件结构(下)的真(True)选项框架中。
(15)分别将确定(OK)按钮控件图标(标签为“确定按钮(OK Button)”)、停止(Stop) 按钮控件图标(标签为“停止按钮(Stop Button)”)拖入循环结构框架中。
PC机A
PC机B
串口线
COM1
图 13-2 PC 与 PC 串口通信线路
在计算机通电前,按图 13-2 所示将两台 PC 的 COM1 口用串口线连接起来。
连接串口线时,计算机严禁通电,否则极易烧毁串口。
13.1.2 设计任务
利用 LabVIEW 编写程序实现 PC 与 PC 串口通信。 任务要求如下。 两台计算机互发字符并自动接收,如一台计算机输入字符串“收到信息请回字符 abc123”,单击“发送字符”命令,另一台计算机若收到,就输入字符串“收到,abc123”, 单击“发送字符”命令,信息返回到第一组的计算机。 实际上就是编写一个简单的双机聊天程序。
及其布置如图 13-4 所示。
详细步骤介绍如下。
(1)添加一个配置串口函数:编程(Programming)→
图 13-3 程序前面板
仪器 I/O(Instrument I/O)→串口(Serial)→VISA 配置串口(VISA Configure Serial Port)。
图 13-4 框图程序函数添加与布置
(4)将确定按钮图标“OK Button”与条件结构(上)的选择端子?相连。 (5)将串口字节数(VISA Bytes at Serial Port)函数的输出端口 Number of bytes at Serial port 与不等于?(Not Equal ?)函数的输入端口 x 相连。 将串口字节数(VISA Bytes at Serial Port)函数的输出端口 Number of bytes at Serial port 与串口读取(VISA Read)函数的输入端口字节总数(byte count)相连。 (6)将数值常量(值为 0)与不等于?(Not Equal ?)函数的输入端口 y 相连。 (7)将不等于?(Not Equal ?)函数的输出端口 x != y? 与条件结构(下)的选择端子?相连。 (8)在条件结构(上)中将字符输入控件图标(标签为“发送区:”)与串口写入(VISA
4.框图程序设计——连线 使用连线工具,将所有函数连接起来,如图 13-5 所示。
图 13-5 框图程序连线
(1)将 VISA 资源名称(VISA resource name)函数的输出端口分别与串口配置(VISA Configure Serial Port)函数、串口字节数(VISA Bytes at Serial Port)函数、串口写入(VISA Write) 函数、串口读取(VISA Read)函数的输入端口 VISA 资源名称(VISA resource name)相连。
(2)将数值常量 9600、8、0、1 分别与串口配置(VISA Configure Serial Port)函数的输 入端口波特率(baud rate)、数据比特(data bits)、奇偶(parity)、停止位(stop bits)相连。
(3)将数值常量(值为 500)与等待下一个整数倍毫秒(Wait Until Next ms Multiple)函 数的输入端口毫秒倍数(millisecond multiple)相连。
(2)添加 4 个数值常量:编程(Programming)→数值(Numeric)→ 数值常量(数值常量 (Numeric Constant),值分别为 9600(波特率)、8(数据位)、0(校验位,无)、1(停止位)。
(3)添加两个关闭串口函数:编程(Programming)→仪器 I/O(Instrument I/O)→串口 (Serial)→VISA 关闭(VISA Close)。
(4)添加一个循环结构:编程(Programming)→结构(Structures)→ While 循环(While Loop)。添加理由:随时监测串口接收缓冲区的数据。
以下添加的函数或结构放置在 While 循环结构框架中。 (5)添加一个时钟函数:编程(Programming)→ 定时(Timing)→ 等待下一个整数倍 毫秒(Wait Until Next ms Multiple)。添加理由:以一定的周期监测串口接收缓冲区的数据。 (6)添加一个数值常量:编程(Programming)→数值(Numeric)→ 数值常量(Numeric Constant),将值改为 500(时钟频率值)。 (7)添加一个 VISA 串口字节数函数:编程(Programming)→仪器 I/O(Instrument I/O)→ 串口(Serial)→ VISA 串口字节数(VISA Bytes at Serial Port),标签为“Property Node”。 (8)添加一个数值常量:编程(Programming)→数值(Numeric)→数值常量(Numeric Constant),将值为 0(比较值)。 (9)添加一个比较函数:编程(Programming)→ 比较(Comparison)→ 不等于?(Not Equal ?)。添加理由:只有当串口接收缓冲区的数据个数不等于 0 时,才将数据读入到接收区。 (10)添加一个布尔函数:编程(Programming)→布尔(Boolean)→非(Not)函数。 添加理由:当关闭程序时,将关闭按钮真(True)变为假(False),退出循环。如果将循
5 43 2 1 9876
5 43 2 1 9876
图 13-1 串口通信线的制作
第 13 章 LabVIEW 串口通信程序设计
图 13-2 所示中的 2 号接收脚与 3 号发送脚交叉连接是因为在直连方式时,把通信双方都 当作数据终端设备看待,双方都可发也可收。在这种方式下,通信双方的任何一方,只要请 求发送 RTS 有效和数据终端准备好 DTR 有效就能开始发送和接收。
13.1 PC与PC串口通信
当两台串口设备通信距离较近时,可以直接连接,最简单的情况,在通信中只需三根线 (发送线、接收线、信号地线)便可实现全双工异步串行通信。
本设计通过两台 PC 串口三线连接,介绍了串口通信的基本编程方法。
13.1.1 PC与PC串口通信硬件线路
当两台 RS-232 串口设备通信距离较近时(<15m),可以用电缆线直接将两台设备的 RS-232 端口连接;若通信距离较远(>15m)时,需附加调制解调器(Modem)。
当通信距离较近时,通信双方不需要 Modem,可以直接连接,这种情况下,只需使用少 数几根信号线。最简单的情况,在通信中根本不需要 RS-232C 的控制联络信号,只需三根线 (发送线、接收线、信号地线)便可实现全双工异步串行通信。
在实际使用中常使用串口通信线将两个串口设备连接起来。串口线的制作方法非常简 单:准备两个 9 针的串口接线端子(因为计算机上的串口为公头,因此连接线为母头),准备 3 根导线(最好采用 3 芯屏蔽线),按图 13-1 所示将导线焊接到接线端子上。
(12)添加一个串口写入函数:编程(Programming)→仪器 I/O(Instrument I/O)→串 口(Serial)→VISA 写入(VISA Write),并拖入条件结构(上)的真(True)选项框架中。