1 引言
随着现代控制技术的发展,在工业控制领域需要对现场数据进行实时采集,在一些重要场合对数据采集的要求更高,例如在电厂、钢铁厂、化工领域的生产中都需要对大量数据进行现场采集,而 温度采集 又是其中极为重要的部分,因此,需要一种高精度、低成本的数据采集与控制系统。
为了方便地实现温度采集与控制系统,笔者选用MSC1201作为系统的MCU。MSC1201是的德州仪器(TI)新推出的一款低噪声、低成本数据采集 微处理器 ,它具有的增强型8051内核,执行速度比标准8051内核快3倍,而功耗却更低,MSC1201中的ADC的防噪性能为75nV,比市场上大多数独立式ADC都好,此外,MSC1201的ADC还可在功耗仅为3mV时达到1ks/s的采样速率,因此,搭配合适的信号拾取元件就能组成一种性能优异的数据采集控制系统。
笔者设计的恒温箱 温度控制 系统的结构框图如图1所示。该恒温箱主要用于电子设备的高温实验。通过小键盘设定实验温度和时间,达到定时后并能发出警告,箱体打开后启动风扇散热,为了使温度控制更加准确,在箱体内采用多点测温,同时为了保证电子设备的均匀受热,设计中采用步进电机带动托盘使待测物在箱内转动,并在定时结束时停止转动。在恒温箱工业时,箱内温度通过数码管显示。定时剩余时间也通过数码管显示。
2 MSC1201型微处理器
本设计采用TI的MSC1201型微处理器作为主处理器,MSC1201的封装形式为QFN-36,在3V供电时功耗为3mW。具有工业级的工业温度范围即-40℃-+125℃。
模拟特性包括数据采集精度达到24位无损采集,工业频率为10Hz时有效分辨达到22位;片内可编程增益控制,最高可将信号放大128倍;工作噪声为75nV,片内提供精确的参考电压,具有偏差校正功能,片上温度传感器可以快速方便地组成检测系统,极小的偏差漂移(0.02ppm/℃),放大漂移(0.5ppm/℃)使得系统具有较强的温度适应能力。
数字功能包括具有与8051兼容的增强型处理器内核;拥有1KB自举ROM、256字节数据SRAM、4KB闪存具有安全保护措施;存储器读/写循环可达100万次,保存100年。
外部特征包括有16个通用I/O引脚、1个32位累加器、2个16位定时/计数器、可编程看门狗定时器、全双工USART、SPI、I2C接口;空闲状态下消耗电流小于200μA,停止状态下电流小于100nA;中断源多达20个,可以满足一般工业现场的控制要求。MSC201的结构框图如图2所示。
3 温度采集系统的硬件组成
通常,为了组成一种温度控制系统,采用如图3所示的模块化设计。
由图3可见,从传感器到CPU还有许多环节需要系统设计者来设计。但是采用MSC1201型微处理器后许多环节就可以省略。如图中虚线包含的部分,处理器自身已经包含这些中间处理过程,只要设置相关寄存器就可以调整它们的参数。
3.1 温度传感器
在许多温度采集系统中用热敏电阻器作为测温器件,然后通过查表或附加电路得到输出电压与温度的关系,查表需要一段存储空间来保存表格数据且会增加代码长度,因此使用热敏电阻器的成本较高。另一方面,由于热敏电阻器输出的非线性使其高温段和低温段的测量误差变化较大,而在多点测量时对每一种器件都要单独调零,因而在应用时有许多局限。
在笔者设计的温度检测系统中,采用ADI公司的AD590型温度传感器作为温度测量元件,AD590是电流型传感器,当电源电压为4V-30V使流经器件的电流随温度的变化而变化。其温度变化规律为1μA/K,表示以K氏温度衡量温度,温度变化1℃电流变化1μA,这种线性变化的规律给应用带来很大方便,应用AD590时电源电压的变化也会影响电流输出,但电源电压高时影响会小一些,因此电源电压适当调高,图4示出AD590与MSC1201的连接,其中,
从(1)式可以看出,AD590输出电压与温度的关系,如果选择(R1+VR1)=10KΩ,那么可得下式:
图4中R1与VR1串联,通过调节VR1的阻值来获得10kΩ的电阻值。没有直接使用10kΩ的电阻器是为了提高系统测量精度。
由于温度检测的后级接收差分信号输入,因此只需要在差分输入的负端引入2.732V参考电压即可得到随摄氏温度线性变化的输出电压。如图4所示,调节VR3阻值使在AIN1、AIN3引脚上具有2.732V电压即可生成随摄氏温度线性变化的输入信号。若设计的后级是单端输入,则只需在校正单元减去2.732V即可。
3.2 多路选择开关
输入多路选择开关属于MSC1201的内置功能模块,可以接收差分输入。如图2所示,如果AIN0选作差分输入的正端输入,则其他任意通道可以作为差分信号的负端输入,并可通过交换差分输入的正负端来消除误差,在本系统中选用AIN0输入AD590的输出电压V(T),将2.732V作为差分信号负端输入到AIN1,MSC1201可以自动检测这些信号输入引脚是否开路或短路。
另外,该电路还可以检测自身温度,当输入多路选择开关的配置寄存器全部设为1时,电路内的测温二极管就连接到ADC的输入端,此时其余输入通道开路,这有利于器件自身的保护,当芯片温度过高时,可以通过强制电路进入空闲模式使系统降温。
通道可以通过寄存器ADMUX来选择,如下所示:
点击看原图
其中,高4位决定差分正端输入通道,而低4位决定负端输入通道。
3.3 放大器
通常情况下检测到的信号很微弱,需要进行放大。而MSC1201内置可编程增益放大器(PGA)的增益可以设为1、2、4、8、32、64、128。通过使用PGA可以提高ADC的有效分辨率。例如在信号电压范围为±2.5V时,若PGA增益设为1,则ADC最小分辨率为1.5μV;当PGA增益设为128、信号电压范围为±19mV时,ADC的分辨率为75nV,改变PGA增益会使放大器 输入阻抗变化,但通常放大器的输入阻抗很高,一般不会对输入信号产生影响。放大器的放大倍数由寄存器ADCON0的低3位确定。
3.4 信号调理
在温度检测中,输入环节会不可避免的引入某些误差,使输入信号产生不同程度的畸变。为了消除这些误差对系统的影响,需要对输入信号进行调理。
3.4.1 ADC补偿
通过使用寄存器ODAC,PGA的模拟输出可以获得最高能够达到测量电压范围一半的偏移补偿。寄存器ODAC是8位,最高位为符号位,表示补偿的正负,其余7位表示补偿的大小。由于ODAC引入的只是对PGA的模拟补偿,因此并不影响ADC的测量范围。
3.4.2 ADC校准
基于MSC1201/02的数据采集系统的偏移和增益误差可以通过校准来减小。寄存器ADCON1的CAL2:CAL0可控制校准。每次校准需要7个Tdata(数据采集时间)周期来完成。
完成校准必须在输入端施加信号,再由器件计算出偏移量以补偿系统偏差。在进行系统偏移校正时,需要输入0V或很小的电压信号,并读取输出结果,如果结果为正,说明转换中存在正偏移误差,应在结果中减去该偏移量。反之,如果结果为负,就要加上该偏移量。
系统增益校准需要输出满量程信号,并测量输出结果来实现增益校准。增益校准实际上就是调整放大器的输出信号斜率以补偿实际输出与理想输出的误差。
系统上电后就要进行校准,而在电源电压、参考电压或PGA增益发生变化时要重新进行校准。当校准完成时,ADC的中断标志位变为高电平,在程序中可通过检查该位来判断校准是否完成,若校准完成,此时输入数据才有效。
3.5 A/D转换
在A/D转换中的调制器是二阶系统,调制器工作频率为FMOD,该频率与fACLK有关,而fACLK可以在模拟时钟寄存器(ACLK)中设置,其关系式如下:
fMOD=fCLK/[(ACLK+1)64]=fACLK/64 (3)
整个A/D转换的数据输出率为: