完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
摘要:本设计基于DDS原理和FPGA威廉希尔官方网站
按照顺序存储方式,将对正弦波、方波、三角波、锯齿波四种波形的取样数据依次全部存储在ROM波形表里,通过外接设备拨扭开关和键盘控制所需波形信号的输出,最终将波形信息显示在LCD液晶显示屏上。各硬件模块之间的协调工作通过嵌入式软核处理器NiosⅡ用编程实现控制。本设计所搭建的LCD12864控制器是通过编程实现的IP核。
关键词:DDS;FPGA威廉希尔官方网站 ;顺序存储;NiosⅡ;IP核 |
|
相关推荐
5个回答
|
|
DDS(DiFeet Digital Frequency Synthesis)即直接数字式频率合成,是从相位概念出发直接合成所需波形的一种频率合成威廉希尔官方网站
。与传统信号源所采用的用模拟方式生成信号不同,它是将先进的数字信号处理理论与方法引入信号合成领域。DDS威廉希尔官方网站
在精确度、灵活度等方面都超过模拟信号发生器。并且DDS可实现相位连续变化,且具有良好频谱的信号,这是传统方法无法实现的。
FPGA的迅速发展为DDS提供了更加优良的威廉希尔官方网站 手段,它具有处理速度快、可靠性高等特点。SOPC(System On Programmable Chip,片上可编程系统)是一种灵活、高效的SOC解决方案。它以IP Core为基础,将处理器、存储器、IO口等系统设计需要的功能模块集成到一个FPGA器件上,构建成一个可编程的片上系统,具有灵活的设计方式。本设计综合以上软硬件可编程协同英国威廉希尔公司网站 ,使得DDS电路在灵活性,可行性,精确性等方面得到很大提高。 |
|
|
|
1 DDS的基本原理
DDS信号发生器是由:频率控制字、相位累加器、ROM表、D/A转换器以及模拟低通滤波器LPF组成,原理框图如图1所示。 首先对波形的一个周期进行连续采样,通过计算得到每一点对应的幅度值,然后以二进制格式存放在数据文件中。在时钟脉冲fclk驱动下,每个时钟周期内频率控制字与相位累加器累加一次,产生ROM查找表的地址值,随后通过查表变换,地址值被转化为信号波形的数字幅度序列,即可得到幅度上离散的波形,再由数模变换器(D/A)将表示波形幅度的数字序列转化为模拟量。最后经由LPF将D/A输出的阶梯状波形平滑为所需的连续波形。理论上,采样点数越多,生成波形精确度越高。 |
|
|
|
2 基于FPGA的DDS设计
本设计在Altera的EP2C35F672C8芯片的基础上,在SOPCBuilder和OuartusⅡ开发环境下,利用SOPC威廉希尔官方网站 ,在FPGA中集成Altera的嵌入式软核处理器NiosⅡ和其他外设,将硬件系统与软件集成在单一可编程芯片中,从而实现片上的系统级设计。系统框图如图2所示,由DDS基本单元(由频率控制字,相位累加器,ROM,DAC,LPF构成),FPGA外部硬件资源(拨扭开关SWTCH、键盘KEY、LCD12864)和NiosⅡ处理器系统等构成了基本电路。四位拨扭开关选择输出波形,键盘控制输出波形信号频率,LCD12864显示波形信号参数,各硬件模块之间的协调工作通过NiosⅡ微处理器在图形化开发环境NiosⅡIDE下用C语言来编程实现控制。 |
|
|
|
3 各模块设计
3.1 波形数据存储方式 通过对DDS基本原理的分析得知只需更换波形存储器中的波形采样数据,就可以得到所需波形的信号。波形数据存储方式包括顺序存储方式和间隔存储方式,本设计采用顺序存储方式将方波,三角波,正弦波,锯齿波4种波形采样数据全部依次存储在一个查找表里,数据分布情况如表1所示。通过改变寻址首地址,并在该波形数据存储地址范围内循环寻址,从而实现对所需信号波形的输出。具体实现方法在累加控制模块中有介绍。 DDS模块中的波形数据存储器是用QuartusⅡ中的MegaWizard Plug_In Manager工具添加的LPM_ROM IP核,此存储器ROM是用波形存储文件.mif进行初始化,波形数据可以用matlab等工具生成,用matlab生成4种波形的波表数据程序如下: 由以上代码生成的.mif文件即可存E盘目录下找到,将.mif文件加载到ROM中,实现对ROM的初始化。 3.2 累加控制模块 累加控制模块如图3所示,为了实现波形选择性输出,本设计在累加控制部分增加了选择器,即图3的sel模块,作为系统寻址地址的高两位,实现对波形查找表的范围选择功能。累加器Altaccumulate0的输出做为累加控制模块的低32位的输出,实现在指定范围内对查找表进行寻址。此设计方法相当于做了一个多路数据选择器。四位拨扭开关作为sel模块的输入控制,将寻址地址转换成所需波形首地址,即可实现对波形选择的控制。Adder模块将sel和Altaccumulate0模块输出进行位拼接运算。其部分代码如下: always@(posedge clk) begin addr<={q,32’b0}+{2’b0,result}; end 设计中为了节省ROM的容量而采用相位截断的方法,取累加器输出的高十位作为ROM的寻址地址来进行查表。 3.3 LCD 12864口核设计 对于Altera SOPC Builder未提供的一些外设接口模块,用户可以通过自定义逻辑方法在SOPC设计中添加自己开发的IP核,通过Avalon的读写时序对各个设备进行操作。本设计通过构建IP核来直接控制NiosⅡ和LCD12864的接口,按照指定的时序将波形参数显示在LCD上。在SOPC Builder中自己定义component,并把液晶显示模块看成外部存储器,直接做成Avalon总线Slave设备,IP核设计包含软件部分和硬件部分,需要写HDL模块,定义控制状态、数据寄存器和控制位,描述组件与Avalon总线的接口以及组件与液晶屏的接口。系统编辑器从文件中读取I/O信号和参数信息。其次对LCD模块进行初始化,由于SOPC Builder中的LCD12864控制模块已经考虑了LCD的读写时序,所以使用NIOSⅡ IDE进行LCD驱动和控制时只需对LCD进行初始化。 3.4 NiosⅡ嵌入式处理器系统 NiosⅡ是Altera针对其FPGA设计的嵌入式软核处理器,它与其他IP核可构成SOPC系统的主要部分。它具有灵活的自定义指令集和自定义硬件加速单元,以及图形化开发环境NiosⅡIDE。经由SOPC Builder生成NiosⅡ嵌入式处理器系统,其CPU模块框图如图4所示。 利用NIOSⅡIDE开发工具完成所有软件开发任务,系统接收拨扭开关扫描模块发来的4位扫描码,根据扫描码数值的不同进入不同的子程序,然后再通过FPGA的键盘扫描模块向NIOSⅡ处理器发送键盘扫描码,软核处理器根据接收到的扫描码产生相应的信号数据以及控制信号,并通过PIO传送给FPGA中的DDS模块,实现频率控制字的变化,即输出频率可调,并将信号数据显示在LCD上。同时DAC器件将DDS产生的8位信号数据进行数模转换,从而产生频率可调的方波、三角波、正弦波、锯齿波。 |
|
|
|
4 结束语
该信号源能够很好地满足对不同波形、不同频率的信号的需求,具有很强的实用性,并且可以方便地通过液晶显示器直观地观察到波形信号的参数信息。由FPGA实现的DDS信号发生器不仅可实现频率可调波形变换且具有频率切换快,信号的质量和精度高于模拟方式的特点。 |
|
|
|
只有小组成员才能发言,加入小组>>
2850 浏览 3 评论
27605 浏览 2 评论
3425 浏览 2 评论
3951 浏览 4 评论
基于采用FPGA控制MV-D1024E系列相机的图像采集系统设计
2292 浏览 3 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 11:22 , Processed in 0.426968 second(s), Total 52, Slave 44 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号