基于单路DAC多路复用的方法探究

2015-08-10 10:30王敏叶显
电子设计工程 2015年22期
关键词:理论值电容波形

王敏,叶显

(华中师范大学 物理科学与技术学院,湖北 武汉 430079)

D/A转换器接收数字编码信号,并以电流或电压形式提供模拟输出信号。它是数字控制器件和模拟信号之间的接口[1]。

在仪器、仪表和自动控制领域中,经常需要高精度模拟量的输出,例如仪器、仪表中参考电压,偏置电压等,因而要求分辨率较高的D/A输出[2]。而高精度DAC芯片的价格一般比较昂贵,并且D/A转换器不像A/D转换器那样通过模拟开关就可以实现A/D转换器的多路扩展。当一个项目中需要多路D/A转换时,设计者一般会使用多个D/A转换芯片来进行转换得到,这样无形中增加了产品的成本,而且多个D/A转换模块也会增加PCB板的布线难度和布板面积,导致信号噪声的增加,不利于高频小信号的输出。同时大量的DA转换模块也将占用MCU大量的I/O口,浪费MCU资源,不利于产品的再升级。

针对上述问题,文中提出了一种基于单路DAC多路复用的设计方案,利用软件和硬件结合的方式,对一个串行D/A转换器进行操作,打破传统的一个串行D/A转换器只控制一路模拟输出的惯例,实现DAC的多路复用。

1 单路DAC的多路输出原理

我们利用MCU分时传给DAC芯片不同的数据[3],传送数据的同时,控制模拟开关的通道选择,使得各模拟电平独立的输出,进过RC滤波器后,输出信号达到稳定,从而实现单路DAC的多路复用,系统的总体设计框图如图1所示。

图1 系统设计框图Fig.1 The diagram of the system

1.1 1/n模拟开关

假设最终需要n路模拟输出,则在MCU中分时给DAC传送数据,同时DAC芯片需要连通一个n选一的模拟开关,来控制选通每路信号,当其中一个通路有信号输出时,其他通路输出为零,所以通过模拟开关后的每路输出信号为一个脉冲波。通过MCU控制DAC按固定时间更新数据,则每路脉冲信号的脉宽都相等,设为τ,信号幅度分别为A1,A2,A3……An,进过DAC转换模块后,可以得到一个周期为nτ的准阶梯波,设n=5,则DAC的输出波形如图2所示。

其中ti-ti-1=τ。

控制模拟开关的通道选择,在0~t1时刻选通通道一,在t1~t2时刻选通通道二……使各路电平分别从对应的通道输出,如果不接入滤波电路,那么通过模拟开关后,通道i输出波形为一个幅度为Ai,周期为nτi,占空比为1/n的脉冲波。以图1.2DAC的输出波形为例,通过模拟开关后各路输出波形如图3所示。

图2 在n=5时DAC的输出波形图Fig.2 The output waveform of the DAC when n=5

图3 模拟开关各通道的输出波形Fig.3 Each channel's output waveform of the analog switch

1.2 RC滤波

为了将上述脉冲波转化为我们所需要的稳定信号,此时我们需要引入RC滤波电路,利用RC电路的充放电特性,使充电速度快,放电速度慢[4],经过若干个周期后,使得输出信号达到稳定。为满足这一要求,我们利用模拟开关的输出电阻小,电压型运算放大器的同向输入端的输入电阻大的特性[5],将模拟开关的输出电阻作为充电电阻,将运算放大器的输入电阻作为放电电阻。

设模拟开关的输出电阻为R1,运算放大器同向端输入电阻为R2,滤波电容的容值为C,则其充、放电回路的等效电路如图4,5所示。

图4 充电回路Fig.4 Charge circuit

图5 放电回路Fig.5 Discharge circuit

