基于LabVIEW的串行通信接口设计与实现
郭杰,王兆霸
国家重点电子测量技术实验室 (太原部)
中北大学,山西省太原市
摘要:串口通信方式是工业现场仪器或设备常用的通信方式。在对数据速率要求不高的应用场合,串口通信仍然是比较廉价的通信方式。主要对LabVIEW的串行通信接口驱动进行了初步研究,对用VISA编程进行初步的尝试。完成了基于8051单片机的远程数据采集终端的上位机串口通信接口部分程序,并且通过测试。它的功能如下:
(1)功能全面。软件可以根据不同的需要设置频率、周期、数据格式、检验格式以及数据流的控制。设置数据存储的文件路径。
(2)操作简单,界面好。程序运行后,在无人职守的情况下,随时等待接收数据采集终端定时来的数据,并以文本文件的格式将数据存入指定的文件。等待数据处理。
(3)当需要上传数据时,根据规定的命令格式,在命令窗口输入起始时刻和终止时刻,按下发送命令,等待单片机数据采集系统发来的数据,并将数据存如指定路径的文本文件,同时将数据显示在观察窗内,可以观察信号的变化。
关键词:LabVIEW ,串行通信,VISA。
1 引言
串行通信是一种在计算机与计算机之间或者计算机与外部设备之间传送数据的常用方法。在开发数据采集系统中,串行通信是用于计算机和单片集成电路中最简单和最常用的传输技术平台。在串行通信的应用时,LabVIEW已经建立相应的数据模块,用户科技更方便的利用LabVIEW进行编程,摆脱繁琐的模式,更便于实现PC机与设备一起之间的交流。
2.1 VISA的由来
VISA是虚拟仪器软件体系结构的缩写,即Virtual Instrument Software Architecture,实质上是一个I/O口软件库及其规范的总称。一般情况下,就将这个I/O接口软件库称为VISA库。
在以往的虚拟器开发过程中,I/O接口设备(或称仪器I/O,通常是带有不同的总线接口的仪器、仪器模块或数据采集卡)驱动控制软件的开发没有制订统一的规范,仪器厂商按照各自的标准开发I/O接口设备驱动控制软件出售给用户。由于没有统一的规范约束,只能专用而没有通用性,因此不同类型的或不同厂家生产的I/O接口设备都必须专门来设计它的驱动程序。由于这种不可互换性的,因而造成用户在集成、使用和维护虚拟仪器系统时重复投入了大量的资金。为了推动虚拟仪器软件标准化的进程,VXI Plug & Play联盟于1996年完成了对VISA规范的开发工作,并将各个函数的原型以标准的形式发布。
API(Application Program Interface)是应用软件开发接口,实质是一组函数集,通过它可以直接访问计算机的硬件设备。VISA是用于虚拟仪器系统的标准的API。VISA本身不具备编程能力,它是一个高层API,通过调用底层驱动程序来实现对仪器的编程,其层次图如图2所示。
图2 虚拟仪器系统软件工艺
2.1.1 输入/输出(I/O)接口软件
输入/输出(I/O)接口软件存在于仪器(即I/O接口设备)与仪器驱动程序之间,是一个完成对仪器内部寄存器单元进行直接存取数据操作,对VIX背板总线与器件作测试和控制,并为仪器与仪器驱动程序提供信息传递的底层软件层,是实现开放的、统一的虚拟仪器系统的基础与核心。在VPP系统规范中,详细规定了虚拟仪器系统输入/输出(I/O)接口软件的特点、组成、内部结构与实现规范,并符合VPP规范的虚拟仪器系统输入/输出(I/O)接口软件定义为VISA软件。
2.1.2 仪器驱动程序
每个仪器模块均有自己的仪器驱动程序。仪器驱动程序的实质是为用户提供了用于仪器操作的较抽象的操作函数集。对于应用程序来说,它对仪器的操作是通过仪器驱动程序来实现的;仪器驱动程序对于仪器的操作与管理,又是通过输入/输出(I/O)接口软件所提供的统一基础与格式的函数库(VISA库)的调用来实现的。对于应用程序设计人员来说,一旦有了仪器驱动程序,在不是十分了解仪器内部操作过程的情况下,也可以进行虚拟仪器系统的设计工作。仪器驱动程序是连接上层应用软件与底层输入/输出(I/O)接口软件的纽带和桥梁。
2.1.3 VISA的特点
与其它现存的(I/O)接口软件相比,VISA具有以下几个特点:
(1)VISA的I/O控制功能适用于各种仪器类型。VISA包含了VXI仪器、GPIB仪器、RS-232串行仪器等各类仪器的控制操作,也包含了消息基器件、寄存器器件、储存器器件等仪器的操作,其形式上是统一的。
(2)VISA的I/O控制功能适用于各种仪器硬件接口类型。以VXI系统为例,无论采取了嵌入式计算机的结构,或MXI外挂式结构,或GPIB外挂式,对于VXI仪器的操作函数是一样的;同样,无论VXI仪器在系统中的逻辑地址有何不同,仪器操作函数也是一致的。
(3)VISA的I/O控制功能也适用于单处理器系统结构,也适用于多处理器结构或分布式网络结构。
(4)VISA的I/O控制功能适用于多种网络机制。无论虚拟仪器系统网络结构成为VXI多机箱扩展网络还是以太网,仪器操作是一致的。
VISA的I/O软件库的源程序是唯一的,与其操作系统及编程语言武官,只是提供了标准形式的API文件作为系统的输出。
在VISA的结构中,仪器类型的不同体现在资源名称的不同。对VISA的使用者来说,不同类型仪器的使用在形式上和方法上都是一样的。
3 系统设计
根据设计要求,本实验选择RS-232串行口来实现计算机之间的数据传输。
(1)根据不同的要求设计波特率,数据格式,校验格式以便于对数据进行控制,并建立相应的数据存储文件路径。
(2)程序运行,在无人职守的情况下,等待瞬时数据的采集,并建立数据库,以指定形式存储数据。
(3)在数据转换时,按照常规规定,在命令窗口输入起始和终止时间,按数据按钮,等待单片机集成电路的输出数据,并将所得数据存储至数据源地址文件,在窗口中显示数据,同时可以观察数据的变化。
3.1 串口初始化为:
波特率2400 b/s, 数据8 bit数据位停止位、无奇偶检验位。
3.2 数据的读操作
系统运行初始化以后一直处于等待接收数据状态。数据采集终端每过一定时间上传一次数据。这个数据是和时间一起上传的,是自动记录数据历史的部分,所以要存储在一个特定的文件夹里面。等待后续程序的处理。
3.3 数据的写操作
当需要上传某一特定时间段的数据时,需要上位机发一个命令(即起始时刻和终止时刻的数值)给单片机,这时侯退出记录数据状态,向串口发送一个命令串,这个命令在按下上传数据按钮之前就要在起始时刻和终止时刻窗口写好。当接收到数据并且在观察窗口显示所需要的数据之后,将“读数据”按钮关闭,系统又处于等待接收定时上传数据状态,使数据不会丢失。需要注意的是发送命令的控制按钮要设计为一个脉冲的形式,否则,程序回循环发送命令,不能返回等待定时上传状态。
3.4 关闭串口
当关闭采集系统时,关闭串口,释放LabVIEW 占用的资源。
4 程序流程图
程序流程图如图3所示。
程序开始。初始化串口。等待接受数据。数据采集系统定时上传的数据。存储数据。发送键按下。发送命令字。等待数据接受。要求上传的某时间段的数据。数据写入文件。确认数据接受。退出键是否按下。关闭窗口。
5 程序验证
发送时间命令到采集终端,即返回数据记录在文件data.txt中,同时将数据在观察窗内显示。接收数据采集终端定时发送的数据,并且写如文件DATA1.txt文件中,等待后续数据处理。
6 结语
通过测试完成了串口通信驱动程序的设计和实现,结果表明数据的上传准确无误,参数设置灵活,达到设计要求。
参考文献
[1] 杨乐平,李海涛,杨磊.LabVIEW程序设计与应用[M].北京:电子工业出版社,2005.
[2] 刘君华.基于LabVIEW的虚拟仪器设计[M].北京:电子工业出版社,2003.
[3] 刘君华.虚拟仪器图形化编程语言LabVIEW教程[M].西安电子科技大学出版社,2003.