自动调整漂移的磁通计
引言
磁通计是利用rc电子积分原理测量磁通量的精密仪器,应用在磁性材料及器件的生产加工、磁电技术、磁性测试技术以及测控技术等领域。目前国产磁通计功能相对单一,精度低,但基本满足需求。存在的弊端是漂移比较严重,手动调整耗时比较长,给使用人员带来很大不便。因此有必要研制可自动调整漂移的磁通计。
磁通计原理介绍
垂直于某一面积所通过的磁力线的多少叫做磁通量或磁通,用 表示,单位wb。磁通计就是用来测量磁通的仪器。本文讨论建立在霍尔效应基础上的采用运算放大器和阻容网络组成的模拟积分式磁通计的漂移调节问题。
传感器使用的是lake shore公司的霍尔发生器hgt-2100,这是一种固态传感器,输出电压值和磁场的磁通量成正比。该器件建立在霍尔效应的基础上。1879年,edwin h.hall发现,如果对位于磁场(b)中的导体施加一个电流(ic),该磁场的方向垂直于所施加电流的方向,那么在既与磁场垂直又和所施加电流方向垂直的方向上会产生一个电压(vh)。这个电压被称为霍尔电压,这种现象被称为霍尔效应。霍尔电压的计算公式为:vh= b bsin 。其中vh为霍尔电压(mv), b为磁场灵敏度(mv/kg)(在一特定的电流下),b为磁场磁通密度(kilogauss), 为磁场方向和霍尔元件间的夹角。hgt-2100是一种低价,高灵敏度的贴片器件。有效范围为0.005寸x 0.005寸正方形区域。磁场灵敏度范围是55~140mv/kg,输入阻抗450~900 ,输出阻抗为550~1350 。由此霍尔探针和阻容网络构成的模拟积分式磁通计的原理图如图1所示。

由电磁学理论知道,对霍尔发生器hgt-2100输出电压信号积分后输出电压值即为磁通量值 。模拟积分器式磁通计存在的一个难题是漂移问题。在输入的感应电压为零时,由于积分放大器的非理想性,存在偏置电流、失调电流、失调电压和温漂,使积分器输出电压随时间不断地向一个方向变化(增大或减小)。测量之前必须先让积分电容短路放电。一种传统的漂移调节方法是使用多圈线绕电位器微调放大器的输入uin,使差分输入平衡。然后将积分电容放电,才能进行测量。这种调节过程比较繁琐,使用人员必须根据输出值变化的方向(增大或减小)来决定电位器调节的方向,还要根据输出变化的快慢来决定调节的终止时刻。
硬件电路设计
本文提出一种改进的调漂方法,即利用单片机控制的数字电位器来代替传统的多圈线绕电位器从而实现自动调漂。在图1中,由积分器输出的电压uout经a/d转换后送入微控制器处理、显示。本文以at89c2051为例说明微控制器调整漂移的方法。
主要器件介绍
tlc2543串行a/d转换器
电路中采用的a/d转换芯片是ti公司的tlc2543,是12位分辨率开关电容逐次逼近串行a/d转换器,采样率为66kbit/s,具有11个模拟输入通道,采样和保持是自动的,在工作温度范围内转换时间为10 s,线性误差+1lsb,具有单、双极性输出,可编程的msb或lsb前导,可编程的输出数据长度,且与外围电路的连线简单。它是一种性能优良的a/d转换器件,可靠性高,价格便宜,广泛应用于仪器仪表、检测与控制设备等。
at89c2051单片机
at89c2051是atmel公司推出的8位单片机,是一个2k字节可编程eprom的高性能微控制器。它与工业标准mcs-51的指令和引脚兼容,是一种功能强大的微控制器,它对很多嵌入式控制应用提供了一个高度灵活有效的解决方案。
x9c102p数字电位器
数字电位器是一种具有数字接口的有源器件,可以取代模拟电路中的机械电位器,方便地与微控制器接口,从而可以用数控的方法调整模拟电路中的电流、电压等参数。xicor公司的x系列e2pot固态非易失性数字电位器是低功耗cmos电路,具有数字脉冲输入,模拟输出的特性。x9c102p总阻值为1k ,包含 100个阻单元阵列,每个单元之间和任一端都有可以被滑动端访问的抽头点。滑动端的位置由cs、u/d和inc 三个输入端控制,且存储在非易失存储器中,因而下一次上电时可以被重新调用,与多圈线绕电位器性能相同。
硬件电路图
该模块主要由两部分组成:微控制器与a/d转换器接口电路,微控制器与数字电位器接口电路。
at89c2051与tlc2543的硬件连线图如图2所示。

