找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于FPGA的∑-Δ D/A转换器的设计与实现

[复制链接]
admin 发表于 2013-3-28 23:05:56 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
  引言
     在各类电子系统中,数字电路所占比重越来越大。这主要是因为数字电路相对于 电路有一些突出的优点,例如:1 数字电路中的有源器件工作在饱和区 与截止区,工作状态稳定;2 数字电路处理的是二值信号,易于存储和再生;3 数字电路是由大量相同的基本单元,如门、触发器等所组成,易于大规模集成,易于自动化设计工具的应用等。再加上数字计算机和数字信号处理技术的迅速发展,使得数字电路从集成规模、应用范围及设计自动化程度等方面都大大超过了模拟电路,越来越多的由模拟电路实现的功能转由数字电路实现,进入了电子系统设计的数字化时代。
     1  变∑-Δ换的原理
     ∑-Δ变换采用过取样技术,将信号按时间分割,保持幅度恒定,具有高取样率、噪声整形和比特字长短的特点。变换可以在低取样率、高分辨率的量化器或者高取样率、低分辨率的量化器中进行,在数字音频中很有用,如用于音频信号数字化的∑-Δ ADC及可将已经数字化处理后的音频信号还原为模拟声音信号的比[color=#(color)]特数时所带来的量化非线性误差、纠错困难的缺点。
   
  ∑-Δ变换是将信号按时间分割,保持信号幅度恒定。它用高电平或低电平的脉冲表示信号,例如可以采用脉冲密度调制(PDM),如图1所示恒定幅度的脉冲信号,不论电平高或低都能够重建输出信号波形。  打个比方来说明如何用1比特替代16或更多比特:传统的阶梯变换器像16个电灯泡,连接到各自的开关上,每个都有不同的亮度,用各种组合方式可以得到216(即65536)种不同的亮度。然而,灯泡间的亮度差会引入误差,某种组合也并不总是能够产生所要求的亮度。1比特变换技术采用完全不同的方法,不用那么多灯泡和开关,只用一个灯泡和一个开关。房间亮度的变化可以通过简单的改变开、关灯泡的次数来得到。如果灯泡开的次数增加,房间的亮度就会增加。
    2012110704453667816661.jpg
    图1 脉冲密度调制
     [color=ecoration:]2  ∑-Δ DAC的结构
     传统的应用电流模技术的DAC当位数达到10位以上时,要在某一温度范围保持精度非常困难。本文的∑-Δ DAC运用了数字技术,因此与电流模DAC相比,不受温度变化的影响,且能在可编程逻辑器件如FPGA中实现。∑-Δ DAC实际上是高速1位DAC,应用数字反馈技术从输入二进制数字量产生等幅的脉冲串,脉冲串的平均占空比与输入二进制数字量成正比,脉冲串再通过一RC模拟低通滤波器就能重建模拟波形。∑-Δ DAC非常适合于低频、高精度的应用,尤其在数字音频领域应用广泛。
     作为例子,本文中所描述的∑-Δ DAC的二进制8位输入数字量是无符号数,模拟输出电压值都是正值。输入“00000000”产生输出电压0V,“11111111”产生输出电压的最大值Vmax,Vmax非常接近VCCO,其中VCCO是FPGA芯片I/O端口的供电电压。         
    2012110704453672504662.jpg
     图2  ∑-Δ DAC的内部结构图   
          术语“∑-Δ”分别代表算术和与差,都可用二进制加法器来产生。虽然Δ加法器的输入是无符号数,但Δ和∑两加法器的输出被看作有符号数。Δ加法器用来计算DAC输入与当前DAC输出之间的差值。由于DAC的输出只有一位,非0即1,即全0或全1。如图2 ∑-Δ DAC的结构图所示,Δ加法器的另一个输入值由∑锁存器最高位L[9]的两个拷贝后面跟8个0产生,这也弥补了DAC输入值是无符号数的问题。∑加法器将它的上一次输出(已经保存在∑锁存器)与Δ加法器的当前输出求和。
     3 ∑-Δ DAC的FPGA实现
     如图2所示,∑-Δ DAC的内部仅由2个10位的二进制加法器,1个10位的锁存器和一个D触发器组成,用FPGA实现时只需耗费极少的逻辑资源,即使用最小的FPGA也能实现,本文采用了Xilinx Virtex FPGA,图3给出了FPGA实现的顶层原理图。输入信号有8位宽的二进制数字量DACin[7:0]、时钟信号CLK和复位信号Reset;输出信号为等幅脉冲串DACout,通过一个驱动缓冲器OBUF_F_24(是Xilinx FPGA特有的SelectI/O资源,OBUF表示输出缓冲器,F表示它的转换速率快,24表示它的驱动能力即输出驱动电流是24MA,基于LVTTL I/O标准)驱动FPGA外部的模拟RC低通滤波器,该缓冲器的输出端连接到FPGA的I/O端口,则它的驱动电压即为FPGA的I/O端口的供电电压VCCO。表1列出了∑-Δ DAC的接口信号。
    2012110704453681878663.jpg
     图3  FPGA实现∑-Δ DAC的顶层原理图
    2012110704453688128664.jpg
     表1  ∑-Δ DAC的接口信号   
     图3虚线框内的电路都在FPGA里面实现,其中的DAC模块的原理图见图2,在本文中是用可以综合的VerilogHDL语句来描述的。VerilogHDL描述的可综合性是指其可被综合工具所识别,将其寄存器传输级(RTL)描述综合成门级网表,最终能通过FPGA的布局布线工具映射到FPGA当中成为能完成指定功能的硬件电路。VerilogHDL语言最初是面向建模和仿真的,只有10%可以被综合称为可综合子集。对于不同的综合工具,可综合子集的内容并不相同。IEEE的一个工作组目前正在撰写一个名为IEEE Std 1364.1RTL的综合子集的规范,定义了一个最小的可综合的Verilog语言要素的子集,以便得到各综合工具提供商的支持。
     图3中缓冲器的输出端DACoutDrvr连接到FPGA的输出引脚上,驱动外部的模拟RC低通滤波器。图     
   中R=3.3kΩ,C=0.0047μF,VOUT即为最终转换所得的模拟信号。下面给出了DAC模块的可综合的VerilogHDL描述:
     ‘timescale 100 ps / 10 ps
     //This is a Delta-Sigma Digital to Analog Converter
     module dac(DACout, DACin, Clk, Reset);
     output DACout; // This is the average output that feeds low pass filter
     reg DACout;
     input [7:0] DACin; // DAC input
     input Clk;
     input Reset;
     reg [9:0] DeltaAdder; // Output of Delta adder
     reg [9:0] SigmaAdder; // Output of Sigma adder
     reg [9:0] SigmaLatch; // Latches output of Sigma adder
     reg [9:0] DeltaB; // B input of Delta adder
     always @(SigmaLatch) DeltaB = {SigmaLatch[9],SigmaLatch[9]} << (8);
     always @(DACin or DeltaB) DeltaAdder = DACin + DeltaB;
     always @(DeltaAdder or SigmaLatch) SigmaAdder = DeltaAdder + SigmaLatch;
     always @(posedge Clk or posedge Reset)
     begin
     if(Reset)
     begin
     SigmaLatch <= #1 1&rsquo;bl << (8);
     DACout <= #1 1&rsquo;b0;
     end
     else
     begin
     SigmaLatch <= #1 SigmaAdder;
     DACout <= #1 SigmaLatch[9];
     end
     end
     endmodule该程序经过Xilinx的FPGA集成开发工具ISE6.2编译(含综合过程)、仿真后,再选择Virtex系列FPGA芯片进行配置。设置CLK=100MHz(最高可达219MHz)。
     4 结论
     &sum;-&Delta; DAC是高速FPGA芯片用于数字模拟混合信号系统设计的尝试,可应用于可编程电压源、波形发生器、声音发生器、RGB颜色发生器和ADC的参考电压发生器等,极大的减少了系统的元件数目,降低了系统的成本,有很好的实用价值。
     参考文献
     [1] (美)巴斯克尔着,孙海平译《VerilogHDL综合实用教程》,清华大学出版社,2004
     [2] 王诚,薛小刚《FPGA/CPLD设计工具:Xilinx ISE5.x使用详解》,人民邮电出版社,2003
     [3] (美)Ken C.Pohlmann着,苏菲译《数字音频原理与应用》第四版,电子工业出版社,2002
     [4] www.xilinx.com,Xilinx公司在线文档
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2025-1-4 18:41 , Processed in 0.057013 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表