摘要:为了解决现有温度监控需要的仪表数量多,组网困难的问题,设计了一种智能多路温度巡检仪。使用STC15F2K60S2作为核心处理器,巡回检测16路温度传感器。仪表具有多种类型输入功能,可与多种类型传感器、变送器配合使用。具有测量显示、超限报警控制、数据采集记录及RS 485通信功能,方便组成监控网络,大大减少了测量仪表的数量。方案采用多项创新技术,经实际测试具有测控精确稳定和抗干扰能力强等优点。
0 引言
随着计算机、微电子技术的迅猛发展,单片机由于其集成度高、功能强、体积小、抗干扰能力等优点广泛应用于工业控制领域。测量仪器仪表也在发生着翻天覆地的变化,目前智能仪器仪表设计时无一不采用单片机。温度测控在工业生产领域应用非常广泛,而传统的温度检测仪一般只能单点检测且只有显示功能。
在一些作业半径大,测点分散的工业场合,就需要由一种多点巡回检测,集中管理的测量仪表,能够实现报警、远传、控制、数据记录等功能,自动运行无需人为干预。针对这种需求,本文设计了一种智能多路温度巡检仪,采用Pt100铂电阻作为温度传感器巡回检测16路温度,可设报警限值,具有报警信号常开常闭接点输出,支持RS 485通信。仪表前面板具有数码管、LED灯、按键人机接口,操作简单,便于维护。
1 总体方案设计
系统方案如图1所示。
以STC宏晶科技的STC15F2K60S2为主控芯片。该单片机具有以下特点:内部集成高精度RC时钟,且从5~35MHz可选;内部集成复位电路,8级复位门槛电压可选;内部集成E2PROM,用于保存用户设置参数及标校参数;可编程时钟输出,对系统时钟1~65 536级分频输出。其高速度、高集成度的特点非常适合本设计的需要。
在本系统中CPU主要是对温度值进行巡回检测、数据计算、数据显示、同时检测报警状态、键盘输入及通信数据并做出相应的处理。外围有温度传感器信号处理电路、人机接口、通信接口、报警输出及供电电源电路。其中温度传感器信号处理电路由转换电路、滤波电路、多路模拟开关电路、放大电路、A/D转换电路组成,是影响整台仪器性能的关键。
2 Pt100测量原理
Pt100铂电阻是一种电阻值随环境温度变化而改变的温度传感器,因其具有稳定性好、精度高、测温范围大等优点,而被广泛应用。
测量仪表连接的温度传感器由铂电阻和连接导线组成。在精确测量时连接导线的电阻对测量结果的影响不容忽视。工业上Pt100一般都采用三线制接法,在铂电阻-端连接-根引线,另一端连接两根引线,且三线长度、线径、材质一致,这样就保证了三线的电阻相等为r。这种方式通常与补偿电路配套使用,以消除导线电阻引起测量误差。本文所使用三线制电阻补偿法其等效原理图如图2所示。其中Rt为Pt100电阻,Rv为分压电阻,r为导线等效电阻,VR为Pt100基准电压同时也是A/D转换器的参考电压。由欧姆定律可得基本关系式:
从式(2)可以看出:在已知RV和VR的情况下,只需测出V1和V2就可得出Pt100电阻Rt,而与导线电阻r没有关系,从而消除了导线电阻的影响。
3 硬件电路设计
3.1 电源电路
本文设计基于TOP414的开关电源,TOP414是集脉冲信号控制电路和功率开关器件MOSEFT于一体的电源控制芯片。具有高集成度、简单外围电路等特点,能组成高效率无工频变压器的隔离式开关电源。由图3可知,输入电源通过TOP414开关和高频变压器变压,再经过整流、电容滤波和电感平波,输出直流电。高频变压器二次侧有3个绕组,2路输出功率,另一路为反馈回路提供电源。反馈回路从输出端进行电压取样,通过光耦来控制脉冲控制开关的通断,调节输出功率。供电电源电路分别向系统电路提供5 V电源,向报警及通信电路提供12 V电源,且两路输出电源相互隔离。由于系统对12 V电源精度要求不高,所以反馈回路从5 V输出端取样,12 V电源通过线圈匝数比获得。
3.2 Pt100信号选择及放大电路
巡检仪信号转换电路由图4中的17个信号检测电路组成(由于版面所限,图中仅绘出第1个、第2个和第17个),实现将16路Pt100温度传感器输出的电阻信号转换为电压信号。其中第1路没有外接Pt100传感器,设置它的目的是为系统提供零电压和参考电压,用于弥补运算放大器放大倍数的误差,余下16个电路的原理完全一致。
每路产生2个电压信号分别由2个16×1多路切换器CD4067实现分时选通,2个CD4067的公共端和零电压、参考电压再由模拟开关CD4051选通。8位数据锁存器74LS273用于I/O口的扩展,控制多路开关的地址码。
电压信号放大采用低零漂移的运算放大器OP07,为了适应不同的输入信号,OP07和模拟开关CD4051构成一个可编程增益放大器。增益控制由CD4051模拟开关和电阻构成,通过对CD4051地址码的控制实现对输入信号不同的放大倍数。为了有效地抑制共模干扰运放采用双电源供电,-5 V发生电路参见图5。
3.3 A/D数据转换电路
TLC7135是流行的双积分A/D转换器,其具有4位半的精度(相当于14位A/D)、自动校零、自动极性输出、单基准电压、动态字位扫描BCD码输出、抗干扰力强,稳定性好等特点。美中不足的是其转换精度依赖于积分时间,因此转换速度较低。尽管现在主流的是逐次逼近型A/D转换器,但高精度(>12位)的逐次逼近型A/D价格很高。TLC7135凭借其价格低精度高的优势,现今仍为广大设计者所青睐。TCL7135使用资料较多,其工作原理在此就不做过多讲述。
TLC7135同样采用双电源供电,为最大限度利用单片机内部资源,硬件上利用STC15F2K60S2可编程的时钟输出去推动二极管来产生负电压。省去了价格较高的专用IC。工作原理如图5所示,单片机8 MHz系统时钟经64分频在P3.4脚输出125 kHz时钟信号,经C22反相推动二极管D6,D7产生负电压。由于二极管压降的缘故,实际得到的负压约为-4.3 V。由于本系统中的信号都是单级电压对负电压值要求并不十分严格,此负压方案产生的负压是完全可以胜任的。
单片机和TLC7135的接口有并行和串行两种方式。本设计单片机对TLC7135采用串行数据采集,该方式结构简单、占用单片机I/O资源少。STC15F2K60S2的P3.2(INT0)引脚接TLC7135的BUSY引脚,用来接收A/D转换状态输出。单片机的P3.0引脚接TLC7135的RUN/HOLD引脚,用来启动A/D转换。单片机的P3.1脚接TLC7135的POLARITTY引脚,用来判断输入电压极性。TLC7135的时钟同样利用STC15F2K60S2的可编程时钟输出功能获得,8 MHz系统时钟经32分频在P3.5脚输出250 kHz的脉冲信号,接至ICL7135的时钟输入管脚。
由图6可知,TLC7135的A/D转换周期为40 002个时钟周期。串行接法是通过计脉冲数的方法来获得测量结果的,通过设置单片机定时计数器时钟与TLC7135时钟频率相同,设置INT0外部中断为边沿触发,进入被测信号积分阶段时,TLC7135的BUSY引脚变为高电平,触发单片机中断,定时计数器立即启动计数,在A/D转换的基准电压反积分阶段结束时,TLC7135的BUSY端变为低电平,定时计数器停止计数,读出定时计数器的计数结果,即为被测电压积分阶段和基准电压反积分阶段所需的时钟脉冲数的总和。由于被测电压积分阶段的时间是固定的,为10 000个时钟脉冲,用定时计数器的计数结果减去输入积分阶段的计数值10 000,即得到基准电压反积分阶段的计数值N。反积分阶段的计数脉冲数与输入电压成线性关系,满量程时对应的有效计数脉冲为20 000,可以得以下公式:
N=VIN/VMAX×20 000 (3)
式中:VMAX为TLC7135的满量程电压,由于TLC7135满量程为2倍参考电压即VMAX=2VREF,基准电压反积分阶段的脉冲数和输入电压满足关系式:
N=VIN/VREF×10 000 (4)
经过简单变换可得输入电压的计算公式:
VIN=N/10 000×VREF (5)
式(5)中VREF是利用TL431产生的2.5 V基准电压,单片机计数得到N后,就可计算出输入电压。
3.4 人机接口电路
在仪表的前面板上设计有数码管,LED灯,按键,用于数据显示、状态指示及参数设置。为了尽量减少单片机I/O资源开销,采用了动态刷新显示方法。单片机控制点亮一个数码管,然后关掉,再点亮第二个,4个数码管周而复始地轮流点亮,一个轮流周期每个数码管的点亮时间是极为短暂的,由于人的视觉停留及发光管的余辉效应,尽管实际上各个数码管并非同时点亮,但只要刷新的速度足够快,给人的视觉就是一组稳定的显示数据,不会有闪烁感。
如图7所示,4位数码管各有8个显示段,每位数码管相同的段连在一起,由P0端口统一进行段驱动,而各个数码管的共阳极则由另一个I/O进行驱动。P2.4用于驱动LED灯公共端,P2.5用于分时检测按键输入。驱动程序的设计思路是,P2.0-3端口控制三极管Q1,Q2,Q3,Q4轮流打开。例如P2.0输出低电平,三极管Q1导通,数码管DS1点亮,P0端口控制显示相应的数字,LED1状态如需点亮,P2.4输出低电平,否则输出高电平。同时检测P2.5端口输入,如为高电平说明按键S1被按下。为了严格地保证轮流周期和显示时间,可以在单片机定时器中断服务程序中进行动态显示和检测。
3.5 报警输出及通信电路设计
为了避免外联设备的浪涌冲击和噪声干扰,报警输出和通信电路与系统电路完全隔离,接地以及电路之间没有任何物理上的传导连接。继电器K1、K2用于某路温度超过设定的报警值时,输出机械接点信号,如可以连接声、光报警装置。RS 485通信接口可以将本仪表纳入到总线拓扑的RS 485网络中,以提高测量网络的集中监控能力。为了提高RS 485通信速度本设计采用了接收和发送自动转换的零延时电路。如图8所示,若发送为低电平,DE/RE为高电平,发送允许,此时由于D管脚接地,MAX1487芯片的输出端A、B产生表示低电平的差分信号。若发送高电平,DE/RE为低电平,MAX1487芯片的A、B端处于高阻态。此时靠电阻R32和R35的下拉和上拉作用,使总线上产生表示高电平的差分信号。由以上分析看出,在半双工传送数据的方式下,程序不必控制DE/RE,硬件完成接收和发送的转换。
4 软件设计
仪表整机软件主要由3部分组成,数据采集与温度计算程序、人机服务程序、通信程序。为了保证各子程序协调运行,需要通过中断机制实现。数据采集与温度计算程序在主循环里运行,人机服务在定时中断里完成,通信任务在串行通信中断服务程序中完成。
数据采集与温度计算程序要对16路温度进行循环采集,通过单片机P0端口对多路开关的地址引脚控制而实现通道选择。一共用了17路数据通道,第一路为零电压、参考电压,2~17路为16路温度电压信号。每次采集数据都要经过通道选择,A/D转换处理,温度计算等操作。
人机服务程序是实现仪器的显示及人工操作,由于数码管和LED指示灯采用动态刷新显示,为了保证动态刷新周期,人机服务程序安排在定时器中断里运行。
RS 485通信访问方式为主从方式,本仪表处于从机地位。仪表收到主机发来的数据帧后,根据MODBUS RTU通信协议将主机要求的信息发送到RS 485网络中,主机可以读取16路温度、报警设定数据,以及重新设置相关参数。
5 结语
本文基于STC15F2K60S2实现了多路温度传感器测量,系统设计紧凑、成本低、功能强大,且适用范围非常广泛。每个通道通过参数设置及变换电路稍加更改即可接受不同的输入类型,如热电偶、热电阻、线性电压、线性电流、线性电阻,可与各种传感器、变送器配合使用,实现对温度,压力、液位等物理量测量,为工业系统集成提供了一个很好的硬件平台。