摘 要 简要分析sigma—deIta(∑一△)架构模数转换器(ADC)原理,提出一种基于FPGA内部LVDS(Low Voltage Differential Signaling)接收器的音频ADC架构,并给出在FPGA上的实现结果。在FPGA内部实现音频ADC,具有扩展方便灵活,实现简单,集成度高等优点。
关键词 sigma—delta FPGA LVDS 音频ADC

引 言
数字系统已经越来越广泛地应用到现实世界的各个领域中,绝大多数数字系统无法直接处理现实世界中的信号,必须采用ADC器件把模拟信号转换成数字信号后才能处理。FPGA和DSP处理器是数字信号处理的两大主流技术。随着技术的发展和进步,一些FPGA器件集成了一些模拟电路以及混合信号处理模块,比如集成温度监控二极管。Actel公司的混合FPGA系列已经集成ADC、DAC、PGA(Programmable Gain Amplifier)、电压参考基准源和RCC(Resistance Capacitance)振荡器。Xilinx公司的V5系列FPGA集成电压和温度监控ADC,用户可以直接通过JTAG下载调试接口读取电压和温度值。但这些单元物理位置固定,灵活性受限,仅限于特定的应用。而采用FPGA的LVDS接收器来实现ADC,逻辑电路完全在FPGA内部实现,可重新配置,扩展性好,需要的外围器件少,使FPGA能直接进行混合信号处理。

1 ∑一△ADC原理
∑一△ADC的核心是∑一△调制器和数字滤波器。∑一△调制原理在半个多世纪前已经提出,但在20世纪90年代才广泛应用到ADC设计中。∑一△ADC的模型如图1所示。

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

由公式(7)可以看出,在Z变换域,调制器对信号只是延迟,而对噪声进行差分处理。因为差分器具有高通滤波器特性,因此噪声被高通滤波,调制器对应的时域输出为:

剩余的噪声则由后续的数字滤波器滤除。

2 LVDS收发器标准及其原理
LVDS是一种低压低功耗的高速串行差分数据传输标准,在高速数据互联和数据通信领域得到广泛的应用,主流的FPGA器件都集成了高速的LVDS收发器。LVDS收发传输框图如图2所示。

在图2中,LVDS发送端的4个开关管交叉控制3.5mA电流源在接收端的流向。电流在100Ω电阻上建立约350 mV的电压差,接收器通过比较电压的极性来判决是逻辑“1”还是逻辑“0”。LVDS驱动器是电流型,对电源波动不敏感,功耗很低,1路LVDS传输功耗为35 mA×350 mV=1.2 mW。由于采用差分传输方式,LVDS收发器可以很好地消除共模干扰,提高系统电磁兼容性能。利用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)滤波器及其后续的数字滤波模块,同时通过1个FPGA引脚作为1位的DAC,输出到外部的积分器。在数字滤波模块里面,CIC滤波器累加量化的比特流并恢复成18位数的量化值,同时通过大倍数的抽取,把数据率降低;CICCOMP是15阶FIR滤波器,用于补偿CIC滤波器幅频响应。抽取器是31阶FIR低通滤波器,降低数据率并进一步滤除带外的噪声。整个系统运行于49.152 MHz时钟下,采样数据经过CIC进行512倍抽取后,数据率降为96 kHz,最后经过低通滤波器进行2倍抽取,数据率降为48 kHz。用FPGA实现ADC,包括LVDS接收器部分,全部采用VerilogHDL语言编写,实现简单,可移植性较好。

4 FPGA内部实现的ADC实验分析
整个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最大输入信号的峰值电压约O.8 V,输出信号SNR约为50 dB。

结语
FPGA实现ADC的模型,仅需要极少数外围元器件,核心模块均采用FPGA资源实现,明显降低板上面积,同时逻辑可重配置,具备强大的扩展性。通过适当改进和优化,该方法可以应用到语音通信,温度、电压监控,水压检测,压力传感等诸多领域。

来源:
https://www.cnblogs.com/shangdawei/p/4096963.html

