传统型任意波形发生器的结构简单、控制方便,但此类波形发生器没有相位调制功能,而且在后期软件编程期间,在不变化时钟频率以及波形的情况下,如果要改变一个周期的采样点数,就需要重置计数器并且重新向波形存储器中载入数据。就目前发展状况而言,基于DDS技术的任意波形发生器虽然结构比较复杂,还会产生相位截断误差,但实现频率、相位调制功能却很容易,同时产生的波形能够达到很高的频率分辨率,输出频率的转换速度快,而且频率转换时,DDS系统输出波形的相位是连续的[3]。
随着FPGA的不断发展,DDS技术应用越来越成熟,利用DDS原理在FPGA平台上开发高性能的多种波形信号发生器。与基于DDS芯片的信号发生器相比,其成本更低,操作更加灵活,而且还能根据要求在线更新配置,系统开发趋于软件化、自定义化。故本设计采用以FPGA为平台设计任意波形发生器,可以根据需要方便地实现各种常规波形或者用户自定义的波形,具有良好的实用性和灵活性;同时FPGA与DDS技术的有机结合,使得电路设计周期短、成本低、抗干扰能力强,较传统的波形发生器的实现有着明显的优势。
1. 方案论证与比较
1.1 波形产生及频率合成模块
方案1:采用传统的模拟振荡电路的方法。如产生正弦波可采用模拟分立元件RC或LC振荡器,但由于其产生的信号的频率精度低,稳定度和抗干扰能力差,成本比较高,外围电路较复杂,而且易受外界干扰,硬件调试困难,不便于控制。
方案2:采用专用集成芯片的方法。专用DDS芯片由于采用特定的集成工艺,内部数字信号抖动很小,可以输出高质量的模拟信号;专用DDS芯片的功能也比较多,但是采用该方法所需要的外围电路模块较多,且较为复杂,不利于控制和问题的检查,因此不一定满足用户需求。而且专用DDS芯片价格昂贵,成本高[4]。
方案3:采用纯单片机的方法。利用单片机编成的方式可以产生多种波形,开发简易。由于是数字量,容易受用户的控制。但是单片机速度有限,步长难以满足要求,而且频率稳定性不太高。
方案4:采用FPGA的方式,在FPGA中采用直接数字频率合成(Direct Digital Frequency Synthesis简称DDS)技术可使用硬件或软件实现,即用累加器按时钟频率的要求对相应的相位增加进行线性累加,再以累加相位作为地址码,读取放于ROM中的波形数据经D/A转换(完成相幅转换),滤波即得所需波形。DDS具有相对带宽宽,频率转换时间短,频率分辨率高等优点。此外,全数字化结构便于集成,输出相位连续,而且理论上可以实现任意波形,虽然达不到专用DDS芯片的水平,但信号精度误差非常小,完全能够满足对能满足大多数信号源要求。
分析以上4种方案的优缺点,显然第4种方案具有更大的优越性、灵活性。所以采用第4种方案进行设计。
1.2 幅度控制模块
方案1:幅度控制可以采用数控电位器组成的电阻分压网络组成,但是数控电位器的分档数目较少。同时电路连接比较复杂,电路庞大。
方案2:利用FPGA的高速计算功能,采用高效算法对波形进行全数字处理,但内部RAM有限字长效应,会造成波形具有一定的失真,不过经过滤波电路后会对波形进行一定的校正。
图1 幅度控制原理
方案3:幅度由DAC0832控制,利用其内部的电阻分压网络,将其作为数控电位器使用。系统板产生的波形作为DAC0832的参考电压源输入,其输出波形幅度将为V=(N/1024)×Vin,其中N为输入的幅度控制字。幅度控制原理如图1所示。
从方案的实现上来看,第2种方案和第3种方案都是不错的方法,但由于对该算法不是很熟悉,所以采用第3种方案。 基于FPGA的任意波形发生器设计+电路图+仿真图(2):http://www.youerw.com/tongxin/lunwen_508.html