目前市场中大多数温度采集卡的测量范围、测量方式及测量精度在出厂时就已经固定。测量方式单一、测量范围固定、传感方式也只能适应一定的场合。因此不能很好的适用一些多测量方式及测量范围的场合。再者它们的测量程序和查表数据库已经固定,对于一些有特殊要求的场合不能适用。本系统采用现场可编程门阵列(FPGAEP1K30QC208-3)对数据进行处理,它的程序能够在线修改,因此有极强的可塑性。可以适时的对其程序及查表数据库进行改进和更新,能使系统的性能得到升级。从而可以使系统满足不同的场合需要。
1 温度采集系统硬件设计
由于不同的传感器有不同的输出量,但是最终都需要转换为0~10V的电压值,从而才能满足A/D转换器的转换要求。因此各个传感器需要不同的转换和放大电路。转换后的电压量经过多路模拟开关选择送到同一个A/D转换器进行转换。再经FPGA进行数据处理及显示输出。整机框图如图1所示。
1.1 PN结测温原理
由于PN结随温度变化产生的是一个电压信号,温度每升高1℃,PN结的正向导通压降下降1 mV。但在0℃时要求输出电压为0 V,因此必须将PN结连接成单臂非平衡直流电桥。并且将输出电压放大到0~10 V范围送A/D转换电路。电路原理图如图(2)所示:
1.2 PT100热电阻测温原理硬件电路
由于PT100热电阻随温度变化产生的是一个电阻信号,当温度升高时电阻值增大。因此必须将热电阻接成单臂直流电桥,将其阻值变化转换为电压变化信号。再将这个电压信号放大到0~10 V范围送A/D转换电路。电路图略。
1.3 热电偶测温原理硬件电路
热电偶的输出是一个随温度变化的电压信号,它必须加上冷端补偿电路才能正常工作,并且它的输出也要转换为0~10 V的范围送A/D转换电路。电路图如图3所示:
2 温度采集系统软件设计
温度采集系统软件分为单片机程序设计和FPGA程序设计,单片机程序采用汇编语言编写,实现对外围电路的控制。FPGA采用VHDL语言编写,实现对数据的处理及被测温度的显示输出。
2.1 单片机控制
单片机用来控制多路模拟开关及FPGA,并显示是那种方式测量。P1口接一位数码管(表示输出测量方式代码,1代表PN结测量方式,2代表热电偶测量方式,3代表热电阻测量方式)。P2口接输出模拟开关控制字、存储器片选信号及FPGA程序切换控制信号。程序流程图如图4所示。
2.2 FPGA数据处理
FPGA对数据的处理是根据不同的测量方式进行数据处理的。当选择PN结测量方式时,FPGA根据PN结的温度电压变化函数,对数据进行计算,从而得出对应的温度值;当选择热电偶或热电阻测量方式时,FPGA是依次查找对应分度表的数据与A/D转换的数据进行比较计算,最终得出其温度值。可见热电偶或热电阻测量方式的数据处理是相同的,只是分度表不同而已。
2.2.1 PN结数据处理
PN结测量方式,FPGA根据PN结的温度电压变化函数(温度每升高1℃,PN结正向导通压降减小1 mV),对数据进行计算,从而得出对应的温度值。
2.2.2 热电偶、热电阻数据处理
热电偶或热电阻测量方式,FPGA是依次查找对应分度表的数据与A/D转换的数据进行比较计算,最终得出其温度值。程序流程图如图5所示。
3 温度采集系统安装调试
安装调试是一个系统最关键也是最容易出现问题的一步,本系统安装调试中遇到的一些问题及给出最后处理方法如下:(1)热电偶的工作必须有冷端补偿电路才能正常工作,在搭试其冷端补偿电路时,它的桥路电阻参数很难确定。因为不同型号的热电偶其各桥臂电阻及限流电阻也会不同,在多次调整各个参数后才确定了其各桥臂参数。(2)各放大电路在开始时用了一级的电压放大,出现了抗干扰能力差、放大倍数不稳定等问题。为了提高抗干扰能力,稳定电压放大倍数。后来采用两级放大,第一级采用低放大倍数的差放电路,消除共模干扰。第二级再采用电压放大就很好的实现无干扰稳定放大。(3)软件调试中出现了显示清零的现象,最后查出是AD转换数据没有锁存住。采用软件锁存的办法使得该问题得到了解决。
4 结语
该温度采集系统能够实现PN结(20~100℃)、热电阻(PT100)(0~800℃)、热电偶(镍锘-镍硅K型)(0~1 000℃)3种方式的温度测量。可以满足不同测量范围、不同测量精度及不同场合的需要。本设计采用EDA作为开发工具,搭配单片机控制。使得整个设计具有较新的设计思想。采用12ADC模数转换器,使得测量精度得到了极大的提高。数据处理采用现场可编程门阵列FPGA(EP1K30QC208—3),它极高的程序执行速度使得系统响应更快更精确。