串行D/A转换器

2024-08-05

串行D/A转换器(共4篇)

串行D/A转换器 篇1

1串行转换器应用背景

在以80C196KC单片机为控制芯片的某车辆控制设备中,具有这样的一项功能,即通过函数电位计对一旋转设备的不同位置进行定位,以角度值对不同的位置进行记忆,以便在该控制设备的后续功能中应用该角度值寻找到该旋转设备的不同位置。数据采集示意图见图1。图1中函数电位计的输入为+5V和相应的地,其输出为模拟量1和模拟量2。控制设备的主控芯片为80C196KC单片机,采集模拟量1和模拟量2,并通过单片机自带的A/D转换功能将2模拟量进行A/D转换。控制设备通过内置的软件并利用得到的函数值来记忆旋转设备某位置的角度,从而来实现该设备的功能[1]。通过现场实验得到的函数电位计的角度与输出关系见表1。

对旋转设备不同位置的记忆是实现该控制设备功能的基础,因此在检验该控制设备功能之前必须先对旋转设备的不同位置进行记忆。实际数据的采集不仅需要将控制设备安装至车辆,还要求有专业人员对其进行操作,但是在该控制设备进行批量生产的过程中这种要求几乎不能实现。

在开发该设备的过程中,需要通过一检测控制系统对其功能进行检测,但是实现该设备功能的基础是先要确定其控制对象(旋转设备)的位置,即现场数据的采集,从表1可知,现场采集的数据精度为0.01V;同时,在控制设备实际工作中允许的最大误差也为0.01V。因此,为避免检验该设备功能时进行实际的旋转设备的数据采集,同时又能准确地检测该控制设备的功能是否达到设计的要求,就需要检测控制设备为其提供2个模拟量来替代函数电位计的输出信号。

由于在检测控制系统中控制任务比较多,同时模拟现场的2个模拟量实时性要求不高,2个信号的采集需由另一个开关量控制,因此我们可以选用一个具有如下特点的D/A转换芯片:①能够满足系统的精度要求;②输出带有锁存功能;③占用单片机资源较少;④编程简单、操作方便。基于以上特性,我们选择了MAXIM公司生产的MAX521。

2MAX521转换芯片

DIP封装的MAX521管脚及其管脚说明详见其应用手册。在不使用D/A转换时,将SDA、SCL置于高电平;保持SCL为高电平,将SDA变为低电平,即开始启动D/A转换;转换过程完成后,SDA为低电平;保持SCL为高电平,将SDA变为高电平,结束D/A转换。启停时序示意图见图2。

SDA的状态只有在SCL=0时才能改变,由于SDA的状态是被取样的,所以当SCL=l时,SDA必须保持其状态的稳定,只有在START、STOP状态下才有例外。当总线不使用时,SCL和SDA必须为高电平。

MAX521只从CPU接收命令,进行一次D/A转换需要3个字节,依次为地址字节(address)、命令字节(command byte)、输出量字节(output byte)。地址字节和命令字节分别见图3、图4。

地址字节应用于多片系统,芯片接收到该字节后,将字节中AD0、AD1状态与本节点硬件连线中的AD0、AD1引脚的电平进行比较,如地址相符则接收后面的命令,否则不接收后面的指令。其中,地址字节的前5位为出厂代码01010,不可更改;AD0、AD1节点选择,最末一位必须是0。命令字节高3位R2、R1、R0为出厂代码,不可更改(R2R1R0=000);RST是芯片复位信号,RST=l时MAX521复位;PD为低功耗信号,PD=1则芯片进入低功耗状态,电流为μA级;A2、A1、A0为选择输出信号通道,从000~111,对应输出通道0~8。输出量字节就是转换量数值,从00~0FFH,每个字节之间必须加入“0”状态作为确认信号,表示该字节已写完,可以写下一字节。一个完整的D/A转换时序见图5。

通过以上对MAX521 D/A转换芯片的介绍,可见MAX521与CPU的接口十分简单,只需2个普通I/O口就可以进行通信。移位脉冲SCL的频率上限为400kHz,下限可以接近于零,编程容易,实现简单。

3MAX521在车辆检测控制系统中的应用

检测控制设备以80C196KC单片机为主控芯片,在定位旋转设备位置时,要求函数电位计同时输出2路模拟量并通过对另一信号的采集对这2个模拟量进行采集。由于MAX521自带有数据锁存功能,因此等待2路D/A转换完成后即可对2模拟信号同时进行采集,故选用一个MAX521就可以满足要求,MAX521与80C196KC单片机的连接方式见图6。

P13为SDA输入端,P14为SCL输入端;选择通道1和通道2作为模拟量的输出端;AD1接地,AD0接VCC,即该片MAX521的地址为AD1AD0=01;因为模拟量要求输出最大为5V,故参考电压都接为+5V,其它通道以备后用;SDA和SCL通过一电阻与VCC相连,以增强信号的驱动能力。

在软件编制时,高低电平的持续时间可以通过插入延时子程序来实现。实验测得的D/A转换数据见表2。

通过表2的数据可知,由于检测控制系统电源模块的限制,模拟量精度为0.01V,测得的数据精度满足控制要求,故MAX521输出的模拟量完全能够模拟数据的现场采集。将通道0和通道1输出的模拟量送至控制设备的输入口,通过确认信号对2个信号进行采集。在本系统中,由于需要转换35组模拟量,故采用查表法进行设计,建立的数据表如下:

偏移量相等的数字量为一组,进行D/A转换,转换的一组结果被同时采集,其中第一组的结果对应旋转设备的0o,第二组对应于10o,依次类推,共35组。通过多次转换,模拟旋转设备不同位置时函数电位计的输出,达到脱离现场环境、模拟实际数据采集的目的,为检验控制设备的功能做好了准备。

4总结

在检测控制系统中,应用MAX521很好地克服了硬件资源相对紧张的缺点,其自身所带的数据输出锁存功能使得在确认信号到来时,确保系统输入2个稳定的模拟量,模拟了现场通过函数电位计对旋转设备的数据采集,以期达到对旋转设备的位置定位。同时其它D/A转换通道可备后用,其简单的硬件连线及清楚明了的转换协议可以缩短硬件及软件的开发周期。

摘要:介绍了串行D/A转换芯片MAX521的性能、协议及其使用方法,并将MAX521应用在以单片机80C196KC为核心的检测控制系统中,实现了输出2个稳定的模拟量、占用硬件资源少的目的。通过应用MAX521,很好地模拟了数据的现场采集,缩短了控制设备的开发周期。

关键词:MAX521,D/A转换,检测系统

参考文献

[1]孙涵芳.Intel16位单片机[M].北京:北京航空航天大学出版社,1995.

串行D/A转换器 篇2

1.1 A/D (D/A) 转换器的概念

A/D (D/A) 转换器是用于实现模拟量与数字量之间相互转化的终端, A/D转换器也被称作ADC, 是用来将模拟量转化为数字量的器件, D/A转换器也被称作DAC, 是用来将数字量转化为模拟量的器件。

1.2 A/D (D/A) 转换器的技术指标

它的几个重要技术指标分别有分辨率、建立时间和精度这三点。接下来我们就对这些指标依次进行介绍。

(1) A/D (D/A) 转换器的分辨率。

就DAC来说, 分辨率一般是指输入到DAC中的单位数字量的变化而引起的模拟量输出的变化, 它是输出的满刻度值与2n的比值, 二进制位数越多, 其分辨率就越高。通常情况下, 我们是依据对DAC的分辨率的需要, 依据一定的计算方法来选定其DAC的位数的。这就是说, 当满量程为电压20V时, 其分辨率则应为20V/2n, 如果这个DAC为6位的转换器, 那么其分辨率就是20V/26=0.313V=3.13mV, 分辨率就占满量程的3.13%, 用1LSB来表示, 且有6位的D/A, 1LSB=3.13mV=3.13%满量程。[1]

(2) A/D (D/A) 转换器的建立时间。

建立时间是用来描述DAC转换速度的参数, 它是指由输入数字量开始直到输出量能够达到终值误差最低有效位时所消耗的时间。一般情况下, 电流输出时间越短, 建立时间就越长, 实践可知一些快速的DAC, 其建立时间可低于1μs。

(3) A/D (D/A) 转换器的精度。

精度在理想状态是, 其数值是与分辨率基本一致的, 其精度的高低随位数的增加而增加。但由于电源电压、参考电压和电阻等元器件均存在着误差, 这就导致其值与分辨率会略有变化。一般情况下, 位数相同, 则分辨率相同, 然需对于不同的转换器个体, 其精度会有所差别。即相同位数的DAC其精度可能不同。

1.3 A/D (D/A) 转换器的分类

A/D转换器可分为逐次逼近型、快闪型和流水线型等。其转换速度主要由算法、DAC建立时间、比较器端数据输出时间和逻辑电路的工作时间共同影响。接下来, 我们就依次对这几种转换器的作以简述。

(1) 逐次逼近型A/D转换器。

