基于LabVIEW的单片机数据采集系统设计与实现摘要:本文设计了一种基于LabVIEW与STC89C54RD+单片机的数据采集系统。单片机采集到的数据通过PL2303HX芯片的RS232转USB接口的双向功能,实现了只用一条USB线就可以把采集上的数据传输到LabVIEW中进行显示和存储。从下位机和上位机两个部分阐述了系统的设计。1.引言LabVIEW是美国国家仪器公司(NationalInstru-ment)开发的一种虚拟仪器平台,它功能强大,提供了丰富的数据采集、分析和存储库函数以及包括DAQ,GPIB,PXI,VXI,RS232/485在内的各种仪器通信总线标准的所有功能函数。利用LabVIEW设计的数据采集系统,可模拟采集各种信号,但是配备NI公司的数据采集板卡比较贵,在实际开发中可选用单片机小系统对数据进行采集。本系统的数据采集模块由DS18B20温度传感器和STC89C52RD+单片机以及MAX232、PL2303HX组成。由单片机组成的小系统对温度信号进行采集和转换,然后通过MAX232将单片机的TTL电平转换成RS232电平,再经过PL2303HX芯片将RS232转换成USB接口信号,实现将数据传送给上位机,在LabVIEW开发平台下,对数据进行各种处理、分析,并对信号进行存储和显示,从而实现了一种在LabVIEW环境下的单片机温度测试系统。2.单片机系统的设计根据实际情况,本次设计选用STC89C54RD+单片机。下位机整体模块如下图1所示。温度传感器模块串口转USB电路模块数据显示模块上位机模块单片机模块电平转换模块TTL电平RS232电平USB接口图1.整体系统组成框图2.1.温度传感器模块本次设计采用的是美国DALLAS的DS18B20半导体温度传感器,它支持“一线总线”接口,具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可直接将温度转化成串行数字信号供处理器处理。单片机开发板上的DS18B20电路接法如图2.1所示。2.2.单片机处理模块STC89C54RD+是一种低功耗、高性能CMOS8位微控制器,具有16K在系统可编程Flash存储器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C54RD+为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。本次设计单片机的处理程序流程图如图2.2所示。开始串口初始化DS18B20温度转化获取温度并显示温度数据处理串口发送数据显示温度值图2.2单片机处理程序流程图微处理器DS18B20+3~+5.5V4.7kΩVDD+3~+5.5V外部电源I/O接其他单总线设备图2.1DS18B20典型电路接法2.3.电平转换模块51单片机有一个全双工的串行通讯口,所以单片机和PC机之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,因为PC机的串口是RS232电平,而单片机的串口是TTL电平,所以两者之间必须有一个电平转换电路。本次设计采用专用芯片MAX232进行转换。电路图如图2.3所示。图2.3MAX232电路接法采用三线制连接串口,也就是说和PC机的9针串口中只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。2.4.串口转USB接口模块本次设计上位机是在笔记本电脑上运行的,由于笔记本没有串口,故需要将串口信号转换成USB接口。选用专用芯片PL2303HX。它是Prolific公司生产的一种高度集成的RS232-USB接口转换器,可提供一个RS232全双工异步串行通信装置与USB功能接口便利联接的解决方案。该器件内置USB功能控制器、USB收发器、振荡器和带有全部调制解调器控制信号的UART,只需外接几只电容就可实现USB信号与RS232信号的转换,能够方便嵌入到各种设备;该器件作为USB/RS232双向转换器,一方面从主机接收USB数据并将其转换为RS232信息流格式发送给外设;另一方面从RS232外设接收数据转换为USB数据格式传送回主机。PL2303HX电路接法如图2.4所示。图2.4PL2303HX电路图3.上位机系统设计3.1.PL2303HX驱动程序单片机在与PC机通信之前,需要安装USB转串口的PL2303HX驱动程序。安装完成之后,它会自动在计算机设备管理器的端口栏虚拟出一个串口,通过选择这个虚拟串口,就可与下位机实现通信。3.2.LabVIEW程序设计VISA(VirtualInstrumentSoftwareArchitecture)是美国国家仪器公司开发的一种用来与各种仪器总线进行通信的高级应用编程接口。本设计采用LabviEW的VISA的串口通讯子VI来开发串行通信软件。其中包括VISA(ConfigureSerialPort.Vi:将指定的串口按特定设置初始化。VISAWrite.Vi:将写入缓冲区的数据写入指定的设备或接口中。VISARead.vi:从指定的设备或接口中读取指定数量的字节,并将数据返回至读取缓冲区。VISAClose.Vi:将打开的串口关闭。3.2.1.数据实时显示模块采集数据实时显示模块通过LabVIEW中的VISA函数将串口数据采集进来,并实时显示。程序前面板和程序框图如图3.1和3.2所示。图3.1数据实时显示前面板图3.2实时显示模块程序框图3.2.2.数据采集与处理模块此模块使用LabVIEW中的VISA函数和数据库连接工具包,将串口采集的数据存入数据库。程序前面板和程序框图如图3.3和3.4所示。图3.3数据采集与处理模块前面板图3.4数据采集与处理模块程序框图3.2.3.历史数据查询模块此模块主要是利用LabVIEW中的数据库连接工具包,将存入数据库的数据按照一定的条件查询并显示出来。前面板和程序框图如图3.5、3.6所示。图3.5历史数据查询前面板图3.5历史数据查询程序框图4.结束语本文将STC单片机作为数据采集的前端,经过MAX232芯片和PL2303HX芯片的转换,利用USB接口与LabVIEW完成通讯。同时利用LabVIEW强大的数据库连接工具包对数据进行统一存储及处理,并对采集的数据进行了实时显示。试验调试成功,并采集了实时的数据,存入数据库,以备进行后续数据处理。