晶振选12mhz,ain0为模拟电压输入端,cs为片选线,din 为串行数据输入端;dout为a/d转换结果的三态串行输出端;clk为i/o时钟;vcc为电源;gnd为地。

at89c2051与x9c102p的硬件连线图如图3所示。
数字电位器x9c102p的三个输入端inc、u/d、cs接在p1口。滑动端vw的电压作为输出。
微控制器at89c2051是整个系统的核心,tlc2543对输入的模拟信号进行采集,转换结果dout由单片机通过p1.2(14脚)接收,ad芯片的通道选择和方式数据通过p1.1(13脚)输入到其内部的一个8位地址和控制寄存器。在输入为零时,微控制器对输入模拟信号进行分析,若采样值变化说明漂移存在,根据采样值变化的方向相应的调整数字电位器滑动的方向。电位器vw输出电压u接到模拟输入端微调模拟输入uin。调动过程由微控制器自动完成,不需要手动调整。
软件设计
这里给出调节函数“adjust”,它调用了子程序串行数据采集模块“read_ad”和微控制器控制电位器模块“dp_down”和“dp_up”。
tlc2543的通道选择和方式数据为8位,其功能为:d7、d6、d5和d4用来选择要求转换的通道,d7d6d5d4=0000时选择0通道,d7d6d5d4=0001时选择1通道,依次类推;d3和d2用来选择输出数据长度,本程序选择输出数据长度为12位,即d3d2=00或d3d2=10;d1、d0选择输入数据的导前位,d1d0=00选择高位导前。在每次i/o周期读取的数据都是上次转换的结果,当前的转换结果在下一个i/o周期中被串行移出。第一次读数由于内部调整,读取的转换结果可能不准确,要丢弃。 零输入时,微控制器对采样值进行判断。当采样值增大时,调用dp_up函数,使u增大,反馈到积分器输入端,uin增大。同样当采样值减小时,调用dp_down函数,使u减小,同理uin增大。循环调节,直至采样值不变,实现了漂移的自动调节。对积分电容放电后,即可开始测量。这里调整的方向要根据磁通计实际情况而定。
#include
sbit sclk = p1^0;
//tlc2543时钟信号线
sbit din = p1^1;
tlc2543串行数据输入线
sbit dout = p1^2;
//tlc2543串行数据输出线
sbit cs = p1^3;
//tlc2543片选信号线
sbit cs1 = p1^5;
//x9c102p片选信号线
sbit ud = p1^6;
//x9c102p的u/d
sbit inc = p1^7;
//x9c102p的inc
void adjust()
{
while(1)
{
int m1,m2,delta;
m1 = 0;
m2 = 0;
delta = 0;
m1 = read_ad();
delay_500us();
m2 = read_ad(); delta = m2 - m1;
if(delta >0)
dp_up(); //采样值增大将vw向vh方向调整
else
{
if(delta <0)
dp_down();
//采样值减小将vw向vl方向调整
}
}
}
unsigned int read_ad( void ) {
unsigned int data ad;
unsigned char data i;
ad = 0;
p1 = 0xf4;
//始化 p1 i/o 口 sclk = 0;
cs = 1;
delay_100us ();
cs= 0;
delay_100us ();
for( i=0; i<12; i++)
//12bit din
{
din = 0;
sclk = 1;
sclk = 0;
}
cs = 1;
//转换阶段
delay_100us ();
cs = 0;
delay_100us ();
for( i=0; i<12; i++) //12bit dout
{
dout = 1;
ad <<= 1;
if(dout)
{
ad |= 0x0001;
}
sclk = 1;
sclk = 0;
}
cs = 1;
return (ad);
//返回ad转换结果
}
void dp_down() //vw向vl方向调整u减小的子程序
{
cs1 = 0;
ud = 0;
inc = 0;
delay_100ms();
inc = 1;
cs1 = 1;
}
void dp_up() //vw向vh方向调整u增大的子程序
{
cs1 = 0;
ud = 1;
inc = 0;
delay_100ms();
inc = 1;
cs1 = 1;
小结
本文介绍了用微控制器控制数字电位器调节模拟积分式磁通计的方法,给出了硬件连线图和c程序,目的是解决目前的模拟积分式磁通计的漂移问题。实践证明,该方案可以实现自动调整漂移,且方便、快捷、价格便宜,优于机械电位器。
评论