打印

采用FPGA实现音频模数转换器

[复制链接]
2145|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tikelu|  楼主 | 2012-3-8 21:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
数字系统已经越来越广泛地应用到现实世界的各个领域中,绝大多数数字系统无法直接处理现实世界中的信号,必须采用ADC器件把模拟信号转换成数字信号后才能处理。FPGA和DSI处理器是数字信号处理的两大主流技术。随着技术的发展和进步,一些FPGA器件集成了一些模拟电路以及混合信号处理模块,比如集成温度监控二极管。Actel公司的混合FPGA系列已经集成ADC、DAC、PGA(Programmable Gain Amplitier)、电压参考基准源和RC(Resistance Capacitance)振荡器。Xilinx公司的V5系列FPGA集成电压和温度监控ADC,用户可以直接通过JTAG下载调试接口读取电压和温度值。但这些单元物理位置固定,灵活性受限,仅限于特定的应用。而采用FPGA的LVDS接收器来实现ADC,逻辑电路完全在FPGA内部实现,可重新配置,扩展性好,需要的外围器件少,使FPGA能直接进行混合信号处理。
1  ∑-△ADC原理
∑-ADC的核心是∑-△调制器和数字滤波器。∑-△调制原理在半个多世纪前已经提出,但在20世纪90年代才广泛应用到ADC设计中。∑-△ADC的模型[1]如图1所示。

从图中可以看到,∑-△架构的ADC主要由左边方框内模拟∑-△调制器和右边的数字滤波器组成。∑-△调制器包含1个积分器、1个ADC和1个构成反馈环路的DAC。其中积分器用离散时间表示,以方便采用Z变换分析。e(n)是AD量化器的量化噪声。假设量化噪声是加性噪声,假设量化噪声是加性噪声,反馈环路中DAC是理想的,其传输函数是固定增益。采用线性系统分析方法,先令e(n)=O,考察积分器的差分方程:

器特性,因此噪声被高通滤波,调制器对应的时域输出为
y(n)=x(n-1)+e(n)-e(n-1)    (8)
剩余的噪声则由后续的数字滤波器滤除2 LVDS收发器标准及其原理   
LVDS是一种低压低功耗的高速串行差分数据传输标准,在高速数据互联和数据通信领域得到广泛的应用,主流的FPGA器件都集成了高速的LVDS收发器。LVDS收发传输框图如图2所示。


在图2中,LVDS发送端的4个开关管交叉控制3.5mA电流源在接收端的流向。电流在100 Ω电阻上建立约350 mV的电压差,接收器通过比较电压的极性来判决是逻辑“l”还是逻辑“0”。LVDS驱动器是电流型,对电源波动不敏感,功耗很低,1路LVDS传输功耗为35 mA×350 mV=1.2 mW。由于采用差分传输方式,LVDS收发器可以很好地消除共模干扰,提高系统电磁兼容性能[2]。利用FPGA集成的LVDS接收器,配合少量外围器件,即可在FPGA内部实现ADC。
3  用FPGA集成的LVDS接收器实现ADC
参考第2部分的∑-△架构的ADC原理,在FPGA内部实现ADC的框图如图3所示。
   
在图3中,虚线框内表示在FPGA内部实现。外部仅需要1个1 kΩ的电阻和1个1 nF的电容作为模拟积分器,输入信号和积分器输出值在LVDS接收器进行比较,比较结果被量化成数据比特流,经过寄存器后输出到CIC(Cascaded Integrated Comb)滤波器[3]及其后续的数字滤波模块,同时通过1个FPGA引脚作为1位的DAC,输出到外部的积分器。在数字滤波模块里面,CIC滤波器累加量化的比特流并恢复成18位数的量化值,同时通过大倍数的抽取,把数据率降低;CICCOMP是15阶FIR滤波器[4],用于补偿CIC滤波器幅频响应。抽取器是31阶FIR低通滤波器,降低数据率并进一步滤除带外的噪声。
整个系统运行于49.152 MHz时钟下,采样数据经过CIC进行512倍抽取后,数据率降为96 kHz,最后经过低通滤波器进行2倍抽取,数据率降为48 kHz。用FPGA实现ADC,包括LVDS接收器部分,全部采用VerilogHDL语言编写,实现简单,可移植性较好。
4 FPGA内部实现的ADO实验分析
整个ADC设计工程在Xilinx公司的FPGA集成开发环境ISE下编译,下载到XC2VP70系列FPGA上进行测试,用Tektronix公司的信号源AFG3101产生音频信号,经ADC采用后通过板载的8位DAC输出,用Agilent公司的示波器54622D进行分析,频率为3 kHz的正弦信号输入/输出波形和频谱如图4所示。

