摘要:基于实际应用中许多场合对温度高精度测量的需求,利用ATF1504芯片与单片机zui小系统,采用等精度频率测量技术,设计了一款高精度
数字温度计。该方案采用ATF1504芯片作为可编程逻辑器件,以高灵敏度负温度系数热敏电阻为温度传感器。利用ATF1504芯片与单片机配合完成待测信号频率的测量,从而实现温度的测量。实验数据表明该温度计的测温相对误差小于0.3%。
温度是人们日常生活中常常需要测量和控制的一个物理量。传统的温度计有反应速度慢、读数麻烦、测量精度不高、误差大等缺点,而在某些特定的场合,器材设备对温度的要求*,设计一种高精度的温度计就显得十分有意义。设计的高精度温度计有着线性优良、性能稳定、灵敏度高、使用方便、软硬件结构实现了模块化、电路简单等优点。
1、设计方案
热敏电阻是对温度变化非常敏感的电阻元件,它在测温技术、无线电技术、自动化和遥控等方面都得到广泛的应用。热敏电阻能够将环境温度的变化转化为电阻自身阻值的变化,它将温度的变化转换为连续的电信号的变化,再由外电路把该电信号转化成单片机可处理的脉冲(频率)信号,由单片机来直接处理。热敏电阻构成的555振荡电路能够实现由电阻到频率的转换功能,建立起由温度到电阻值再到频率的对应关系。处理器对频率信号的处理精度直接影响着温度测量的精度,采用等精度测频方案能够满足精度的要求,设计中采用查表法和插值法来建立频率与温度的转换关系。
设计的数字温度计主要由下面4部分组成:温度传感部分、等精度测频部分、频率温度转换部分、数据缓存及显示部分,原理图如图1所示。设计中用到的主要模块有:1)单片机zui小系统。单片机zui小系统或者称为zui小应用系统,是指用zui少的元件组成的单片机可以工作的系统。单片机zui小系统一般应该包括:单片机、晶振电路、复位电路。2)CPLD(ComplexProgrammableLogicDevice)。复杂可编程逻辑器件。其具有编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具*、设计制造成本低、对设计者的硬件经验要求低、标准产品无需测试、保密性强、价格大众化等特点,可实现较大规模的电路设计,因此被广泛应用于产品的原型设计和产品生产之中。CPLD内部结构为“与或阵列”,该结构来自于典型的PAL、GAL器件的结构。任意一个组合逻辑都可以用“与-或”表达式来描述,所以该“与或阵列”结构能实现大量的组合逻辑功能。CPLDzui基本的单元是宏单元。一个宏单元包含一个寄存器(使用多达16个乘积项作为其输入)及其他有用特性。因为每个宏单元用了16个乘积项,因此设计人员可部署大量的组合逻辑而不用增加额外的路径。单片机与CPLD之间的三总线结构,如图2所示。
2、硬件部分设计
2.1温度与频率转换部分的设计
由热敏电阻与555定时器构成多谐振荡电路如图3所示,该电路能够实现由温度变化到电阻变化再到频率变化的变换。
555振荡电路频率:
其中Rn是热敏电阻NTC,C为放电电容,RN是在额定温度TN(K)时的NTC热敏电阻阻值,T规定温度(K),B是NTC热敏电阻的材料常数。由以上两个公式可将建立起由温度到电阻值,再由电阻值到频率的换算关系,实现频率到温度的转换:
1)555电路的振荡频率:f=1/((R1+2RT1)C1ln2),即频率与电阻值的关系;
2)半导体热敏电阻NTC的特性曲线(温度与电阻的关系)。在一定温度范围内,半导体材料的电阻RT和温度T的关系可表示为:
其中常数a不仅与半导体材料的性质有关而且与它的尺寸均有关,而常数b仅与材料的性质有关,常数a和b可通过实验方法测得,计算出a和b后,就可以根据公式(3)计算出温度值。因为NTC的阻值和温度之间是指数关系,以单片机为处理器的系统计算这一方程效率很低,因此本文使用查表法与插值法计算温度,提高了测量的效率,简化了计算的复杂性。假设测温范围为-10~50,可先将-10~50分为60段,每一度的气温对应一段频率值。然后分别将NE555电路在-10°,-9°,-8°……48°,49°,50°时的输出频率实际测试出来并存储在单片机的ROM中,建立时钟频率与温度的对应表。而在每一个度的温度段内近似认为频率与温度成线性关系在实际转换过程中,首先根据测量的时钟频率确定其所在的温度段,再按线性方程求出此频率所对应的温度值,由此实现由频率到温度的转换。
2.2等精度测频电路的实现
等精度测频的主要思想:利用两个计数器在同一时间段内同时对两个时钟信号进行计数,由已知时钟的频率和两个计数器的计数值可得出待测信号的频率。具体如图4所示,首先设置时钟闸门信号的宽度,在这段时间内,计数器1和计数器2同时对两个时钟信号进行计数,计数器1所计的时钟信号的频率为已知的基准时钟,其频率为Fb。计数器2所计的时钟信号为待测的时钟信号,假设在等时间内计数器1计数器2计数数值分别为Nb和Nx。由两计数器在同时间段内计数,有以下关系式:
等精度测频功能的实现需要单片机与CPLD的协调合作实现。计数器1用单片机的定时器1实现,计数器2用CPLD来配置。单片机部分的主要作用是:负责控制外部计数器和内部定时器计数器的开启与关闭;外部计数器和内部定时器计数器的数据的读取;处理以及数据输出缓存。测量开始,单片机首先发出清零信号,对外部CPLD计数器清零,然后将内部定时器清零,配置成外部时钟控制方式,然后发出计数启动信号,随后进入等精度频率测量计数模式,单片机通过查询计数器,判断计数时间,该计数时间必须小于外部32bit计数器溢出时间,时间一到,单片机发出停止计数信号,查询引脚P3.2,确认计数停止,读回外部计数结果和内部计数器计数结果,假设分别为N1和N2,定时器计数时间间隔为T1,那么被测信号的频率F=(N1/N2)T1,将计算出的数据输送到频率温度转化模块等待数据转换。
CPLD部分主要完成对被测信号的测量计数和总线设计。由于所用CPLD芯片内资源较少,其内部只能设置一个32位计数器。这部分在Max+plusII环境下完成电路的硬件设计与仿真,采用原理图输入。硬件设计共包括4个部分:输入、输出、计数器和总线接口部分。总体设计结构如图5所示,其中mcu_ctrl模块为总线接口模块,frequency模块为测量计数模块。
3、软件部分设计
源程序流程图如图6所示。
主要程序分析(频率温度转换部分):
计算单片机的计数并根据基准时钟的脉冲数目,时钟周期由被测信号脉冲数目计算出待测信号频率。
4、实验结果
通过与基准温度对比的方法对设计的温度计精度进行验证。首先使用精度较高的温度计测得实际温度作为基准温度,然后利用设计好的数字温度计测量实际温度与基准温度进行对比,测量结果如表1所示。通过对比测试结果,发现设计的数字温度计测量的温度与基准温度相差很小,误差小于0.1℃,相对误差小于0.3%,达到了设计的精度要求。
总之,通过利用单片机与CPLD的配合完成频率的测量,实现了等精度测频功能。利用等精度测频功能确保了测量温度数据处理的性,使设计的温度计的精度达到实际应用的要求。在系统中等精度频率测量模块采用8位51单片机定时器作为基准信号的计数器,由于该基准信号频率较低,对精度有一定影响。如果采用更高频率基准信号,测频精度还可提高,从而提高测量温度的精度。