带DAC输出的多通道温度采集模块的设计
扫描二维码
随时随地手机看文章
摘要:设计一种低成本高精度的通用模拟采集模块。采用热电阻实时采集多点工控场合的温度信息,通过电子开关将多路测温电路与AD芯片相连,简化电路结构。基于Modbus通信协议,通过RS 485网路与主机通信,保证模块的通用性和实时性。并设计了一种改进的高准确度PWM转DAC电路。整个系统结构简单,工作可靠。
关键词:Modbus;温度采集;PWM;DAC
在化工产业,机械加工,工业制造等领域经常要考虑到温度对测量或加工的影响,因此对温度的测量和控制就显得尤为重要。特别在一些环境恶劣、干扰较强的使用场合,温度采集装置的稳定是实现测量与控制的首要环节。本文针对上述背景,设计了通用多通道检测模块。
1 系统结构和工作原理
模块采用单片机ATmega48为控制核心,多路恒流源测温电路通过电子开关CD4051与13位A/D转换器MCP3301相连,通过单片机控制3/8译码器74HC138进行通道选择;模块通过基于Modbus通信协议的RS 485接口与主机通信;并具有一路PWM转DAC电路。模块适用于与PLC等主机连接,各通道实时检测数据保存于各通道的保持寄存器中,当接收到主机读取命令时将数据发送。整体结构如图1所示。
2 系统硬件电路设计
系统主要硬件部分控制电路:MCU、温度测量电路、PWM转DAC电路、电源电路和RS 485通信电路。为了避免外连的通信电路影响内部测量电路,提高抗干扰性能,将通信接口电路通过光藕隔离,且工作电源具有两路隔离电源,本文采用开关电源,具有效率高、重量轻和体积小的特点,并可兼容交、直流24 V供电。本文在硬件部分主要介绍恒流源热电阻测温电路以及PWM输入的DAC电路。
2.1 热电阻温度测量电路
本模块的热电阻选用铂电阻Pt100作为温度传感器。在-50~+600℃中温范围内,与其他热敏元件相比,铂电阻温度传感器测量准确度高、测量范围大、稳定性好、抗干扰能力较强。
铂电阻测温电路主要有两种:桥式测温电路和恒流源式测温电路。
桥式测温电路主要是利用调整电桥的电阻参数,抵消电桥两端的电压波动,以突出热电阻变化引起的电压,当采用三线制时可以消除引线误差,但存在非线性误差和电路相对复杂等问题。
恒流源式测温电路利用稳定电压给热电阻以恒定电路流,保证热电阻上的电压和其阻值变化成线性关系的。在保证基准电压源稳定的情况下,可以简化电路结构,另外根据热电阻和输出电压线性关系,更加有利于温度的计算和校正。恒流源式测温的基本应用电路如图2所示。
图2中虚框部分即为恒流源电路。运放U1A将输入的基准电压VREF转换为恒流源,激励热电阻RT。热电阻两端电压,经过U1B运放组成的双端输入单端输出放大电路,将信号放大10倍,即输出期望的检测电压信号。该输出信号通过电子开关与A/D转换芯片相连。
电子开关的通路电阻较小,仅为几百欧姆,而A/D测量电路一般呈现高阻态,其带来的误差可以忽略。
检测精度和模数转换芯片(A/D)的分辨位数有很大关系,一般单片机内带的A/D位数分辨率较低(ATmega48内含10位A/D),不适合精确测量,而高分辨率的A/D芯片价格昂贵。本文兼顾了性能价格比,采用了外扩一片低成本的13位A/D芯片MCP3301。通过改进软硬件设计,实际测量结果证明可以保证误差不超过0.5%。
2.2 PWM转DAC电路
在电子和自动化技术的应用中,也经常需要提供模拟输出,如变送器和控制器类仪器,经常需要输出0~10 V,0~20 mA(或4~20 mA)的直流信号。高精度的数模转换器(DAC)芯片或集成了DAC的单片机价格昂贵。应用单片机的PWM输出,经过简单的变换电路实现DAC,可以大大降低电子设备的成本。
通过一个低通滤波器就可以把PWM调制的数模转换信号解调出来,实现从PWM到DAC的转换ATmega48具有16位定时器的PWM输出功能,实现的DAC电路输出精度基本满足一般的工业控制场合。另外在一些环境恶劣、干扰较强的场合,模拟输出容易受到干扰,本文通过使用恒流方式驱动电路来提高DAC电路的负载和抗干扰能力。具体原理图如图3所示。
图3中单片机输出的PWM电压,经过基准电源VREF和开关管T1组成的整形电路进行整形,在A点的输出波形为理想的PWM波形,幅值由基准电源的准确度得到保证,再经过两级阻容滤波和一级跟随放大器,在B点得到直流分量,即MCU输出的调制PWM波在B点得到解调,实现了DAC功能。可得:
一般PWM转DAC电路到此已经完成,本文为了保证更高精度和电路更强的负载能力,模块使用了恒流输出的驱动电路。由于运放U2B的C点和D点电位相等,可得:
采用三极管T2提高输出驱动能力,负载RL的电流和流过电阻R9的电流相等,可得:
由式(3)可以看出无论负载电阻RL的值如何改变,并不影响DAC输出的电流值,这样设计的好处是可以方便地更改输出电阻RL,保证了模拟输出量值的准确度,提高了负载能力。
3 系统软件设计
系统的软件主要由温度测量程序和Modbus通信中断程序组成。
测温程序主要负责温度采集,主要工作在于建立热电阻温度和电阻值的分度表,并判断每路检测结果是否出现温度是否异常,是则重新测量。正确的测量结果将保存于保持寄存器,等待上位机读取。温度测量程序流程图如图4所示。
当模块接受到主机的读取命令时,则进入通信中断程序。Modbus协议是应用于工业控制上的一种通用通信协议。主要有两种通信模式:ASCII和RTU模式。由于在同样的波特率下,RTU比ASCII能够传送更多的数据,因此采用RTU模式来实现模块的MoSbus通信。它的消息帧格式主要有地址、功能码、数据、校验码构成。Modbus协议的通信中断程序流程图如5所示。
4 结语
本模块采用了AVR单片机为控制核心,采用外扩一片低成本的13位A/D芯片,通过电子开关切换实现多路测温电路。设计了一种PWM转DAC电路。基于Modbus通信协议,通过RS 485网路与主机通信。结构简单,准确度高,通用性好。实际使用中,在高温和强干扰环境下,模块仍能正常工作。