文档库 最新最全的文档下载
当前位置:文档库 › labview串口通讯的分析

labview串口通讯的分析

labview串口通讯的分析
labview串口通讯的分析

关键词:labview 串口通信

学习labview有一段时间了,发现了其中功能的强大和编程的简洁性,高效性

现在初步实现了串口的通信,把其中的体会和实现过程写出来,权当抛砖引玉

其中的串口采用的是Rs-232,D型口,共九跟针,其中能用的就是三跟针脚,2,3,5,一个是发送一个是接受,一个是接地,如果做一个串口线延长线的话,只需连接这三根针脚即可,就是2连3,3连2,5连5。

在labview中采用的visa,首先是进行串口设置,设置串口号,波特率,在这里面只要设置这两个就可以了,其余的采用默认,其中特别注意的是要安装visa驱动包,只有安装了这个驱动包,你的串口才可以选择,一般现在的电脑上只有一个串口,那么为了调试方便,这里有两个工具可以推荐,一个叫做串口虚拟软件,我用的是VSPD XP 5,就是一个虚拟串口的软件,让你的电脑能够多虚拟两个串口,你要设置成让他们互联,另一个就是串口调试工具,叫,用来调试串口通信的,可以验证通信时候成功。visa驱动包在ni网站上有,具体什么地址你可以到搜索一下.

再就是visa read 作用是从串口读取数据,这里面有个read buffer ,从串口读取的数据

visa write向串口写入数据或者是命令

还有visa close 结束串口读取数据,目的是读完数据后,释放串口资源

我的例子

前面板图

程序图

labview串口通讯的深入分析收藏

labview称做"G"语言,只是说明了它具备了通用编程语言的编程能力,但是任何编程语言都有器独特的特点,否则经过几十年的风风雨雨,并没有出现一种编程语言一统天下的格局,每种编程语言都有其特别适合的领域,从这点来说,数据采集和仪器通讯可以说是它最擅长的领域.毫无疑问,计算机的串口通讯是相对比较简单的通讯方式,labview也不例外地对它提供了支持.

LABVIEW的串口控制,可以通过多种方法:

1.最基本的IN OUT 控制,LABVIEW提供了In port 和Out Port两个基本输入输出VI,通过它就可以直接读写寄存器,我本人做的许多并口控制设备就是利用了这两个节点,在计算机的DOS时代,通过IN OUT指令进行串口通讯是唯一的选择,现在正在做单片机的朋友都知道,单片机的串口通讯都是通过操作寄存器实现的,对于计算机的COM1,它的端口地址是0X3F8,完全可以通过它来完成串口通讯.

2.利用API的WriteFile 函数实现串口通讯,这是VC进行串口通讯的方法.

