时间:2024-07-29
葛俊杰,刘旭东,刘爱东
(1.烟台职业学院 信息工程系,山东 烟台264670;2.海军航空工程学院 兵器科学与技术系,山东 烟台264001)
目前,利用CPU 和FPGA 构成嵌入式系统是电子设备小型化的主要技术途径,通过FPGA 实现DAC 可方便系统功能的整合[1-2]。传统的电流相加型DAC 是一种模数混合电路,不适合同其他数字电路模块集成到一起采用超大规模电路实现。目前很多嵌入式CPU 通过计数器提供PWM电路实现数模转换,例如4 位的DAC,当输入数据为8 时,前8 个时钟输出高电平,后8 个时钟输出低电平;如果8 个高电平均匀分布在16 个时钟周期中,这种方式就是Δ 调制。图1 为PWM 方式与Δ 调制方式的波形对比图[3],两种方式的占空比相同,显然Δ 调制方式优于PWM 方式。由于PWM 电路实现数模转换对滤波电路要求高,且噪声大,为此提出累加实现Σ-Δ 式DAC 的设计思想,从而大大简化电路设计,更利于FPGA 实现,可用简单的滤波器完成电路滤波。
1 PWM 方式与Δ 调制方式波形对比图
式(1)表明,如果对Din做2N次加法,结果一定可以被2N整除,且结果为Din。进一步说,如果累加器是N 位,每个时钟进行一次累加,累加器一旦溢出就产生一个进位脉冲,那么经过2N个时钟的累加,一定会产生Din个进位脉冲,即通过求Σ,电路可实现Δ 调制。
求和电路可采用异或门实现,为了实现时钟控制的累加功能,还必须具有锁存器[8]。为了知道是否产生进位,应当采用N+1 位累加器和锁存器,但这样还不能实现每次进位产生一个进位脉冲,由于进位脉冲的宽度必须准确为一个时钟周期,因此,希望进位脉冲伴随累加过程产生。为了达到这一效果,实际采用N+2 位累加器和锁存器,第N+2位作为输出位。图2 给出了8 位DAC 的电路框图,虚线框内的部分由FPGA 实现。
初始化时,10 位锁存器SigmaLatch 的初值为二进制0100000000B。
图2 8 位DAC 的FPGA 电路
图3 说明了进位脉冲的产生过程,为了直观,图3 中将最高两位直接列出,后面的8 位作为一个整体看待。设输入数据Din=X,则有:
图3 进位脉冲产生过程
在时钟CLK 的作用下,累加器、锁存器等将按照图3 的过程进行变化。图3 中的向上箭头代表CLK 信号上升沿到来,并将∑i的内容送入Li。
从进位脉冲产生过程可以看出,对X 进行累加,每当N 位累加器溢出,锁存器SigmaLatch 最高位输出一个脉冲,且脉冲宽度为一个时钟周期。下面的程序给出了N 位分辨率DAC 的Verilog 实现。
当输入保持Din=X 不变时,可以证明输出脉冲个数的周期抖动最大为一个时钟周期。
证明:根据式(2),2N= nX-δ,n 为累加次数,可以代表脉冲周期。假设第min 个脉冲nmin周期最小,第max 个脉冲周期nmax最大。则有:
δmin-1和δmax-1代表上一次的余数对本次的影响。根据余数的性质,有:
|δmin-1+δmin| <X
|δmax-1+δmax| <X
于是(nmax-nmin)X <2X
即nmax-nmin<2,证毕。
准确度分析说明2N个时钟周期输出电平的有效值是绝对准确的,抖动性分析进一步说明任何两个脉冲周期输出的时钟脉冲个数最多相差一个时钟周期。为了提高响应速度,如果采用2M(M <N )个时钟周期的有效值代替2N个时钟周期的有效值,对精度会有何种影响,下面给出具体分析。
图4 N=8,M=3 时误差随输入量的变化关系
由于采用Δ 调制的输出方式,采用图2 所示的简单阻容滤波电路就可以满足设计要求,但在电阻的选取和时间常数的选择上还要注意以下问题[9-10]:
(1)电阻的选取要考虑FPGA 的输出驱动能力,电阻过小会造成FPGA 不能满幅度输出,一般要求大于2.5 kΩ,但也不能过大,相对负载电阻而言要尽可能小。
(2)滤波时间常数τ =RC,大一点有助于对脉冲串的滤波。最恶劣的情况发生在Din=1 和Din=2N-1 时,在2N个时钟周期内只有一个时钟电平幅度不同。峰峰滤波噪声可以用式(5)近似表示:
式中:PPNFS为满量程范围的峰峰滤波噪声,单位为LSB;f 为DAC 的内部时钟频率;τ 为滤波器时间常数。
按照图2 的参数,计算得PPNFS= 0. 165 LSB,剩余0.835 LSB 的噪声容限可以留给其他噪声因素。
(3)滤波时间常数τ =RC,过大可能造成输出衰减。低通滤波器的截止频率为:
按照图2 的参数,计算得fc=10.3 kHz。当DAC 输出信号变化比较平缓时,滤波时间常数可以大一些,如果希望具有陡峭的变化,时间常数应当小一些。
(1)要保证输出能够准确反映Din的变化,Din的变化速率和内部时钟频率的关系如下:
如果Din的变化速率较高,DAC 的内部时钟频率f 可能无法保证。但根据上述的分析,Δ-Σ式DAC 的输出能够快速反应出Din的变化,只是精度不够高,而Δ-Σ 式属于过采样技术,噪声属于高频噪声,如果系统对高频噪声不敏感,可不必按照式(6)确定频率,但要尽可能远远大于系统的截止频率。因此Δ-Σ 式DAC 适合声卡、反馈控制系统和低频信号源的应用需求。
(2)传统DAC 当Din=2N-1(满度)时,DAC输出一直维持高电平。上述FPGA 的实现方案在2N个时钟周期内一定会产生一个低电平脉冲,这一点需要注意。
笔者通过对Δ 调制信号特点的分析,提出了累加实现Σ-Δ 式DAC 的数学模型,利用FPGA实现了该数学模型。与传统DAC 相比,Δ-Σ 式DAC 通过增加两个冗余位,取消了常规的组合逻辑电路,从而简化了电路设计,更加易于FPGA 实现。另外,笔者从抖动性和快速响应过程精度进行了定量分析,根据分析结果可知,Δ-Σ 式DAC便于系统小型化和优化设计,可以根据需要调整精度和速度;而根据N +2 位加法器实现的N 位DAC,没有竞争冒险现象,更加适合声卡、反馈控制系统等多种应用场合。
[1] 刘明章.基于FPGA 的嵌入式系统设计[M].长沙:国防工业出版社,2007:33-52.
[2] 张清勇,戴延浩.基于ARM 和FPGA 的手持工程测试仪设计[J].武汉理工大学学报:信息与管理工程版,2012,34(4):449-450.
[3] 夏泽中,任大庆,任薛蓓,等.新型单级隔离型PWM变换器及其控制研究[J].武汉理工大学学报:信息与管理工程版,2012,34(5):539-541.
[4] 李笑笑,李章全.用于24 比特音频DAC 的单环单比特Σ-Δ 调制器的设计与FPGA 实现[D].上海:上海交通大学图书馆,2010.
[5] 彭星晔,孟桥,郝俊.数字Σ-Δ 调制器的FPGA 设计与实现[J].微计算机信息,2007,38(26):204-205.
[6] 李海龙,黑勇,乔树山,等. 应用于ΣΔ ADC 的抽取滤波器的设计与实现[J]. 微电子学与计算机,2011,40(7):72-75.
[7] 陈 茜,王锦荣.基于Matlab 的ΣΔ ADC 系统设计及仿真[J].系统仿真学报,2008,20(2):755-758.
[8] STEPHEN E D.微机接口技术实验教程[M]. 蔡梅林,伍钦,译.北京:机械工业出版社,2006:125-128.
[9] SANGIL P. Principles of sigma_delta modulation for analog-to-digital converters[R].[S.l.]:Motorola Corporation,2006.
[10]赵东方,唐红雨,朱伟兴. 基于FPGA 的∑-ΔD/A转换器的设计与实现[J].微计算机信息,2005,36(7):99-100.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!