基于LabVIEW 和单片机的温度采集系统设计

2022-09-27 06:14陶冉婷
设备管理与维修 2022年17期
关键词:温度传感器上位串口

陶冉婷

(芜湖新兴铸管有限责任公司,安徽芜湖 241000)

0 引言

随着时代的进步和发展制造业信息化的推进,单片机技术已经普及到生活、工作、生产、科研等各个领域,已经成为一种比较成熟的技术。单片机的温度采集系统系统主要以AT89S51 单片机与数字温度传感器DS18B20,形成温度采集电路,自动对温度进行采集和处理,使用LCD1602 液晶显示器搭建显示电路实时显示当前温度功能,应用Protel 99 SE 进行系统电路原理图的绘制;在Keil中进行汇编语言程序的编写与调试,并在仿真软件Proteus中进行系统的仿真实验;独立芯片选型,模拟硬件制作,进而完成整个基于LabVIEW(Laboratory Virtual Instrument Engineering Workbench,基于虚拟仪器工程平台)和单片机的温度采集系统设计。

1 设计的内容及发展趋势

1.1 设计内容

随着工业信息化的不断推进,虚拟仪器发展前路不断被拓宽。其中,LabVIEW 图形化开发工具已经用于生产、设计的各个环节,从而改善产品质量、提高生产的效率、提升设备的可开动率,为工业大数据平台提供有力支撑。

单片机最早被用在工业控制领域,随着其技术的兴起与发展,其安全、高效、稳定、性价比高等优点逐渐被大家所熟知。单片机体积小、集成度高、可扩展性强,有着比计算机强大的数据处理能力,可嵌入性强,因此,是工业信息化推进过程中不可或缺的一部分。

温度是一个非常重要的物理量,因为它直接影响各种物理和化学过程。因此温度检测的意义在人们生产、生活当中举足轻重。工业生产当中,很多设备对环境温度要求较高,需要对温度进行监测,以保证生产能够顺利进行。

运用电子测量、信号处理、单片机原理及应用等基础知识,设计一个LabVIEW 和单片机的温度采集系统,具有较好的人机交互界面及温度实时显示和报警功能。温度测量范围0~100 ℃;测量精度±1 ℃;至少每5 s 完成一次检测,并在LabVIEW 中刷新显示;报警温度上下限可在0~100 ℃范围内调整。

1.2 发展趋势

随着计算机现代检测和电子仪器等技术的高速发展,虚拟仪器成为仪器发展的主流方向,LabVIEW 作为虚拟仪器开发工具,在数据采集方面具有明显优势。随着电子技术的快速发展,测温的方法多种多样,应用单片机进行温度采集系统结构的设计越来越简单。目前诸多控制系统建立在以计算机技术为控制核心上,需要充分利用计算机实现和扩展传统仪器和智能仪器的功能。在温度采集系统设计方面,利用LabVIEW 和单片机相结合做出的模块已成主流的方式,其中有的用DAQ(Data Acquisition,数据采集)卡进行数据传输,有的则用RS232,前者传输速度很快但成本高,而后者既能满足在传输方面的需求也能满足对性价比的要求。在将来的温度采集的发展中,智能化是一个不可阻挡的趋势,也就是实现软件即仪器。

对温度数据的采集及监测的需求涉及各个方便,无论是工厂机器的运行还是医院内部整个温度的采集、大棚温室温度的监测还是室外温度采集等方面,其应用范围广、价值大,在基于LabVIEW 和单片机的温度采集系统设计里可以增加多点采集,即同时采集检测多个地点的温度,可以对这些采集来的温度做比对研究。

2 总体方案

2.1 方案

温度采集系统由上机位和下机位构成的主从式控制系统,单片机STC89C54 和数字温传感器DS18B20 搭建实时温度采集电路作为下位机,上机位为安装有LabVIEW 应用软件的PC机;下位机采集温度数据由串口通信总线传输至PC 机,PC 机应用LabVIEW 实时进行数据显示、处理、分析和存储操作。设计采用AT89S54 单片机和温度传感器DS18B20 进行温度的采集,结合串口通信技术和虚拟仪器技术,基于LabVIEW 和单片机的温度采集系统实现对温度的实时采集、显示分析处理以及存储警报等功能。较传统基于单片机的温度采集系统,系统实现与计算机的高度融合,降低硬件制作的复杂度,灵敏性和灵活度均有很大提高,且减少单片机显示按键等外围电路,有利于单片机嵌入到其他系统。

