《【电子信息工程毕业设计+文献综述+开题报告】基于单片机和FPGA的任意频率发生器设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
(20__届)本科毕业设计基于单片机和FPGA的任意频率发生器设计41 摘要直接数字频率合成(简称DDS)是频率合成技术忠一种新型技术,对于锁相环间接频率合成,直接频率合成,相比它具有很多优点,如频率分辨率高,相位变化连续,频率切换时间短,对输出信号的多种调制的实现要容易很多。这些年来来,各大芯片制造厂商都继续推出各种各样的多功能,高性能的DDS专用芯片,为电路设计者提供了多种选择,为工程的实际需要提供了很大的方便。本文提出了一种基于直接数字频率合成(DDS)技术的任意波形发生器,在单片机和FPGA的控制下,将储存在FPGA的RAM中的数据照一定规律取出,并经D/A转换器输出模拟波形。提高了波形的精度和频率范围,使FPGA得内部资源得到了充分的利用。关键词:单片机,FPGA,DDS,任意波形发生器41 ADesignofArbitraryFrequencyGeneratorBasedonMCUandFPGAAbstractDirectDigitalSynthesis(referredtoasDDS)isanewfrequencysynthesis,frequencysynthesiswiththetraditionaldirect(DS),indirectPLLFrequencySynthesizer(PLL)method,ithasmanyadvantages,suchasthefrequencyswitchingtimeisshort,highfrequencyresolution,phasechangecontinuously,easytoimplementonavarietyofmodulationoutputsignal.Inrecentyears,majorchipmanufacturershavecontinuedtointroduceavarietyofhigh-performance,multifunctionalDDSASIC,forcircuitdesignersprovideawiderangeofchoicestomeettheactualneedsoftheproject.Hispaperpresentsadirectdigitalfrequencysynthesisbasedon(DDS)technology,arbitrarywaveformgenerator,underthecontrolofmicrocontrollerandFPGA,FPGA-RAMwillbestoredinthedataaccordingtocertainlawsout,andbytheD/Aconverteroutputanalogwaveform.Improvetheaccuracyofthewaveformandfrequencyrange,sothattheinternalresourcesofFPGAhavebeenfullyutilized.Keywords:FPGA,DDS,MCU,ArbitraryWaveformGenerator41 目录摘要IIIAbstractIV1绪论11.1课题的来源11.2课题的意义11.3课题国内外发展现状11.3.1单片机的研究现状11.3.2FPGA的研究现状21.3.3DDS的研究现状21.3课题研究的主要内容32硬件系统设计42.1系统总体设计42.2相关技术理论及相关器件介绍52.2.1DDS技术的基本原理52.2.2FPGA工作原理62.2.3计算合成频率62.3芯片器件介绍72.3.1AT89S52单片机72.3.2数模转换器AD976092.3.3电压反馈型放大器AD8056102.4硬件系统模块设计102.4.1复位模块102.4.2输入模块112.4.3液晶显示模块122.4.4控制电路模块132.4.5相位累加器模块152.4.6RAM模块152.4.7D/A模块162.4.8低通滤波器模块163概述183.1概述183.2主程序流程图183.3子程序设计193.3.1正弦波设计1941 3.3.2三角波的设计223.3.3方波的设计233.3.4锯齿波的设计243.3.5波形的选择与控制设计254结论28致谢30附录3141 基于单片机和FPGA任意频率发生器设计1绪论1.1课题的来源DDS刚问世的时候,两个明显缺点阻碍了DDS的应用于发展,即构成DDS元器件得速度的限制和数字化引发的噪声,最近几年对DDS研究的深入以及数字电路超高速的发展,DDS工作的最高的频率和噪声性能已经逼近并到达和锁相频率合成器差不多水平。随着这种频率合成技术的发展,其已经在遥控遥测、通讯、电子导航、遥控和遥测、电子对抗以及现代化得仪器仪表工业等领域得到广泛的应用。1.2课题的意义直接数字频率合成(简称DDS)是频率合成技术忠一种新型技术,对于锁相环间接频率合成,直接频率合成,相比,它具有很多优点,如频率分辨率高,相位变化连续,频率切换时间短,对输出信号的多种调制的实现要容易很多。这些年来来,各大芯片制造厂商都继续推出各种各样的多功能,高性能的DDS专用芯片,为电路设计者提供了多种选择,为工程的实际需要提供了很大的方便。但DDS专用芯片确实固定的,使用不灵活。二用FPGA设计的DDS电路只需要改变FPGA中的ROM数据,DDS就可以产生任意波形,而且FPGA芯片要比专用DDS专用芯片便宜很多倍。因此,采用FPGA来设计DDS系统具有很高的性价比。1.3课题国内外发展现状1.3.1单片机的研究现状20世纪70年代末单片机诞生了,经历了SCM、MCU、SoC三大阶段。目前几乎很难找到哪个领域没有单片机的踪迹,飞机上各种仪表的控制,导弹的导航装置,计算机的数据传输与网络通讯,工业自动化过程的数据处理及实时控制,广泛使用的各种全自动洗衣机的控制,摄象机、录象机、以及程控玩具、智能IC卡,民用豪华轿车得安全保障系统,等等,这些都离不开单片机。更不用说自动控制领域的智能仪表、机器人、医疗器械了。因此,单片机的开发、学习与应用将会造就一批计算机智能化控制与应用的科学家和工程师。41 基于单片机和FPGA任意频率发生器设计单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、价格便宜、质量轻、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机结构与原理的最佳选择。和电脑功能类似的模块在单片机内部也有用到,比如CPU,并行总线,内存,还有和硬盘作用相同的存储器件,不同的是我们的家用电脑比这些部件性能要强很多,但是价钱也贵很多...用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的各种家电里面都可以看到它的身影!......它主要是作为控制部分的核心部件。[9-10]1.3.2FPGA的研究现状1.集成度越来越高,规模越来越大。最早的FPGA规模大约只有几千门,对现在的规模而言,当然是小巫见大巫。2006年5月份,Xilinx公司推出世界上第一个65nmFPGA系列——Virtex-5。Virtex-5可以提供330000个逻辑单元,它可以编程逻辑门约660万门,1200个用户I/O。2.速度越来越快,性能越来越强大。对于,Xilinx2006年推出的Virtex-5LX的利用率以及性能来说,已经是很高了,而且功率损耗也有比较明显的降低。06年的FPGA比上一代90nmFPGA提供高出30%的性能,但是的硅片面积少占用了45%,Virtex-5LX还提供业界最低动态功耗了比上一代低大约35%,这都说明了FPGA的发展越来越好。3.IP库的利用。FPGA厂商将IP硬核(指完成版图设计的功能单元模块)嵌入到FPGA器件中;FPGA厂商还大力扩充优化的IP软核,用户可以直接利用这些预定义的、经过测试和验证的IP核资源,可以更好地完成复杂的系统设计,让IP库得到真正的利用。4.价格随着逐步的发展逐渐降低。价格总是随着价值上下波动,同时也受市场的影响。FPGA市场的激烈竞争使得价格不断降低,在2004年每1万门的单价底降至1美元,然而到2005年更是疯狂降到了0.5美元。FPGA的市场也面临前所未有风险。5.发展方向指向了可编程系统芯片(SOPC)。可编程系统级芯片(SOPC)具有ASIC的低功耗、小尺寸、高集成度、低成本的优点。很多公司都尝试不同新的方法减少成本。实现PSOC主要有两种路径,有些人选择在FPGA中镶嵌了专用功能的IP核,实现SOC的功能,也有一部分人把可编程逻辑IP核嵌入到SOC中,达到风险低,灵活,可以快速冲入市场的目的。1.3.3DDS的研究现状1.41 基于单片机和FPGA任意频率发生器设计实时模拟仿真的高精密信号在DDS的波形存储器中存入正弦波等非正弦波形数据,要对这些数据加以控制和管理,计算,可以选择手控或计算机编程。DDS的特点是细步调比较准确,可以进行相位的连续变换,频率转换速度也比较快,我们可以应用这些优势与相对简单的电路,构成精确模拟仿真的各种信号。这是其它频率合成方法不能与之相比的。1.实现各种复杂方式的信号调制DDS是一种理想的调制器,因为合成信号的三个参量:幅度和频率还有相位都可以由数字信号精确控制。现代通信技术中调制的方式逐渐增多MSK,BPSK,QPSK,均需要对载波进行比较精确的相位控制。而DDS的合成信号相位的精度需要由相位累加器的位数来决定。因此,在对频率进行转换时,只要预置相位累加器的起始值,就可准确地控制合成信号的相位,轻易实现各种数字调制方式。3.实现对频率的精调,DDS能有效地实现频率的精确调整,它可以代替多重环路。我们将DDS的高频率分辨率和快速转换时间特性还有锁相环路输出的高频率、寄生噪声和杂波低的特点有机地结合起来。4.DDS的不足之处主,散分量丰富。1.频带受限。由于DDS内部DAC和ROM的工作速度限制,使得DDS输出的最高频率有限。目前市场上采用CMOS、TTL等工艺制作的DDS芯片工作频率一般在几十MHz至几百MHz左右。2.这些杂散分量引起的原因主要是相位舍位、DAC的非理想幅度和量化特性。那是由于在实际的DDS电路中,为了使频率分辨率足够小,一般是将相位累加器的位数取大。由于体积和成本在当中起到的限制,当对ROM寻址的时候,就只是用相位累加器的高位去寻址。5.最近几年,GSM、GPRS、3G、B1ueTooth甚至4G、LMDS、无线本地环路等不断发展,世界各国非常重视频率合成器的发展。微电子技术、计算机技术、信号处理技术和社会逐渐扩大的需求,使频率合成器技术更加成熟。由此我们可以预见,新一代DDS芯片的问世,DDS的应用前景会是一片光明的。1.3课题研究的主要内容合成频率的计算,通过单片机外围接口的4*4行列式键盘输入波形的种类,占空比和频率参数,液晶屏显示当前产生的波形参数信息。FPGA通过单片机发送的数据对各子模块进行管理,通过相位累加器对地址发生器的控制和计数器实现的时钟分频,不断改变地址范围,进而可以波形的RAM中取出各个采样点和各个模块所需要的不同时钟信号。然后经过D/A转换模块将FPGA输出的数字信号转化为模拟量,并进运算放大器输出。最后经低通滤波器,将不是特别光滑的信号,经过低通处理,得到平滑信号。41 基于单片机和FPGA任意频率发生器设计2硬件系统设计2.1系统总体设计系统的实际设计方案如(图2-1)。图中,单片机外围接口的4*4行列式键盘输入波形的种类,占空比和频率参数,液晶屏LCD1620显示当前产生的波形参数信息然后和FPGA组成系统的控制部分,用户输入的波形参数需要经过单片机的计算和转化,然后送给FPGA进行处理,单片机向FPGA发送数据,每次4bit发送命令向FPGA。FPGA模块时钟分频外部时钟输入寄存器相位累加器地址发生器方波RAM锯齿波RAM三角波RAM正弦波RAM波形选择D/A转换低通滤波波形输出单片机键盘显示图2-1系统设计方案41 基于单片机和FPGA任意频率发生器设计2.2相关技术理论及相关器件介绍2.2.1DDS技术的基本原理DDS工作原理为:相位累加器由32位的累加寄存器和32位的加法器(图2-2)级联构成。经过时钟脉冲对FC的控制,加法器的频率控制字K和累加寄存器输出的累加相位数据进行相加,相加后的结果将被送到累加寄存器的数据输入端,使得加法器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加(图2-1)。从图中我们可以了解到,相位累加器每一个时钟输入的时候,就将频率控制字累加一次。改变寻址的步长是DDS改变输出信号的频率的主要方法,所谓步长就是指对数字波形查表的相位增量,相位增量被累加器进行累加,查表地址为累加器的值,D/A转换器收到波形存储器输出的波形将数字量形式的波形幅值转化成所要求合成频率的模拟量形式信号。低通滤波器用于滤除不需要的取样分量,以便输出频谱纯净的正弦波信号。[1-2]参考频率源低通滤波器D/A转换器波形存储器相位累加器频率控制字图2-2DDS原理框图fN位相位寄存器N为加法器频率相位输出控制字K图2-3相位累加器41 基于单片机和FPGA任意频率发生器设计2.2.2FPGA工作原理PGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个概念,内部包括输出输入模块IOB(InputOutputBlock)、可配置逻辑模块CLB(ConfigurableLogicBlock)和内部连线(Interconnect)三个部分。FPGA的基本特点有:内部有丰富的触发器和I/O引脚,可做其它全定制或半定制ASIC电路的中试样片,是ASIC电路中开发费用最低、风险最小的器件、设计周期最短之一,采用高速CHMOS工艺,可以与TTL电平、CMOS兼容,功耗低。可以说,FPGA芯片是小批量系统提高系统可靠性,集成度的最佳选择之一。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作的时需要对片内RAM来进行程序编辑。我们可以根据配置模式的不同,使用用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。[3-6]2.2.3计算合成频率对于正弦波,设FPGA采样时钟对正弦波的一个周期进行N次采样,将周期的相位0~2分为m等分,以为相位分辨率。在的每个上升沿输出一个相位点的幅度,如第一个时钟的上升沿,0的点对应的幅度为输出相位,第二个时钟上升沿,以0+点的对应幅度为输出相位,如此类推,当累加值达到2是,即使输出完整的波形,如此循环。如此,输出完整的一个周期需m个时钟周期,输出信号频率:。如果以F为相位步进值,输出信号频率其中,频率控制字为F(相位步进值),若要改变输出频率,调整F的值即可。设相位累加器位数为N,即m=,储存采样数据为,输出频率(1)频率控制字为1时,最小频率的输出为:41 基于单片机和FPGA任意频率发生器设计。(2)输出信号的平滑度和提高信号的分辨率,存储器容量两方面的冲突,需要在二者之间权衡。一般采样点的个数与D/A转换器的位数相一致,当D/A转换器为10bit是一般存储即1024点。相位累加器的位数不必和存储点数一一对应,可取差数,累加位数N=20,而采点为1024个,可同时满足频率的范围和存储的负荷非常实用。[7-8]2.3芯片器件介绍2.3.1AT89S52单片机AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器(图2-4)。使用Atmel公司非易失性高密度存储器技术制造,可以和工业80C51产品引脚和指令完全兼容。在单芯片上,拥有相对灵巧的8位CPU和在系统上可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。图2-4AT89S53管脚图41 基于单片机和FPGA任意频率发生器设计1.引脚说明a.P0口P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。b.P1口P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)。c.P2口P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。Flash编程或校验时,P2亦接收高位地址和一些控制信号。d.P3口P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。2.特殊功能寄存器在AT89C52片内存储器中,80H-FFH共128个单元为特殊功能寄存器(SFE)。但是只有80H—FFH共128个字节只有一部分被定义。那些无效的单元,读出的数值并不是确定的,那些数据可能也会丢失。AT89C52除了有定时/计数器0和定时/计数器1,新的定时/计数器2的状态和控制位位于T2MOD和T2CON,寄存器对(RCAO2H、RCAP2L)是定时器2在16位的捕获方式或者16位得自动重装载方式下的自动重装载/捕获寄存器。41 基于单片机和FPGA任意频率发生器设计2.3.2数模转换器AD9760AD9760属于TxDAC系列低功耗,高性能CMOS10位分辨率的数模转换器(DAC)产品。AD9760-50是性能相对较低的型号,保证采样速率为50MSPS。TxDAC系列由引脚所兼容的8位10位12位14位DAC组成,并优化了通信系统的发射信号路径进。所有器件的小型封装,接口选项、和引脚排列都是相同的。所以可以由分辨率,性能和成本,向下或向上选择适合的器件。和便携灵活低功耗等特性。由于减少了满量程电流输出,功率消耗可进一步减少到只有45毫瓦,而性能缺没有明显下降。此外,省电模式下,待机功耗可继续降至约25毫瓦。AD9760采用了先进的CMOS工艺。专有交换结合分段电流源架构技术,可降低寄生元件干扰和提高动态性能。该器件还集成了一个1.2V温度补偿带隙基准电压源和边沿触发的输入锁存器,提供了一个完整的单芯片DAC解决方案。AD9760是一款由电流输出DAC,输出电流为20mA达到满量程时,产生大于100kΩ的输出阻抗。它提供差分电流的输出,从而只能支持差分或单端应用。在差分输出配置中获得动态性能的增强是因为电流的两路输出性。输出的电流可直接连接到输出电阻器来提供两个互补单端电压输出,或直接进入变压器工作。兼容的输出电压范围为1.25V左右。AD9760的驱动为片内基准电压,外部基准电压驱动也可。控制放大器和片内基准电压源通过设置,将可以获得最高的灵活性和精度。内部控制放大器将会提供比较宽泛的调节范围,在它的的调节下使AD9760的满量程电流大于在2mA小于20mA范围内变动,使之保持良好的动态性能。所以,AD9760能够工作在低功耗水平,或者在20dB范围内进行调节作,提供进一步的增益调整范围。AD9760采用28引脚SOIC封装,额定温度范围为工业温度范围。41 基于单片机和FPGA任意频率发生器设计2.3.3电压反馈型放大器AD8056AD8056(双路)电压反馈型放大器不仅能提供电流反馈型放大器通常具有的带宽和压摆率,而且易于使用、成本低廉。尽管AD8056成本很低,但仍能提供出色的整体性能。对于视频应用,它驱动150Ω负载的差分增益和相位误差分别为0.01%和0.02°,驱动四个视频负载(37.50Ω)时,差分增益和相位误差分别为0.02%和0.1°。该器件的0.1dB增益平坦度为40MHz,宽带宽达300MHz,压摆率为1400V/µs,建立时间20ns,因此适合各种高速应用。AD8056仅需5mA(每个放大器典型值)的电源电流,±5V双电源或+12V单电源供电,负载电流可达60mA以上。它提供8引脚小型PDIP、8引脚SOIC和8引脚MSOP三种封装。它采用R-8、N-8和RM-8封装,工作温度范围为-40°C至+125°C扩展温度范围。引脚配置框图如(图2-5)。图2-5引脚配置图2.4硬件系统模块设计2.4.1复位模块单片机在开机时都需要复位,以便于中央处理器以及其他功能部件都处于一个确定的初始状态,并从这个状态开始工作。单片机的复位后时靠外部电路实现的,再时钟电路工作后,只要在单片机的RST引脚时出现24个时钟震荡脉冲以上的高电平,单片机便可以实现初始化状态复位。51单片机的RST引脚是复位信号的输入端。本设计使用的AT89C52单片机时钟频率为12MHz,则复位脉冲宽度至少应该为1us。当AT89C41 基于单片机和FPGA任意频率发生器设计52系列单片机的复位引脚RST出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。确保安全可靠,耐心等待一段时间等电源稳定后撤消(图2-6)所示的RC复位电路可以实现上述基本功能。[11-12]图2-6复位模块2.4.2输入模块本模块采用4*4行列式键盘为了节省I/O口,节省资源,我们选择使用4*4的矩阵键盘来作为输入模块,这样一个8位的I/O口就可以驱动16个键盘,打打提升了I/0口利用率。矩阵键盘硬件电路设计图如(图2-7)所示。矩阵键盘中每一条水平(行线)与垂直线(列线)的交点并不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。我们设定P1.0-P1.3口为低四位并代表行线,而P1.4-P1.7为高四位并代表列线。41 基于单片机和FPGA任意频率发生器设计当判断键盘中有无按钮按下时,我们可以按照以下流程来判断:将低四位输出低电平,高四位输出高电平,然后检测列线的电平高低情况,若所有列线电平均显示为高电平,则表明键盘没有动作发生。而若某位列线显示为0,则表示该列上有一个按钮被按下,之后依次将行线置为低电平,就是在置某根行线为低电平时,剩余行线为高电平,当某一根行线置低后,检测到某一列为低电平,则该列线与置为低电平的行线交叉处的按键就是按下的按钮。[13]图2-7矩阵键盘2.4.3液晶显示模块液晶显示模块采用应用比较广泛的LCD1602,LCM1602C是LCD1602类型的通用型的双行16字符点阵液晶模块,内含数字,符号,字母192种(无汉字)字符库,可通过4位或8位的单片机控制显示字符,通过编程可实现字行的左右移动,上下滚页,通过硬件连线可控制背景灯的开关和对比度。LCD1602与80C52的电路引脚连接图如(图2-8)。引脚符号功能说明如(表2-1)。图2-8LCD162电路引脚图41 基于单片机和FPGA任意频率发生器设计表2-1引脚符号功能说明引脚符号功能说明1VSS接地2VDD接电源(+5V)3V0液晶显示器对比度调整引脚,接地时对比度最高,接电源时则对比度最小(对比度过高时会产生“鬼影”,可以通过一个10K的电位器调整对比度)。4RSR/WR/W为读写信号端,高电平进行读操作,低电平进行写操作。5R/WR/W为读写信号端,高电平进行读操作,低电平进行写操作。6EE(或EN)端为使能端,下降沿有效。7DB0低4位三态、双向数据总线0位(最低位)8DB1低4位三态、双向数据总线1位9DB2低4位三态、双向数据总线2位10DB3低4位三态、双向数据总线3位11DB4低4位三态、双向数据总线4位12DB5低4位三态、双向数据总线5位13DB6低4位三态、双向数据总线6位14DB7高4位三态、双向数据总线7位(最高位)(也是busyflag)15BLA背光电源正极16BLK背光电源负极2.4.4控制电路模块这个部分主要是要解决DDS模块与单片机的接口问题。相当DDS集成芯片中的控制寄存器和命令寄存器的作用。在FPGA的实现中,地址分配,使单片机可以选择各种各样的地址来选通FPGA各个模块工作;还有就是输入寄存器它的主要作用是为了接收单片机写入的相位控制字和频率控制字。对一个频率控制字而言,单片机需要分4次分别写入4bit;然而相位控制字只需单片机的一半。基于这样的要求,设计了输入寄存器模块如(图2-9):41 基于单片机和FPGA任意频率发生器设计图2-9寄存器模块图单片机数据线与该模块的接口为DIN[7…0],高电平使能为EN,是低电平异步清零为CLR,写入时钟为CLK,寄存器输出的32位频率控制字为DOUT[31…O〕。模块进行工作的时候,异步清零,使能都为高电平的时候,CLK的上升沿将数据线上的8字节数据锁存进本模块中,当4个bit的数据被锁存后,将这四个字节根据先写入的在高电位的顺序合成一个32bit的数在DOUT[31…0]上输出。地址分配模块是比较简单的,直接用一个3线-8线译码器实现了地址选通的功能,如图(2-10)所示。图2-10地址分配图表2-2各模块地址表从(图2-10)中可以看出74138译码器的使能端接在CS信号上面,整个任意波形发生模块的使能信号就是这个信号,要对各个模块进行操作只有在CS信号为低的时候。41 基于单片机和FPGA任意频率发生器设计2.4.5相位累加器模块相位累加器采用20bit(即N=20),但是FPGA外部有源晶振的频率值似乎有一定规律,所以我们要选择4.1952MHz外部时钟源的有源晶振,经过4分频得到1048800Hz的时钟信号,令=10448800HZ由式(2)可得分辨率:HZ(3)忽略误差,那么近似可以认为最小频率为1Hz。想要输出更多其他频率信号,根据式(1)可知,相应改变F的值。为了使输出波形不失真,根据奈奎斯特采样定理,输出频率要满足:(4)即控制字F满足。2.4.6RAM模块针对任意波形发生器与普通DDS的不同,波形RAM的设计主要要求AM具有读写两个端口,方便的进行RAM内容更新;幅度量化序列的发生。如果我们要选择EP1K50TC144-3这个芯片内部的双口RAM来完成这个功能,就要适当的结合GA的优点。将单片机的地址线,数据线和写地址线,写数据线相连,波形RAM中的数据由单片机进行更新;将度数据和读地址线分别与DAC和相位累加器相连接,读数据线上就输出了幅度量化序列。另一方面由于波形RAM的字长是十字节而,而设计用的8位单片机,需要有一个接口电路在单片机与波形RAM的接口上。这个接口电路比较简单,也就是10bit数据由单片机分两次写入先写入低8位然后再写入高2位,当高2两位写入后和低8位一起组成一个10位的数据一起写入波形RAM中。2.4.7D/A模块FPGA输出的信号为数字信号,要将其转换成模拟量就需要经过D/A41 基于单片机和FPGA任意频率发生器设计转换模块,并经运算放大器输出。我们使用的是一款精度为10bit,转换速度为125MSPS的高速D/A转换器AD9760,输出信号为两路差分电流输出:IOUTA=(DACCODE/1024)IOUTFS(4)IOUTB=(1023DACCODE)/1024IOUTFS(5)同时,使用一款300MHz低功耗带宽高速运放的AD8056芯片,采用8Pin-SOP封装,电压反馈式运放,内部包含有两个运放模块,使用非常的方便。应用电路如(图2-11)所示。图2-11D/A模块2.4.8低通滤波器模块低通滤波器能够比较好地滤除杂波,收到良好的信号,为了可以保证DDS芯片的正常输出,需要在DDS的输出端加一滤波器来实现.根据系统设计的要求,滤波器采用无源低通滤波器和运算放大器相结合的方式.其电路如(图2-12)所示.运放的加入,电路无疑是复杂的,可是滤波器的电压放大倍数和带负载能力却可以得到了明显的提高.低通滤波器采用LC型,其特点为等效内阻小、输出功率大,AD817完全可以满足我们的设计要求。41 基于单片机和FPGA任意频率发生器设计图2-12低通滤波放大电路41 基于单片机和FPGA任意频率发生器设计3概述3.1概述设计采用自顶向下细化的设计方法,首先对波形生成子系统进行分析与方案选择入手。确认了波形产生子系统的实现方案后,再来考虑各参数控制子系统的实现。但是,基于使用最少的元件实现最好功能的想法,并不是完全依照方案三,在这过程中,我们选择不使用ROM芯片,而是使用QuartusII可编程逻辑器件开发软件和VHDL语言,采用个人算法对所要实现的波形采样和编程,将程序进行软模拟和封装并下载到FPGA/CPLD中,由可编程逻辑器件控制数据的输出,再经过D/A转换输出所需要的模拟波形3.2主程序流程图本方案软件采用了结构化系统设计与结构化程序设计的方法,整个软件由顶向下分层分块,每个模块完成一项功能,并遵守上层模块调用下层模块,同层模块不能相互调用的原则,软件的模块如(图3-1)所示。开始系统初始化功能选择波形种类选择正弦波三角波锯齿波方波确定执行并返回图3-1系统流程图41 基于单片机和FPGA任意频率发生器设计选择了任意波形发生器,四种基础波形必将成为设计与实现的主角,但是在设计上要认真对待对波形的选择与控制,因为四个波形要一同输出输入,要使得四个波形模块只有一个输入为时钟脉冲的充要条件,就是选择正确的时钟脉冲,其余输入始终为0。在波形输出时,设计一个模块控制输出的波形是所要求输出的波形,在时钟脉冲选择与输出波形选择两模块之间,有个别情况需要注意,后面将有介绍,基本框图(图3-2):数模转换芯片波形输出选择正弦波模块时钟脉冲输入选择clk三角波模块锯齿波模块方波模块输出波形图3-2输出波形框图这是一个通过VHDL语言对信号发生器的电路进行硬件描述,把描述的整个电路通过动态配置写进芯片。输出的波形信号,要在示波器上观察其波形是否正确,就必须是模拟信号,所以要利用数/模芯片把其数字信号转换为模拟信号。3.3子程序设计3.3.1正弦波设计由于正弦波的非线性,所以对算法有较严的要求。对于一个正弦波,他在一个周期里变化有规律可循,有公式只需要算出1/4个周期的幅值,则可得出其他3/4个周期的幅值,而在我们所设计的过程中,也正是采用了这个规律来简化采样点数。由于D/A转换接口为8位输入,所以必须要考虑到采样个数和采样值的大小。如果仅以原始波形为基础进行采样,必然会出现小数和负数,这将使得二进制的转化和编程变的很困难。综合以上因素,首先要解决的问题就是消除小数和负数,使采样数值变成正整数,于是我们采用了以下的算法:首先,将原始波形幅度扩大为原来的127.5倍,然后将波形向上移动127.5,这时进行采样41 基于单片机和FPGA任意频率发生器设计,在简便又不影响波形输出且是误差允许范围内的情况下,小数点后的数值可以四舍五入,只取整数。为了简化采样与编程的需要,将正弦波左移1/4个周期,按余弦来采样,即。在(0到π)之间取了64个点,而(π到2π)之间的点则是(0到π)之间的点的反方向排列。采样点的计算公式为。正弦波的VHDL语言编程源程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entitysin4isport(clk4:instd_logic;dd4:outintegerrange255downto0);--输出范围为0到255end;architecturedaccofsin4issignalq:integerrange63downto0;beginprocess(clk4)beginif(clk4'eventandclk4='1')thenq<=q+1;endif;endprocess;process(q)begincaseqiswhen00=>dd4<=255;when01=>dd4<=254;when02=>dd4<=253;when03=>dd4<=250;when04=>dd4<=245;when05=>dd4<=240;when06=>dd4<=234;when07=>dd4<=226;when08=>dd4<=218;when09=>dd4<=208;when10=>dd4<=198;41 基于单片机和FPGA任意频率发生器设计when11=>dd4<=188;when12=>dd4<=176;when13=>dd4<=165;when14=>dd4<=152;when15=>dd4<=140;when16=>dd4<=128;when17=>dd4<=115;when18=>dd4<=103;when19=>dd4<=90;when20=>dd4<=79;when21=>dd4<=67;when22=>dd4<=57;when23=>dd4<=47;when24=>dd4<=37;when25=>dd4<=29;when26=>dd4<=21;when27=>dd4<=15;when28=>dd4<=10;when29=>dd4<=5;when30=>dd4<=2;when31=>dd4<=1;when32=>dd4<=0;when33=>dd4<=1;when34=>dd4<=2;when35=>dd4<=5;when36=>dd4<=10;when37=>dd4<=15;when38=>dd4<=21;when39=>dd4<=29;when40=>dd4<=37;when41=>dd4<=47;when42=>dd4<=57;when43=>dd4<=67;when44=>dd4<=79;when45=>dd4<=90;41 基于单片机和FPGA任意频率发生器设计when46=>dd4<=103;when47=>dd4<=115;when48=>dd4<=128;when49=>dd4<=140;when50=>dd4<=165;when51=>dd4<=176;when52=>dd4<=188;when53=>dd4<=198;when54=>dd4<=208;when55=>dd4<=218;when56=>dd4<=226;when57=>dd4<=234;when58=>dd4<=240;when59=>dd4<=245;when60=>dd4<=250;when61=>dd4<=253;when62=>dd4<=254;when63=>dd4<=255;whenothers=>null;endcase;endprocess;endarchitecture;3.3.2三角波的设计由于三角是由线形增加和线形递减的两个直线所构成,实现三角波的采样和自加的可能条件就是直接使用VHDL语言,达到线形自己累加到最高点,控制语句要控制自减,一直到0点时再继续重复以前过程,从而实现三角波数据的输出。以下是三角波VHDL语言编程源程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitysanjisport(clk3:instd_logic;41 基于单片机和FPGA任意频率发生器设计dd3:outstd_logic_vector(7downto0));endsanj;architectureartofsanjissignalb:std_logic;signalc:std_logic_vector(7downto0);beginprocess(clk3)beginif(clk3'eventandclk3='1')thenif(b='0')thenc<=c+1;if(c=250)thenb<='1';endif;elsif(b='1')thenc<=c-1;if(c=1)thenb<='0';endif;endif;dd3<=c;endif;endprocess;endart;3.3.3方波的设计由于时钟脉冲本身输出就方波的波形,所以将直接输出时钟脉冲信号作为方波的设计。但是,方波的波形和其他波形是同步的也要通过D/A转换,即时钟脉冲也要变成8位的输出才能经过D/A转换输出。具体的过程可以由以下程序实现:libraryieee;useieee.std_logic.1164.all;entityjvchi2ispotr(clk2,up_down:instd_logic;41 基于单片机和FPGA任意频率发生器设计dd2:bufferintegerrange255downto0);end;architectureoneofjvchi2issignald,temp:integerrange255downto0;beginprocess(clk2)beginif(clk2’eventandclk2=’1’)theniftemp<198thentemp<=temp+2;elsetemp<=0;endif;endif;endprocess;process(temp,up_down)beginifup_down=’0’thend<=temp;elsed<=198-temp;endif;endprocess;dd2<=d;3.3.4锯齿波的设计对于锯齿波的采样,也可以完全用VHDL语言来实现采样和自加,当加到所要求的最高点时,由控制语句使其返回0点重复以前过程,从而实现锯齿波数据的输出。所要注意的是,锯齿波有上升锯齿波形和下降锯齿波形,所以必须设置一个控制按键,来控制波形,使达到所需要的上升波形或下降波形,程序中以UP_DOWN来实现。锯齿波VHDL语言编程源程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityfang2is41 基于单片机和FPGA任意频率发生器设计port(clk1:instd_logic;dd1:bufferintegerrange255downto0);end;architecturedaccoffang2issignalq:integerrange1downto0;beginprocess(clk1)beginif(clk1'eventandclk1='1')thenq<=q+1;endif;endprocess;process(q)begincaseqiswhen0=>dd1<=255;when1=>dd1<=0;whenothers=>null;endcase;endprocess;endarchitecture;3.3.5波形的选择与控制设计在前面已经分别设计出了四种基础波形,现在所需要做的是如何将四种波形融合在一起成为一个整体,并使他们能按操作人意愿输出所需要波形,这就需要波形选择与控制模块了。41 基于单片机和FPGA任意频率发生器设计在我们的设计构思里,首先是让四个波形模块按意愿工作起来,使需要的波形模块能输出波形数据,其他的三个则的不输出波形数据。这个功能由时钟脉冲输入选择模块完成,在这个模块里,有两个控制开关,有00、01、10、11四个控制情况,这四种情况每一个针对一个波形模块--00时正弦波模块,01时三角波模块,10时锯齿波模块,11时方波模块。需要哪个波形工作时,按键开关输入哪种情况既可。当选择了一种情况时,所对应的一个波形模块输入的是时钟脉冲而能够工作输出波形数据,其他三个则始终输入为0,所以波形不能正常输出。这并不能说明不在工作,因为自始至终都有个0信号在输入,所以数据在最后也是可以产生的,是对波形有干扰的数据。因此,输出波形选择模块的作用就显得异常重要它能隔离干扰数据,选择有用的波形。为了消除延迟,同时也为了统一输出波形选择和时钟脉冲选择,时钟脉冲选择模块里的两个控制开关和输出波形选择模块里的两个控制开关是同一个。这样当一种控制数据被输入时,波形的输出也就是我们所需要的波形。将两个模块的控制开关设置成同一个控制开关,节省了资源降低了错误几率也减少了按键的数量。时钟脉冲输入选择器及输出波形选择器VHDL语言编程源程序:时钟脉冲输入选择器VHDL语言编程源程序:libraryieee;useieee.std_logic_1164.all;entitymux42isport(clk:instd_logic;s:instd_logic_vector(1downto0);z1,z2,z3,z4:outstd_logic);endentitymux42;architectureartofmux42isbeginprocess(s)begincasesiswhen"00"=>z1<=clk;when"01"=>z2<=clk;when"10"=>z3<=clk;when"11"=>z4<=clk;whenothers=>z1<=null;z2<=null;z3<=null;z4<=null;endcase;endprocess;41 基于单片机和FPGA任意频率发生器设计endart;输出波形选择器VHDL语言编程源程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityyand1isport(dd1,dd2,dd3,dd4:instd_logic_vector(7downto0);s:instd_logic_vector(1downto0);y::outstd_logic_vector(7downto0));endentityyand1;architectureartofyand1isbeginprocess(s)begincasesiswhen"00"=>y<=dd4;when"01"=>y<=dd3;when"10"=>y<=dd2;when"11"=>y<=dd1;whenothers=>null;endcase;endprocess;endarchitectureart;41 基于单片机和FPGA任意频率发生器设计4结论本文结合单片机DDS技术与FPGA技术,从理论和实际两个方面,对数字波形发生器进行了设计研究。首先介绍了频率合成技术的概况和现状,把本文将要进行的设计内容作了概括;之后把文中涉及到的一些理论知识做了详细的介绍。设计中,采用自顶向下细化的设计方法,首先对波形生成子系统进行分析与方案选择入手,确认了波形产生子系统的实现方案后,再来考虑各参数控制子系统的实现。使用QuartusII和VHDL语言,对所要实现的波形采样和编程,将程序进行软模拟和封装并下载到FPGA中,由可编程逻辑器件控制数据的输出,再经过D/A转换输出所需要的模拟波形。采用了结构化系统设计与结构化程序设计的方法,整个软件由顶向下分层分块,每个模块完成一项功能,最后通过选择模块输出所需要的波形。41 基于单片机和FPGA任意频率发生器设计参考文献[1]王广君,王永涛等.基于CPLD的高精度任意波形发生器的研制[J].实验技术与管理.2009,26(3):74-78.[2]林建英,王涛,王晓迪.基于DDS技术波形发生器的实验教学研究与实施[J].实验科学与技术.2006,4(1):75-78.[3]刘文莉,林建英,用单片机与FPGA实现的DDS波形发生器[J].研究与开发,2007,26(12):27-28[4]蒋献丰,钱卫飞,基于单片机与FPGA的波形发生器[J].中国测试技术,2008,34(3):78-79.[5]王彦.基于FPGA的工程设计与应用[M].西安:西安电子科技大学出版社,2007:489-496.[6]王彦.基于FPGA的工程设计与应用[M].西安:西安电子科技大学出版社,2007:272-279.[7]刘源,于亚萍.基于FPGA数控信号发生器的设计[J].自动化技术与应用,2009,28(12):75-77.[8]王彦,方艾,张清明.基于FPGA的数字波形发生器[J].机械与电子,2004(6):16-16.[9]张毅刚.单片机原理及应用[M].北京:高等教育出版社,2003[10]林志琦.单片机原理接口及应用(c语言版)[M].北京:中国水利水电出版社,2007[11]陈伟人.MCS-51系列单片机实用子程序集锦[M].清华大学出版社,1993.3[12]何立民.单片机应用系统设计[M].北京航空航天大学出版社,1993[13]席先觉.单片微型计算机及其应用[M].高等教育出版社,1987[14]KedarGodbole.ConvertingAnalogControllerstoSmartControllerswiththeTMS320C2000DSPs[M].ApplicationNote(spra995)-TexasInstruments,2004.[15]J.Hennessy,N.Jouppi.Computertechnologyandarchitecture:anevolvinginteraction[J].IEEEComputerMagazine,1991,24(1):18–29.41 基于单片机和FPGA任意频率发生器设计附录附录1设计原理图41 基于单片机和FPGA任意频率发生器设计文献综述基于单片机和FPGA的任意频率发生器设计1前言单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可......用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!......它主要是作为控制部分的核心部件。[9-13]直接数字频率合成(简称DDS)是一种新的频率合成技术,同传统的直接频率合成(DS),锁相环间接频率合成(PLL)方法相比,它具有很多优点,如频率切换时间短,频率分辨率高,相位变化连续,容易实现对输出信号的多种调制等。近几年来,疙瘩芯片制造厂商都继续推出各种各样的高性能,多功能的DDS专用芯片,为电路设计者提供了多种选择,满足了工程的实际需要。但DDS专用芯片确实固定的,使用不灵活。二用FPGA设计的DDS电路只需要改变FPGA中的ROM数据,DDS就可以产生任意波形,而且FPGA芯片要比专用DDS专用芯片便宜很多倍。因此,采用FPGA来设计DDS系统具有很高的性价比。基于这种技术,用单片机和FPGA实现的任意波形发生器,精度高,成本低,实现简单。41 基于单片机和FPGA任意频率发生器设计DDS技术,就是根据奈奎斯特采样定理,将模拟信号离散化,然后以二进制形式存放在存储器中。当需要该信号时,以一定的速率重复从存储器中取出数据,送入D/A转换器转换,再经低通滤波器去除高频分量,平滑输出信号,就得到想要的波形。这种频率合成技术的精度与存储器中的数据点数、D/A的转换速率和位数都有着密切的关系。数据点数越多,D/A转换的速率越快,位数越多,合成的频率范围越大,精度越高。1.主题目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。DDS问世之初,构成DDS元器件的速度的限制和数字化引起的噪声,这两个主要缺点阻碍了DDS的发展与实际应用。近几年超高速数字电路的发展以及对DDS的深入研究,DDS的最高工作频率以及噪声性能已接近并达到锁相频率合成器相当的水平。随着这种频率合成技术的发展,其已广泛应用于通讯、导航、雷达、遥控遥测、电子对抗以及现代化的仪器仪表工业等领域。1.实时模拟仿真的高精密信号在DDS的波形存储器中存入正弦波形及方波、三角波、锯齿波等大量非正弦波形数据,然后通过手控或用计算机编程对这些数据进行控制,就可以任意改变输出信号的波形。利用DDS具有的快速频率转换、连续相位变换、精确的细调步进的特点,将其与简单电路相结合就构成精确模拟仿真各种信号的的最佳方式和手段。这是其它频率合成方法不能与之相比的。例如它可以模拟各种各样的神经脉冲之类的波形,重现由数字存储示波器(DSO)捕获的波形。2.实现各种复杂方式的信号调制DDS也是一种理想的调制器,因为合成信号的三个参量:频率、相位和幅度均可由数字信号精确控制,因此DDS可以通过预置相位累加器的初始值来精确地控制合成信号的相位,从而达到调制的目的。现代通信技术中调制方式越来越多,BPSK,QPSK,MSK都需要对载波进行精确的相位控制。而DDS的合成信号的相位精度由相位累加器的位数决定。一个32位的相位累加器可产生43亿个离散的相位电平,而相位精度可控制在8×10-3度的范围内,因此,在转换频率时,只要通过预置相位累加器的初始值,即可精确地控制合成信号的相位,很容易实现各种数字调制方式。3.实现频率精调,作为理想的频率源41 基于单片机和FPGA任意频率发生器设计DDS能有效地实现频率精调,它可以在许多锁相环(PLL)设计中代替多重环路。在一个PLL中保持适当的分频比关系,可以将DDS的高频率分辨率及快速转换时间特性与锁相环路的输出频率高、寄生噪声和杂波低的特点有机地结合起来,从而实现更为理想的DDS+PLL混合式频率合成技术。在频率粗调时用PLL来覆盖所需工作频段,选择适当的分频比可获得较高的相位噪声,而DDS被用来覆盖那些粗调增量,在其内实现频率精调。这种方案以其优越的相位稳定性和极低的颤噪效应满足了各种系统对频率源苛刻的技术要求。这也是目前开发应用DDS技术最广泛的一种方法。采用这种方案组成的频率合成器已在很高的频率上得以实现。当然,DDS的应用不仅限于这些,它还可用于核磁谐振频谱学及其成像、检测仪表等。随着DDS集成电路器件速度的飞速发展,它已成为一种可用于满足系统频率要求的重要而灵活的设计手段。[1-3]关于FPGA的发展有以下几个方向:四、规模越来越大,集成度越来越高。早期的FPGA规模只有几千门,2006年5月份,Xilinx公司推出世界上第一个65nmFPGA系列——Virtex-5。基于65nm三极栅氧化层技术、11层铜布线工艺、低K材料、新型镍硅自对准技术、新型ExpressFabric技术和ASMBL架构,可以提供330000个逻辑单元(可编程逻辑门约660万门)和1200个用户I/O。五、速度不断提高,性能不断提升。Xilinx2006年推出的Virtex-5LX性能和利用率都很高,同时功耗大幅度降低。Virtex-5LXFPGA比上一代90nmFPGA提供高出30%的性能,少占用45%的硅片面积,以及提供比上一代90nmFPGA低35%的业界最低动态功耗。Virtex-5LX系列还通过性能优化的IP块拥有了550MHz时钟频率。高性能SelectIO特性提供了到667MbpsDDR2SDRAM和1200MbpsQDRIISRAM等外部存储器的最快连接。ALtera公司于2006年11月份推出StratixIII的65nmFPGA系列。StratixIII比前一代器件快25%,密度是前一代FPGA的2倍,功耗降低了50%,支持四十多个I/O接口标准,具有业界一流的性能、灵活性和信号完整性。六、IP库的利用。当前具有IP内核的系统级FPGA的开发主要体现在两个方面:一方面是FPGA厂商将IP硬核(指完成版图设计的功能单元模块)嵌入到FPGA器件中;另一方面是大力扩充优化的IP软核(指利用HDL语言设计并经过综合验证的功能单元模块),用户可以直接利用这些预定义的、经过测试和验证的IP核资源,有效地完成复杂的片上系统设计。七、价格越来越低。FPGA市场的激烈竞争推动了价格的不断下调。基于SRAM的FPGA的价格下降很快,每1万门的单价在2004年底降至1美元,到2005年降至0.5美元。Altera公司于2005年第二季度开始批量生产的低端FPGACyc1oneII,其约33万门的产品将以22美元的价格供货。相当于每一万门的单价为0.65美元左右。八、41 基于单片机和FPGA任意频率发生器设计向可编程系统芯片(SOPC)方向发展。可编程系统级芯片(SOPC)具有ASIC的高集成度、低功耗、小尺寸、低成本的优点,同时具有FPGA的低风险、灵活和快速上市的优点。Altera推出的支持新款CycloneIIFPGA系列的NiosII嵌入式处理器,允许设计者在很短的时间内构建一个完整的可编程系统芯片,风险和成本比中小规模的ASIC小。实现PSOC主要有两种途径,一种是在FPGA中嵌入专用功能的IP核,实现SOC的功能,另一种是将可编程逻辑IP核嵌入到SOC中。[4-8]3总结综上所述,基于单片机和FPGA任意频率信号发生器具有很高的性价比。基于DDS这种技术,用单片机和FPGA实现的任意波形发生器,精度高,成本低,实现简单,具有一定的实用价值和经济效应,具有更好更广泛的发展前景。4参考文献[1]王广君,王永涛等.基于CPLD的高精度任意波形发生器的研制[J].实验技术与管理.2009,26(3):74-78.[2]林建英,王涛,王晓迪.基于DDS技术波形发生器的实验教学研究与实施[J].实验科学与技术.2006,4(1):75-78.[3]刘文莉,林建英,用单片机与FPGA实现的DDS波形发生器[J].研究与开发,2007,26(12):27-28[4]蒋献丰,钱卫飞,基于单片机与FPGA的波形发生器[J].中国测试技术,2008,34(3):78-79.[5]王彦.基于FPGA的工程设计与应用[M].西安:西安电子科技大学出版社,2007:272-279.[6]王彦.基于FPGA的工程设计与应用[M].西安:西安电子科技大学出版社,2007:489-496.[7]王彦,方艾,张清明.基于FPGA的数字波形发生器[J].机械与电子,2004(6):16-16.[8]刘源,于亚萍.基于FPGA数控信号发生器的设计[J].自动化技术与应用,2009,28(12):75-77.[9]张毅刚.单片机原理及应用[M].北京:高等教育出版社,2003[10]林志琦.单片机原理接口及应用(c语言版)[M].北京:中国水利水电出版社,2007[11]陈伟人.MCS-51系列单片机实用子程序集锦[M].清华大学出版社,1993.3[12]何立民.单片机应用系统设计[M].北京航空航天大学出版社,1993[13]席先觉.单片微型计算机及其应用[M].高等教育出版社,198741 基于单片机和FPGA任意频率发生器设计[14]KedarGodbole.ConvertingAnalogControllerstoSmartControllerswiththeTMS320C2000DSPs[M].ApplicationNote(spra995)-TexasInstruments,2004.[15]J.Hennessy,N.Jouppi.Computertechnologyandarchitecture:anevolvinginteraction[J].IEEEComputerMagazine,1991,24(1):18–29.41 基于单片机和FPGA任意频率发生器设计开题报告基于单片机和FPGA的任意频率发生器设计1选题的背景、意义单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。[1-3]直接数字频率合成(简称DDS)是一种新的频率合成技术,同传统的直接频率合成(DS),锁相环间接频率合成(PLL)方法相比,它具有很多优点,如频率切换时间短,频率分辨率高,相位变化连续,容易实现对输出信号的多种调制等。近几年来,疙瘩芯片制造厂商都继续推出各种各样的高性能,多功能的DDS专用芯片,为电路设计者提供了多种选择,满足了工程的实际需要。但DDS专用芯片确实固定的,使用不灵活。二用FPGA设计的DDS电路只需要改变FPGA中的ROM数据,DDS就可以产生任意波形,而且FPGA芯片要比专用DDS专用芯片便宜很多倍。因此,采用FPGA来设计DDS系统具有很高的性价比。基于这种技术,用单片机和FPGA实现的任意波形发生器,精度高,成本低,实现简单。DDS技术,就是根据奈奎斯特采样定理,将模拟信号离散化,然后以二进制形式存放在存储器中。当需要该信号时,以一定的速率重复从存储器中取出数据,送入D/A转换器转换,再经低通滤波器去除高频分量,平滑输出信号,就得到想要的波形。这种频率合成技术的精度与存储器中的数据点数、D/A的转换速率和位数都有着密切的关系。数据点数越多,D/A转换的速率越快,位数越多,合成的频率范围越大,精度越高。2相关研究的最新成果及动态DDS问世之初,构成DDS元器件的速度的限制和数字化引起的噪声,这两个主要缺点阻碍了DDS的发展与实际应用。近几年超高速数字电路的发展以及对DDS的深入研究,DDS41 基于单片机和FPGA任意频率发生器设计的最高工作频率以及噪声性能已接近并达到锁相频率合成器相当的水平。随着这种频率合成技术的发展,其已广泛应用于通讯、导航、雷达、遥控遥测、电子对抗以及现代化的仪器仪表工业等领域。1.实时模拟仿真的高精密信号在DDS的波形存储器中存入正弦波形及方波、三角波、锯齿波等大量非正弦波形数据,然后通过手控或用计算机编程对这些数据进行控制,就可以任意改变输出信号的波形。利用DDS具有的快速频率转换、连续相位变换、精确的细调步进的特点,将其与简单电路相结合就构成精确模拟仿真各种信号的的最佳方式和手段。这是其它频率合成方法不能与之相比的。例如它可以模拟各种各样的神经脉冲之类的波形,重现由数字存储示波器(DSO)捕获的波形。2.实现各种复杂方式的信号调制DDS也是一种理想的调制器,因为合成信号的三个参量:频率、相位和幅度均可由数字信号精确控制,因此DDS可以通过预置相位累加器的初始值来精确地控制合成信号的相位,从而达到调制的目的。现代通信技术中调制方式越来越多,BPSK,QPSK,MSK都需要对载波进行精确的相位控制。而DDS的合成信号的相位精度由相位累加器的位数决定。一个32位的相位累加器可产生43亿个离散的相位电平,而相位精度可控制在8×10-3度的范围内,因此,在转换频率时,只要通过预置相位累加器的初始值,即可精确地控制合成信号的相位,很容易实现各种数字调制方式。3.实现频率精调,作为理想的频率源DDS能有效地实现频率精调,它可以在许多锁相环(PLL)设计中代替多重环路。在一个PLL中保持适当的分频比关系,可以将DDS的高频率分辨率及快速转换时间特性与锁相环路的输出频率高、寄生噪声和杂波低的特点有机地结合起来,从而实现更为理想的DDS+PLL混合式频率合成技术。在频率粗调时用PLL来覆盖所需工作频段,选择适当的分频比可获得较高的相位噪声,而DDS被用来覆盖那些粗调增量,在其内实现频率精调。这种方案以其优越的相位稳定性和极低的颤噪效应满足了各种系统对频率源苛刻的技术要求。这也是目前开发应用DDS技术最广泛的一种方法。采用这种方案组成的频率合成器已在很高的频率上得以实现。当然,DDS的应用不仅限于这些,它还可用于核磁谐振频谱学及其成像、检测仪表等。随着DDS集成电路器件速度的飞速发展,它已成为一种可用于满足系统频率要求的重要而灵活的设计手段。[4-8]关于FPGA的发展有以下几个方向:1.规模越来越大,集成度越来越高。早期的FPGA规模只有几千门,2006年5月份,Xilinx公司推出世界上第一个65nmFPGA系列——Virtex-5。基于65nm三极栅氧化层技术、11层铜布线工艺、低K材料、新型镍硅自对准技术、新型ExpressFabric技术和ASMBL架构,可以提供330000个逻辑单元(可编程逻辑门约660万门)和1200个用户I/O。2.速度不断提高,性能不断提升。Xilinx2006年推出的Virtex-5LX41 基于单片机和FPGA任意频率发生器设计性能和利用率都很高,同时功耗大幅度降低。Virtex-5LXFPGA比上一代90nmFPGA提供高出30%的性能,少占用45%的硅片面积,以及提供比上一代90nmFPGA低35%的业界最低动态功耗。Virtex-5LX系列还通过性能优化的IP块拥有了550MHz时钟频率。高性能SelectIO特性提供了到667MbpsDDR2SDRAM和1200MbpsQDRIISRAM等外部存储器的最快连接。ALtera公司于2006年11月份推出StratixIII的65nmFPGA系列。StratixIII比前一代器件快25%,密度是前一代FPGA的2倍,功耗降低了50%,支持四十多个I/O接口标准,具有业界一流的性能、灵活性和信号完整性。1.IP库的利用。当前具有IP内核的系统级FPGA的开发主要体现在两个方面:一方面是FPGA厂商将IP硬核(指完成版图设计的功能单元模块)嵌入到FPGA器件中;另一方面是大力扩充优化的IP软核(指利用HDL语言设计并经过综合验证的功能单元模块),用户可以直接利用这些预定义的、经过测试和验证的IP核资源,有效地完成复杂的片上系统设计。2.价格越来越低。FPGA市场的激烈竞争推动了价格的不断下调。基于SRAM的FPGA的价格下降很快,每1万门的单价在2004年底降至1美元,到2005年降至0.5美元。Altera公司于2005年第二季度开始批量生产的低端FPGACyc1oneII,其约33万门的产品将以22美元的价格供货。相当于每一万门的单价为0.65美元左右。向可编程系统芯片(SOPC)方向发展。可编程系统级芯片(SOPC)具有ASIC的高集成度、低功耗、小尺寸、低成本的优点,同时具有FPGA的低风险、灵活和快速上市的优点。Altera推出的支持新款CycloneIIFPGA系列的NiosII嵌入式处理器,允许设计者在很短的时间内构建一个完整的可编程系统芯片,风险和成本比中小规模的ASIC小。实现PSOC主要有两种途径,一种是在FPGA中嵌入专用功能的IP核,实现SOC的功能,另一种是将可编程逻辑IP核嵌入到SOC中。[9-15]3课题的研究内容及拟采取的研究方法(技术路线)、研究难点及预期达到的目标3.1研究内容设计一个在单片机和FPGA的控制下,将存储在FPGA的RAM中的数据按照一定规律取出,并经D/A转换器输出模拟波形。3.2研究方法1.单片机部分41 基于单片机和FPGA任意频率发生器设计本系统的实际设计方案如图1。图中,单片机和FPGA组成系统地控制部分,用户输入的波形参数需要经过单片机的计算和转化,然后送给FPGA进行处理,二者的读写时序。在外围接口中,4×4行列式键盘,用于输入波形的种类、占空比和频率等参数;液晶显示屏LCD1602,用于显示当前产生的波形参数等信息。图1FPGA部分FPGA使用Altera公司的Cyclone系列的EP1C6T144,内部使用Verilog语言编写各个子模块的源程序,并用顶层原理图的形式将各个模块连接起来。在图2中,顶层模块用于与单片机进行接口通信,并对这整个FPGA各子模块进行管理。1.D/A模块FPGA输出的信号是数字信号,需要经过D/A转换模块转换成模拟量,并经运算放大器输出。本设计准备使用AD公司的D/A转换器AD9760,它是一款精度为10bit转换速度为125MSPS的高速D/A,同时,使用高速运放AD8056,它是一款低功耗300MHz带宽,电压反馈式运放,采用8Pin-SOP封装,内部包含两个运放模块,使用方便。2.低通滤波器由于采样点的个数有限,经过D/A转换后的模拟信号并不是特别光滑,因此,需要对输出信号进行低通处理,得到平滑信号。低通滤波器的具体设计要根据实际需要,可以采用专用滤波器芯片,如:MAX260,LTC1067等,也可以采用简单RC滤波网络来实现。3.2设计线路1.单片机设计41 基于单片机和FPGA任意频率发生器设计如图2,单片机通过检测用户按键输入,判断用户改变哪种参数(波形种类、频率和占空比),在用户对改变的参数确认后,经过计算,单片机通过P2口将数据送入FPGA,通过P3.7-P3.4将命令送到FPGA的命令接收端,产生相应的波形。图21.FPGA软件设计FPGA按照如图3所示的流程进行工作。如果FPGA与单片机的接口部分没有新的数据或命令送入,就按照当前的参数值产生波形;如果有新的数据或命令送入,用新的参数值替换原来的值,没有改变的参数值保持不变,然后产生波形并送到D/A转换器。图33.3研究难点41 基于单片机和FPGA任意频率发生器设计当输入频率逐渐变大时,要满足那奎斯特采样定理,想要输出更高频率的波形就需要提高系统时钟频率Fclk,但这样要想保持较小的频率分辨率,就必须增加相位累加器的位数N,F与N的关系该如何确定.3.4预期目标通过设计实现1—500kHz的任意波形,频率分辨率为1Hz的信号产生。4研究工作详细进度和安排2010年11月29日——2011年2月6日收索有关参考文献,初步拟定系统采取的研究方法、设计路线,完成开题报告的撰写。2011年2月7日——2011年3月18日整理相关资料,确定系统完成的主要功能,绘制系统流程图。2011年3月19日——2011年4月21日 进行详细系统分析,完成硬件电路的设计。开始撰写论文大纲及初稿。2011年4月22日——2011年5月01日系统开发与代码设计阶段,实验室里不断调试电路和程序。2011年5月01日——2011年5月10日系统功能基本实现,系统修改及优化。2011年5月11日——2011年5月30日完成及提交毕业论文初稿。进一步修改,完成二稿、三稿,直到论文定稿。5参考文献[1]王广君,王永涛等.基于CPLD的高精度任意波形发生器的研制[J].实验技术与管理.2009,26(3):74-78.[2]林建英,王涛,王晓迪.基于DDS技术波形发生器的实验教学研究与实施[J].实验科学与技术.2006,4(1):75-78.[3]刘文莉,林建英,用单片机与FPGA实现的DDS波形发生器[J].研究与开发,2007,26(12):27-28[4]蒋献丰,钱卫飞,基于单片机与FPGA的波形发生器[J].中国测试技术,2008,34(3):78-79.[5]王彦.基于FPGA的工程设计与应用[M].西安:西安电子科技大学出版社,2007:272-279.[6]王彦.基于FPGA的工程设计与应用[M].西安:西安电子科技大学出版社,2007:489-496.[7]王彦,方艾,张清明.基于FPGA的数字波形发生器[J].机械与电子,2004(6):16-16.[8]41 基于单片机和FPGA任意频率发生器设计刘源,于亚萍.基于FPGA数控信号发生器的设计[J].自动化技术与应用,2009,28(12):75-77.[9]张毅刚.单片机原理及应用[M].北京:高等教育出版社,2003[10]林志琦.单片机原理接口及应用(c语言版)[M].北京:中国水利水电出版社,2007[11]陈伟人.MCS-51系列单片机实用子程序集锦[M].清华大学出版社,1993.3[12]何立民.单片机应用系统设计[M].北京航空航天大学出版社,1993[13]席先觉.单片微型计算机及其应用[M].高等教育出版社,1987[14]KedarGodbole.ConvertingAnalogControllerstoSmartControllerswiththeTMS320C2000DSPs[M].ApplicationNote(spra995)-TexasInstruments,2004.[15]J.Hennessy,N.Jouppi.Computertechnologyandarchitecture:anevolvinginteraction[J].IEEEComputerMagazine,1991,24(1):18–29.41
此文档下载收益归作者所有