




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于FPGA的函数信号发生器题 目:多功能信号发生器的设计l 摘 要:在传感器设计、模拟试验等方面经常需要产生一些测试信号,一台能方便产生各种有规律和不规则信号的任意信号产生器将减少设备的研制复杂度。从软件的角度着手,提出一种任意信号发生器软件的设计方法,这种软件可以在各种任意信号发生器硬件之间移植重复利用,所以具有良好的应用前景。介绍本任意信号产生器的原理及软件结构设计和信号数据的产生方法,给出部分由本任意信号产生器产生的信号波形图。 关键词:任意信号发生器;软件设计;数字射频存储器bcb;信号波形图 l Abstract:It is needed to generate some test signals in sensor designing and in experiment environment simulating.a set of arbitrary signal generator which can generate various kinds of regulation and irregular signals will reduce the research complications and manufacture complications.this paper brings forward a designing method of software of the arbitrary signal generator throw the aspect of using the software.it can be reused among various kinds of the arbitrary signal generators,so it has a good application foreground.this paper first introduces the main principles,immediately after introduces the designing method of the software structure and the creation method of the signal data,at last shows a part of the wave forms of the signal data created by the arbitrary signal generator. keywords:arbitrary signal generator;software design;drfm bcb;signal waveform picture 1、引言在科学研究、工程教育及生产实践中,常常需要用到信号发生器。而信号发生器的主要功能是为各种场合产生所需的信号波形。长期使用的信号发生器,大部分是由一些电子元器件组成的模拟电路构成的,这类仪器作为信号源,频率可达上百MHz,但是其体积大,损耗也大。EDA技术是现代电子信息工程领域的一门新技术它是在先进的计算机工作平台上开发出来的一整套电子系统设计的软硬件工具,它提供了先进的电子系统设计方法。随着EDA技术的不断发展,当大规模可编程逻辑器件FPGA 和CPLD出现,并有了相应EDA设计工具之后,其含义就不仅局限在当初的电路版图的设计自动化概念上,而当今的EDA技术更多的是指芯片内的电子系统设计自动化。硬件描述语言的发展至今已有几十年的历史,并已成功地应用到系统的仿真、验证和设计综合等方面。FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。VHDL(Very High Speed Integrated Circuit Hardware Description Language,超高速集成电路硬件描述语言)诞生于1982年,是由美国国防部开发的一种快速设计电路的工具,目前已经成为IEEE(The Institute of Electrical and Electronics Engineers)的一种工业标准硬件描述语言。相比传统的电路系统的设计方法,VHDL具有多层次描述系统硬件功能的能力,支持自顶向下(Top to Down)和基于库(LibraryBased)的设计的特点,因此设计者可以不必了解硬件结构。从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用VHDL对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的FPGA器件中去,从而实现可编程的专用集成电路(ASIC)的设计。波形发生器在生产实践和科技领域中有着广泛的应用。例如在通信、广播、电视系统中,都需要射频(高频)发射,这里的射频波就是载波,把音频(低频)、视频信号或脉冲信号运载出去,就需要能够产生高频的振荡器。在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振成像等,都需要功率或大或小、频率或高或低的振荡器。现在波形发生器的实现方法通常有以下几种:(1)用分立元件组成的波形发生器:通常是单一波形发生器且频率不高,其工作不很稳定,不易调试。(2)可以由晶体管、运放IC等通用器件制作,更多的则是用专门的波形发生器IC产生。早期的波形发生器IC,如L8038、BA205、R2207/2209等,它们的功能较少,精度不高,频率上限只有300kHz,无法产生更高频率的信号,调节方式也不够灵活,频率和占空比不能独立调节,二者互相影响。(3)利用单片集成芯片的波形发生器:能产生多种波形,达到较高的频率,且易于调试。鉴于此,美国马克西姆公司开发了新一代波形发生器,它克服了(2)中芯片的缺点,可以达到更高的技术指标,是上述芯片望尘莫及的。此波形发生器频率高、精度好,因此它被称为高频精密波形发生器IC。在锁相环、压控振荡器、频率合成器、脉宽调制器等电路的设计上都是优选的器件。2、本设计的基本思路: Reset是复位键,但reset等于0时,信号发生器不产生任何函数,只有当reset等于1时,才会产生相应的波形;当adress=”000”产生方波;当adress=”001”产生阶梯波;当adress=”010”产生锯齿波;当adress=”011”产生三角波;当adress=”100”产生正弦波;3 系统总体方案设计该方案采用FPGA作为中心控制逻辑,由于其具有高速和逻辑单元数多的特点,因此可以由FPGA、DAC和I/V运放直接构成信号源发生器的最小系统。在该方案中通过FPGA控制DAC并直接向DAC发送数据,这样就提高了所需波形的频率并绕过了通用存储器读取速度慢的特点,再加上外部的开关按钮就能够简单控制波形切换与频率选择。当然,为了增加人机界面的交互性与系统功能,可以在原有的基础上添加一个标准键盘和LED或LCD,这样就能够通过编程实现波形的任意性、幅度变化的灵活性时 钟 系 统 控 制 器复 位波形选择频率选择方波阶梯波锯齿波递增锯齿波递减三角波正弦波TLC7528 I/V转换运放输出分频器 FPGA 系统方案图4、函数发生器的硬件设计 波形发生器制作过程中用到的硬件有: 5V的电源、以ALTERA公司生产的芯片,和以这个目标芯片为核心的核心板,核心板上有稳压管及其供电系统、50MHZ的晶振、SDRAM:8Mbyte、Flash:2Mbyte,此外所有IO配置管脚通过插针引出,下载设计到目标芯片时用到的并口下载数据线;还用到选择波形的按钮。由于这些波形产生都是在FPAG芯片中产生,产生的都是数字信号,比如三角波,它从00000000,CLK来一个上升延信号系统会自动给它加1,变成了00000001,再把这个8位二进制的信号输出来,这样周而复始地工作。而FPGA只是数字信号处理器,在模拟信号转换它是显得很无助的。所以在它的输出端接上一个数模转换器,把数字信号转换成模拟信号输出。所以它由两部分组成:数据产生,数据的转换。1、FPGA芯片(数据产生)在本次设计方案中,FPGA芯片采用ALTERA公司生产的EPF10K10LC84-4型芯片。ALTERA 公司作为全球最大的可编程逻辑器件供应商,可提供MAX7000S(E)、MAX7000A(AE)、MAX7000B、FLEX6000A、FLEX 10KA、FLEX 10KE 等系列产品。这些产品可用于组合逻辑、时序、算法、双端口RAM、FIFO的设计。在加上ALTERA 公司的MAX+pulsII 集成开发软件,集设计输入、处理、校验和器件编程于一体,集成度高,使用方便,大大缩短产品的开发周期。MAX EPF10K10LC84-4 是一种复杂可编程逻辑器件,是84pinPLCC 封装,另外还有其它类型的管脚和封装,选择性强,该IC 具有以下主要性能:(1)、嵌入式可编程逻辑器件,提供了集成系统于单个可编程逻辑器件中的性能;(2)、高密度:提供10000250000 个可用门,614440960 位内部RAM;(3)、低功耗:多数器件在静态模式下电流小于0.5mA,在2.5V、3.3V 或5.0v 下工作;(4)、高速度:时钟锁定和时钟自举选项分别用于减少时钟延时/过冲和时钟倍频;器件内建立树形分布的低失真时钟;具有快速建立时间和时钟到输出延时的外部寄存器;(5)、灵活的互连方式:快速、互连延时可预测的快速通道(Fast Track)连续式布线结构;实现快速加法、计数、比较等算术逻辑功能的专用进位链;实现高速、多输入(扇入)逻辑功能的专用级联链;实现内部三态的三态模拟;多达六个全局的时钟信号和四个全局清除信号;(6)、支持多电压I/O 接口;(7)、强大的引脚功能:每个引脚都有一个独立的三态输出使能控制及漏极开路配置选项及可编程输出压摆率控制;FLEX10KA、10LE、10KS 器件都支持热插拔;(8)、多种配置方式:内置JTAG 边界扫描测试电路,可通过外部EPROM、智能控制或JTAG 接口实现在电路重构(ICR);( 9 )、多种封装形式:引脚范围为84600,封装形式有TQFP、PQFP、BGA 和PLCC 等,同一封装的FLEX 10K 系列器件的引脚相兼容。EPF10K10LC84-4管脚图5、函数发生器的软件设计(1)、正弦波的设计FPGA输出的数字信号需要经DA转换器转换成各种波形输出。而由DA转换器可知,TLC7528的分辨率是8位,这样,将模拟信号的正弦波在一个周期内平均分成255份,由于已经确定每周期的取样点数为100,即每隔2/100的间隔取值一次,所取的值为该点对应的正弦值,通过计算可以获得100个取样点的值;也可以通过查表的方法取得100个取样点的值。正弦波产生模块sinbo:library ieee;-正弦波use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity Zhengxianbo isport (clk,reset :in std_logic;-clock时钟信号,clrn复位信号qt: out std_logic_vector(7 downto 0); -8位数据输出end Zhengxianbo;architecture behave of Zhengxianbo issignal q: std_logic_vector(8 downto 0);beginprocess(clk,reset) variable tmp : integer range 63 downto 0;begin if reset=0 then qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqNULL;end case;end if;qt=q(8 downto 1); end process;end behave;(2)、方波的设计由于方波的占空比是50,且只有两个状态,所以方波的取样比较简单。它的值经过128个时钟脉冲秒跳变一次,形成输出方波,也就是从00经过128个时钟脉冲后变为FF,从而实现了0101 的值变化。方波产生模块fangbo:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity fangbo isport(reset:in std_logic; clk: in std_logic; cnt:buffer std_logic_vector(7 downto 0);end entity;architecture one of fangbo isbeginprocess(clk)variable count:integer range 0 to 500;begin if reset=0 then count:=0; elsif rising_edge(clk) then if count=500 then cnt=00000000; count:=0; elsif count=255 then cnt=450 then cnt=400 then cnt=350 then cnt=300 then cnt=250 then cnt=200 then cnt=150 then cnt=100 then cnt=50 then cnt=00011000; else cnt=00000000; end if;end if;end process;end one;(4)锯齿波的设计采用0255循环加法计数器实现。通过赋值给输出值。clk是时钟信号,当复位信号有效时,输出为0,输出最小值设为“0”,最大值设为“255”,从“0”开始,当时钟检测到有上升沿的时候,输出就会呈现递增的趋势,加“1”。锯齿波产生模块juchi:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity juchibo isport(reset:in std_logic; clk: in std_logic; cnt:buffer std_logic_vector(7 downto 0);end entity;architecture one of juchibo isbeginprocess(clk)begin if reset=0 then cnt=00000000; elsif rising_edge(clk) then if cnt=11111111then cnt=00000000; else cnt=cnt+1; end if; end if;end process;end one;(5)、三角波的设计采用02550循环加减法计数器实现三角波产生模sanjiaobo:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity sanjiaobo isport(reset:in std_logic; clk: in std_logic; cnt:buffer std_logic_vector(7 downto 0);end entity;architecture one of sanjiaobo isbeginprocess(clk)variable up:integer range 0 to 1;begin if reset=0 then cnt=00000000; elsif rising_edge(clk) then if up=1 then if cnt=11111111 then up:=0; cnt=11111110; else cnt=cnt+1; end if; else if cnt=00000000then up:=1; cnt=00000001; else cnt=cnt-1; end if; end if;end if;end process;end one;(6)、分频器数控分频器的功能就是当在输入端给定不同输入数据时,将对输入的时钟信号有不同的分频比。用计数值可并行预置的加法计数器设计完成,方法是将计数溢出位与预置数加载输入信号相接即可。本次设计采用八位的数控分频器。LIBRARY IE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 济南市2024-2025学年七年级下学期语文期中模拟试卷
- 济南市2025-2026学年八年级下学期语文期末测试试卷
- 电路实训安全知识培训课件
- 高速公路收费员安全课件
- 电芯安全知识培训总结
- 电脑详细知识培训课件
- 2025年通信安全员ABC证考试题库
- 电脑知识培训教程中级题库课件
- 高考文言文特殊句式
- 电脑厂上班基本知识培训课件
- 2025年医疗质量管理质控培训考核试题(含答案)
- 深圳2025年重大项目计划申报
- 学生不住校申请书
- 小学科学新教科版二年级上册第一单元 造房子教案(共6课)(2025秋)
- 合同签订履行风险防范培训课件
- 《安装工程识图》中职技工全套教学课件
- ISO28000:2022供应链安全管理体系
- 《诗经》英文简介PPT
- SAP Analytics Cloud分析云解决方案
- 硬笔书法《浅谈书法》历史起源(课堂PPT)
- 员工自愿放弃社保公积金协议、自愿放弃社保协议书、自愿放弃社保声明书
评论
0/150
提交评论