逐次逼近型A/D转换器是一种精度在9~16Bit的模数转换器。它功率的损耗是随着采样速率的改变而改变的, 这使其可以适用于非连续数据采集的电路中或要求低功耗的电路之中。逐次逼近型A/D转换器是通过将输入的模拟信号进行采样, 并将采用的值经比较器与多个经过数模转换器的参考电压分别进行比较, 使得转换得到的数字量在数值上与模拟量逐次逼近, 以得到所要求的数据值。

(2) 快闪型A/D转换器。

快闪型A/D转换器有着传输速度快的优点, 其最快可以达到G赫兹量级, 但随之而来的问题是要加大电路之中比较器的数量, 但在电路中比较器的数量能常是在一定数量范围内的, 因此其比较器的数量要小于所需要的数量, 这就无形间减小了其精度。除此之外, 它还有着成本较高、功耗较大的缺点。

(3) 流水线型A/D转换器。

流水线型A/D转换器是模数转换器转换方案中, 比较好的方案之一, 它综合性能较好, 在达到一定速度的前提下, 还可以保证一定的精度。

2 A/D (D/A) 转换器的应用设计

A/D转换器的设计方案与D/A转换器的设计方案略有不同, 接下来我们以D/A转换器的设计结构和非线性优化设计为例对其设计做以简要叙述。

2.1 D/A转换器的设计结构

通常情况下, D/A转换器的INL和DNL主要是由其内部的非线性度来决定的, 所以要想实现其高精度设计, 就必须从此入手进行分析。DAC的精度的提高, 会导致其面积以2次幂的速度增加, 其最高与最低位的比值也会变得很大, 从面导致其匹配度下降, 对其非线性规律产生影响。所以为了得到较好的精度与匹配度, 我们常使用5位电荷分布的DAC与5位电压分布的DAC级联以构成DAC转换器。

电荷分布的DAC可以通过利用电容来实现其电荷的分布, 在其模块阵列中, 我们会以每一个子电容作为一个单位电容, 进行其2n排列组合, 以构成二进制权重因子, 实现模拟信号向数字信号的转换。而电荷分布的DAC则是由一组电阻加解码器来组成, 以配合电荷分布的DAC对模拟信号的转换。对这两种DAC的级联的总DAC[2], 其输出公式如下:

VOUT=[b12-1+b22-2+…+bn2-n]VREF

2.2 D/A转换器的非线性优化设计

一般情况下, 5位有效的电容子DAC的非线性度是决定整个DAC非线性度的主要因素, 同时它还会对ADC的非线性度产生一定的影响。由于现实的制造工艺使得电容板使用的多晶硅层的厚度及介电常数存在着一定的梯度误差, 这使得其理论数值与实际数值存在着较大的差异, 其误差积累会造成INL的强烈变化。

为此, 我们可以使用版图对称设计, 以此来对其进行一定的控制来减小其随机误差。然而工艺中的随机误差通常是通过增加电容面各来加以控制的, 这就导致在进行非线性控制的同时, 其芯片面积会随之增加。为了解决这个问题, 我们可以通过分析误差分布图, 用一定的方法使每个电容的导通次序可以与梯度误差的积累相互抵消这会大大提高D/A转换器的非线性度。

3结语

通过以上对A/D (D/A) 转换器的相关理论与应用设计的简要介绍, 使我们对模拟信号与数字信号的转换有了一定的了解, 希望可以为初学者们提供一定的参考方向。

参考文献

[1]曹先国, 洪志良, 唐璞山.《一种分辨率为9位的高速CMOS比较器[J]》.复旦学报.1999.

串行D/A转换器 篇3

1 通用双极性输出电压D/A转换器

图1是输入为3 bit的双极性输出D/A转换器[2]。在没有接入反相器G和偏移电阻RB情况下,它的输出电压是单极性的,是一个普通的3 bit电阻网络D/A转换器,得不到正、负极性的输出电压,为此在图1中增设了由RB和VB组成的偏移电路。

根据原码与补码的关系,在各放大器的输入端接入一个偏移电流,使输入最高位为1,而其他各位输入为0时,输出VO=0。为了使输入代码为100时的输出电压等于零,只要使IB与此时IΣ的大小相等即可,故应取:

将输入的符号位反相后接到D/A转换器的输入端,就得到了双极性输出的D/A转换器。该电路的优点是网络中只有R和2R两种阻值的电阻,精度高、速度快;其缺点是网络的电阻数目较多,为集成电路设计和制作带来不便[3]。

2 一种新颖的Π型双极性D/A电阻网络单元

