当环境改变时,设此时传感器产生零点漂移为DVS。放大器输出(V+-V-)G+DVSG+VREF,零点漂移DVS·G。此时通过ADC采集放大器输出电压,如果输出大于VC,则减小DAC0的输出,即减小VREF;相反,如果输出小于VC,则增大DAC0的输出,即增大VREF,这样如此采集->调整->采集.......使放大器输出电压稳定在
。
比较式3和式4可以看出,我们完全是靠DAC0的变化量DVREF将DVS·G抵消掉。
消除零点漂移是一个逐渐逼近的过程,每次逼近的步长可以通过软件设定,但由于受到DAC分辨率的影响,最小步长是DAC的1LSB代表的电压,所以我们最小只能将零漂控制在0到最小步长之间。受DAC输出范围的限制,初始时DAC0输出1.2V,若设此时的零漂为VD(通常我们认为是零),那么,我们能够调节的最大零点漂移范围是[VD-1.2/G,VD+1.2/G]。当单片机的系统时钟为16M时,完成一个采集,调整的周期最多用数百uS。列车通过时间一般在十分钟以内,在此时间内完成的数据采集,对缓慢的零点漂移来说影响是不大的。
www.55dianzi.com
硬件、软件实现
放大器 零点校正 的硬件原理图如图1所示。
仪表放大器的同相输入端接红外传感器输出电压;反相输入端输入调零电压。放大器1、8脚间接入增益设置电阻。5脚的参考电压输入,连接单片机C8051F007片上DAC0的输出,通过DAC的输出来自动校正放大器的零点。实际电路中VREF也可通过电位器分压来取得调整电压,以提高调整细度。放大器输出电压经AIN0送至单片机片上的ADC转化为数字量。
单片机C语言编程框图如图2所示。
系统在不采集传感器输出电压的时候自身进行系统调零,先将放大器参考点电压设置为0.5V,也就是让DAC0输出0.5V。然后采集放大器的输出电压,如果输出电压大于0.5V,可以减小参考电压抵消漂移;相反,如果输出电压小于0.5V,说明有负向零点漂移产生,则要增大参考电压抵消漂移。
结语
根据仪表放大器的输出公式我们可以看出,当放大倍数很高时,零点漂移也会同时被放大。这样,如果零点漂移本身范围过大时,有可能超出DAC的调节范围。通常有效调节零漂的跨度要略小于DAC的输出范围,可在DAC输出范围的两头各划出一段数据区作为超限标志。程序中每次调节DAC0输出后,要随时检测被转化数字量的大小,一旦发现DAC输出值超出调节范围,可以及时对外发出超限警告。
实际设计中,零点的调整只是解决本传感器的一个问题,其它例如不同环温下的非线性问题还需要另行解决,好在采用C8051F007高性能单片机,其功能和速度均可同时满足上述要求。
参考文献:
1 .C8051F00x datasheet http://www.SILabs.com/publIC/documents/tpub_doc/dsheet
2.AD620 datasheet http://www.analog.com/UploadedFiles/Data_Sheets/897653854AD620_g.pdf
3.王铁流等,“红外轴温监测系统中列车信号的计算机模拟”,《电子技术应用》,1995.9