图4上半部分波形是输入的信号和频谱,下半部分波形是经过ADC采样后通过DAC输出的波形和频谱。从图中可以看到,尽管受限于板载DAC的位数,DAC后面也没有抗混叠滤波器,仅将ADC的18位量化值高8位输出,但波形和频谱完全没有失真。输出波形上叠加的高频噪声是DAC转换引入的,可以通过滤波器滤除。信号源产生20 Hz~20 kHz的音频信号,ADC输出的波形和频谱均没有失真,FPGA在3.3 v的I/o电压下,ADC最大输入信号的峰值电压约0.8 V,输出信号SNR约为50 dB。
结  语
FPGA实现ADC的模型,仅需要极少数外围元器件,核心模块均采用FPGA资源实现,明显降低板上面积,同时逻辑可重配置,具备强大的扩展性。通过适当改进和优化,该方法可以应用到语音通信,温度、电压监控,水压检测,压力传感等诸多领域。
评分
参与人数 1威望 +1 收起 理由
GoldSunMonkey + 1 感谢分享

相关帖子

沙发
tikelu|  楼主 | 2012-3-8 21:20 | 只看该作者
希望版主 给俺分享的** 点评下

使用特权

评论回复
板凳
powerpan| | 2012-3-9 11:45 | 只看该作者
这个技术的关键在于:
1. 比较器的精度
2. 开关的内阻

属于典型sigma-delta方法

使用特权

评论回复
地板
GoldSunMonkey| | 2012-3-9 11:51 | 只看该作者
希望版主 给俺分享的** 点评下
tikelu 发表于 2012-3-8 21:20
公开要分数了?

使用特权

评论回复
5
tikelu|  楼主 | 2012-3-9 19:14 | 只看该作者
呵呵 猴版您觉得值就给分呗

使用特权

评论回复
6
tikelu|  楼主 | 2012-3-9 19:14 | 只看该作者
不值就算拉 :lol

使用特权

评论回复
7
tikelu|  楼主 | 2012-3-9 19:15 | 只看该作者
刚看到猴版给分了 谢谢猴版啦 祝您事事顺利

使用特权

评论回复
8
hihu| | 2012-3-10 15:58 | 只看该作者
过来瞧瞧

使用特权

评论回复
9
hihu| | 2012-3-10 15:58 | 只看该作者
值得一看

使用特权

评论回复
10
opple| | 2012-3-10 21:33 | 只看该作者
过来支持下楼主

使用特权

评论回复
11
disini| | 2012-3-10 22:00 | 只看该作者
收了

使用特权

评论回复
12
litgb| | 2012-3-11 00:10 | 只看该作者
顶一  下                                   好

使用特权

评论回复
13
opple| | 2012-3-11 12:12 | 只看该作者
看过了 还不错

使用特权

评论回复
14
anqier1| | 2012-3-11 20:05 | 只看该作者
支持下楼主分享

使用特权

评论回复
15
tikelu|  楼主 | 2012-3-11 20:18 | 只看该作者
这多人回复了呀 窃喜下

使用特权

评论回复
16
liqaz| | 2012-3-11 21:51 | 只看该作者

使用特权

评论回复
17
Janediandian| | 2018-12-3 10:35 | 只看该作者
楼主可以发一下源代码吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

836

帖子

1

粉丝