APP下载

用FPGA实现仪表用DDS信号源的ASIC设计*

2017-11-24

单片机与嵌入式系统应用 2017年11期
关键词:累加器信号源串口

(湖南科技学院 电子与信息工程学院,永州 425199 )

用FPGA实现仪表用DDS信号源的ASIC设计*

包本刚,朱湘萍

(湖南科技学院 电子与信息工程学院,永州 425199 )

ASIC可以采用全定制和半定制的方法加以实现,采用FPGA来进行ASIC的可测试设计,可以很大程度上节约ASIC设计的成本。本文介绍了一种基于FPGA实现的DDS信号源的ASIC的设计方案,它可以灵活地输出任意波形,并可以较方便地改变波形的频率和相位。该方案可以嵌入到采用FPGA芯片实现的仪器仪表中,具有结构简单、功能强大、性价比高的特点,稍加改动可适用于许多仪器仪表系统中,具有很好的可移植性。

FPGA;DDS;ASIC;信号源;Verilog

引 言

近年来,可编程逻辑器件的广泛使用引发了电子产品领域的一场新的革命。可编程逻辑器件具有设计灵活、速度快、更改方便、功耗低等优点,在数字系统的设计中得到了广泛的应用,逐步会替代中、小规模的数字集成芯片[1]。

在许多仪器仪表中都要用到信号源,目前通常是采用专用的DDS芯片来实现,但是这种芯片功能固定,不利于嵌入式应用。而且,在仪器仪表的许多应用场合已经采用了FPGA可编程芯片,为我们在已经使用了且还有硬件空间的FPGA器件中再嵌入一个信号源提供了极大的方便,不仅不会增加成本,而且可以使系统结构更加简单、体积更小、成本更低,具有很好的可移植特性。

1 DDS波形发生器的理论介绍

直接数字频率合成(DDS)是一种以数字信号处理为基础,从相位的概念出发直接合成所需波形的一种全新的数字频率合成技术。图1是DDS的原理框图基本结构。它主要由相位累加器、相位寄存器、 加法器、正弦查找表、D/A转换器及滤波电路构成[8]。每来一个时钟信号,相位累加器中的值便与频率控制字M相加,得到当前的相位值(ROM地址)。如果记数大于2N,则自动溢出;LUT(查找表)是一个波形幅度量化数据存储器(ROM), 实现相位到幅度的转换。相位累加器的输出作为LUT的地址, LUT根据相位累加器的输出(地址)读出幅度信号, 送到D /A转换器中转换为模拟量, 最后通过滤波器输出一个平滑的模拟信号。

频率控制字越大,相位累加器的输出(ROM的地址)变化越快,从而输出的波形频率越高。下面用正弦波信号产生原理来叙述DDS技术。

采用下式来描述一个简单的正弦信号:

式中的时间t是在时间轴上连续, 为了用数字方式实现, 应该进行离散化处理。用周期为Tclk的基准时钟对信号进行采样, 采样频率fclk=1/Tclk,连续两个采样点之间的相位增量为:

将整个周期2π分成2N份, 则相位的量化单位(相位增量)δ=2π/2N。若Δθ=δ, 代入式(2)可得f0=fclk/2N。更特殊的情况是Δθ为δ的Μ倍, 即可得到输出信号的频率:

式中,M称为频率控制字(tuning word)。输出信号的频率由M决定, 且两者呈线性关系。若采样频率不变,通过控制两次连续采样点之间的相位增量(即通过频率控制字M),即可控制离散波形序列的频率,再经保持和滤波,可准确的恢复出此频率的模拟信号波形。DDS原理图如图1所示。

图1 DDS原理图

2 基于FPGA的系统总体设计方案

系统总体框图如图2所示,本设计以FPGA为核心,首先在FPGA中定制好ROM,并将量化的波形数据存到

图2 系统总体框图

ROM中,然后单片机通过串口将频率字M发给FPGA,经相位累加器实现ROM地址的累加,再经地址计数器寻址读出波形数据,控制地址计数器的时钟频率便可控制采样的点数,从而控制输出波形的频率[7]。

考虑到这些数据为纯数字量,需要经D/A转换才能将其转换为模拟量,再通过低通滤波器滤除阶梯与噪声方可输出满足要求的波形[10]。由于本设计采用直接频率合成(DDS)技术,用一片EPROM存储波形数据,设定频率字便可设定波形,使得输出波形的频率范围得到了拓宽,精确度显著提高,系统稳定可靠。

3 基于FPGA的DDS信号源的内部子模块设计

3.1 DDS内核的设计

3.1.1 相位累加器

在时钟的作用下,相位累加器进行相位累加(相位寄存器的值加上频率字),当相位累加器的值累加满时就会产生一次溢出,从而完成一个周期性的动作,得到DDS合成信号的一个频率周期,DDS输出的信号频率即累加器的溢出率。FPGA中的相位累加器模块如图3所示。

图3 相位累加器

图4是相位累加器仿真图,从图中可以看出,在时钟的激励下,累加器的仿真结果是正确的。

图4 相位累加器的仿真结果

3.1.2 波形存储器

波形存储器即在FPGA上调用的一个ROM,所生成波形一周期采样256点的数据值放在了波形存储器里面,通过读取ROM的地址值,便可以得到波形的数据。地址改变,输出的值也会随之变化。在同样的时钟周期下,地址间隔的变化,生成波形的频率也跟着变化。地址值每溢出一次,便完成了一个周期的输出。改变波形的一个方法是改变波形存储器中的波形数据。波形存储器如图5所示。

