原创 廉价隔离型高精度D/A转换器

2006-11-24 17:31 2869 8 8 分类: MCU/ 嵌入式

在自动化仪表,电动组合仪表II型输出0~10mA的电流,III型输出4~20mA的电流。本文介绍的电路可以作为0~20mA的恒流源输出,因此适用性较广,可为各种仪器仪表输出标准电流,或者进行长距离的信号传输。本电路具有串行接口,易于构成网络测量和控制。同时应用光电隔离使本电路与输出电路隔离,从而解决了测量设备的共地问题,保证了测量设备的安全。另外,利用单片机便于计算和控制的特点,对输出电流进行软件校正,最后输出电流精度达到± 0.1%。
点击看大图


 


1 电路原理


该电路通过扩展键盘/显示器可任意设置输出电流值(0.00~20.00mA),精度达到±0.1%;通过串行口,采用PC机控制输出电流的大小,并且在PC机上同步显示输出的电流值。具体电路原理如图1所示。


(1)脉宽调制波(PWM)的产生


启动单片机的定时器T0和T1,设定时器T0和T1工作于16位定时器方式,利用中断实现PWM输出(设定1个脉冲对应0.01mA)。


定时器T0中预置数据——PWM的脉宽数据的补码。


定时器T1中预置数据——PWM的周期数据的补码。


中断子程序如下:


TT0:CLR TR0


CLR P3.4


MOV TL0,#DATA_L ;输入数据低八位


MOV TH0,#DATA_H ;输入数据高八位


RETI


TT1:CLR TR1


SETB P3.4


MOV TL1,PWM_TL


MOV TH1,PWM_TH;置周期


SETB TR1


SETB TR0


RET1


采用定时器定时和定时器中断服务子程序共同完成脉宽制波(PWM)的产生。


脉宽调制波形如图2所示。4c7686c8-196e-4574-89fc-481ac12187b2.gif


(2)光电隔离及RC电路


采用光电耦合器U4,使MCU电路与输出相隔离。欲使输出电流精度较高,一般应采用开关速度较快的光电隔离器,如6N135、6N137等。在光电隔离后,对PWM信号采用双RC电路(R5,R6及C7,C8)来获取直流电压分量。


(3)电压/电流转换电路


如图1所示,在a点处得到0~5V的直流电压,作为运放的正向输入信号。图1中的运放构成一个跟随器,NPN型三极管G1、G2构成电流放大器。根据运算放大器的有关特性,有Ua=UR10,Iout=Ua/R10。本电路要求R10是精密电阻,则流过R10的电流大小与Ua点的电压成正比。Ua是a点电压,UR10是R10两端电压,Iout是输出电流。52c9ec6f-8b53-4566-b5cd-280fc9372cd0.gif


(4)微机通信


本系统中设计了ICL232串口芯片,完成TTL电平与串口电平之间的转换,这样单片机与PC机就可以进行双向通信了。单片机采用定时器T2作波特率发生器,波特率设为2 400 bps,串行口工作方式设为方式1。这样,PC机就可以通过串行口编程控制输出电流的大小(0.00~20.00mA)。


2 测量结果


经过实测得到表1所示测量数据。

表1 未校正前电流输出测量值   单位:mA



设置值输出值设置值输出值设置值输出值设置值输出值
0.50.486 95.55.52910.510.55715.515.608
10.990 066.0321111.0621616.111
1.51.492 86.56.53411.511.56716.516.614
22.00077.0371212.0721717.118
2.52.5047.57.54012.512.57717.517.621
33.00888.0421313.0821818.124
3.43.5138.58.54513.513.58718.518.628
44.01799.0481414.0931919.131
4.54.5219.59.55114.514.59819.519.634
55.0261010.0541515.1032020.14

误差与设定值的关系可用两条直线(ab、ac)


描述,如图3所示。


通过对以上测量数据的分析,测量值与设置值之间存在着一定的误差,原因主要有以下几点:


①本电路用到了双积分RC电路,RC电路中充、放电过程存在着非线性问题,同时电路中的电容存在着精度、漏电等问题,因此输入脉宽调制信号转化为直流电压时存在一定的非线性关系,产生了一定的误差。


②跟随器主要由运算放大器构成,如果是理想的运算放大器,则“虚短”和“虚断”的条件才成立,而实际应用中,没有理想的运算放大器。因此,正相、反相输入端电压差不为零,也会产生一定的误差。


3 解决方法


通过对上述测量数据的比较、分析,可采用软件线性回归的方法对输出电流进行校正。


设直线方程y=ax+b,其中y为校正后PWM的脉宽设定值,x为电流输出设定值。


本电路校正方法是:将数据从2mA处分为两段进行线性回归。


直线ac:


y=a1x+b1,a1=(2-0.5)/(2-0.0486 9),b1=2-a1×2;


直线ab;


y=a2x+b2,a2=(20-2)/(20.14-2),b2=2-a2×1。


通过单片机校正后,实测数据和表2所列。

表2 校正后电流输出值



设置值输出值设置值输出值设置值输出值设置值输出值
0.50.489 95.52.51810.510.50915.515.517
10.990 066.0191111.0111616.019
1.51.499 96.56.51711.511.51316.516.518
22.00077.0161212.0141717.016
2.52.5027.57.51412.513.01517.517.519
33.00288.0141313.0151818.019
3.53.5018.58.51113.513.51518.518.518
44.00299.0091414.0161919.018
4.54.5029.59.50314.514.51819.519.519
55.0021010.0011515.0172020.020

经过上述方法校正,输出电流值的精度达到±0.1%。

文章评论0条评论)

登录后参与讨论
我要评论
0
8
关闭 站长推荐上一条 /2 下一条