3.利用VB提供的MSCOMM控件(这是目前用的最多的,它支持查询和中断两种模式,即可以发送文本型数据(ASCII),由可以发送二进制(BIN,实际是BYTE ARRAY)

4.利用LABVIEW特有的VISA通讯

直接控制寄存器的方法在计算机串口通讯基本看不到了.只有在单片机中还采用这种方式.

通过C51串口通讯,简单地介绍一下这种方法:

/* 发送数据函数*/

void SendData(uchar *buf)

{

uchar i;

uchar len;

len=strlen(buf); /* 取得字符串长度*/

for(i=0;i

{

SBUF=buf[i]; /* SBUF是串口输出REG*/

while(!TI);/* 等待发送完成*/

TI=0; /* 复位中断标志*/

方法2直接调用API非常复杂,在LV不会采用,就不介绍了.

方法3是目前用的最多,介绍一下.

MSComm控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。

来源:

2.1 事件驱动方式

事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者 Carrier Detect (CD) 或 Request To Send (RTS) 线

上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 CommEvent 属性。在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时,可靠性高。每个MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。

2.2 查询方式

查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。

MSComm 控件有很多重要的属性,但首先必须熟悉几个属性。

下面分别描述:

CommPort属性:设置并返回通讯端口号。

语法 [value ] (value 一整型值,说明端口号。)

说明在设计时,value 可以设置成从 1 到 16 的任何数(缺省值为 1)。但是如果用 PortOpen 属性打开一个并不存在的端口时,MSComm 控件会产生错误 68(设备无效)。

注意:必须在打开端口之前设置 CommPort 属性。

RThreshold 属性:在 MSComm 控件设置 CommEvent 属性为 comEvReceive 并产生 OnComm 之前,设置并返回的要接收的字符数。

语法: [ = value ](value 整型表达式,说明在产生 OnComm 事件之前要接收的字符数。)

说明:当接收字符后,若 Rthreshold 属性设置为 0(缺省值)则不产生 OnComm 事件。例如,设置Rthreshold 为 1,接收缓冲区收到每一个字符都会使 MSComm 控件产生 OnComm 事件。

CTSHolding 属性:确定是否可通过查询 Clear To Send (CTS) 线的状态发送数据。Clear To Send 是调制解调器发送到相联计算机的信号,指示传输可以进行。该属性在设计时无效,在运行时为只读。

语法:(Boolean)

Mscomm 控件的 CTSHolding 属性设置值:

True Clear To Send 线为高电平。

False Clear To Send 线为低电平。

说明:如果 Clear To Send 线为低电平 (CTSHolding = False) 并且超时时,MSComm 控件设置CommEvent 属性为 comEventCTSTO (Clear To Send Timeout) 并产生 OnComm 事件。

Clear To Send 线用于 RTS/CTS (Request To Send/Clear To Send) 硬件握手。如果需要确定 Clear To Send 线的状态,CTSHolding 属性给出一种手工查询的方法。

详细信息有关握手协议,请参阅 Handshaking 属性。

SThreshold 属性: MSComm 控件设置 CommEvent 属性为 comEvSend 并产生 OnComm 事件之前,设置并返回传输缓冲区中允许的最小字符数。

语法 [ = value ]

value 整形表达式,代表在 OnComm 事件产生之前在传输缓冲区中的最小字符数。

说明:若设置 Sthreshold 属性为 0(缺省值),数据传输事件不会产生 OnComm 事件。若设置Sthreshold 属性为 1,当传输缓冲区完全空时,MSComm 控件产生 OnComm 事件。如果在传输缓冲区中的字符数小于 value,CommEvent 属性设置为 comEvSend,并产生 OnComm 事件。comEvSend 事件仅当字符数与 Sthreshold 交叉时被激活一次。例如,如果 Sthreshold 等于 5,仅当在输出队列中字符数从 5 降到 4 时,comEvSend 才发生。如果在输出队列中从没有比 Sthreshold 多的字符,comEvSend 事件将绝不会发生。

Handshake 常数

OnComm 常数

Error 常数

InputMode 常数

CDHolding 属性:通过查询 Carrier Detect (CD) 线的状态确定当前是否有传输。Carrier Detect 是从调制解调器发送到相联计算机的一个信号,指示调制解调器正在联机。该属性在设计时无效,在运行时为只读。

语法

设置值:CDHolding 属性的设置值为:

说明:注意当 Carrier Detect 线为高电平 (CDHolding = True) 且超时时,MSComm 控件设置CommEvent 属性为 comEventCDTO(Carrier Detect 超时错误),并产生 OnComm 事件。

注意在主机应用程序中捕获一个丢失的传输是特别重要的,例如一个公告板,因为呼叫者可以随时挂起(放弃传输)。

Carrier Detect 也被称为 Receive Line Signal Detect (RLSD)。

数据类型:Boolean

DSRHolding 属性:确定 Data Set Ready (DSR) 线的状态。Data Set Ready 信号由调制解调器发送到相连计算机,指示作好操作准备。该属性在设计时无效,在运行时为只读。

语法:

object 所在处表示对象表达式,其值是“应用于”列表中的对象。

DSRHolding 属性返回以下值:

Settings 属性: 设置并返回波特率、奇偶校验、数据位、停止位参数。

语法: [ = value]

说明:当端口打开时,如果 value 非法,则 MSComm 控件产生错误 380(非法属性值)。Value 由四个设置值组成,有如下的格式:

"BBBB,P,D,S"

BBBB 为波特率,P 为奇偶校验,D 为数据位数,S 为停止位数。value 的缺省值是:"9600,N,8,1"

InputLen 属性:设置并返回 Input 属性从接收缓冲区读取的字符数。

语法 [ = value]

InputLen 属性语法包括下列部分:

value 整型表达式,说明 Input 属性从接收缓冲区中读取的字符数。

说明:InputLen 属性的缺省值是 0。设置 InputLen 为 0 时,使用 Input 将使 MSComm 控件读取接收缓冲区中全部的内容。

若接收缓冲区中 InputLen 字符无效,Input 属性返回一个零长度字符串 ("")。在使用 Input 前,用户可以选择检查 InBufferCount 属性来确定缓冲区中是否已有需要数目的字符。该属性在从输出格式为定长数据的机器读取数据时非常有用。

EOFEnable 属性:确定在输入过程中 MSComm 控件是否寻找文件结尾 (EOF) 字符。如果找到 EOF 字符,将停止输入并激活 OnComm 事件,此时 CommEvent 属性设置为 comEvEOF,

语法: [ = value ]

EOFEnable 属性语法包括下列部分:

value 布尔表达式,确定当找到 EOF 字符时,OnComm 事件是否被激活,如“设置值”中所描述。

value 的设置值:

True 当 EOF 字符找到时 OnComm 事件被激活。

False (缺省)当 EOF 字符找到时 OnComm 事件不被激活。

说明:当 EOFEnable 属性设置为 False,OnComm 控件将不在输入流中寻找 EOF 字符。

3.错误消息(MS Comm 控件)

下表列出 MSComm 控件可以捕获的错误:

8016不能设置 comm 事件屏蔽

8018仅当端口打开时操作才有效 comPortNotOpen

8019设备忙

8020读 comm 设备错误 comReadError

8021为该端口检索设备控制块时的内部错误 comDCBError

以上这部分转载于网上.

labview可以直接调用ACTIVEX控件,所以可以直接使用,新版本的LV可以注册回调函数(REGCALLBACK),所以这个控件的所有功能都是可用的,下面示意一下调用的方法.

重点介绍一下VISA串口通讯的方法:

基本流程是:打开(配置)--->循环(读写)--->关闭(释放)

一共有八个VI节点

1.VISA Configure Serial Port :

设定波特率,数据位,停止位,奇偶校验位,流控制,超时处理,结束符使能,结束符.

特别需要注意的是超时(TIMEOUT) 和结束符号两个参数.TIMEOUT默认的10秒,结束符号默认是使能状态,默认的结束符是0X0A(\n),另外,回车0x0D (\r)也经常做为做为结束符号.

如果采用的是二进制通讯,可能会遇到结束符的问题.因为二进制中0A是10,0D是13,这两个是作为数字出现的,如果不禁止结束符号,会导致读提前结束,产生错误的结果,这再和设备通讯时可能会碰到.

至于波特率,数据位等,对照要通讯的设备的要求设定就可以了.

2.Visa Write: 这个节点负责把缓冲区的数据发送出去,并返回实际发送的数据.

MSCOMM串口通讯时是可以选择文本和二进制方式的,VISA有选择项吗没有,完全取决于你的字符串,这是一个需要注意的问题.

正常显示方式时,字符串是"1234"在内存中存储的是ASCII,看下图.

"1"=31,"2"=32"3"=33,"4"=34.

发送的字符串"1234"实际发送的是16进制的31,32,33,34.用过单片机的都知道,实际所有的串口通讯从本质上说,都是二进制的,只不过接收方面如何判定数据的问题.

比如发送的是33(HEX),接收方面可以解释成数字1,(字符串型),或者是数字33.

用过C的人知道,字符串实际和U8数组是等价的.

所以VISA是不管是否是字符串还是数值,都是采用二进制发送的,关键是我们在于我们的字符串是如何构成的.

Visa Read等其它的几个都比较简单,就不介绍了.

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根线,但标准串口线能用上的地方,简化串口线就不一定能用上,所以在使用串口线之间一定要确定好串口线的类型,一般买的串口线都是标准线,但自制的串口线因为应用场合不同就要先确定一下。 G串口线还有一个地方需要注意一下的,就是2、3脚的接法,标准接法中是2、3脚交叉的,即这边的2接另一边的3,这边的3接另一边的2,扭了一下,所以叫交叉线,因为正常使用时,这边第二脚是发送数据,另一边第三脚是接收数据,所以要将这二个管脚连接起来,这样才能正常使用。但是有些情况下,2、3是直连的,即这边的第2脚连接另一边的第2脚,第3脚连接第3脚,这种叫直连线,这种线一般是用于延长串口的,比如需要将工控机的串口接头引到机柜表面上时,就使用这种线,这样机柜表面的串口线的定义还是跟电脑接出来的一样,外面的那一根串口线再使用交叉线。从电脑主板上将串口引到主机后面板上的线就是这样的直连线。购买串口线的时候一般也会问你买直连的还是交叉的,要区别对待。 串口线还有一个要稍微注意一下的就是DB头,因为电脑上接出来的一般是公头(针),要跟电脑接的话要母头(孔),一般仪器的串口也是公头,所以二边都是母头的串口线比较常见。串口的接头一般是DB9的,也有DB25的,但比较少用,有些比较BT的仪器厂家居然用RJ11(水晶头那种)作为串口头,让人不爽! 总之,使用串口前一定要先确定好硬件没问题,不然很浪费时间的。 4.串口参数设置: 在LabVIEW中使用串口时,有几个参数比较重要,需要先说明一下的。一个是串口初始化这个节点的“终止符”和“禁用终止符?”这二个输入端,这二个输入端是相互作用的,“终止符”默认值为10,它的十六进制是“0x0A”,这是一个ASCII码,是一个换行符,可以从LabVIEW中的字符串的不同显示形式看出来,如下图:

Labview串口通信开发实例(值得拥有)

串口通信的基本概念 串口通信的基本概念 1,什么是串口? 2,什么是RS-232? 3,什么是RS-422? 4,什么是RS-485? 5,什么是握手? 1,什么是串口? 串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米; 而对于串口而言,长度可达1200米。

典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参 数必须匹配: a,波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB 设备的通信。 b,数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信 的情况。

Labview串口

先是英文资料,后面有详细的中文资料。 https://www.wendangku.net/doc/9315022447.html,/devzone/cda/tut/p/id/2897 Serial Instrument Control Tutorial 目录 1.Overview of Serial Bus 2.Connecting and Setting up a Serial Instrument Control System 3.How to Create a VISA Resource for the Instrument in MAX 4.Instrument Control Software Articles and Related Links Overview of Serial Bus Serial is a common device communication protocol for instrument control because most computers and many remote instruments include at least one serial port. Single applications can be used across a variety of instruments with few modifications, reducing programming and test time. For more information on the serial protocol, including information on transfer speeds and important parameters, please refer to Serial Communication Overview. Connecting and Setting up a Serial Instrument Control System

非常好--LabVIEW串口通信详解

LabVIEW串口通信详解 串口可以说是我们最容易见到,也最容易接触到的一种总线,台式机上一般都有二个,而现在很多下位机、仪器等很多都还是使用串口通信的。论坛上很多朋友都经常会使用到串口,并遇到一些问题,这里有必要做一个详细的说明,以方便广大会员朋友,文章请勿转载到其它地方,谢谢。 论坛上早先发布过一个贴子,叫《串口WORD资料》,里面有一些中英文的串口的资料,这个文章是对那个资料的补充,如果是初接触串口的朋友建议先看一下上一个贴子先。上一个贴子中提到过的内容这里不再进行补充。 首先补充一个比较重要的问题,就是在LabVIEW中使用串口的话一定要先安装VISA这个驱动,然后生成的EXE运行时也需要在目标机上安装VISA Runtime Engine,可以在打包时一起打包。 VISA的驱动可以在NI网站上下载到:https://www.wendangku.net/doc/9315022447.html,/nidu/cds/view/p/id/1605/lang/zhs 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根线,但标准串口线能用上的地方,简化串口线就不一定能用上,所以在使用串口线之间一定要确定好串口线的类型,一般买的串口线都是标准线,但自制的串口线因为应用场合不同就要先确定一下。 G串口线还有一个地方需要注意一下的,就是2、3脚的接法,标准接法中是2、3脚交叉的,即这边的2接另一边的3,这边的3接另一边的2,扭了一下,所以叫交叉线,因为正常使用时,这边第二脚是发送数据,另一边第三脚是接收数据,所以要将这二个管脚连接起来,这样才能正常使用。但是有些情况下,2、3是直连的,即这边的第2脚连接另一边的第2脚,第3脚连接第3脚,这种叫直连线,这种线一般是用于延长串口的,比如需要将工控机的串口接头引到机柜表面上时,就使用这种线,这样机柜表面的串口线的定义还是跟电脑接出来的一样,外面的那一根串口线再使用交叉线。从电脑主板上将串口引到主机后面板上的线就是这样的直连线。购买串口线的时候一般也会问你买直连的还是交叉的,要区别对待。 串口线还有一个要稍微注意一下的就是DB头,因为电脑上接出来的一般是公头(针),要跟电脑接的话要母头(孔),一般仪器的串口也是公头,所以二边都是母头的串口线比较常见。串口的接头一般是DB9的,也有DB25的,但比较少用,有些比较BT的仪器厂家居然用RJ11(水晶头那种)作为串口头,让人不爽! 总之,使用串口前一定要先确定好硬件没问题,不然很浪费时间的。 4.串口参数设置: 在LabVIEW中使用串口时,有几个参数比较重要,需要先说明一下的。一个是串口初始化这个节点的“终

LabVIEW串口通信入门教程

串口可以说是我们最容易见到,也最容易接触到的一种总线,台式机上一般都有二个,而现在很多下位机、仪器等很多都还是使用串口通信的。论坛上很多朋友都经常会使用到串口,并遇到一些问题,这里有必要做一个详细的说明,以方便广大会员朋友方便使用。 首先补充一个比较重要的问题,就是在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再发一次看一下。 3.串口线的检查: 检查好串口后,一般也要注意一下使用的串口线,标准的串口线是9根线都是用上的,但有一些是只使用了三根线的:2、3、5。第3个脚管是发送,第2个管脚接收,另一个5是地线,这里叫它简化的串口线,简化的串口线能用上的地方,标准的串口线也肯定能用上,因为标准线的9根线已经包括了简化串口线中的3根线,但标准串口线能用上的地方,简化串口线就不一定能用上,所以在使用串口线之间一定要确定好串口线的类型,一般买的串口线都是标准线,但自制的串口线因为应用场合不同就要先确定一下。 G串口线还有一个地方需要注意一下的,就是2、3脚的接法,标准接法中是2、3脚交叉的,即这边的2接另一边的3,这边的3接另一边的2,扭了一下,所以叫交叉线,因为正常使用时,这边第二脚是发送数据,另一边第三脚是接收数据,所以要将这二个管脚连接起来,这样才能正常使用。但是有些情况下,2、3是直连的,即这边的第2脚连接另一边的第2脚,第3脚连接第3脚,这种叫直连线,这种线一般是用于延长串口的,比如需要将工控机的串口接头引到机柜表

基于LABVIEW的串口通信实验

基于LABVIEW的串口通信实验 一、实验目的 1.了解LabVIEW串口通信基本方法 2.通过LabVIEW串口获取数字温度传感器的数据 二、实验器材 1.计算机一台 2.LabVIEW8.20软件一套 3.串口线一根 4.虚拟仪器实验平台一台 5.分布式温度采集模块一块 6.传感器控制模块一块 三、实验原理 串行通信是工业现场仪器或设备常用的通信方式,它是将一条信号的各位数据按顺序逐位传送。计算机串行通信(简称串口)采用RS232协议,允许一个发送设备连接到一个接收设备以传送数据,最大速率为115200bps。计算机串行口采用Intel8250异步串行通信组件构成,通常以COM1~COM4来表示。 https://www.wendangku.net/doc/9315022447.html,bView串口节点 LabView中提供了已封装好的串口通信节点,它们位于函数->数据通信->协议->串口。

这里主要介绍程序中使用到的串口配置、串口读取、串口写入和串口关闭,其他串口相关的节点使用方法查询LabView帮助。 (1)串口配置 在进行串口通信时,首先要对串口进行初始化和配置。这可以由VISA配置串口节点来完成,串口配置节点如下图所示。 使用该节点可以设置串口的VISA资源名称、波特率、数据位、校验位、超时时间、终止符以及流控制等参数。 VISA资源名称控件用于规定对VISA会话句柄开放的资源,并维持会话句柄和类。VISA 会话句柄是VISA使用的唯一逻辑标识符,用于与资源进行通信。VISA会话句柄由VISA 资源名称输入控件保持,用户不可见。VISA资源名称输出是VISA函数中输出的VISA资源名称的副本。通过将资源名称输出或输入函数和VI,并链接函数和VI,从而简化数据流编程。这与文件I/O函数使用的文件引用句柄输出相似。 (2)串口写入 串口写入是将写入缓冲区的数据写入VISA资源名称指定的设备或接口,可以选择同步或异步。该操作仅当传输结束后才返回。VISA写入的节点图标及端口定义如下图所示。

LABVIEW串口设计

第一部分使用LabVIEW系统VI 1.1、串口VI介绍 LabVIEW的串口通讯VI位于Instrument I/O Platte的Serial中,包括: VISA Configure Serial Port:初始化VISA resource name指定的串口通讯参数VI SA 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指定的串口的输入输出缓冲区 1.2、使用说明 在LabVIEW环境中使用串口与在其它开发环境中开发过程类似,基本的流程框图如下。 图1、串口操作数据流图

首先需要调用VISA Configure Serial Port完成串口参数的设置,包括串口资源分配、波特率、数据位、停止位、校验位和流控等等。 图2、初始化串口 如果初始化没有问题,就可以使用这个串口进行数据收发。发送数据使用VIS A Write,接收数据使用VISA Read。在接收数据之前需要使用VISA Bytes at Ser ial Port查询当前串口接收缓冲区中的数据字节数,如果VISA Read要读取的字节数大于缓冲区中的数据字节数,VISA Read操作将一直等待,直至Timeout或者缓冲区中的数据字节数达到要求的字节数。当然也可以分批读取接收缓冲区或者只从中读取一定字节的数据。 图3、从串口发送数据 图4、从串口接收数据 在某些特殊情况下,需要设置串口接收/发送缓冲区的大小,此时可以使用VISA S et I/O Buffer Size;而使用VISA Flush I/O Buffer则可以清空接收与发送缓冲区。在串口使用结束后,使用VISA Close结束与VISA resource name指定的串口之

基于labview单片机串口通信课程设计

辽宁工业大学开放性实验课程设计 题目:基于LabVIEW的单片机之间串口通信设计 院(系):电气工程学院 专业班级:自动班 122 学号: 120302042 学生姓名:刘权 指导教师:(签字) 起止时间:2014.12.17-2015.01.06

摘要 虚拟仪器是现代计算机技术同仪器技术深层次结合的全新概念仪器,实质是利用计算机显示器的显示功能模拟传统仪器的控制面板,以多种形式表达输出测量结果,利用计算机强大的软件功能实现信号数据的运算、分析和处理,完成各种测试功能的一种计算机仪器系统。 本文介绍了利用 LabView语言来实现上、下位机之间通信的方法,并从软、硬件两个方面阐述了设计思想。在简要介绍图形化虚拟仪器平台LabView 的基础上,分析STC12C5A60S2单片机与 LabView之间的串口通信模式,并结合该设计中设计的温度检测系统给出串口通信的软、硬件设计。 应用先进的虚拟仪器软件LabView,大大降低了串口通讯复杂程度,减小了软件设计的工作量,能够大大降低投资成本。在实际应用中有巨大的使用价值。 关键词:MCS51单片机,LabView,串口通信

目录 前言 (5) 第一章绪论 (6) 1.1 研究的背景及意义 (6) 1.2 课题发展状况 (7) 1.3 设计任务 (7) 第二章系统总体设计 (8) 2.1 系统方案设计 (8) 2.2 系统硬件选择 (8) 第三章系统硬件设计 (9) 3.1 元器件的介绍 (9) 3.1.1 主控制器 (9) 3.1.2单片机 (10) 3.2 硬件电路图设计 (10) 3.2.1mcu及复位电路 (10) 3.2.2串口电路 (11) 3.2.3晶振电路 (12) 3.2.4led输出电路 (13) 3.2.5PCB版 (13) 第4章系统软件设计 (15) 4.1 单片机接口程序设计 (15) 4.2 单片机串口通讯协议 (17) 参考文献 (19) 附录 (20)

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根线,但标准串口线能用上的地方,简化串口线就不一定能用上,所以在使用串口线之间一定要确定好串口线的类型,一般买的串口线都是标准线,但自制的串口线因为应用场合不同就要先确定一下。 G串口线还有一个地方需要注意一下的,就是2、3脚的接法,标准接法中是2、3脚交叉的,即这边的2接另一边的3,这边的3接另一边的2,扭了一下,所以叫交叉线,因为正常使用时,这边第二脚是发送数据,另一边第三脚是接收数据,所以要将这二个管脚连接起来,这样才能正常使用。但是有些情况下,2、3是直连的,即这边的第2脚连接另一边的第2脚,第3脚连接第3脚,这种叫直连线,这种线一般是用于延长串口的,比如需要将工控机的串口接头引到机柜表面上时,就使用这种线,这样机柜表面的串口线的定义还是跟电脑接出来的一样,外面的那一根串口线再使用交叉线。从电脑主板上将串口引到主机后面板上的线就是这样的直连线。购买串口线的时候一般也会问你买直连的还是交叉的,要区别对待。 串口线还有一个要稍微注意一下的就是DB头,因为电脑上接出来的一般是公头(针),要跟电脑接的话要母头(孔),一般仪器的串口也是公头,所以二边都是母头的串口线比较常见。串口的接头一般是DB9的,也有DB25的,但比较少用,有些比较BT的仪器厂家居然用RJ11(水晶头那种)作为串口头,让人不爽! 总之,使用串口前一定要先确定好硬件没问题,不然很浪费时间的。 4.串口参数设置: 在LabVIEW中使用串口时,有几个参数比较重要,需要先说明一下的。一个是串口初始化这个节点的“终止符”和“禁用终止符?”这二个输入端,这二个输入端是相互作用的,“终止符”默认值为10,它的十六进制是“0x0A”,这是一个ASCII码,是一个换行符,可以从LabVIEW中的字符串的不同显示形式看出来,如下图:

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读函数与写函数,将这些指令发送到仪器上,并从这些仪器上读取响应。 从NI-VISA 3.0版本开始支持USB通信。能够支持两个等级的VISA资源:USB INSTR和USB RAW。 遵守USB测试与测量类别(USBTMC)协议的USB设备使用USB INSTR资源类别。USBTMC设备遵守VISA USB INSTR资源类别能够理解的协议。如果要与USBTMC设备进行通信,则没有必要进行设置。要

基于LabVIEW的单片机串口通信实现

第4期(总第149期) 2008年8月机械工程与自动化 M ECHAN I CAL EN G I N EER I N G & AU TOM A T I ON N o 14 A ug 1 文章编号:167226413(2008)0420157202 基于L abV IEW 的单片机串口通信实现 朱建平,吕春峰 (云南民族大学物理与电子电气信息工程学院,云南 昆明 650031) 摘要:介绍了在L abV IE W 环境下串口通信的建立方法,结合L abV IE W 的功能,将其应用于单片机串口通信中,从而实现数据交换等功能。关键词:L abV IE W ;单片机;串口通信中图分类号:T P 36811 文献标识码:A 收稿日期:2008201213;修回日期:2008202218作者简介:朱建平(19782),女,湖北黄冈人,讲师,硕士。 0 引言 在实际应用中,我们经常遇到上位机与单片机系统通信的问题。由于上位机和单片机都具有串口,因此经常使用串口完成二者之间的数据交换,这就需要在上位端设计相应的串口通信程序。为了使开发出来的界面更具人性化、功能更强,在此采用L abV IE W 开发单片机与上位机通信系统,利用虚拟仪器软件绘制图形面板,在上位机上模拟出与之功能相对应的控制面板,实现对仪器的控制、数据的分析处理等功能,从而构建出一个有效的单片机与上位机的串口通信系统。1 串口通信系统的建立 111 系统硬件构成及通信的建立 单片机侧采用51系列单片机,晶振为1110592H z ,采用串口通信方式,波特率为9600 b s ,8位数据位,1位停止位,无奇偶校验。单片机的显示部分用于显示接收到上位机发送来的数据,由HD 7279A 控制。HD 7279A 是一片具有串行接口的可同时驱动8位共阴式数码管(或64只独立L ED )的智能显示驱动芯片,这样我们就可以直观地看到上位机发送过来的数据。单片机运行后等待上位机传来启动命令和初始控制,根据上位机发送来的不同控制代码做出相应的数据答复,若接收错误则单片机不做响应,上位机重新发送;当接收到上位机发送的停止命令后,单片机做出响应。 112 通信程序设计 程序采用C 51语言编写,包括主程序、参数初始化子程序、数据管理子程序、中断调用程序(包括定时器、串口的中断服务程序)以及数据传输服务。数据传 输等功能均在中断程序中完成。 主程序中断发生后,进入中断服务,接收完数据帧后,调用数据管理子程序完成对数据的分析、处理,然后调用数据传输子程序将响应数据或短应答发送出去,这样就完成了一个数据传输循环周期的处理。主程序流程见图1。 图1 主程序流程图 单片机的数据存储区开辟了两个缓冲区,分别为数据接收区和数据发送区,一个用来存放上位机发送来的数据帧,另一个用来存放单片机要发送的响应数据。当进入中断后,单片机将上位机发送来的控制值装入数据接收区并直接在单片机的数码管上显示出来,这样就能方便地判断上位机发送的控制值是否正确,单片机根据其数据管理子程序判定控制值,然后

相关文档
相关文档 最新文档