设脉冲信号的幅度为Us,电容两端的电压为uc(t),对于充电回路,电容两端的电压为uc(t)=Us(1,时间常数τ=R1C,由公式可知,电容两端的电压随时间按指数的规律增长,增长的快慢由时间常数τ决定,τ越小,增长越快,τ越大,增长越慢,当t→∞时,达到稳态值Us。 在t=4τ时,uc已增长到稳态值的98%以上,在工程上一般认为,t=4τ时,电路已近似达到稳态了,uc(t)的波形如图6所示。

图6 充电回路 的波形Fig.6 The output waveform of the charge circuit

对于放电回路,电容两端的电压为uc(t)=Us(1-,时间常数τ=R2C,由公式可知电容两端的电压随时间呈指数衰减,衰减的快慢由τ决定,τ越大衰减越慢,τ越小衰减越快,当t=4τ时,uc(t)已下降为初始值的1.8%,在工程中认为此时已放电完毕,uc(t)的波形如图7所示。

图7 放电回路的波形Fig.7 The output waveform of the discharge circuit

在本设计中需要使R1尽可能的小,R2尽量大,从而使充电常数τ1=R1×C很小,而放电常数τ2=R2×C比较大。当脉冲信号为高电平时,由于τ1很小,电容快速充满电,达到脉冲的幅度值;在脉冲信号为低电平时,由于τ2比较大,所以电容缓慢释放电量。经过RC滤波电路后,得到稳定的输出电压。 各路脉冲信号经过上述滤波后得到对应的稳定输出电压,从而实现了单路DAC的多路复用。

1.3 分辨率、速度以及精度

DAC的分辨率是指输入数字量的最低有效位 (LSB)发生变化时,所对应的输出模拟量(电压或电流)的变化量。它反映了输出模拟量的最小变化值,与DAC的位数及参考电压有关。在本设计中,DAC的输入位数及参考电压都不发生改变,所以用改方法扩展DAC的多路输出不会降低DAC的分辨率。

DAC的转换速度是指DAC更新数据所需要的时钟数,在DAC转换器的工作时钟一定的前提下,通过本设计的方法实现DAC的多路扩展,在一路信号输出时,其他路信号都是无法更新数据的,如果扩展路数为N,则更新一次数据所需要的时间为原来的N倍,所以本扩展方法只适合数据更新速度要求不高的场合。

DAC的精度(简称精度)是指在整个刻度范围内,任一输入数码所对应的模拟量实际输出值与理论值之间的最大误差。是由DAC的增益误差(当输入数码为全1时,实际输出值与理想输出值之差)、零点误差(数码输入为全0时,DAC的非零输出值)、非线性误差和噪声等引起的。在没有对DAC进行扩展时,DAC的精度只由DAC本身决定。在本设计中由于引入了运放,所以其精度还与运放的偏执电压有关。为提高精度,我们需要在软件中对DAC进行校准,尽可能低的降低运放的偏置电压对系统精度的影响。

2 单路DAC多路复用的实现

为验证上述设计方案的可行性,本文采用FPGA来作为微处理器,串行数模转换芯片AD1851,模拟开关74HC4051,RC滤波器以及运算放大器TL072来实现单路DAC的多路复用,具体电路如图8所示。

图8 AD1851实现4路扩展电路Fig.8 Use AD1851 to achieve 4-way expansion

在本设计中,采用FPGA来控制数字部分电路,利用Verilog HDL编程语言来编写代码,将FPGA的强大逻辑和计算功能与Verilog的简单、直观和高效的特点相结合,以便更好的完成设计要求[6-7]。FPGA传送给AD1851的工作时钟为10 MHz,小于它的最大工作时钟12.5 M,在程序中依次按照DAC1,DAC2,DAC3,DAC4所对应的值给AD1851循环赋值,每20 μs更新一次输入数据,赋值的同时控制模拟开关的选通,使上述4种电平分别从对应的通道输出,得到4路周期性的脉冲波,然后通过滤波得到相应的稳定信号。经查手册可知HC4051的输出电阻记为R1=120 Ω,TL072的同向输入端输入电阻为R2=1×1012Ω,滤波电容取值100 nF,对于充电回路的充电常数τ1=R1C=12 μs,对于放电回路的放电常数τ2=R2C=105s,由于τ1很小,而τ2很大,所以电容很很快充满电,而且一旦充满电后就可以基本保持不变,得到所需的稳定电平,从而现实的单路DAC的4路扩展输出。

3 测试与结果分析

通过对四路输出电压的实际测量,并记录测量值,将测量值与实际输出值进行对比,验证实验的可靠性,测试数据如表1、表2、表3、表4所示。

表1 通道1的实际测量值与理论值对比Tab.1 The error between measurement value and theoretical value of channel 1

表2 通道2的实际测量值与理论值对比Tab.2 The error between measurement value and theoretical value of channel 2

表3 通道3的实际测量值与理论值对比Tab.3 The error between measurement value and theoretical value of channel 3

表4 通道4的实际测量值与理论值对比Tab.4 The error between measurement value and theoretical value of channel 4

从以上数据可以看出,实际测量值与理论值都非常接近,最大误差不超过2%,由此可见将单路串行DAC1851进行4路输出扩展取得了成功。

4 结束语

文中给出了一种将单路DAC实现多路输出的设计方案,并成功应用于与江苏绿扬电子仪器集团有限公司合作项目:任意波形发生器。这种方法不仅能在占用CPU资源较少的情况下,有效解决了实际项目中需要多路高分辨率D/A输出问题,而且可以简化接口电路,减少对高精度DAC的需要,大幅度的减小电路板的面积,降低设计成本,让公司产品更加具有竞争力。本设计方案是一种易于被开发者接受的高性价比,实用的设计方案。

[1]张红,李红宝,陈海燕.一种串行逐次逼近10位DA转换器[J].微电子学,2006,36(6):798-801.

[2]牛春平,张文学,任哲平.基于软件的多路PWM式D/A转换技术[J].装甲兵工程学院学报,2002,16(1):83-86.

[3]李群芳,肖看.单片机原理、接口及应用——嵌入式系统技术基础[M].北京:清华大学出版社,2005.

[4]田化梅,李玲远.电路测试与电工基础实验[M].北京:科学出版社,2006.

[5]华成英,童诗白.模拟电子技术基础[M].北京:高等教育出版社,2006.

[6]王敬华,林萍,陈静.C语言程序设计教程[M].北京:清华大学出版社,2005.

[7]刘福奇.FPGA嵌入式项目开发实战[M].北京:电子工业出版社,2009.

猜你喜欢
理论值电容波形
GH4169高温合金螺栓高温疲劳载荷理论值的选择研究
扩招百万背景下各省区高职院校新增招生规模测度研究
基于LFM波形的灵巧干扰效能分析
用于SAR与通信一体化系统的滤波器组多载波波形
浅析投射式多点触控电容触摸屏
组合变形实验中主应力方位角理论值的确定
宽电容测量仪的设计
基于双重软开关Buck变换器的超级电容充电电源
ASME规范与JB/T4730对接焊缝超声检测的灵敏度差异探讨
基于ARM的任意波形电源设计