最简单的4-20mA输入/5V输出的I/V转换电路
在与电流输出的传感器接口的时候,为了把传感器(变送器)输出的1-10mA或者4-20mA电流信号转换成为电压信号,往往都会在后级电路的最前端配置一个I/V转换电路,图1就是这种电路最简单的应用示意图。
仅仅使用一只I/V转换取样电阻,就可以把输入电流转换成为信号电压,其取样电阻可以按照Vin/I=R求出,Vin是单片机需要的满度A/D信号电压,I是输入的最大信号电流。
这种电路虽然简单,但是却不实用,首先,其实际意义是零点信号的时候,会有一个零点电流流过取样电阻,如果按照4~20mA输入电流转换到最大5V电压来分析,零点的时候恰好就是1V,这个1V在单片机资源足够的时候,可以由单片机软件去减掉它。可是这样一来。其有用电压就会剩下5-1=4V而不是5V 了。由于单片机的A/D最大输入电压就是单片机的供电电压,这个电压通常就是5V,因此,处理这种简单的输入转换电路时比较麻烦。为了达到A/D转换的位数,就会导致芯片成本增加。
LM324组成的4-20mA输入/5V输出的I/V转换电路
解决上面问题的简单方法是在单片机输入之前配置一个由运算放大器组成的缓冲处理电路,见图2。
增加这级运算放大器可以起到对零点的处理会变得更加方便,无需耗用单片机的内部资源,尤其单片机是采用A/D接口来接受这种零点信号不为零电压的输入时,可以保证A/D转换位数的资源能够全部应用于有用信号上。
以4~20mA 例,图B中的RA0是电流取样电阻,其值的大小主要受传感变送器供电电压的制约,当前级采用24V供电时,RA0经常会使用500Ω的阻值,对应20mA 的时候,转换电压为10V,如果仅仅需要最大转换电压为5V,可以取RA0=250Ω,这时候,传感变送器的供电只要12V就够用了。因为即使传送距离达到1000米,RA0最多也就几百Ω而已。
同时,线路输入与主电路的隔离作用,尤其是主电路为单片机系统的时候,这个隔离级还可以起到保护单片机系统的作用。
图2 采用的是廉价运放LM324,其对零点的处理是在反相输入端上加入一个调整电压,其大小恰好为输入4mA时在RAO上的压降。有了运算放大器,还使得 RAO的取值可以更加小,因为这时信号电压不够大的部分可以通过配置运放的放大倍数来补足。这样,就可以真正把4~20mA电流转换成为0~5V电压了。
使用运算放大器也会带来一些麻烦,尤其在注重低成本的时候,选择的运放往往是最最廉价的,运放的失调与漂移,以及因为运放的供电与单片机电路供电的稳定性,电源电压是否可以保证足够稳定,运放的输入阻抗是否对信号有分流影响,以及运放是否在整个信号范围内放大特性平坦,如此等等,造成这种廉价电路的实际效果不如人意。
而最大的不如人意之处还是在零点抵消电路上,随着信号电流的变化,运放的反相端的电压总是会与零点调整电压发生矛盾,就是这个零点电压也在随着运放输出的变化而变化,只不过由于有了信号有用电压的存在,而在结果中不容易区分而已。这种现象最容易造成非线性加大。虽然可以在单片机里采用软件校正来纠正,但是,就具体措施而言,这样做需要增加编程人员不少的工作量,而且需要多点采集数据来应对。
OP07组成的4-20mA输入/5V输出的I/V转换电路
图3电路是一种被推荐使用的较好线路,首先,对运放的供电采用了由DIP封装的TL431组成的高精度稳压电路,这种TL431采用DIP8封装,耗散功率达到1W,更改供电电压只需更换分压电阻就可以轻易办到。其次,运算放大器选择使用的是高精度低失调的OP07,其参数指标大大优于普通廉价运放。最为关键的是在对零点信号的处理上,可以保证输入4mA的时候,运放ICC的输出电压等于零。
分析一下这部分电路的工作原理:运放ICD的同相输入端电压由经过TIA31稳压后的负电源提供,它通过R15与R14的分压,取R14上的电压与R10 上在4mA时的电压一样,然后,经过运放的缓冲,从运放输出接有一只PNP型三极管用于扩展输出能力,实际这是一个典型的运算放大器稳压电源,其输出将跟随着运放同相端的电压,可以从接近零的电压起调。
R10就是4~20mA的I/V转换电阻,按照上述道理,由于运放的作用,这个电阻的最小取值可以很小,电阻越小越能减轻前方传感变送器的供电要求。
正是考虑到传感变送器属于一种远传信号的使用环境,为了防止引入干扰信号,加有输入滤波电容器C0和两只1N4148二极管对输入信号可能出现的危险电压进行保护。
例如:
取R10=25Ω,4mA时,其压降=0.1V,把ICD的同相端输入电压配置为负的0.1V,这样,输入信号的0.1V与这个I/V配置的负0.1V恰好互相抵消,ICC输出将是零电压。随着输入电流的增大,如果输入电流是5mA,I/V转换电压将是0.125V……如果输入电流是20mA,I/V取样电压就是500mV。这样,我们可以把这个电压放大10倍得到5V满度输出,或者放大20倍得到10V满度输出。为了方便工程上的工作方便,减少同时手续,对R10、R15、R14、R01、R02等重要电阻,必须选择其精度0.1%的E96分度的金属膜电阻,其温度漂移参数最好能够不大于50ppm。
许多传感器变送器输入标注着4~20mA的输出指标,可是,在实际上,这些参数都是不够精确的,包括一些进口传感交送器,实际测试零点电流有误差高达 18%的,即标称的4mA变成了3.3mA或4.7mA,这时候,就需要进行零点调整。在零点调整的时候,需要注意,R10与R14原来是1:4的关系,是因为它们流过的电流恰好是4:l的关系。因此,如果需要调整零点电压的时候,千万不要再动R10与R14,而应该在零点调整时更改R15,在满度调整时更改 R01。
在工程上,人们往往会采取比较快捷的工程应用方法而不是理论推导来完成任务,因为在选择元器件时,就往往无法按照计算好的数值去购买,只能从标准化生产的品种里头去选择搭配,而且,在调试时,也不可能按照理论计算的数值去测量,尤其当计算结果带着超过4位小数以上时.对所使用的仪表就会要求很高,成为"鸡蛋里头挑骨头了"。我们可以通过一个实际例子来说明这种电路的调试过程。
首先,必须把实际的传感交送器拿到手并且进行实际的测量,例如测量到的数据为:零点电流=4.25mA,满度电流=20.5mA。然后,根据最大输入电流的实际数值来求出最大输入电压:20.5mA时R10上的电压就是:20.5×25=512.5mV,其次求出零点电压:4.25×25= 106.25mV。
完成上面的简单计算后,接着,对电路的参数进行调整,零点的时候调整R15,满度的时候调整R01。按照说明提到过得,ICD的同相输入电压等于零点时 R10上的电压,可以求出:R15=(2500-106.25)/(106.25/100)=2.25KΩ。R01=[5000/(512.5- 106.25)-1]×1=11.3l等于(5000是满度输出电压,512.5是满度输入电压,106.25是零点输入电压,-1是因为同相放大器会自然+1,-1是因为R02=1KΩ)。
验算一下:
零点电流输入时,输入电压为:4.25×25=(2.5×100)/(225+100),结果:106.25=106.4,误差:0.0014。满度电流输入时的满度输出电压:(20.5×25-106.4)×(1 1.31/1+1)=4999.09,误差:0.00018。
上面的计算和对电阻的取值都省略了小数点后多于3位的数字,因为实用中已经不够现实了。就目前的数值而言,在实际应用中也可以满足许多较高精度测量的要求了。
提示:
运算放大器OP-07本身在零电压输而输出不为零时,可以在其1PN8P上连接微调电位器进行静态零点调整,也可以在零点电流输入时一并处理。
由ICA和ICB组成的高精度稳压电源,其输出电压应该大于主电路要求的满度输入电压至少3V以上,这时候,不能使用T902小功率封装的TL431来替换本电路DIP8封装的TL431。
当需要本电路处理其他非4~20mA输入的信号时,可以去掉R10,这时候,利用OP-07的优良性能和供电电源的高精度,作为通用放大器来使用。也是非常理想的。