采用FPGA实现音频模数转换器相关推荐

  1. 基于FPGA的音频处理芯片的设计

    基于FPGA的音频处理芯片的设计 时间:2009-01-07 10:00:18 来源:维库电子市场 作者:刘虹 黄涛 徐成 1 引言 随着数字技术日益广泛的应用,以现场可编程门阵列FPGA(Field ...

  2. android端采用FFmpeg进行音频混合与拼接剪切

    接触FFmpeg有一段时间了,它是音视频开发的开源库,几乎其他所有播放器.直播平台都基于FFmpeg进行二次开发.本篇文章来总结下采用FFmpeg进行音频处理:音频混合.音频剪切.音频拼接与音频转码. ...

  3. 采用FPGA IP实现DDR的读写控制的设计与验证

    随着高速处理器的不断发展,嵌入式系统应用的领域越来越广泛,数字信号处理的规模也越来越大,系统中RAM规模不断增加,比如视频监控.图像数据采集等领域,图像处理的实时性对RAM带宽的要求不断增加,传统的S ...

  4. 浅谈FPGA与音频处理器的结合

    FPGA通常是面向通信行业,尽管其主要开发者仍然专注于通信应用, 但他们越来越关注存储和服务器市场. 但是, 广阔的工业市场又如何呢? 通常, 工业市场的要求并不像存储.服务器或通信应用程序所要求的那 ...

  5. 采用FPGA进行SDI输入输出时钟同步设计

    模块综述 目前SDI传输系统的视频传输都需要进行时钟恢复和去抖,导致每一级都耗费了较大的成本,而且不利于板卡的布局布线.因此该设计的优点在于每一级传输不需要si5324等芯片的费用,FPGA内部不同通 ...

  6. 采用FPGA进行bayer插值算法的实现方法

    简介 Bayer型CFA上面每一个感光点仅允许一种颜色分量通过,所以其整帧画面是由单通道RGB颜色组成的灰度图.其可按照BGGR,RGGB,GBRG,GRBG四种排列方式给出.若想获得全彩的图像,必须 ...

  7. 采用FPGA开发高清相机sensorISP芯片要点分析

    总体 Sensor采样过来的RAW视频信号经过Gamma校正,颜色插值,恢复出RGB三分量RGB,RGB进入后处理(主要包括颜色校正,RGB转YCbCr,白平衡校正)转为Ycbcr后给SDI信号生成模 ...

  8. 【正点原子FPGA连载】 第一章 MPSoC简介 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: h ...

  9. FPGA之道(58)关于外界接口的编程思路

    文章目录 前言 关于外界接口的编程思路 按传递方向分类 输入接口 输出接口 双向接口 原理简介 工作模式 主从模式 对等模式 简单示例 按电气特性分类 单端接口 差分接口 无线接口 按功能特性分类 时 ...

最新文章

  1. 用JDBC写一个学生管理系统(添加、删除、修改、查询学生信息)(二)
  2. 慎重升级!iOS 13可绕过锁屏密码查看通讯录、照片、短信
  3. linux批量为文件名添加前缀脚本示例
  4. 隐藏滚动条或更改滚动条样式加制作三角形
  5. SAS的数组array介绍
  6. stl中copy()函数_std :: copy_if()函数以及C ++ STL中的示例
  7. 强化学习q学习求最值_通过Q学习更深入地学习强化学习
  8. 数据同步到redis中时候需要 需要给关联的表增加id 如果是一对多 则增加list存储id 如果是一个 则增加一个字段 ;目的是便于取值...
  9. SQLite指南(2) -- 帮助及编译SQLite
  10. 商业智能BI的数据价值
  11. IDEA 没有创建servlet选项问题的解决
  12. atitit.js 与c# java交互html5化的原理与总结.doc
  13. onenote标注pdf笔记_无限接近纸质笔记:学生党的 OneNote 使用心得
  14. 新闻发布系统设计说明书
  15. EKF_SoC:基于MATLAB/Similink的扩展卡尔曼滤波器EKF的锂电池SoC计算仿真模型
  16. 谁说待国企就是养老?前阿里P8总结500页Java成长笔记全网首发!爱了爱了!
  17. matlab 截断共轭梯度法,最优化作业 共轭梯度法 matlab代码
  18. 利用python生成微信h5_Python + Appium 微信公众号 H5 页面自动化测试
  19. 照片去雾怎么操作?学会这招就不用担心雾化了
  20. 考研这么卷,换条路试试​?互联网IT校园招聘信息大全!

热门文章

  1. 用c语言处理bmp开运算,c语言解析bmp图片
  2. PicoScope 4425A新能源车诊断套装(型号:PQ196)
  3. 警务移动安全管理终端,助力广东省公安厅移动警务管理
  4. if与else if的使用区别
  5. 新旧动能转换要紧抓资本市场建设动力 ——陈宗建谈山东自贸区背景下的经济结构转型升级
  6. 聊一聊CORDIC原理与Lattice相关IP使用说明
  7. 群表示论之Q8四元数群的特征标表和二阶不可约复表示
  8. Nginx + Tomcat + Session学习 - ﹎敏ō - 博客园
  9. python序列类型是二维元素向量吗_Python 二级选择题
  10. python编写递归函数、求斐波那契数列第n项_用Python实现求Fibonacci数列的第n项