一个典型的单片机控制的测温系统,它由三大部分组成
(1)测量放大电路;
(2)A/D转换电路;
(3)显示电路。它广泛应用于发电厂、化工厂的测温及温度控制系统中。
1、硬件设计
本系统使用镍铬—镍硅热电偶,被测温度范围为0~655℃,冷端补偿采用补偿电桥法,采用不平衡电桥产生的电势来补偿热电偶因冷端温度变化而引起的热电势变化值。不平衡电桥由电阻R1、R2、R3(锰铜丝绕制)、Rcu(铜丝绕制)四桥臂和桥路稳压源组成,串联在热电偶回路中。Rcu与热电偶冷端同处于±0℃,而R1=R2=R3=1Ω,桥路电源电压为4V,由稳压电源供电,Rs为限流电阻,其阻值因热电偶不同而不同,电桥通常取在20℃时平衡,这时电桥的四个桥臂电阻R1=R2=R3=Rcu,a、b端无输出。当冷端温度偏离20℃时,例如升高时,Rcu增大,而热电偶的热电势却随着冷端温度的升高而减小。Uab与热电势减小量相等,Uab与热电势迭加后输出电势则保持不变,从而达到了冷端补偿的自动完成。
(2) 测量放大电路
实际电路中,从热电偶输出的信号最多不过几十毫伏(<30mV),且其中包含工频、静电和磁偶合等共模干扰,对这种电路放大就需要放大电路具有很高的共模抑制比以及高增益、低噪声和高输入阻抗,因此宜采用测量放大电路。测量放大器又称数据放大器、仪表放大器和桥路放大器,它的输入阻抗高,易于与各种信号源匹配,而它的输入失调电压和输入失调电流及输入偏置电流小,并且温漂较小。由于时间温漂小,因而测量放大器的稳定性好。由三运放组成测量放大器,差动输入端R1和R2分别接到A1和A2的同相端。输入阻抗很高,采用对称电路结构,而且被测信号直接加到输入端,从而保证了较强的抑制共模信号的能力。A3实际上是一差动跟随器,其增益近似为1。测量放大器的放大倍数为:AV=V0/(V2-V1),AV=Rf/R(1+(Rf1+Rf2)/RW)。在此电路中,只要运放A1和A2性能对称(主要指输入阻抗和电压增益),其漂移将大大减小,具有高输入阻抗和共模抑制比,对微小的差模电压很敏感,适宜于测量远距离传输过来的信号,因而十分易于与微小输出的传感器配合使用。RW是用来调整放大倍数的外接电阻,在此用多圈电位器。
(3) A/D(模数)转换电路
经过测量放大器放大后的电压信号,其电压范围为0~5V,此信号为模拟信号,计算机无法接受,故必须进行A/D转换。实际电路中,选用ICL7109芯片。ICL7109是一种高精度、低噪声、低漂移、价格低廉的双积分型12位A/D转换器。由于目前12位逐次逼近式A/D转换器价格较高,因此在要求速度不太高的场合,如用于称重测压力、测温度等各种传感器信号的高精度测量系统中时,可采用廉价的双积分式12位A/D转换器ICL7109。ICL7109主要有如下特性
(1)高精度(精确到1/212=1/4096);
(2)低噪声(典型值为15μVP-P);
(3)低漂移(<1μV/℃);
(4)高输入阻抗(典型值1012Ω);
(5)低功耗(<20mW);
(6)转换速度最快达30次/秒,当采用3.58MHz晶振作振源时,速度为7.5次/秒;
(7)片内带有振荡器,外部可接晶振或RC电路以组成不同频率的时钟电路;
(8)12位二进制输出,同时还有一位极性位和一位溢出位输出;
(9)输出与TTL兼容,以字节方式(分高低字节)三态输出,并且具有VART挂钩方式,可以用简单的并行或串行口接到微处理系统;
(10)可用RVNHOLD(运行/保持)和STATUS(状态)信号监视和控制转换定时;
(11)所有输入端都有抗静电保护电路。
ICL7109内部有一个14位
(12)位数据和一位极性、一位溢出)的锁存器和一个14位的三态输出寄存器,同时可以很方便地与各种微处理器直接连接,而无需外部加额外的锁存器。ICL7109有两种接口方式,一种是直接接口,另一种是挂钩接口。在直接接口方式中,当ICL7109转换结束时,由ST TUS发出转换结束指令到单片机,单片机对转换后的数据分高位字节和低位字节进行读数。在挂钩接口方式时,ICL7109提供工业标准的数据交换模式,适用于远距离的数据采集系统。ICL7109为40线双列直插式封装,各引脚功能参考相关文献。
(4) ICL7109与89C51的接口
本系统采用直接接口方式,7109的MODE端接地,使7109工作于直接输出方式。振荡器选择端(即OS端,24脚)接地,则7109的时钟振荡器以晶体振荡器工作,内部时钟等于58分频后的振荡器频率,外接晶体为6MHz,则时钟频率=6MHz/58=103kHz。积分时间=2048×时间周期=20ms,与50Hz电源周期相同。积分时间为电源周期的整数倍,可抑制50Hz的串模干扰。
在模拟输入信号较小时,如0~0.5伏时,自动调零电容可选比积分电容CINT大一倍,以减小噪声,CAZ的值越大,噪声越小,如果CINT选为0.15μF,则CAZ=2CINT=0.33μF。
由传感器传来的微弱信号经放大器放大后为0~5V,这时噪声的影响不是主要的,可把积分电容CINT选大一些,使CINT=2CAZ,选CINT=0.33μF,CAZ=0.15μF,通常CINT和CAZ可在0.1μF至1μF间选择。积分电阻RINT等于满度电压时对应的电阻值(当电流为20μA、输入电压=4.096V时,RINT=200kΩ),此时基准电压V+RI和V-RI之间为2V,由电阻R1、R3和电位器R2分压取得。
A/D转换正在进行时,STATUS引脚输出高电平,STATUS引脚降为低电平时,由P2.6输出低电平信号到ICL7109的HBEN,读高4位数据、极性和溢出位;由P2.7输出低电平信号到LBEN,读低8位数据。本系统中尽管CE/LOAD接地,RUN/HOLD接+5V,A/D转换连续进行,然而如果89C51不查询P1.0引脚,那么就不会给出HBEN、LBEN信号,A/D转换的结果不会出现在数据总线D0~D7上。不需要采集数据时,不会影响89C51的工作,因此这种方法可简化设计,节省硬件和软件。
(5)显示电路
采用3位LED数码管显示器,数码管的段控用P1口输出,位控由P3.0、P3.1、P3.2控制。7407是6位的驱动门,它是一个集电极开路门,当输入为“0”时输出为“0”;输入为“1”时输出断开,须接上位电路。共用两片7407,分别作为段控和位控的驱动。数码管选共阳极接法,当位控为“1”时,该数码管选通,动态显示用软件完成,节省硬件开销。硬件原理如图5-12所示。
2、软件设计
ICL模块:从A/D转换器读取结果的模块,它连续读3次,读出3个结果分别存放于内部30H~35H单元(双字节存放)。
WAVE数字滤波模块:它是将ICL模块输出的3个结果排序,取中间的数作为选用的测量值。此模块可以避免因电路偶然波动而引起的脉冲量的干扰,使显示数据平稳。
MODIFY模块:它是补偿热电偶冷端器25℃时的量值,相当于仪表中的零点调到25℃,称此模块为零点校正模块(此温度为室温)。
YA查表模块:它是核心模块。表格数据是按一定规律增长的数据(0~655℃),表格中电压
与温度值一对应,表格中的电压值是热电偶输出信号乘以放大倍数(150)以后的结果,变成十六进制数进行存放,低位在前,高位在后,因而它的数据地址可以代表温度值,用查找的内容的地址减去表格首地址0270H后再除以2(双字节存放)即为温度值。此数据为十六进制数还需进行二十进制转换(CLEAN),再送显示器显示。
查表法:采用二分查找法,DP先找对半值(MIDDLE)同转换数据比较(COMPARE),看属哪一半,修改表格上下限值,再进行对半比较,经过若干次后,直到找到数据为止,如果找不到,也就是说被转换数据介于表格中两相邻值之间,则再调用取近值模块(NEAR),选择与被转换数据接近的那个数据作为查找到的数据,然后调用温度值模块(FIND),整个查表模块就完成了从输入到输出的变化。
DIR:采用动态3位显示,显示时间由实验测定,各模块设计完成后要进行测试,尽量使其内聚性强、模块间耦合性强,并采用数据耦合。
二、恒温炉控制器
此恒温炉主要由液化气提供热源,热效率高,且取暖费用低廉。人工预设加热温度值后,控制器能准确地把温度控制在设定值的±1℃,现场使用方便。其主要性能指标为:温度可调范围在10~50℃之间;温度精度可精确到0.25℃;当环境中的氧含量低于某一值时,控制电路自动关闭加热炉,等待人工处理。
1、硬件设计
该控制器是以89C51为控制核心,以电磁阀为驱动部件,以及温度采样、热电偶信号采样、显示等电路组成。
89C51单片机,其指令系统与MCS-51完全兼容,且片内带有4KB的E2PROM,可以方便地构成一个最小系统。采样10位数字温度传感器,经CPU处理后,实时地显示在液晶屏上,热电偶电路时刻监视着是否有异常情况出现。
(1)数字温度采样电路
本系统中使用AD公司的产品AD7416,它由带隙温度传感器、10倍A/D转换器、温度寄存器、可设点比较器、故障排队计数器等组成。传感器将温度转换成电压,将由A/D转换器转换成10位数字量送温度值寄存器。A/D转换器的一次转换时约为400μs,精度可达0 25。
AD7416的接口方式为I2C/SMBUS,温度测量范围为-55~125℃之间,有节电工作方式,可用于电池供电。AD7416的地址由A0、A1、A2决定,地址格式为:1001A2A1A0R/W,最大可并联8片,本系统中只用了一片AD7416。因温度的惯性系数较大,可采用简便有效的移动平均值法、中值法、低通滤波法等进行软件滤波。实时采样和计算平均值,以平均值作为实际温度采样值。采样次数为8~16次。由于采用了数字温度传感器,完全打破了传统的设计模式,简化了设计方案,提高了系统的可靠性,方便地实现了标度变换。
(2)热电偶反馈电路
因为加热器使用液化气为燃料,加热过程要耗氧,可能引起环境中的氧含量不足,所以在加热器加热过程中要时刻监视液化气燃烧是否充分。实验证明,当氧含量正常时,燃气烧到热电偶输出的电压在20mV以上,而当氧含量低于某一值时,热电偶输出的电压会在12mV以下。通过如图5.3.4所示电路,把热电偶电压接入电路,以检测电压超过18mV时,电路输出端输出高电平,电压低于13mV时,电路输出端输出低电平。
(3)其他外围驱动电路
其功能主要是把P1口输出的信号接入7407,由7407驱动固态继电器的输入端,继电器的输出端驱动两个电磁阀和一个电子脉冲打火器。
为了控制恒温炉的温度并向系统输入数据,系统应附有键盘,并能完成温度的增减,恒温炉的启动与停止,另外还设有设置键,用于加热过程中重新设置温度,当恒温炉启动后,液晶屏即实时地显示所测量的温度值,出现异常情况显示故障状态。
2、软件设计
软件采用模块化结构。软件主要完成如下任务扫描键盘并按要求调出设定值或输入新的设定值,并判断是否启动,启动时首先打开加热阀供气,开启电子打火器,点火成功后,打开主出气阀,然后监视温度的变化,当温度超出设定温度值1℃时,关闭主出气阀,当温度低于设定温度1℃时,打开主出气阀。若点火不成功,则每隔15s重复上述启动过程,若3次点火不成功,关闭加热偶阀,在液晶屏显示故障状态。正常启动后,程序时刻监视热电偶的状态,若出现热电偶电压不足,关闭主出气阀和加热阀,等待人工参预。 |