在分析了普通双极性D/A输出单元后,本文提出了一种全新的Π型双极性D/A电阻网络单元。本电路相对简单,又有较高精度,集成化又较容易,具有广泛的应用价值。

2.1 4 bitΠ型电阻网络的设计

Π型电阻网络如图2所示,反相端“虚地”,S3和S2位的电阻及S1和S0位的电阻取值相差一倍,目的是让流过它们的电流相差一倍。关键是如何确定串联电阻RS的阻值,使其符合二进制的衰减规律。如假设RS=m R,则当S3S2S1S0的取值为0011时,S3、S2位接地,S1、S0位接参考电压,流入S3、S2位的电流等于零。

图2 的等效电路如图3所示。则流过RS电阻的电流为:

根据二进制D/A权电阻网络的衰减规律有:

所以:

比较式(1)和式(2)得到m=2。

显然上述假设不失一般性。由于上述电阻网络像一个Π形状,所以称之为Π型D/A权电阻网络。

2.2 4 bit新颖的Π型双极性D/A电阻转换器

在上述新颖的电阻网络单元基础上,加上偏移电阻RB,在S3位加上反相器G,就得到双极性输出D/A电阻转换器,转换的原理如下。

4 bit二进制补码可以表示从+7~-8之间的任何整数,它们与十进制的对应关系以及希望得到的输出模拟电压如表1所示。

图4所示的电路中,如果没有接入反相器G和偏移电阻RB,它就是一个4 bitΠ型电阻网络D/A转换器,在这种情况下,如果把输入的4 bit代码看作无符号的4 bit二进制数(即全都是正数),并且取VREF=-16 V,则输入代码为1111时输出电压VO=15 V,而输入代码为0000时输出电压VO=0 V,如表2所示。将表1与表2对照可发现,如果把表2中间一列的输出电压偏移-8 V,则偏移后的输出电压恰好同表1所要求得到的输出电压相同。

为了得到正、负极性的输出电压,在图4所示的电路中增设了由RB和VB组成的偏移电路;为了使输入代码为1000时的输出电压等于零,只要使IB与此时IΣ的大小相等即可,所以取:

在图4中,将d3的符号位经反相器G后才加到D/A转换器上,就得到了表1所要求的输入与输出关系。对于由4 bitΠ型电阻网络构成的双极性D/A转换器有:

Π型电阻网络双极性输出D/A转换器,电路电阻个数较少、阻值选取方便,又适用于集成电路制作。该方法也易于扩展到8 bit及16 bit的双极性D/A转换器,在电子技术应用领域具有较高的理论与应用价值。

参考文献

[1]秦曾煌.电工学[M].北京:高等教育出版社,2001.

[2]阎石.数字电子技术基础[M].北京:高等教育出版社,2004.

串行D/A转换器 篇4

关键词:脉宽调制 (Pules Width Medulation, PWM) ,D/A转换,单片机

基于单片机的嵌入式系统在工业中的应用越来越普遍。现代自动化仪器仪表大多采用单片机。许多设备之间的连接或者控制都是有标准的4—20mA或者 (1—5) V直流信号来完成的, 然而一般的单片机没有这种标准的电流信号输出接口, 具有直流电压输出集成D/A转换的单片机也很少。但是, 几乎所有的单片机都提供定时器或者PWM输出功能。如果能应用单片机的PWM输出 (或者通过定时器和软件一起来实现PWM输出) , 经过简单的变换电路就可以实现D/A转换, 这将大大降低电子设备的成本、减少体积, 并容易提高精度。

本文提出了一种采用AVR系列单片机MEGA 16来实现DA转换的PWM方法。AVR单片机采用了RISC结构, 其工作在16MHz时具有单字长定点指令平均执行速度 (MillionInstiuctionsPer Second) 达16MIPS的性能。对于一般8位单片机而言, AVR不仅配备了更多的定时/计数器接口, 而且还是增强型的, 可产生无输出抖动 (glitch-free) 的、相位可调的PWM信号输出。

1 PWM信号的产生

对于AVR系列单片机ATmega16, 可以利用定时/计数器的PWM模式, 与比较匹配寄存器相配合, 直接生成占空比可变的方波信号, 即脉冲宽度调制输出PWM信号。快速PWM模式的基本工作原理是:定时/计数器在计数过程中, 内部硬件电路会将计数值 (TCNTn) 与比较寄存器 (OCRn) 中的值进行比较, 当两个值相匹配 (相等) 时, 能自动置位 (清0) 一个固定引脚的输出电平 (OCnx) , 而当计数器的值达到最大值时, 则自动将该引脚的输出电平 (OCnx) 清0。[1]因此, 在程序中改变比较寄存器中的值 (通常在溢出中断服务程序中) , 定时/计数器就能自动产生不同占空比的方波信号 (PWM) 输出计数器的上限值决定了PWM的频率, 而比较匹配寄存器OCRn的值决定了占空比的大小。[1]

