基于FPGA双积分ADC设计_第1页
基于FPGA双积分ADC设计_第2页
基于FPGA双积分ADC设计_第3页
基于FPGA双积分ADC设计_第4页
基于FPGA双积分ADC设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于fpga双积分adc设计双积分型adc又称为双斜率或多斜率adc,它的应用也比较广泛。它由1个带有输入切换开关的模拟积分器、1个比较器和1个计数单元构成,通过两次积分将输入的模拟电压转换成与其平均值成正比的时间间隔。与此同时,在此时间间隔内利用计数器对时钟脉冲进行计数,从而实现a/d转换。因此这种转换器又多称为电压时间转换型(vt型)。双积分型adc两次积分的时间都是利用同一个时钟发生器和计数器来确定,因此所得到的d表达式与时钟频率无关,其转换精度只取决于参考电压vr。此外,由于输入端采用了积分器,所以对交流噪声的干扰有很强的抑制能力。能够抑制高频噪声和固定的低频干扰(如50hz或60hz

2、),适合在嘈杂的工业环境中使用。这类adc主要应用于低速、精密测量等领域,如数字电压表。优点:分辨率高,线性度好;功耗低、成本低。由于通过积分方法来测量信号电压,具有较强的抗脉冲干扰能力;另外,在两次积分内,只要rc元件参数不发生瞬时改变,转换结果就与rc值无关,因此它对元件的稳定性要求不高。缺点:转换速率低,转换速率在12位时为100300sps。双积分型转换器,因有积分器的存在,积分器的输出只对输入信号的平均值有所响应,所以,它突出优点是工作性能比较稳定且抗干扰能力强;而且从原理上,只要两次积分过程中积分器的时间常数相等,计数器的计数结果与 rc 无关,所以,该电路对 rc 精度的要求不高

3、,而且电路的结构也比较简单。适合题目要求、成本低、分辨率高、线性度好的方案无疑是双积分型模数转换2、双积型模数转换器原理双积分型模数转换方法,属于间接转换它。它将待转换的输入模拟电压转换为与其平均值成正比的时间间隔,在此时间间隔内利用计数器对时钟脉冲进行计数,从而实现转换。其原理如下图示图、双积分型模数转换原理框图双积分型模数转换完成一次转换需历经两个过程:固定时间,积分器对ux积分,电容电压uc从0变到某一确定值;积分电压换成与ux符号相反的vref并开始进行第二次积分(反向积分),直到比较器检出uc为0。如下图所示:图、双积分转换过程示意图3、系统原理框图三、系统设计与实现1、模拟电路部分

4、设计与实现两次积分的切换,使用多路模拟开关cd4052来实现。cd4052内有两个四选一,本设计只用到一个四选一,未用的一路接地。负参考电源vref由负电源分压产生,为电路调试方便,使用了精密可调电阻。信号输入部分也使用了可调电阻分压,以期可以转换更高电压的信号,信号从jp13输入。控制逻辑接口从jp3引出。图、模拟多路开关对积分切换积分部分电路如下图示:图、积分部分电路积分运放选用具有低失调电压的op07。由cd4052选通的信号从in输入,积分输出接cd4052的x0,用以转换前的电容放电。比较输出部分电路如下图所示:图、比较输出部分电路2、数字电路部分设计与实现数字部分主要有一个同步状态

5、机分4个状态进行操作。开始状态:控制模拟多路开关使积分器进入放电状态,初始化系统,然后经入延时状态。第一状态:对输入电压积分,控制模拟多路开关,使积分器对输入电压积分同时开始对积分时间计时。当定时器溢出时,转到状态延时状态。第二状态:对参考电压定压积分,当积分器输出电压低于比较电压时,停止计时同时将定时器值输出锁存。延时状态:延时状态分两种情况,当定时器溢出时,对定时器复位,同时跳到第二状态;当比较起比较器输出为0时,跳到第一状态。3、单片机处理及显示 单片机部分主要是dac,lcd输出及源码与格雷码的转化。在dac输出方面,采用片内的12位dac,单片机通过通用i/o端口采集数据,取其数据的

6、高八位作为dac输出,连接示波器,还原波形。同时将采集到的数据在单片机内进行相应的转换,转换为格雷码,并在lcd上显示源码与对应格雷码。四、测试a、线性度测试:以25hz频率,800mv(vpp)三角波为输入,将转换后的数据送入da,观察还原后的波形与输入波形之间的线性度。实测波形如下图所示:上图中,上面波形为输入信号,下面的为还原后的信号。可见,没有明显失真。b、输入幅度测试:将输入波形的幅度从0至2v变化,观察还原波形失真情况,测试表明,可以达到题目要求的0至2v。c、同步锁存信号及采样速率测试:同步锁存信号由fpga产生,它即代表了采样速率,测试显示同步锁存信号频率为13k,即采样频率可

7、以达到13k。附verilog程序module count( cp, reset, outs, carry); input cp; input reset; output carry; output 7:0outs; reg carry; reg 7:0outs; initial begin carry = 0; outs =0; end always ( posedge cp or posedge reset ) begin if(reset = 1) begin carry = 0; outs = 0; end else begin if(outs 255) begin carry = 0

8、; outs = outs+1; end else begin outs = 255; carry = 1; end end endendmodule /count模块module kz (datain,dataout,adreset,comp,carry,resetout,s,cp,sync);input 7:0datain;input comp;input carry;input adreset;output 7:0dataout;output sync;input cp;output resetout;output 1:0s;reg 7:0dataout;reg 1:0s;reg res

9、etout;reg 1:0state;reg 1:0delaytime;reg sync;parameter start = 2b00 ;parameter fir = 2b01 ;parameter sec = 2b10 ;parameter delay = 2b11 ;initial begin resetout =0; dataout = 0; s = 2b00 ; delaytime =0; endalways(posedge cp) if(adreset) begin resetout =0; dataout = 0; s = 0 ; state =2b00; sync = 1; e

10、nd else case(state) start : begin resetout = 1; s = 2b00; delaytime =0; state = delay; end fir : begin if(carry = 0) s = 2b01; else begin resetout = 1; delaytime =0; state = delay; end end sec : begin if(comp = 1) s = 2b10; elsebegin dataout = datain; sync =1; state = start; end end delay : begin if(delaytime 2b11) delaytime =delaytime+1; else begin delaytime =0; resetout = 10; if(comp =0) begin state = fir; end else begin state = sec; sync = 0; end endenddefault : state = start; endcase endmodule /控制模块module time1m(clkall, clk,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论