
《虚拟仪器》课程考核论文
基于labview的串口通信软件设计
论文作者姓名: XXX
作 者 学 号:
所 在 学 院: 物理与电子学院
所 学 专 业: 测控技术与仪器
导师姓名职称: 高伟
论文完成时间: 2014.12.30
基于labview的串口通信软件设计
金鹏举(河南大学2011级测控专业)
摘要:串口通信因为其简单,灵活易用,在许多领域有着广阔的应用前景。本文在深入介绍串口通信技术的基础上,结合自身的工程实践经验,阐述了 labview 串口编程的技术要点,设计一个适用范围较广、实用性较强的串口通信助手。
关键词:串行通信,RS-232,labview,串口
Abstract: a serial port communication because of its simple, flexible and easy to use, has a broad application prospect in many fields.In this paper, based on in-depth introduction of serial port communication technology, combined with its own engineering practice experience, this paper expounds the main technical points of the labview serial port programming, design a wide application scope, practical serial port communication assistant.
Keywords: serial communications, RS - 232, labview, serial port
1.课题研究背景
随着计算机系统的应用和微机网络的发展,通信功能越来越显得重要。这里所说的通信是只计算机与外界的信息交换。因此,通信既包括计算机与计算机之间,也包括计算机和外部设备之间、计算机与单片机之间的信息交换。由于串行通信是在一根传输线上一位一位的传送信息,所用的传输线少,尤其是在数据量比较大的场合下,利用一个主机向各个从机发送控制指令是一个很好的解决方案,在这个过程中,串口通信是实现计算机和外部设备之间、单片机与单片机、计算机与单片机之间通信的关键。
2.串口通信的原理
串口通信的硬件投资少,软件编程简单 ,在低速少量数据传输方面的应用极其广泛的应用。尤其使用较多的是RS-485通信协议,因为RS-485的差分电压传输方式能有效的抑制共模干扰,传输距离能达到几百米。
串口通信的本质就是两个CPU以规定的通信协议进行数据交换。目前常用的串口协议有RS232通信协议和RS485通信协议。RS232和RS485规定的通信协议是相同的,只是物理层规定的电平不一样。而RS232属于全双工串行异步通信协议,RS485属于半双工串行异步通信协议。
在异步通行中有两个比较重要的指标:数据帧格式和波特率。所以串口通信最重要的参数是波特率、起始位、数据位、停止位和奇偶校验。
波特率:是一个衡量通信速度的参数,表示每秒钟传送的bit的个数。
RS232规定的数据帧格式为:1位起始位 + 5 – 8位的数据位 + 可选奇偶校验位 + 1 – 2位的停止位。
起始位:当通信线上没有数据被传送时处于逻辑“1”状态,当发送设备要发送一个数据时,先发送一个逻辑“0”信号,这个低电平就是起始位,起始位通过通信线传向接收设备,接收端检测到这个低电平后,就确认开始接收数据了。起始位的作用是使通信双方在传送数据前协调同步。
数据位:是衡量通信中实际数据位的参数,当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7或8位,如何设置取决于要传送的信息。每个包是指一个字节,包括开始/停止位、数据位和奇偶校验位,由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。
停止位:用于表示单个包的最后一位。典型的值为1、1.5和2位,它是一个数据的结束标志,接收端接收到停止位后,通信线路上会回复逻辑“1”的状态,知道下一个起始位的到来。
奇偶校验位:在串行通信中一种简单的检错方式,可以选择不采用。常用的有两种校验方式:奇校验和偶校验。对于奇校验,串口会自动设置校验位的高低电平,从而使数据帧中逻辑1出现的个数为奇数。相应的,对于偶校验,串口会自动设置校验位的高低电平,从而使数据帧中逻辑1出现的个数位偶数。
3.软件设计
3.1 软件平台labview
LabVIEW ( Laboratory Virtual Instrument Engineering)是一种基于图形开发、 调试和运行程序的集成化环境, 实现了虚拟仪器的概念,LabVIEW程序称为虚拟仪器程序. 采用图形化的程序语言 ( G语言 )。这种语言不必写程序代码, 看到的是直观明了的流程图语言, 所以编程非常方便。该语言提供了大量的常用控件, 如旋钮、 开关、 按钮、 图形显示等, 可直接使用, 不像 Delphi等高级语言实现一个旋钮需要几十行代码, 因此, Lab VIEW 大大地缩短了软件的研发周期。LabVIEW 能与多种语言通用, 如Matlab , C等, 例如将 Matlab脚本嵌入到 LabVIEW程序, 保证了一些 LabVIEW 所不具备的功能得以实现, 如小波分析、 神经网络等。此外, 通过加亮执行、 单步、 断点和探针帮助用户跟踪经过 VI的数据流, 使 Lab VIEW 的调试直观方便.
3.2 软件设计思路
在LabVIEW中实现串行通信的方式主要有利用VISA和使用ActiveX控件两种。
3.2.1 利用VISA实现串口通信
虚拟仪器的软件系统框架包括三个部分:VISA库、仪器驱动程序、应用软件。VISA作为测试程序和数据传输总线的中间层,为应用程序和仪器总线的通信建立了通道[2]。VISAI/O库为应用程序的建立提供了一致的接口,因而应用程序不需要关心实际的数据传输介质是GPIB电缆还是串口线,可以认为在VISA库中包含了与各种接口进行连接所需的程序。VISA是应用于仪器编程的标准I/O应用程序接口(API),VISA本身并不具有仪器编程能力,VISA是调用低层驱动器的高层API[3]。使用时需要安装VISA驱动程序。
3.2.2 使用ActiveX控件实现串行通信
ActiveX通常翻译为“微软倡导的网络化多媒体对象技术”,实际上它是一整套跨越编程语言的软件开发方法与规范。利用LabVIEW的ActiveX控件容器,可以调用第三方提供的ActiveX控件,从而使程序功能更加强大,节省程序开发时间[6]。
3.3 软件设计过程
本次设计利用VISA实现串口通信。
首先需要调用VISAConfigureSerialPort完成串口参数的设置,包括串口资源分配、波特率、数据位、停止位、校验位和流控等,
如果初始化没有问题,就可以使用这个串口进行数据收发。发送数据使用VISAWrite,如图3所示。接收数据使用VISARead,如图4所示。在接收数据之前需要使用VISABytesatSerialPort查询当前串口接收缓冲区中的数据字节数,如果VISARead要读取的字节数大于缓冲区中的数据字节数,VISARead操作将一直等待,直至Timeout或者缓冲区中的数据字节数达到要求的字节数。当然也可以分批读取接收缓冲区或者只从中读取一定字节的数据。
串行通信系统可分为以下 3个模块:
( 1) 端口配置模块: 负责串口的开关、 端口的选择、 波特率、 数据位、 停止位、 校验位的选择等。
( 2) 数据发送模块: 负责实现发送数据的处理与数据的多种发送方式, 具有选择手动发送或自动发送、 选择发送数据的类型、 设置自动发送时间间隔、 读取要发送的文本、 清空发送区域等功能。
(3) 接收显示模块: 负责实现接收数据的处理与数据的多种显示方式, 具有自动接收和结束接收的功能, 能够保存接收的数据和清空显示区域。
程序框图如下:
图1:串口通信程序框图
程序前面板设计如下:
3.4 程序调试
由于条件,手中没有单片机,所以软件调试使用虚拟串口软件和之前用MFC写的串口调试助手。
1.首先打开虚拟串口,添加虚拟的串口COM1和COM2(虚拟串口添加的端口是相连的)
2.打开串口调试助手和VI程序分别设置为COM1(9600-N-8-1),COM2(9600-N-8-1)
4.设计总结
本次串口通信软件设计首先按照规定的要求实现了如下功能:
1.能与单片机进行RS-232串口通信,能发送和接收。
2.显示通信过程中发送和接收的数据。
3.波特率、数据位、校验位和停止位可调。
4.串口号可选择。
利用LabVIEW进行产品开发可以极大地提高
开发效率,本文介绍的LabVIEW串口编程,就是一个很好的证明。
将LabVIEW软件开发与串口通信结合设计开发数据采集系统和控制硬件设备,不仅能节约大量开发时间和减少硬件成本,还可以为今后的系统升级留有很大空间,同时还使得系统具有很好的可移植性。
参考文献:
[1] 李宇华.虚拟仪器开放平台LabVIEW介绍 [ J].计算机自动测量与控制, 1996, ( 3): 32- 45.
[2]KALKMANCJ.LabVIEW:A soft ware system for data scquisition,data analysis,and instrument control [J].Journal of Clinical Monitoring and Computing.2005,11(1):1387-1397.
[3]LEONW.IICounch.Digital & analog communication systems (7thEd.) [M].Macmillan : New York,2007,327-333.
[ 4] 杨乐平, 李海涛, 肖相少, 等. LabVIEW 程序设计与应用 [M]. 北京:电子工业出版社, 2001 .
[ 5] 畅国忠. 基于VISA的事件处理方法与实现 [ J]. 测控技术, 2000 , ( 9): 60- 76.
[ 6] 李刚,林凌. LabVIEW 易学易用的计算机图形化编程语言 [M]. 北京:北京航空航天大学出版社,2001.
[ 7] 周军伟. 基于虚拟仪器的超声检测的研究[D]. 西安理工大学 , 2005
[ 8]李金霞,邱公伟.虚拟仪器及Labview概况[J].福建电脑,2002年第9期,14-15
[ 9]李扬,郑莹娜,朱铮涛.图形化编程语言Labview环境及其开放性[J].计算机工程, 1999(25:4),63-65
