D/A转换器设计

时间:2011-09-03

  摘要:介绍隔离型高D/A转换器的设计方法:由单片机89C52产生PWM,经过光电隔离和一个双RC电路,将数字信号转换为直流电压信号,再经过电压/电流转换电路,输出0~20mA电流信号;通过软件校正,达到高。


  本文介绍的电路可作为0~20mA的恒流源输出,所以实用性非常地广泛,可进行长距离信号传输,或者为各种仪器仪表输出标准电流。

  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

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

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

  如图1所示,在a点处得到0~5V的直流电压,作为运放的正向输入信号。图1中的运放构成一个跟随器,NPN型三极管G1、G2构成电流放大器。本电路要求R10是精密电阻,则流过R10的电流大小与Ua点的电压成正比。

  (3)光电隔离及RC电路

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

  (4)微机通信

  本系统中设计了ICL232串口芯片,完成TTL电平与串口电平之间的转换,这样单片机与PC机就可以进行双向通信了。单片机采用定时器T2作波特率发生器,波特率设为2 400 bps,串行口工作方式设为方式1.

  2 测量结果

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

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

设置值 输出值 设置值 输出值 设置值 输出值 设置值 输出值
0.5 0.486 9 5.5 5.529 10.5 10.557 15.5 15.608
1 0.990 0 6 6.032 11 11.062 16 16.111
1.5 1.492 8 6.5 6.534 11.5 11.567 16.5 16.614
2 2.000 7 7.037 12 12.072 17 17.118
2.5 2.504 7.5 7.540 12.5 12.577 17.5 17.621
3 3.008 8 8.042 13 13.082 18 18.124
3.4 3.513 8.5 8.545 13.5 13.587 18.5 18.628
4 4.017 9 9.048 14 14.093 19 19.131
4.5 4.521 9.5 9.551 14.5 14.598 19.5 19.634
5 5.026 10 10.054 15 15.103 20 20.14
  误差与设定值的关系可用两条直线(ab、ac)
 
  通过分析,测量数据之间存在着误差的主要原因有以下俩点:
  ①本电路用到了双积分RC电路,RC电路中充、放电过程存在着非线性问题,同时电路中的电容存在着、漏电等问题;
  ②跟随器主要由运算放大器构成,如果是理想的运算放大器,则"虚短"和"虚断"的条件才成立,而实际应用中,没有理想的运算放大器。
 
  3 解决方法
 
  通过对上述测量数据的比较、分析,可采用软件线性回归的方法对输出电流进行校正。
 
  设直线方程y(校正后PWM的脉宽设定值)=ax(电流输出设定值)+b。
 
  本电路校正方法是:将数据从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.5 0.489 9 5.5 2.518 10.5 10.509 15.5 15.517
1 0.990 0 6 6.019 11 11.011 16 16.019
1.5 1.499 9 6.5 6.517 11.5 11.513 16.5 16.518
2 2.000 7 7.016 12 12.014 17 17.016
2.5 2.502 7.5 7.514 12.5 13.015 17.5 17.519
3 3.002 8 8.014 13 13.015 18 18.019
3.5 3.501 8.5 8.511 13.5 13.515 18.5 18.518
4 4.002 9 9.009 14 14.016 19 19.018
4.5 4.502 9.5 9.503 14.5 14.518 19.5 19.519
5 5.002 10 10.001 15 15.017 20 20.020

  校正之后,达到±0.1%.

  4 结论

  本电路的硬件部分采用通用器件,简单的结构,低廉的成本;充分利用了89C52的定时器资源,使用了定时器T0、T1、T2.89C52的其它端口和引脚都没有被占用,该电路就能很容易地移植到其它控制系统和测量系统中;软件采用对输出电流进行校正的方法,使得达到±0.1%;还具有串行接口,组网控制也变的方便;因此,本电路具有光电隔离、强大的通用性、高、低成本的特点,且有较高的实用价值。



  
上一篇:解析正负峰值的整流器
下一篇:编写Windows CE.net的usb驱动程序教程

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料