最新日志

发表于:2008-5-22 17:41:02
标签:电桥测量  

1

电桥测量基础

电桥是精密测量电阻或其他模拟量的一种有效的方法。本文介绍了如何实现具有较大信号输出的硅应变计与模数转换器(ADC)的接口,特别是Σ-Δ ADC,当使用硅应变计时,它是一种实现压力变送器的低成本方案

  硅应变计

  硅应变计的优点在于高灵敏度,它通过感应由应力引发的硅材料体电阻变化来检测压力。相比于金属箔或粘贴丝式应变计,其输出通常要大一个数量级。这种 硅应变计的输出信号较大,可以与较廉价的电子器件配套使用。但是,这些小而脆器件的安装和连线非常困难,因而增加了成本,限制了它们在粘贴式应变计应用中 的使用。

  不过,用MEMS工艺制作的硅压力传感器却克服了这些弊病。这种MEMS压力传感器采用了标准的半导体工艺和特殊的蚀刻技术。这种特殊的蚀刻技术可 选择性地从晶圆的背面除去一部分硅,从而生成由坚固的硅边框包围的、数以百计的方形薄膜。而在晶圆的正面,每一个小薄膜的每个边上都植入了一个压敏电阻, 用金属线把小薄片周边的四个电阻连接起来就形成一个惠斯登电桥。最后,使用钻石锯从晶圆上锯下各个传感器。这时,硅传感器已经初具形态,但还需要配备压力 端口和连接引线方可使用。这些小传感器便宜 