2.2 方案总体框图

结合整体的设计思路,围绕设计内容划出系统框图(图1)。由此可以得到总体设计方案:①核心处理器:以单片机AT89S51的最小系统作为控制核心;②温度采集电路:采用温度传感器DS18B20 直接进行温度数字值的采集输出;③温度显示电路:采用LCD1602 数码管作为显示设备;④警报功能:在PC 上用LabVIEW 完成的界面设置温度上下限,并实现警报功能。

图1 系统框图

下位机主要硬件部分包括单片机、温度传感器、显示单元。单片机负责主系统处理以及串口发送等;温度传感器只需要将采集到的温度数值传输给单片机;显示单元通过单片机接收到的温度传感器数值经过一定处理实现。实现基本功能后通过单片机的串口,利用RS232 串口通信协议将数值发送到上位机的PC 里已经搭建好的LabVIEW 界面中,显示温度数值并显示实时温度曲线,且记录接收到的数值,在已搭建好的LabVIEW 界面中调整温度的上下限,若检测到的温度超出上下限范围,界面会响起警报(警报系统设置在上位机是为了减少硬件部分的设计,便捷又易于使用)。

3 硬件设计

由于设计的软件和硬件结合性较强,分为上位机和下位机两大部分,上位机主要由软件LabVIEW 2011 构成人机界面,下位机主要由单片机和温度传感器、显示模块组成等硬件模块组成。根据设计的需求,考虑到单片机方面只用到最基本的功能,因此选择AT89S51 型号的单片机;又考虑到设计需采集0~100 ℃范围的温度,结合到抗干扰性、硬件开销等方面,在设计中采用型号为DS18B20 的温度传感器;在显示方面,为了能让使用者直观的读取实时温度,采用LCD1602 字符型液晶。

3.1 单片机主系统设计

下位机的硬件设计主要包括单片机AT89S51 模块、温度传感器DS18B20 模块和LCD1602 液晶显示模块。

3.1.1 AT89S51 的主要特性

AT89S51 是一个低功耗,高性能的CMOS 8 位单片机,性价比极高,片内含4 K Bytes ISP(In-system programmable)的可反复擦写1000 次的Flash 只读程序存储器,器件采用ATMEL 公司的高密度、非易失性存储技术制造,兼容标准MCS-51 指令系统及80C51引脚结构,芯片内集成通用8 位中央处理器和ISP Flash 存储单元,AT89S51 在众多嵌入式控制应用系统中得到广泛应用。

根据设计值设计到单片机最基本的功能,因此,在单片机的使用中也只使用到部分引脚,包括复位引脚、晶振引脚、TXD、RXD、P0 口、P2 口等引脚。其中P0 口将接上一个4.7 K 的上拉排阻,然后接到LCD1602 中,方便LCD1602 液晶显示模块的显示,而LCD1602 上的RW、RS 和E 引脚将接在单片机的P2 口上协助显示。单片机的引脚连接见表1。

表1 单片机主要引脚的连接

3.1.2 AT89S51 的最小系统

单片机的最小系统的设计是单片机应用设计的重要环节。AT89S51 内部有4 kB 的闪烁存储器,芯片本身就是一个最小系统。在满足系统的性能要求下的情况下,可优先考虑采用此种方案。用AT89S51 构成最小应用系统时,只需将单片机接上时钟电路及复位电路即可。

3.2 DS18B20 温度传感器

设计中选用温度传感器DS18B20 作为下位机采集部分,它是常用的温度传感器,具有体积小、性价比高、抗干扰能力强、精度高等特点,符合设计的功能需求和宗旨。

数字温度计DS18B20 是美国DALLAS 半导体公司推出的一种改进型智能温度传感器,DS18B20 的通信使用单总线,只需要一个数据线(和地线)与中央微处理器通信。它用于测量温度的范围-55~125 ℃,当被测温度范围-10~85 ℃时可以精确到±0.5 ℃以上。DS18B20 也可以由外部电源进行供电,电源复位温度值寄存器是85 ℃。

