基于fpga的多波形发生器的设计内容摘要:
个反馈电阻接在运算放大器的输出端和输入端之间。 (5) VREF :参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定 0 至 255 的数字量转化出来的模拟量电压值的幅度,V REF范围为(10~+10)V。 V REF端与 D/A 内部 T 形电阻网络相连。 (6) Vcc :芯片供电电压,范围为(+5~+15)V。 (7) AGND :模拟量地,即模拟电路接地端。 (8) DGND :数字量地。 图 为 FPGA 和 DAC0832 直通方式输出连接图,运放输出电路输出电压为 UOUT=(D/256)*VREF。 图 FPGA 和 DAC0832 直通方式输出连接图7 低通滤波、幅度调节和峰值保持电路 从图 中可见,此部分电路主要有集成运算放大器电路构成,可分三节电路分析:第一节是低通滤波电路,滤波效果可通过开关 S1 进行切换;第二节是电路幅度调节电路,输出幅度的大小可由电位器 PR1 进行调节,信号输出有直接输出和电容耦合输出两种;第三节是峰值保持电路(PKD) ,通过这个电路能有效地把输出信号的幅值保持下来,以便 A/D 转换。 A/D 转换器ADC0804 是一个早期的 A/D 转换器,因其价格低廉而在要求不高的场合得到广泛应用。 ADC0804 是一个 8 位、单通道、低价格 A/D 转换器,主要特点是:模数转换时间大约100us;方便的 TTL 或 CMOS 标准接口;可以满足差分电压输入;具有参考电压输入端;内含时钟发生器;单电源工作时(0V~5V)输入信号电压范围是 0V~5V;不需要调零,等等。 ADC0804 是一个 20 引脚的芯片,引脚排列如图 示。 所有引脚定义如下::片选信号。 低电平有效,高电平时芯片不工作,CS:外部读数据控制信号。 此信号低电平时 ADC0804 把 RD已转换的数据加载到 DB 口。 :外部写数据控制信号。 此信号的上升沿可以启动 ADC0804 的 A/D 转换过程。 WCLK IN:时钟输入引脚。 ADC0804 使用 RC 振荡器作为 A/D 时钟,CLK IN 是振动器的输入端。 :转换结束输出信号。 ADC0804 完成一次 A/D 转换后,此引脚输出一个低脉冲。 对单片机INTR可以称为中断触发信号。 Vin(+):输入信号电压的正极。 Vin():输入信号电压的负极。 可以连接到电源地。 A GND:模拟电源的地线。 V /2:参考电源输入端。 参考电源取输入信号电压(最大值)的二分之一。 例如输入信号电REF图 低通滤波、幅度调节和峰值保持电路图 ADC0804 引脚排列8 主程序流程图压是 0V~5V 时,参考电源取 ;输入信号电压是 0V~4V 时,参考电源取。 D GND:数字电源的地线。 DB8~DB0:数字信号输出口,连接单片机的数据总线。 CLK R:时钟输入端。 Vcc:5V 电源引脚。 模数转换器 ADC0804 的工作分为三个过程:①复位中断触发信号信号表明 ADC0804 转换已经结束,它提示单片机随时可以读取转换结果,是 ADC0804 的一个输出信号。 一般情况下,启动 A/D 转换前应该复位这个信号,以等待新的转换完成后 ADC0804 发出新的信号,这样才可以读到新的转换结果。 复位信号的时序如图 中的图 A,在实现片选( =0)的前提下,使用一个读信号的下降沿就可以复位信号。 CS②启动 ADC0804 的 A/D 转换ADC0804 中的 A/D 转换器在满足一定条件时开始一个转换过程,这个条件就是:在实现片选为低电平的前提下,引脚上出现的一个上升沿。 启动 A/D 转换的时序如图 中的图 B,实现片选以后,使用一个写信号就可以启动一个转换过程。 ③读取转换结果在 A/D 转换结束以后,ADC0804 的引脚将给出一个低脉冲,如果检测到这个低脉冲,便可以读取 ADC0804 的转换结果。 3 软件设计本设计的软件部分是运用 NiosII IDE 开发软件和 C 语言来对 NiosII 核进行编程,用 Quartus II 软件来进行数字电路模块的设计,用 VHDL、VerilogHDL 语言来编写程序。 C 语言程序设计C 语言程序设计流程图如图 所示。 VHDL、VerilogHDL 语言程序设计用 VHDL 语言分别对输出波形控制、分频控制和三角波、正弦波、方波发生的各个模块进行子程序编程,并把每一个模图 ADC0804 的 A/D 转换时序9块转换成图形文件,然后在原理图编辑框中调用这些图形模块,并连接电路。 用按键 KEY1 控制delta,square,sin 波形选通,最后将 8 位输出接 AD0832 的数据输入口,再通过 D/A 转换。 即可从示波器看到输出波形光栅。 按下按键的次数不同,将输出不同频率的波形。 从 NiosII 输出 10 位频率控制字,转换为相对应的整数输出;由分频模块 对输入时钟 clk 分频,对分频计数a 逐次减 1,当 a 减到 0 时,输出后;即为三角波模块 (delta)、方波模块(square)、正弦波模块(sin)的输入时钟 clk。 三角波模块 用于设定一个变量 tmp,其定义范围为 0000011111111000,每到来一个脉冲,对其分别输出+8 或8,然后把改变后的 tmp 送到输出 q,以便生成三角波信号。 方波模块 用于设定一个变量 t,每到来一个脉冲,检测它是否小于 32。 若小于 32,则把高电平送到输出,并对 t +l,否则就输出低电平,并赋值 t 为 0,以便生成方波信号。 正弦波模块 用于定义正弦数据表,每到一个脉冲,逐次查找并输出相应的正弦数据,以便生成正弦波形。 波形选择模块 用于控制输出波形的选通。 4 系统测试及结果分析采用该信号发生器能产生正弦波、方波和三角波三种周期性波形,且输出波形无明显失真。 图 给出三种波形在逻辑分析仪中仿真的结果 [11],图 、 分别为方波、三角波、正弦波的实际输出波形图。 从图 中可以看出,三种波形的输出是相当完整的,频率的控制也相当准确。 通过实验测试,该信号发生器在 1 kΩ 负载条件下,其各种波形的输出电压峰-峰值在 0~5V 范围内连续可调;且最小的电压输出为 ,输出电压的变化是通过电位器进行调节,并且通过数码管可实时显示输出信号的类型、幅度和频率。 图 用逻辑分析仪仿真的结果图 三角波的实际输出图 方波的实际输出10图 正弦波的实际输出 5 结束语通过该次毕业设计发现自己所学知识很缺乏,特别是有关 VHDL 编程方面。 同时让我对以前所学过的理论知识回顾了一遍,并进一步巩固,自己的实践能力的到进一步的提高。 6 致谢在此,我要感谢我的导师林汉老师,谢谢他一直以来给我的帮助。 还感谢在毕业设计期间所有给予我帮助的老师和同学。 参考文献:[1] 潘松、黄继业.EDA 技术实用教程[M].北京:科技出版社,.[2] 王振红.数字电路设计与应用实践教程.北京:机械工业出版社,.[3] 萧家源,.北京:北京科学出版社,2020.[4] 褚振勇, 设计及应用[M].西安:西安电子科技大学出版社,2020.[5] 江国强.SOPC 技术应用.北京:机械工业出版社,.[6] 范秋华,张冬梅,基于 VHDL 的可编程分频器在波形发生器中的应用[J].青岛大学学报,2020,16(4):6871.[7] 侯伯亨,顾新.VHDL 硬件描述语言与数字逻辑电路设计[M].西安:西安电子科技大学出版社,2020.[8] 周立功.SOPC .北京:北京航空航天大学出版社,.[9] 王金明.数字系统设计与 Verilog HDL[M].北京:电子工业出版,.[10] 王昊、李昕.集成运放应用电路设计 360 例.北京:电子工业出版社,.[11] 周立功.SOPC .北京:北京航空航天大学出版社,.11附录:附录 1 外围电路图附录 2 分频器程序library ieee。 use。 entity fana is port(a:in integer range 0 to 1023。 clk:in std_logic。 q:out std_logic)。 end fana。 architecture chu_arc of fana isbegin process(clk) variable b,d:std_logic。 variable c:integer range 0 to 1023。 begin if clk39。 event and clk=39。 139。 then12 if b=39。 039。 then c:=a1。 b:=39。 139。 else if c=1 then b:=39。 039。 d:=not d。 else c:=c1。 end if。 end if。 end if。 q=d。 end process。 end chu_arc。 附录 3:波形产生程序方波library ieee。 use。 use。 entity square isport (clk,clr:in std_logic。 q: out integer rang。基于fpga的多波形发生器的设计
相关推荐
数来实现改变死区宽度。 多路 PWM 发生器的实现原理通过上面的设计可以实现单路的 PWM 的 FPGA 设计,利用 FPGA 来扩展 I/O 接口,可实现多路 PWM(脉宽调制)输出,在超声、电机控制等许多应用场合,需要产生多路频率,和脉冲宽度可调的 PWM 波形。 应用实现的单路的 PWM 的设计,可以推广到多路 PWM 设计,图 1-4 为多路 PWM 的系统原理框图。 通过一个主控
上操作数的指令,其中两个分别给出源操作数和目的操作数的地址,第三个操作数用于指出保存本次运算结果的去处。 在有些性能更高的计算机中,还有使用更多操作数的指令,用于完成对一批数据的处理过程,如字符串复制指令和矩阵运算指令等。 上述 4 种情况中的前 3 种,由于其指令字长可以相对较短,执行速度较高,计算机硬件结构可以相对简单等优点,在各种不同的计算机中被广泛应用;相对而言,多操作
13 第四章 频率计的实现 时钟信号分频模块的设计 由于系统时钟为 1Khz,因此要将其进行 1000分频得到 1hz的周期信号,分频程序比较简单,其中 clk为输入的 1Khz系统时钟信号, clk1为输出的 1hz信号,现将源程序摘抄如下: module clkdiv(clk,clk1)。 input clk。 output clk1。 reg clk1。 reg [10:0] count。
53 54 测试结果 57 字符显示 57 图片显示 58 60 结束语 61 参考文献 63 致谢 62 基于 FPGA的 LCD控制器设计 5 第 1章 绪论 选题的背景与意义 液晶,是一种在一定温度范围内呈现既不同于固态、液态,又不同于气态的特殊物质态,它既具有各向异性的晶体所特有的双折射性,又具有液体的流动性。 一般可分热致液晶和溶致液晶两类。 在显示应用领域,使用的是热致液晶
测调试的优点,因此本设计的函数发生器选择方案四完成波形发生的全部功能。 波形函数输出控制方式选择 方案一:控制多路 D/A 开关输出方式 此种方案为每一路输出的波形函数使用一路 D/A 转换后输出,通过控制开关控制每一路 D/A是否工作,决定输出的波形。 此种方案可以同时输出多路波形,但是需 要路 D/A 转化器,外围电路复杂,制作成本较高而且控制复杂。 方案二:采用数据选择器方式 D/A 转换
第 6 页 共 34页 数字水印的分类 数字水印 的分类方法多种多样,从不同的角度可以如下进行分类: ( 1) 按水印的可见性划分 按嵌入水印后数字产品中水印是否可见可将数字水印分为可见水印和不可见水印。 可见水印主要用于当场声明数字产品的版权 归属,对盗版者起到即时威慑和约束作用,也可用于在因特网上在线分发带 有可见水印的数字产品,对数字产品进行广告宣传。