基于LabVIEW的外置串口采集控制卡的研制
扫描二维码
随时随地手机看文章
摘 要:本文介绍了基于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所示。
采集控制卡软件设计
单片机通过从串口接收通道、量程选择命令来执行相应通道、量程的数据采集,然后将数据采集的结果以数据帧的格式发送给PC机。两个字节的帧头标志、以及两个字节的A/D转换结果合称为一帧数据。单片机软件设计流程如图2所示。
上位机控制处理程序设计
上位机控制处理程序在LabVIEW平台上进行开发,LabVIEW程序由两部分组成:前面板和程序框图。
LabVIEW前面板的功能等效于传统仪器前面板,它不仅可以模拟众多的传统仪器,而且可以模拟因为结构复杂而不可实现的传统概念仪器,因此,设计具有很大的灵活性。本次设计的前面板包括通讯端口、方式等的设置,对采集控制卡的配置,当前采集转换结果显示,采集转换结果实时动态监控,以及将采集转换结果写入Excel文件的设置等内容。
前面板有如仪器的外形设计,而程序框图就是仪器的内部电路,是设计的核心部分。LabVIEW方便之处就是能很方便的将流程图转换为图形编程语言。流程图中的循环可以直接调用LabVIEW中的While循环,顺序执行可以调用LabVIEW中Sequence Structure(顺序结构),条件执行则可以调用LabVIEW中Case Structure(选择结构)。程序流程图设计如图3所示。LabVIEW所采用的是并行执行结构,主流程图中横虚线上方的左右两边为同时执行的两个独立的单元。
本次设计的图形编程可以分为串口通讯、数据接收以及文件读写三个部分。
在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机通过判断帧头来识别数据,从而提高数据传输的准确性。帧数据格式如下:
前面两个字节数据0xAA和0xAB为帧头标志,DATA1和DATA0为采集结果,但并非为最终的结果,它们仍需要相应的处理(该处理在服务子程序中进行)。
采集到的数据要转换为实际电压值后,再进行显示、存储。本设计可以很方便的把每个实际电压值存储到Excel文件中,以便于查看和处理。而且在存储的过程中可以将通道号、量程、采集数据序号信息都写入文件,这样,就很容易生成报表输出。
根据流程图设计的采集控制系统程序框图如图4所示。
系统测试
将采集控制系统硬件、软件按要求设计好后,运行控制软件,先对采集控制系统进行相应的配置,然后可以实时观看某个通道的电压值。调节输入电压,通过实时监控界面可以观看到输入电压的变化过程。程序运行结束后,可以在程序的安装目录下找到一个由先前配置所命名的Excel文件,打开这个文件就可以看到采集到的所有数据(包括通道号、量程、采集数据及所采集数据序号信息)。通过测试表明,采集控制系统操作简单、方便,采集数据准确、价格低廉,且有热插拔优点。
结语
因为NI公司所提供的数据采集卡价格昂贵,对用户来说,自主研制基于LabVIEW的采集控制卡在实际中有很大的意义,采用LabVIEW平台来实现,很大程度上简化了设计,希望本文能给众多设计者带来新的设计概念。