基于LabVIEW与USB接口的实时数据采集系统
扫描二维码
随时随地手机看文章
摘要:本文设计了一种基于LabVIEW与STC12C5410AD单片机的数据采集系统。单片机采集到的数据通过CH341T芯片的USB转串口的功能,实现了只用一条USB线就可以把数据传输到LabVIEW中进行显示和分析。从下位机和上位机两个部分阐述了系统的设计。实验证明,系统能实时精确的再现单片机采集的低频信号。
关键词:LabVlEW;数据采集;STC单片机;USB
1 数据采集系统
工程上使用具有PCI、PXI、USB、并口以及串口的计算机来获取测试数据,称为基于PC的数据采集系统。其中一种是通过插入式的数据采集卡直接获取数据传输给计算机。鉴于数据采集卡的价格昂贵,且安装不方便等缺点,本文提出使用STC单片机作为前端的数据采集系统,利用CH341T芯片的USB总线转异步串口的功能,将采集数据只通过一条USB线传输给PC机,最后在LabVIEW平台下进行数据的显示、分析、处理。
1.1 系统组成与工作原理
本系统总体结构框图如图1所示。主要包括有STC12C5410AD单片机和CH341T转换芯片组成的数据采集、转换、传输部分,以及基于PC机的LabVlEW软件构成的数据处理部分。首先,被测电压模拟信号通过电平变换电路进入STC单片机的AD转换通道,待转换完成后利用CH341T芯片的USB转串口的功能,通过USB接口传输给PC机,最后由LabVIEW软件分析处理。
2 下位机系统设计
2.1 硬件设计部分
系统硬件原理图如图2所示。系统采用的MCU为STC12C5410AD,采用的USB接口芯片为CH- 341T,利用该芯片的USB转串口的功能将数据传输到上位机,从而构成数据采集系统。
2.1.1 STC12C5410AD单片机
STC12C5410AD系列单片机是单时钟/机器周期(1T)的兼容8051内核单片机,是高速/低功耗的新一代增强型8051单片机,内部集成MAX810专用复位电路。10KBFLASH程序存储器,512字节SRAM,有8路10位高速A/D转换器,速度可达100KHz。实际工作频率可达48MHz。在应用时,需根据实际情况设定晶振频率,本系统采用11.0592MHz的晶振。本例中采用P1.0作为A/D转换通道。由于各A/D转换通道的输入电压范围为0~5V,对于双极性信号来说,直接输入会被削掉负半波。为了解决上述问题,采用了高速低噪声双运算放大器NE5532,根据运放电路的虚短、虚断原则,其输出OUT=2.5-IN。可以将-2.5v~2.5V的电平转换到0~5v,这样满足了输入信号的双极性要求。
2.1.2 CH341T芯片
随着计算机通讯技术的不断发展,串口的通讯速度越来越不能满足现在的通信要求。因此越来越多的计算机,尤其是笔记本电脑都不再保留串行接口,取而代之的是方便、高速、标准的USB接口。然而对于需要用串口通信的设备来说,是个麻烦的问题。为了解决这个问题,本系统采用CH341T芯片将单片机通过USB接口直接连接到PC机上,方便了没有串口的上位机与下位机的通信,解决了上位机没有串行接口的问题。CH341T芯片的特点如下:
(1)仿真标准串口,用于升级原串口外围设备,或者通过USB增加额外串口。
(2)计算机端Windows操作系统下的串口应用程序完全兼容,无需修改。
(3)硬件全双工串口,内置收发缓冲区,支持通讯波特率50b/s~2Mb/s。
(4)支持5、6、7或者8个数据位,支持奇校验、偶校验、空白、标志以及无校验。
2.2 软件设计部分
本系统将STCl2C5410AD的P1.0口作为A/D转换的通道,要使用A/D转换功能就必须进行相应的寄存器设置。STC单片机的寄存器见表1所示。
1)P1M0,P1M1:P1口工作模式设置PlM0=0x01,P1M1=0x01。将P1口设置为开漏模式。
2)ADC CONTR:A/D转换控制器
ADC_POWER:ADC电源控制位。
ADC_ POWER=0:关闭ADC电源。ADC POWER=1:打开A/D转换器电源,初次打开内部A/D转换模拟电源,需适当延时,等内部模拟电源稳定后,再启动A/D转换。
ADC_START:模数转换器(ADC)转换启动控制位,设置为1时,开始转换,转换结束后为0。
SPEED1,SPEED0:模数转换器转换速度控制位。
ADC_FLAG:模数转换器转换结束标志位,当A/D转换完成后,ADC_FLAG=1,一定要软件清0。
CHS2/CHS1/CHS0:模拟输入通道选择如表2所示。
下位机程序流程图如图3所示。下位机的程序主要包括三个部分:串口初始化子程序、A/D转换初始化子程序、串口发送子程序。其中A/D转换初始化子程序主要是设置ADC CONTR、P1M0、P1M1等寄存器。
3 上位机系统设计
3.1 CH341T驱动程序
在与上位机通信之前,必须安装CH341T的驱动程序,这可从公司网站下载。待其驱动程序安装完成后,会自动在计算机设备管理器的端口栏虚拟出一个串口,这个虚拟串口与计算机原有的COM口对应用程序来说是一样的。通过选择这个虚拟串口,就可与下位机通信了。
3.2 LabVIEW程序设计
VISA(Virtual Instrument Software Architecture)是美国国家仪器公司开发的一种用来与各种仪器总线进行通信的高级应用编程接口。VISA库驻留于计算机系统中,完成计算机与仪器之间软件的连接,用以实现对仪器的程序控制,其实质是用于虚拟仪器系统的标准的API,VISA本身不具备编程能力,它是一个高层API,通过调用底层驱动程序来实现对仪器的编程。
本设计采用了LabviEW的VISA的串行通讯子VI来开发串行通信软件。其中包括VISA(Configure Serial Port.Vi:将指定的串口按特定设置初始化。VISA Write.Vi:将写入缓冲区的数据写入指定的设备或接口中。VISA Read.vi:从指定的设备或接口中读取指定数量的字节,并将数据返回至读取缓冲区。VISA Close.Vi:将打开的串口关闭。首先利用VISA Conf- igure Serial Port.vi进行串口初始化,其中设置读取和写入操作的超时为10s,波特率为9600,8位数据位,无奇偶校验位,1为停止位,无流控制。然后打开串口,将读取缓冲区的数据传输到波形图表进行实时显示,同时利用移位寄存器和连接字符串控件将采集的数据存储在接收数据区中,当采集的数据达到950个时,对其进行幅值谱变换并显示。同时清空接收数据区,为下一次采集做准备。LabVIEW程序框图如图4所示。
4 系统测试与结果
为了测试系统的可靠性,将系统的P1.0口和电源地与DG 2041A数字信号发生器连接进行测试。信号发生器产生频率为100Hz,峰峰值为3V,其中高电平1.5V,低电平-1.5V的正弦波信号,通过电平变换电路得到低电平为1v、高电平为4V的正弦波。将A/D转换后的数据传到Lab- VIEW中,在显示之前要减去2.5V电压的A/D转换值128,同时还要设置波形图表Y轴的缩放比例为0.02,这样就可以正确显示了。通过设计的系统进行采集在LabVIEW软件上显示的结果如图5所示。
5 结束语
本文将STC单片机作为数据采集的前端,经过CH341T芯片的转换,利用USB接口与LabVIEW完成通讯。同时利用LabVIEW强大的信号分析处理能力,对信号进行了实时显示,并对信号进行了频谱分析。经过对系统的调试和完善,实验证明,采集的信号可以满足要求,系统运行良好。