在实际应用中, 除了要考虑如何正确的控制和调整PWM波的占空比, 获得达到要求的平均电压的输出外, 还需要综合考虑PWM的周期、PWM波占空比调节的精度、积分器的设计等。根据PWM的特点, 在使用定时/计数器设计输出PWM时应注意以下几点:

(1) 首先应根据实际情况, 确定需要输出的PWM波的频率范围。这个频率与控制对象有关。[3]PWM波的频率越高, 经过积分器输出的电压也越平滑。

(2) 然后还要考虑占空比的调节精度。占空比的调节精度越高, 经过积分器输出的电压也越平滑。但占空比的调节精度与PWM波的频率是一对矛盾, 在相同的系统时钟频率时, 提高占空比的调节精度, 将导致PWM波的频率降低。

(3) 由于PWM波的本身还是数字脉冲波, 其中含有大量丰富的高频成分, 因此在实际使用中, 还需要一个好的积分器电路。例如采用有源低通滤波器或多阶滤波器等, 能将高频成分有效的除掉, 从而获得比较好的模拟变化信号。

2 PWM到电压输出型D/A转换的实现

这种方式在理论上很成熟, 根据图1, 这种方法的最简单实现方式为PWM波加RC滤波器来实现。[4]图2为最简单的实现方式, 利用单片机产生PWM波, 通过由电阻R和电容C构成的简单积分电路, 滤掉高频进行平滑后, 得到D/A转换的输出电压。

该电路没有基准电压, 而且随着负载电流和环境温度的变化, 精度很难保证。另外, 图2的D/A转换的负载能力也比较差, 只适合与具有高输入阻抗的后续电路连接。因此, 图2的电路只能用在对D/A转换输出精度要求不高、负载很小的场合。对精度和负载能力要求较高的场合, 需要对图2的电路进行改进, 增加基准电压、负载驱动等电路。

3 高分辨率D/A转换的硬件电路

电路图中LM336-5为基准电压源, LM358输出放大器。图3中A点的PWM波经过两级阻容滤波在B点得到直流电压信号, 实现了D/A转换功能。由于放大器的输入阻抗很大, 二级阻容滤波的效果很好, B点的电压纹波极小, 满足高精度要求。输出放大器工作在电压跟随器方式, 输出范围在 (0—5.2) V之间, 满足目前的 (1—5) V传输标准。如果需要输出电流信号, 只需要加一级可变恒流输出电路即可。

这个电路的输出会有滤波带来的滞后, 由于滤波网络有电容存在, 则网络由一个稳态到另一个稳态之间, 必定存在着过渡过程。过渡过程与滤波网络时间常数τ有关, 它的大小会影响到D/A的转换速度, 通过调整阻容参数, 可以改变这两项指标。

如果需要与控制器隔离的D/A转换, 则需要在PWM信号与平滑滤波电路之间加上光耦进行隔离, 如TLP521—1或者开关速度更快的光耦如6N135、6N137等。如果光耦导通速度慢的话, 可能在上升沿产生一个斜度, 使波形失真。同时需要增加一级NMOS开关管, 如IRF530, 作为基准电压源的开关控制, 其典型导通电阻小于0.16 Ω, 而截止电阻却非常大, 单片机输出的PWM波驱动开关管的栅极, 开关管按照PWM的周期和占空比进行开关。

4 实验数据

采用图3电路, 用示波器检测, 得到下表1的数据。最大线性误差0.53%

单位:V

5 结论

本设计选用AVR系列单片机, 它采用大型快速存取寄存器组、快速单周期指令系统以及单级流水线等先进技术, 使得AVR单片机具有高达1MIPS/MHz的高速运行处理能力。产生的高速PWM信号能满足大部分工业场合的应用。同时, 由于PWM波很容易通过MCU的软件进行控制, 即使电路稍微有些系统误差, 也很容易通过软件进行校正。因此, 图3的电路可以得到高精度的DAC输出。

参考文献

[1]ATMEL.AVR应用笔记AVR131 (doc2542.pdf) .www.atmel.com, 2003

[2]马潮.AVR单片机嵌入式系统原理与应用实践.北京:北京航空航天大学出版社, 2007

[3]ATMEL.AVR应用笔记AVR314 (doc1982.pdf) .www.atmel.com, 2008

上一篇:职业风险因素下一篇:外向发展