基于SoPC的任意波形信号发生器设计
时间:12-30 16:44 阅读:892次
*温馨提示:点击图片可以放大观看高清大图
简介:为了解决信号发生器的一些具体问题,如需要它能产生多种信号、工作稳定、成本低等,因此采用GW48型SoPC开发系统,以Nios软核为控制核心,来实现参数可调的任意波形DDS信号源。重点阐述系统硬件方案、软件设计,并对整个系统进行了仿真,仿真结果符合设计要求,具有方案设计便捷、集成度高、扩展灵活和功能全面等特点。
1 DDS原理
DDS的基本原理是以采样定理为基础,利用查表法产生数字量形式的波形信号,并通过DAC转换成模拟量形式的信号。其基本的原理电路如图1所示,直接数字频率合成(DDS)是由频率合成器、相位累加器、波形ROM、D/A转换器和低通滤波器LPF构成。
连续信号按照相位取样、量化、编码后,形成一个波形函数表,存于ROM中。合成时,每输入一个时钟相位累加器把频率控制字累加一次,输出合成信号的相位,通过改变相位累加器的频率控制字可以改变相位增量。当相位增量改变时,一个周期内的采样点数也随之改变。在时钟频率即采样频率不变的情况下,通过相位增量的改变来实现频率的改变,计算公式为△p=w△t=2πf△t,其中△p为相位变化,ω为角频率,△t为时钟周期。经过转换的合成信号的频率为f=△p/(2π△t)=△pfclk/(2π),fclk为时钟频率。通过改变△p改变合成信号的频率f。由N位相位累加器对2π进行量化,对2π取2N个点,则f=(K/2N)fclk,其中K为频率控制字,取值范围为0~2N-1。
2 信号发生器的设计
设计方案采用Altera公司的QHartusⅡ和NiosⅡIDE软件作为开发工具,包括硬件和软件两部分。
2.1 硬件方案
该设计选用Altera公司CycloneⅡ系列EP2C35F484C8型FPGA芯片作为产生波形信号的核心组件,以搭载Nios软核和DDS模块,并由外部添加输入键盘,修改DDS发生器的参数,来选择不同的输出波形。为了保证输出信号不失真,DAC芯片的转换速率必须高于100 MHz,所以D/A转换器选用了190 MHz的THS5651高速DAC芯片。硬件系统结构如图2所示,系统顶层设计图如图3所示。
系统顶层设计的核心是可裁剪的Nios软核和可存储多种波形信号的DDS模块,如图3所示。Nios软核为DDS设置输出波形选择参数,DDS模块生成相应波形信号,再由PIO口将输出信号传输给DAC芯片。DDS模块是由1个相位累加器和4个LPM_ROM构成,主要完成保存设置参数,产生波形ROM地址,形成波形ROM等工作。LPM_ROM分别以matlab生成的MIF格式文件存储了正弦、锯齿、三角、方波四种常见的波形数据表,若要生成其他任意波形,只需将相应的连续信号转化为MIF文件,替换LPM_ROM中的波形文件即可实现任意波形信号的输出。为了取得精细的频率分辨率,将相位累加器设为32位,同时为使LPM_ROM中数据量不至于过大,使用相位截断阀,让相位累加器输出的高10位用来查表,这样可以保证系统在高速稳定运行的前提下,最大限度地减少输出波形信号的误差。2.2 软件设计
软件设计流程如下:
3 测试结果与分析
采用逻辑分析仪对DDS发生器的输出信号进行测试,输出信号如图4所示,设置初始频率字与实测值见表1,误差小于0.05,输出信号精度较高。
4 结语
本文介绍了基于SoPC的DDS任意波形发生器的一种设计方案,详述了硬件结构及软件设计过程,并对整个系统进行了仿真与测试,输出信号频率的误差较小,可以满足不同系统对波形信号的要求,适用于工业控制、检测、通信等不同领域。