图5 ROM模块

ROM的设计直接调用LPM中的宏生成,端口分别为:时钟输入端inclock、输出数据总线datein[7:0]、输入数据总线result[23:16]。地址总线result[23:16]是相位累加器输出高8位的数据。输出数据总线datein[7:0]连接输出缓冲通过FPGA的I/O口输出,连接作为D/A转换器的输入端口。

3.1.3 频率字寄存器

图6 频率字寄存器

频率字寄存器的功能较简单,即接收从单片机中传来的增量寄存器的控制字。用Verilog语言描述这个模块的底层,然后在顶层生成相应的功能模块。其生成的模块图如图6所示。

3.1.4 波形选择模块

这个模块的功能是通过按键选择三种波形,其生成的模块图如图7所示。

3.2 UART模块的设计

图7 波形选择模块

作为各种微处理芯片最常用的一种异步通信接口,UART串行接口只需要两根线即可,非常节约系统的资源,而且FPGA的主频较高,即使传输的数据位数较多也不会工作于忙碌状态,所以此处选择串口建立FPGA与单片机之间的通信。

3.2.1 UART收发时序

串口收发数据需要遵循一定的时序,其时序图如图8所示。当UART接收时,接收一帧数据的中间8位是有效数据,开始位与停止位用于护送数据;在UART发送时,将发送的并行8位数据转为串行数据,并添加开始位与停止位。UART中的一帧数据为10位,空闲时均为高电平,系统在检测到低电平(开始位)之后,开始逐位采集8位有效数据位(低位在前),再将停止位置为高电平即可。

图8 UART收发时序

3.2.2 RTL级的UART设计

在搭建好UART各个子模块之后,可以建立一个顶层文件,分别调用各个底层模块组成UART模块,其总体框图如图9所示。

图9 UART总体框图

4 测试方法及结论

按照图2搭建好系统电路,编写好单片机控制程序,在Keil 4软件环境编译通过后,通过串口下载线把程序下载到单片机STC15F2K61S2中。然后把单片机串口引脚(P3~1)与FPGA指定配置的串口引脚连接好,把编译好的.sof下载到目标器件EP2C5Q208C8。最后把FPGA开发板与D/A转换模块连接好,D/A输出端口连到示波器输入端,便可以直接在示波器上观察输出波形。经过测试,可以非常方便地看到1~5 MHz频率可调的正弦波、三角波和矩形波。

[1] 朱湘萍,包本刚.基于FPGA的仪表用多功能数字时钟的嵌入设计[J].电测与仪表,2008,45(1):62-64.

[2] 黄智伟,王彦.FPGA系统设计与实践[M].北京:电子工业出版社,2005.

[3] James R,Armstrong F.Gail Gray. VHDL设计表示和综合[M]. 李宗伯,王蓉晕,译. 北京:机械工业出版社,2002.

[4] 郭丽浩.基于FPGA的直接数字频率合成器的研究与应用[D].西安:西北工业大学,2006.

[5] 胡力. 基于DDS的扫频信号源设计与实现[D].南京:南京理工大学,2006.

[6] 宋阳, 孙肖子, 仁爱锋. 基于DDS 和FPGA 的虚拟智能信号源的研究[J] . 数据采集与处理, 2001, 16(s1):124-126.

[7] 王宏军,王航宇. 基于FPGANios_的信号发生器设计[J]. 国外电子元器件,2008 (10):54-56.

[8] 胡继胜, 李洪. 基于 SoPC/NIOS II 的信号发生器设计与实现[J]. 电子技术应用,2011,37(6):91-94.

[9] 林万荣. 基于 AD9850 的 DDS 信号发生器系统设计与实现[J]. 中国有线电视, 2015(11):1286-1290.

[10] 李伟英,钟新跃, 谢四莲,等. 基于 DDS 技术的信号发生器设计与实现[J].电子工程师,2008(5):35-37.

包本刚(副教授),主要研究方向为集成电子电路设计和集成电路测试的研究;朱湘萍(讲师),主要研究方向为集成电子电路设计和新型材料。

ASICDesignofDDSSignalSourceforInstrumentBasedonFPGA

BaoBengang,ZhuXiangping

(Department of Physics and Electrical Engineering,Hunan University of Science and Engineering,Yongzhou 425199,China)

ASIC can be implemented using both the full-custom and the semi-custom methods.FPGA can be used to test the design of ASIC,which can greatly save the cost of ASIC design.In the paper,a design scheme of ASIC for DDS signal source based on FPGA is introduced,which can flexibly output arbitrary waveform and can easily change the frequency and phase of the waveform.The scheme can be embedded in the instrument realized by FPGA chip and the design has the advantages of simple structure,powerful function and high performance price ratio.After doing a little change of the scheme,it can be applied to many instrumentation systems and it has good portability.

FPGA;DDS;ASIC;signal source;Verilog

湖南科技学院重点学科建设项目资助(电路与系统)(项目编号:20170912)。

TP216

A

2017-06-19)

猜你喜欢

累加器信号源串口
密码累加器研究进展及应用
浅谈AB PLC串口跟RFID传感器的通讯应用
Fpga的信号发生器设计原理
聚焦4K视频播放展望未来信号源发展
基于霍夫变换的工位点识别算法设计与实现
低噪声键控宽频信号源设计与实现
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
发射机信号源的自动处理和控制系统
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信