DS18B20 与传统的热敏电阻等测温元件相比,具有线路简单,体积小等特点,能直接读出被测温度,且输出温度数据进行校准摄氏度输出。因此,用它来组成一个测温系统,线路简单,且一根通信线上可连接多个相同数字温度计,十分便捷。设计中,DS18B20 工作在外部电源供电模式下,DS18B20 工作电源由VDD 引脚接入+5 V,GND 引脚接地,将DS18B20 的数据输入/输出端DQ 引脚与单片机AT89S51 的P2.0 端口相连,并将温度值通过P0 端口显示出来。在此方式下,DS18B20 工作稳定可靠,抗干扰能力强,而且电路也比较简单。

3.3 LCD1602 显示电路

LCD1602 也叫1602 字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。设计初衷测量温度范围为0~100 ℃,且显示精度要达到1 ℃,考虑到成本,设计中采用LCD1602 构成,用于显示测量到的温度值。

综上所述设计采用电路如图2 所示。

图2 系统设计电路

4 软件设计

4.1 下位机的软件设计

4.1.1 系统主程序

主程序的主要功能是读出并处理DS18B20 的测量的温度值,并进行温度的实时显示和向上位机发送数据,其程序流程如图3 所示。

图3 系统主程序流程

在设计中为了实现每秒采集一次温度值并发送一次温度与上位机通信,采用单片机的定时器中断和串行中断。向CPU 发出中断请求的来源为中断源。51 单片机的中断源有两类:外部中断源和内部中断源。

设计中定时器中断初值的计算方法如下:定时器一旦启动,它便在原来的数值上开始加1 计数,若在程序开始时,没有设置TH0 和TL0,它们的默认值都是0,假使时钟频率为12 MHz,12 个时钟周期为一个机器周期,此机器周期为1 μs,计满TH0 和TL0 就需要65 535 个数,再来一个脉冲计数器溢出,随即向CPU 申请中断。因此溢出一次共需要65 536 μs,约等于65.5 ms,如果要定时50 ms,需要先给TH0 和TL0 装一个初值,在这个初值的基础上计数50 000 个后,定时器溢出,此时刚好为50 ms。要计50 000 个数时,TH0和TL0 中要记入的总数为65 536-50 000=15 536,因为51 单片机为8 位单片机故TH0 中装入的初值应为15 536/256=60,TL0 应装入的初值应为15 536%256=176。

综上可以得出如下结论:当使用定时器的方式1 时,设机器周期为T,定时器产生一次中断的时间为t,需要计数的个数为N=t/T,装入THX 和TLX 中的数分别为:THX=(65 536-N)/256,TLX=(65 536-N)%/256。

4.1.2 系统通信设计

上位机和下位机采用RS232 串行总线数据通信实现两者之间数据传输,串口通信的程序流程如图4 所示。波特率与定时器初值相关,需将他们设定在合适的值上。计算方式如下:

图4 串口通信流程

设计采用串行口工作方式。波特率设定为9600 bps,采用定时器1 的工作方式2,以下为初值的计算过程。

设所求的数为X,可推出定时器每计256-X 个数溢出一次,计1个数的时间为=1 us,定时器溢出一次的时间为(256-X)×1 us,T1 的溢出率为它的倒数,将已知的数带入公式后得9600=,求得X=253,转化为16 进制为0XFD。

4.1.3 温度采集子程序

由于DS18B20 采用单总线协议方式,即在同一根数据线上实现数据双向传输,而对AT89S51 来说,硬件上不支持单总线协议,因此,必须模拟单总线的协议时序来完成对DS18B20 芯片的访问。

因设计需求,采集数据的精度达1 ℃,故系统软件设计中对DS18B20 将采取其默认分辨率,也即12 位分辨率。根据对DS18B20 的分析可知,读取温度子程序流程如图5 所示。

图5 温度采集子程序

4.2 上位机的软件设计

4.2.1 上位机程序

上位机系统应用LabVIEW 进行设计。LabVIEW 具有高性能无缝集成扩展性强及开发时间短等优点其用于系统的开发测试及实现可减少产品投放市场的时间,在汽车和航天航空技等工程应用领域深受用户的欢迎。

VISA(Virtual Instrument Software Architecture,虚拟仪器软件结构体系)是用来与其他仪器总线进行通信的高级应用编程接口,VISA 子模板主要有基本节点指定接口事件处理高层寄存器读写低层寄存器读写等部分。LabVIEW 中所有的VISA 节点都位于程序框图中放置这些节点的具体操作为:Functions→All Functions→Instrument I/O→VISA。上位机系统的程序流程如图6 所示。

