基于LabVIEW的外置串口采集控制卡的研制
本文介绍了基于LabVIEW的外置串口采集控制卡的设计思想,详细的分析了采集控制卡的研制过程,并给出了LabVIEW的具体程序设计。
引言
目前虚拟仪器开发广泛应用的是美国NI公司的LabVIEW开发平台。LabVIEW软件隐含了对设计虚拟仪器时所面临的多种困难的考虑、简化了设计过程,对于开发虚拟仪器相当方便,但因其硬件卡昂贵,影响了虚拟仪器在国内的推广使用。因而,本文提出了采用LabVIEW虚拟仪器开发平台,自行设计硬件卡。
设计中利用单片机作为下位机,采用标准RS-232串口与PC机通讯来构建采集控制系统。上位机通过发送控制采集命令实行采集控制卡的通道选择、量程选择、数据采集等,然后将采集到的数据通过串口传输给PC机实现数据的存储、分析。此外基于串口开发的采集控制卡还因具有热插拔的优点而具有很强的实用性。
外置串口采集控制系统构成
外置串口采集控制系统主要由下位机硬/软件以及上位机控制软件两部分构成。下位机通过接收PC机命令来执行相应的操作,例如数据采集通道的选择、输入电压范围的选择、或是其他量的选择(如温度、湿度等)。上位机软件主要是发送控制命令,接收、显示、存储以及处理数据。其中,数据的传输采用了数据帧格式进行,通过识别帧头标志位等规则来保证数据传输的准确性,本设计中是通过结合MAXIM公司所提供的A/D转换器MAX197来实现的。
采集控制卡硬件设计
本设计硬件电路以单片机89C51为控制核心,通过RS-232与PC机通讯,实现整个数据采集系统的数据采集控制以及数据处理和存储。单片机通过接收PC机指令来控制MAX197,其中A/D采集以中断方式进行。控制卡硬件电路结构如图1所示。
图1 采集控制卡硬件结构简图
采集控制卡软件设计
单片机通过从串口接收通道、量程选择命令来执行相应通道、量程的数据采集,然后将数据采集的结果以数据帧的格式发送给PC机。两个字节的帧头标志、以及两个字节的A/D转换结果合称为一帧数据。单片机软件设计流程如图2所示。
图2 单片机程序流程图
上位机控制处理程序设计
上位机控制处理程序在LabVIEW平台上进行开发,LabVIEW程序由两部分组成:前面板和程序框图。
LabVIEW前面板的功能等效于传统仪器前面板,它不仅可以模拟众多的传统仪器,而且可以模拟因为结构复杂而不可实现的传统概念仪器,因此,设计具有很大的灵活性。本次设计的前面板包括通讯端口、方式等的设置,对采集控制卡的配置,当前采集转换结果显示,采集转换结果实时动态监控,以及将采集转换结果写入Excel文件的设置等内容。
前面板有如仪器的外形设计,而程序框图就是仪器的内部电路,是设计的核心部分。LabVIEW方便之处就是能很方便的将流程图转换为图形编程语言。流程图中的循环可以直接调用LabVIEW中的While循环,顺序执行可以调用LabVIEW中Sequence Structure(顺序结构),条件执行则可以调用LabVIEW中Case Structure(选择结构)。程序流程图设计如图3所示。LabVIEW所采用的是并行执行结构,主流程图中横虚线上方的左右两边为同时执行的两个独立的单元。
图3 程序流程图
本次设计的图形编程可以分为串口通讯、数据接收以及文件读写三个部分。
在LabVIEW中,实现串口通讯方式有直接调用NI公司提供的Serial系列子VI; VISA串行系列(位于Functions->All Functions->Instrument I/O->serial中);采用Active X控件来控制访问串行口(先向LabVIEW中添加一个Active X Container控件,然后向其中添加MSComm控件)三种方式。本次设计采用了第二种方式来访问和控制串行口,即通过调用功能模板的VISA中的Serial系列(包含VISA Configure Serial、VISA Write、VISA Read、VISA Close)来实现对串行口的访问和控制。采用该方式设计的优点是:每个函数开始接收一个端口号,结束后输出一个其复制的端口号,这样在设计中就不用担心对于一个端口有遗忘或是重复的操作,从而使程序设计更加清晰。
LabVIEW中对于串行口的读写都是以字符为单位传输其ASCII码来实现的,因而需将需要传输的数据字符转换成对应的ASCII码。本设计通过调用CIN (代码接口接点)将C语言程序嵌入到整个设计中,然后采用LabVIEW与C语言混合编程来实现所需的功能(CIN在LabVIEW中的调用路径为Functions→All Functions→Advanced→Code InteRFace Node)。
本设计中首先将采集控制系统的通道号和量程发送给下位机,然后程序进入到相应的数据接收处理程序。在数据接收过程中采用了数据帧方式:下位机将对应通道号、相应量程的采集结果以一帧数据为单位循环发送给PC机,PC机通过判断帧头来识别数据,从而提高数据传输的准确性。帧数据格式如下:
- 基于LabVIEW RT的自定义流程测控系统(10-30)
- 基于LabVIEW的语音分析平台的实现(10-30)
- 基于示波器卡和LabVIEW的马达编码器测试系统(11-06)
- 基于虚拟仪器的网络虚拟实验室构建(11-06)
- 运用LabView控制DS3900串口通信模块(02-02)
- 采用模块化仪器,对新兴音频和视频应用进行测试(02-19)