而且相对可靠,但受温度变化影响较大,而且初始偏移和灵敏度的偏差很大。

  压力传感器实例

  在此给出一个压力传感器的实例,其所涉及的原理适用于任何使用类似电桥的传感器。公式1给出了一个原始的压力传感器的输出模型。其中,VOUT在给定压力P下具有很宽的变化范围,不同传感器在同一温度下,或者同一传感器在不同温度下,其VOUT都 有所不同。因此要提供一个一致的、有意义的输出,每个传感器都必须进行校正,以补偿器件之间的差异和温度漂移。长期以来,校准都是通过模拟电路进行的。然 而,现代电子学的进展使得数字校准比模拟校准更具成本效益,而且其准确性也更好。此外,利用一些模拟技术“窍门”,可以在不牺牲精度的前提下简化数字校 准。

  VOUT=VB(PS0(1+S1(T-T0))+U0+U1(T-T0)) (1)

  式中,VOUT为电桥输出,VB是电桥的激励电压,P是外加压力,T0是参考温度,S0是T0温度下的灵敏度,S1是灵敏度的温度系数(TCS),U0是在无压力情况下电桥在温度T0时的输出偏移量(或失衡),而U1则是偏移量的温度系数(OTC)。公式(1)使用一次多项公式来对传感器进行建模,而有些应用场合可能会用到高次多项公式、分段线性技术或者分段二次逼近模型,并为其中的系数建立一个查寻表。无论使用哪种模型,数字校准时都要对VOUT、VB和T进行数字化,同时要采用某种方公式来确定全部系数并进行必要的计算。公式(2)由公式(1)变化所得,从中可清楚地看到,通过数字计算(通常由微控制器(MCU)执行)而输出精确压力值所需的信息。

  P=(VOUT/VB-U0-U1(T-T0))/(S0(1+S1(T-T0)) (2)

  电压驱动

 


  图1 该电路直接测量计算实际压力所需的变量(激励电压、温度和电桥输出)

  在图1所示的电路中,一个高精度ADC先对VOUT (AIN1/AIN2)、温度(AIN3/AIN4)和VB (AIN5/AIN6)进行数字化,这些测量值随后被传送到MCU,在那里转换成实际的压力。电桥直接由电源驱动,电源同时也为ADC、电压基准源和 MCU供电。电阻公式温度检测器Rt用来测量温度,ADC内的输入复用器同时测量电桥、RTD和电源电压。为确定校准系数,整个系统(或至少是RTD和电 桥)被放到恒温箱里,在多个不同温度下进行测量。测量数据通过测试系统进行处理,以确定校准系数,最终的系数被下载到MCU并存储到非易失性存储器中。

  设计该电路时主要考虑的是动态范围和ADC的分辨率,最低要求取决于具体应用和所选的传感器和RTD的参数。 在本例中,传感器的具体参数如下。

  系统规格

· 满量程压力:100psi
· 压力分辨率:0.05psi
· 温度范围:-40~+85℃
· 电源电压:4.75~5.25V

  压力传感器规格

· S0 (灵敏度): 150~300μV/V/psi
· S1(灵敏度的温度系数): 最大为-2500×10-6/℃
· U0 (偏移): -3~+3mV/V
· U1 (偏移的温度系数): -15~+15μV/V/℃
· RB (输入电阻): 4.5kΩ
· TCR (电阻温度系数): 1200×10-6/℃
· RTD: PT100
o α: 3850×10-6/℃
o -40℃时的阻值: 84.27Ω
o 0℃时阻值: 100Ω
o 85℃时阻值: 132.80Ω

电压分辨率

  ADC能够接受的最小电压分辨率可根据传感器能够检测到的最小压力变化所对应的VOUT得到。极端情况为使用最低灵敏度的传感器,在最高温度和最低供电电压下进行测量。注意,公式(1)中的偏移项不影响分辨率,因为分辨率仅与压力响应有关。使用公式(1)以及上述假设可得:


  VOUTmin=4.75V×(0.05psi/count×150μV/V/psi×(1+(-2500×10-6/℃)×(85℃-25℃))
≈30.3μV/count

  所以,最低ADC电压分辨率为30μV/ count。

  ADC的输入范围

  ADC的输入范围取决于最大输入电压和最小电压。根据公式1,产生最大VOUT的条件:最大压力100psi、最低温度- 40℃、最大电源电压5.25V和3mV/V的偏移、-15μV/V/℃的偏移温度系数、-2500×10-6/℃的TCS以及 300μV/V/psi的最高灵敏度。最小信号一般都在无压力(P=0),电源电压为5.25V、-3mV/V的偏移、-40℃的温度以及OTC等于+ 15μV/V/℃的情况下出现。

  再次使用公式(1)以及上述假设可得:

  VOUTmax=5.25V×(100psi×300μV/V/psi×(1+(-25 
00×10-6/℃)× (-40℃-25℃))+3mV/V+(-0.015mV/V/℃)×(-40℃-25℃))=204mV

  VOUTmin = 5.25×(-3mV/V + ( 0.015mV/V/℃×(-40℃-25℃)))=-21mV

  因此,ADC的输入范围是-21~+204mV。

  分辨率

  适用于本应用的ADC应具有-21~+204mV 的输入范围和30μV/count的电压分辨率。该ADC的编码总数为(204mV + 21mV)/(30μV/count)=7500,动态范围稍低于13位。如果传感器的输出范围与ADC的输入范围完全匹配,那么一个13位的转换器就可 以满足需要。由于-21~+204mV的量程与通常的ADC输入范围都不匹配,因此要么对输入信号进行电平移动和放大,要么选用更高分辨率的ADC。幸运 的是,当前Σ-Δ转换器的分辨率很高,具有双极性输入和内部放大器,使高分辨率ADC的使用变为现实。这些Σ-ΔADC提供了更为经济的方案,而不需要增 加其他元器件。这不仅减小了电路板尺寸,还避免了放大和电平移位电路所引入的漂移误差。

  工作于5V电源的典型Σ-Δ转换器,采用2.5V参考电压,具有±2.5V的输入电压范围。为了满足我们对于压力传感器分辨率的要求,这种ADC的 动态范围应当是:(2.5V - (- 2.5V)) /(30μV/count)=166 667,这相当于17.35位的分辨率,很多ADC都能满足该要求,例如18位的MAX1400。如果选用SAR ADC,则产生很大的浪费,因为这是将18位转换器用于13位应用,且只产生11位的结果。然而,选用18位(17位加上符号位)的Σ-Δ转换器更为现 实,尽管三个最高位其实并没有使用。因为除了廉价外,Σ-Δ转换器还具有高输入阻抗和很好的噪声抑制特性。

  18位ADC可以用内置放大器的低分辨率转换器来代替,例如16位的MAX1416。其8倍的增益相当于将ADC转换结果向高位移了3位,从而利用 了全部的转换位并将转换需求减少到15位。不过要选用无增益的高分辨率转换器,还是有增益的低分辨率转换器,就要看具体情况下的增益和转换速率下的噪声规 格。Σ-Δ转换器的有效分辨率通常受到噪声的限制。

  温度测量

  如果测量温度仅仅是为了对压力传感器进行补偿,那么温度测量不要求十分准确,只要测量结果与温度的对应关系具有足够的可重复性即可,这样将会有更大 的灵活性和较宽松的设计要求。对于硅压力传感器,有三个基本的设计要求:避免自加热,具有足够的温度分辨率,保证在ADC的测量范围之内。

  使最大Vt电压接近于最大压力信号有利于采用相同的ADC和内部增益来测量温度和压力。本例中的最大输入电压为+ 204mV,考虑到电阻的误差,最高温度信号电压可保守地选择为+180mV。将Rt上的电压限制到+180mV也有利于避免Rt的自加热问题。一旦最大 电压选定,根据在85℃ (Rt=132.8Ω),VB=5.25V的条件下产生该最大电压可以计算得到R1。R1的值可通过公式(3)进行计算,公式中的Vtmax是RT上所允许的最大压降。温度分辨率等于ADC的电压分辨率除以Vt的温度敏感度。公式(4)给出了温度分辨率的计算方法。(注意:本例计算的是最小电压分辨率,是一种较为保守的设计。你也可以使用实际的ADC无噪声分辨。)

  R1= Rt×(VB/Vtmax-1) (3)

  R1=132.8Ω×(5.25V/0.18V-1)≈3.7kΩ

  TRES=VRES×(R1 + Rt)2/(VB×R1×ΔRt/℃) (4)

这里,TRES是ADC所能分辨的摄氏温度测量分辨率。

  TRES=30μV/count×(3700Ω+ 132.8Ω)2/(4.75V×3700Ω×0.38Ω/℃)≈0.07℃/count

  0.07℃的温度分辨率足以满足大多数应用的要求。但是,如果需要更高的分辨率,有以下几个选择:使用一个更高分辨率的ADC;将RTD换成热敏电阻,或将RTD用于电桥,以便在ADC中能够使用更高的增益。

  注意,要得到有用的温度结果,软件必须对供电电压的变化进行补偿。另外一种代替方法是将R1连接到VREF,而不是VB。这样可使Vt不依赖于VB,但也增加了参考电压的负载。

  结论

  硅压阻公式应变计比较高的输出幅度使其可以直接和低成本、高分辨率Σ-ΔADC接口。这样避免了放大和电平移位电路带来的成本和误差。另外,这种应变计的热特性和ADC的比例特性可被用来显著降低高精度电路的复杂程度。

点击此处查看原文 >>

系统分类: 测试测量   |    用户分类: 无分类    |    来源: 转贴

评论(1) | 阅读(171)
发表于:2008-5-22 17:39:55
标签:反射式红外阵列  传感器  

0

反射式红外阵列传感器的设计

引言
      在一些自动伺服的机器人应用系统当中,通常需要感知机器人在平面(地面)上的相对姿态;比如一些自动竞技机器人(使用在各种机器人竞技比寒当中的),以及一些应用在有相对轨迹标记的固定场所当中的工业机器人等。一般,在这些机器人工作的环境当中,会有平面的相对轨迹标记,如场地上平面的网格线(轨迹线);机器人可以通过检测这些标记来获取自身的姿态数据,以便于自动伺服调整机器人的姿态保证任务的执行。而检测平面上相对轨迹标记的解决方案有多种选择,可以采用摄像头图像采集然后进行轨迹识别的方案,也可以采用线阵的CCD传感器,或者采用线阵排布的颜色传感器模块;本文则介绍了可以用于这样的检测平面相对位置的反射式红外阵列传感器模块,包括介绍工作原理以及设计细节。
      关键字 机器人    线阵    传感器    红外传感器   相对姿态   寻迹

1 技术概述
      本文所介绍的阵列传感器主要用于机器人的自身相对姿态的感知,并不包括机器人相对位置的定位(当然,也是可以通过一些上层的算法来判断解算根据阵列传感器的数据特征,并以此获取相对位置信息);所以在介绍反射式红外阵列传感器前,需要假设一些前提的条件:场地平面参照物(即平面的相对轨迹标记)。
      在很多竞技机器人的比赛项目当中,比赛的场地往往都会有类似于网格线(轨迹线)的平面参照物,自动伺服的机器人(自动机器人)可以检测相对这些参照物的姿态来调整自身的平面姿态,再加上其它的定位系统,自动机器人就可以在场地的任意位置感知自身的相对姿态和相对位置了,这就是自动机器人的基本工作条件。
      自动机器人检测轨迹线最常见的应用是寻线行走,这样的应用需要获取自动机器人与轨迹线的中心偏移数据、偏角数据(机器人底盘轴线与轨迹线的夹角);而一般会采用“二”字形的探测器,如下图所示:

      “二”字形的探测器实际上是可以由两个阵列传感器模块一前一后的组合而成;而每条传感器模块呈长条状,并沿长轴线上分别排列有多个传感单元,每个传感器单元可以分辩出呈白色窄条状的轨迹线与背景(与轨迹线颜色区分开的)。
      由前面的分析可知,本文所介绍的反射式红外阵列传感器长轴线上有多个红外对管,呈线阵分布,可以检测出轨迹线与其它背景区域的反光率差别,并以此确定阵列传感器长轴线与轨迹线轴线的偏移;再结合一定的传感器安装方法(如前面所介绍的“二”字形安装方法)自动机器人的控制器是可以依据阵列传感器的数据分析出当前机器人相对轨迹线的姿态(轴偏量、角偏量)。而阵列传感器的检测精度和范围将直接影响系统控制性能;起决定性作用的就是阵列上有多少个传感单元、传感单元之间的距离,以及传感单元的性能(调制频率、灵敏度等)。

2 设计方案
      权衡了传感器模块精度(分辩率)和检测速度的性能,本文所介绍的阵列传感器模块在传感单元数量上选择了16个,这样便于数据的处理,当然还有其它的原因。而传感单元采用反射式的红外对管,这样比较方便选型,以及方便采购。
      本文介绍所设计的反射式红外阵列传感器模块上的十六个反射式的红外对管,在传感器模块长轴线上呈线状分布;模块中使用运算能力较强,并且抗干扰能力强的单片机作为主控核心MCU,MCU对十六个传感器进行扫描,并对每个对管检测到反射回来的信号进行调理后,送至ADC模块(MCU内部自带)进行AD转换;这样可得到每个对管对应范围的256个级别的灰度值。只要轨迹线与背景存在颜色、反光度的差别,就可以从每个对管的AD转换值当中分析到当前该对管所检测点为轨迹线还是背景。
下图为模块的较果图:

      实际的模块设计当中,有几个非常重要的问题需要解决,这也是本文所介绍的内容的重点所在:
      1、反射式红外对管所固有的散射角、速度与灵敏度的矛盾;
      2、每个红外对管之间的性能参数的差异性问题;
      3、传感单元对环境的适应能力问题;
      接下来,从硬件设计和软件设计的角度出发,把以上问题的解决方法一一分析。

2.1 系统硬件连接
2.1.1 核心MCU
      模块的核心MCU采用Philips公司的P89LPC932单片机;LPC932为增强型的51内核的单片机,在同等CPU工作频率的情况下,速度为传统51的六倍,这点对于本设计的数据处理要求来说,是非常重要的。
      应用中采用了芯片内部的振荡器(7.374MHz)作为MCU的时钟源;主要是因为在单片机运行的在机器人的载体上,机械上的振动比较大,而当晶振受到震动时,就有可能进入莫名的异常状况(如死机、复位等),而采用单片机内部的振荡器就不会存在上述的情况了。
2.1.2 传感器核心设计
      模块中的红外对管,选用了进口的RP220型红外对管。该对管的有效作用距离为4cm,接收管灵敏度高;在测试中,2.5cm的距离上,对黑色与白色普通反射面,接收反射回来的红外线强度能有5倍以上的差值;但其调制频率较低,仅有800Hz。
      为了降低MCU扫描传感器的速度对传感器调制频率的要求,在电路设计中,用一个NPN的三极管同时驱动四个红外对管,四个三极管即可驱动全部的十六个对管(如下图,为部分传感器驱动电路);而MCU控制两片4051,按一定的顺序对红外对管的接收管进行选通。这样可以把调制频率的要来降低了四倍。

点击看大图

      在PCB板设计时,十六个传感器呈线阵分布,在每个传感器间的距离为13.75mm;鉴于红外对管的散射,为保证一定的测量精度,在传感器模块装上机器人时,要求对管的底面与地面的距离不能大于2.5cm。而由于红外对管距离反射面越近,其黑、白反射面的接收强度差别越小;所以还得要求对管底面与地面距离不能小于1cm。

      通过4051选通回来的信号,要通过一个射随、放大电路后才能送入ADC,将每个接收管接收到的反射回来的红外线强度模拟信号进行模数转换后,再由MCU读取。
      而机器人上仅有单一的正电源;所以为了系统电源的统一,在设计中选用了单电源供电的双运放LF358及单电源供电的ADC芯片:TLC1549。如下图所示:

      图中A_in1和A_in2分别是来自两片4051的八选一输出。TCL1549是10位的ADC,其数据输出接口为三线的SPI通讯接口,最高的通讯速率为2Mbit/s。而在设计中,对单个数值的精度要求不是太高,所以为了数据处理及软件设计的方便,在设计中用三个IO口模拟SPI通讯来读取TLC1549中的数据,且仅取其十位精度中的高八位。
2.2 软件设计思路
      在传感器模块中,MCU的主要工作是扫描十六个红外对管,并根据每个读回来的AD值进行分析(主要是进行软件补偿),得到每个管子对应反射面的256个灰度等级的数值,然后与比较域值进行比较,可分析出每个对管对应的反射面为不反光区域(背景)还是白色窄条线(轨迹线)。
      由于比赛场地与平时机器人训练的场地的反射率会有差别,以及机器人所工作的场地条件的环境因素也会时常有变化;所以传感器模块必需有一个初始化的功能,以适应不同的场地,也就是所说的拥有学习能力的智能传感器概念。
      此外每个红外对管的参数不一致,在程序中加入了对每个接收管返回AD值的数据补偿。
      以上两点也就是传感器模块程序设计的重点。传感器扫描程序和初始化程序都在一个的定时中断服务程序里,下图为该中断子程序的流程图。而进行正常的传感器扫描时,定时中断为5ms定时中断,进行初始化扫描时,为20ms的定时中断。

      要进行数据的软件补偿,就必需要有补偿的参数,在补偿程序设计中定义了三个补偿参数,一个乘系数na,一个加系数nb,一个减系数nc。这样一个红外对管将对应三个补偿参数;另外还有一个比较域值,也在计算三个补偿参数的过程中计算出来。下面的程序段为三个补偿参数的计算及一个比较域值的计算过程。
//*******************************************************//
//求解单个对管的三个补偿系数
RF_mid = DIV16(RF_DataBase[Data_type],rfdata[i]);
na = (unsigned char)RF_mid; //得到na系数,在RF_mid的低八位
RF_nY = (unsigned char)(RF_mid>>8);//取RF_mid的高八位
while(RF_nY)
{       //循环解算nb和nc
if(RF_nY>=125)
{
 RF_nY = RF_nY-120;
 nc =  nc+120;
}
while(RF_nY>8)
{
 RF_nY = RF_nY-5;
 nb = nb+3;
 nc = nc+8;
}
while(RF_nY>2)
{
 RF_nY = RF_nY-1;
 nb = nb+2;
 nc = nc+3;
}
RF_nY = RF_nY-1;
nc = nc+1;
}
//*****************************************************//
//*****************************************************//
//求解对管的比较域值
for(i=0;i<16;i++)
{
if((Init_data_h[i]/Init_base_h)>=2) Init_data_h[i]=Init_base_h+3;
Init_data_buf[i]=(Init_data_h[i]-Init_data_l[i])*3/5+Init_data_l[i];
EEPROMwrite((unsigned int)(116+i),Init_data_buf[i]);
}
//*****************************************************//
      这样,每个对管读回来的AD值就可进行软件的补偿了,解决了对管性能参数不一致的问题,提高了传感器模块的适应能力。补偿的公式为:
nF=na*nAD+nb-nc
nAD为每个对管采样回来的AD值,nF为补偿后的数值。

3 结语
      本文所介绍的反射式红外阵列传感器的设计仅仅是提供给读者一种设计的思路,主要在于解决这类传感器模块设计、应用时会遇到的几个问题的方法;即:传感器的固定散射角、速度和灵敏度的矛盾(如何权衡它们的取舍);每个红外对管之间的性能参数的差异性问题;传感单元对环境的适应能力问题。
      根据本文的思路设计出来的阵列传感器模块具备学习能力(自动适应场地环境),并且容差性能良好,可以保证机器人在场地上各个位置上均能够准确的检测到轨迹线;这样的模块已经应用在了机器人竞赛项目的机器人载体当中,应用效果不错。

点击此处查看原文 >>

系统分类: 测试测量   |    用户分类: 无分类    |    来源: 转贴

评论(0) | 阅读(175)
发表于:2008-4-23 15:49:22
标签:无标签

2

模拟经典的设计,觉得好的顶下

智能数字交流毫伏表的设计与实现.rar点击下载

3-5V电平转换点击下载

相位测量点击下载

清除升级后留下的备份文件的工具.rar点击下载

点击此处查看原文 >>

系统分类: 模拟技术   |    用户分类: 无分类    |    来源: 原创

评论(4) | 阅读(889)
总共 , 当前 /