图6 上位机程序流程

4.2.2 上位机前面板

根据设计的要求,在针对人机直接接触界面的设计时,考虑到人性化、直观化以及易操作性,该面板包括温度数据接收储存部分、温度波形显示部分、温度计、温度上下限调节部分、警报部分、参数选择部分、实时时间显示部分、启动和退出部分,前面板的设计如7 图所示。

图7 上位机前面板

设计的前面板实现要求的基本功能,显示温度数值并记录温度曲线图,上下限的选择,并给出各种参数的选择,串口选择分为COM1 和COM2,波特率的值为4800、9600、12 000 等可供选择,数据位数、校验位数、停止位数等。此外,该前面板的设计还囊括实时时间的显示,可以方便使用者准确掌握时间。

5 仿真

应用到的仿真软件主要是Keil uVision4 和Proteus 以及虚拟串口和串口调试助手、LabVIEW,将这几个软件分别或同时运行对进行仿真。

5.1 正确连线电路图

打开仿真软件Proteus,按方案设计整体电路图,并正确连线,然后把生成的.hex 文件加载到AT89S51 中启动运行,查看运行结果。运行仿真后的结果如图8 所示。

图8 仿真运行后的电路

由于Proteus 应用软件中没有AT89S51 芯片,所以此处用AT89C51 仿真测试。通过以上的仿真测试结果可知,系统温度数据的获取以及显示电路没有任何的错误,基本符合要求,且具有现实可能性。

5.2 虚拟串口以及串口调试助手

下机位在Proteus 中仿真成功,之后下位机要将采集到的温度数据通过串口发送到上位机,所以,在仿真中需要将上下位机联系起来。因此,现在要通过虚拟串口及串口调试助手让上下位机联系起来,使设计实现其已预定好的功能,通过在PC 机上建立虚拟串口(Virtual Serial Port Driver,简称虚拟串口)检测下位机发送的数据量,使用串口调试助手协助调试数据的由下机位到上机位的传输。虚拟串口是给电脑上模拟安装一个串口,该串口可当实物串口使用,上面会显示接收和发送的字符数量,且可以显示哪个软件打开哪个串口,可直观的显示串口打开位置。接下来打开串口调试助手,在这里串口调试助手会帮助显示串口调试的结果,接收到或发送数据,并使其显示出来。虚拟串口和串口调试助手的演示如图9 所示。

图9 虚拟串口以及串口调试助手

5.3 LabVIEW 软件仿真

LabVIEW 软件作为上位机,起到接收数据、储存、显示并报警的功能,可以直观的检测实时温度并记录数据,在仿真的过程中,LabVIEW 的仿真如图10 所示。

图10 上机位仿真演示

6 结论与展望

在相关领域研究的基础之上,针对更加人性化的人机交流,介绍一种温度系统采集系统设计,该系统以AT89S51 和DS18B20实现对温度的采集和处理,同时使用LCD1602 液晶显示器搭建显示电路,显示当前温度。与传统温度计相比,功耗低,可以自动采集温度,测量范围广,读数方便,结构小巧,使用方便。

在电子产业发展迅速的今天,信息化是制造业工厂的必然趋势,可以在设计的基础上进行系统功能的改进与扩展,实现更多的功能,满足更多制造业设备的需求。可拓展温度采集功能,设定温度采集的范围,更好地应用系统的报警功能,对环境或设备温度起到检测、监测的功能。此外,随着“智慧工厂”、“5G+”、“大数据”等技术的流行,该系统也可广泛应用于其中,系统中还可加入无线通信模块及存储模块,实时获得设备温度数据,形成大数据,留存记录,以便对设备问题进行分析,增强系统功能。

猜你喜欢
温度传感器上位串口
气象用温度传感器检定结果的测量不确定度评定与应用
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
使用冗余测量修正动态温场测量结果
基于EM9000工控板高性能双串口通信模型设计与实现
温度传感器DS18B20在温度计设计中的应用
XTR105电流变送器在温度传感器中的应用
特斯拉 风云之老阿姨上位
船舶电子设备串口数据的软件共享方法
基于ZigBee和VC上位机的教室智能监测管理系统
CSerialPort 类分析及漏洞的修正