基于LabVIEW 的单片机数据采集系统设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于LabVIEW 的单片机数据采集系统设计与实现摘要:本文设计了一种基于LabVIEW与STC89C54RD+单片机的数据采集系统。单片机采集到的数据通过PL2303HX芯片的RS232转USB接口的双向功能,实现了只用一条USB线就可以把采集上的数据传输到LabVIEW中进行显示和存储。从下位机和上位机两个部分阐述了系统的设计。
1. 引言
LabVIEW是美国国家仪器公司(National Instru-ment)开发的一种虚拟仪器平台,它功能强大,提供了丰富的数据采集、分析和存储库函数以及包括DAQ,GPIB,PXI,VXI,RS 232/485在内的各种仪器通信总线标准的所有功能函数。利用LabVIEW设计的数据采集系统,可模拟采集各种信号,但是配备NI公司的数据采集板卡比较贵,在实际开发中可选用单片机小系统对数据进行采集。本系统的数据采集模块由DS18B20温度传感器和STC89C52RD+单片机以及MAX232、PL2303HX组成。由单片机组成的小系统对温度信号进行采集和转换,然后通过MAX232将单片机的TTL电平转换成RS 232电平,再经过PL2303HX芯片将RS232转换成USB接口信号,实现将数据传送给上位机,在LabVIEW开发平台下,对数据进行各种处理、分析,并对信号进行存储和显示,从而实现了一种在LabVIEW 环境下的单片机温度测试系统。
2.单片机系统的设计
根据实际情况,本次设计选用STC89C54RD+单片机。下位机整体模块如下
图1. 整体系统组成框图
2.1. 温度传感器模块
本次设计采用的是美国DALLAS 的DS18B20半导体温度传感器,它支持“一线总线”接口,具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可直接将温度转化成串行数字信号供处理器处理。单片机开发板上的DS18B20 电路接法如图2.1所示。
2.2. 单片机处理模块
STC89C54RD+是一种低功耗、高性能CMOS8位微控制器,具有 16K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash ,使得STC89C54RD+为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。本次设计单片机的处理程序流程图如图2.2所示。
图 2.2
单片机处理程序流程图 图2.1 DS18B20典型电路接法
2.3. 电平转换模块
51单片机有一个全双工的串行通讯口,所以单片机和PC机之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,因为PC机的串口是RS232电平,而单片机的串口是TTL电平,所以两者之间必须有一个电平转换电路。本次设计采用专用芯片MAX232进行转换。电路图如图2.3所示。
图 2.3 MAX232电路接法
采用三线制连接串口,也就是说和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.4 PL2303HX电路图
3.上位机系统设计
3.1. PL2303HX驱动程序
单片机在与PC机通信之前,需要安装USB转串口的PL2303HX驱动程序。安装完成之后,它会自动在计算机设备管理器的端口栏虚拟出一个串口,通过选择这个虚拟串口,就可与下位机实现通信。
3.2. LabVIEW程序设计
VISA(Virtual Instrument Software Architecture)是美国国家仪器公司开发的一种用来与各种仪器总线进行通信的高级应用编程接口。本设计采用LabviEW 的VISA的串口通讯子VI来开发串行通信软件。其中包括VISA(Configure Serial Port.Vi:将指定的串口按特定设置初始化。VISA Write.Vi:将写入缓冲区的数据写入指定的设备或接口中。VISA Read.vi:从指定的设备或接口中读取指定数量的字节,并将数据返回至读取缓冲区。VISA Close.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强大的数据库连接工具包对数据进行统一存储及处理,并对采集的数据进行了实时显示。试验调试成功,并采集了实时的数据,存入数据库,以备进行后续数据处理。