函数信号发生器课程设计报告

函数信号发生器课程设计报告 本文关键词:函数,课程设计,信号发生器,报告

函数信号发生器课程设计报告 本文简介:课程设计报告书专用纸淮海工学院课程设计报告书课程名称:电子技术课程设计题目:函数信号发生器学院:电子工程学院学期:2012-2013-2专业班级:通信工程111姓名:彭孟瑶学号:2011120688评语:成绩:签名:日期:函数信号发生器1.引言在人们认识自然、改造自然的过程中,经常需要对各种各样的电

函数信号发生器课程设计报告 本文内容:

课程设计报告书

课程名称:

电子技术课程设计

目:

函数信号发生器

院:

电子工程学院

期:

2012-2013-2

专业班级:

通信工程111

名:

彭孟瑶

号:

2011120688

评语:

成绩:

签名:

日期:

函数信号发生器

1.引言

在人们认识自然、改造自然的过程中,经常需要对各种各样的电子信号进行测量,因而如何根据被测量电子信号的不同特征和测量要求,灵活、快速的被测电路提供所需要的已知信号(各种波形),然后用其它仪表测量感兴趣的参数。可见信号源在各种实验应用和实验测试处理中,它不是测量仪器,而是根据使用者的要求,作为激励源,仿真各种测试信号,提供给被测电路,以满足测量需要。

波形发生器就是信号源的一种,能够给被测电路提供所需要的波形,传统的波形发生器多采用模拟电子技术,由分立元件或模拟集成电路构成,其电路结构复杂,不能根据实际需要灵活扩展。随着微电子技术的发展,运用单片机技术,通过巧妙的软件设计和简易的硬件电路,产生数字式的正弦波、方波、三角波、锯齿等幅值可调的信号。与现有各类型波形发生器比较而言,产生的数字信号干扰小,输出稳定,可靠性高,特别是操作简单方便。

2.设计要求

设计一个能够输出正弦波、三角波和矩形波的信号源电路,电路形式自行选择。输出信号的频率可通过开关进行设定,具体要求如下:

输出信号的频率范围为1000~2000Hz,步进为50Hz。

要求输出信号无明显失真,特别是正弦波信号。

图1

函数信号发生器方框图

3.函数信号发生器的方案

3.1

方案一

由555定时器组成的多谐振荡器产生方波,然后由积分电路将方波转化为三角波,最后用低通滤波器将方波转化为正弦波。

低通滤波器

积分电路

555多谐振荡器

图2

方波、三角波、正弦波、信号发生器的原理框图

但这样的输出将造成负载的输出正弦波波形变形,因为负载的变动将拉动波形的崎变。

3.2方案二

先通过RC正弦波振荡电路产生正弦波,再通过电压比较器产生方波,最后通过积分电路形成三角波。

积分电路

电压比较器

RC正弦波振荡电路

图3

正弦波、方波、三角波信号发生器的原理框图

此电路具有良好的正弦波和方波信号。但经过积分器电路产生的同步三角波信号,存在难度。原因是积分器电路的积分时间常数是不变的,而随着方波信号频率的改变,积分电路输出的三角波幅度同时改变。若要保持三角波幅度不变,需同时改变积分时间常数的大小。

3.3方案三

8038集成函数发生器是一种多用途的波形发生器,可以直接用来产生正弦波、方波、三角波和锯齿波。

图4

利用ICL8038芯片构成8038集成函数发生器

综上所述,我们选择方案二。

4.单元电路的设计

4.1正弦波发生器

RC振荡电路由RC串并联选频网络和反向相放大电路组成,图中RC选频网络形成负反馈电路。

图5-1

正弦波波发生电路

在图5-1电路中,当R1

=

R2

=

R,C1=

C2

=

C时

(5-1)

当频率时,,根据幅度平衡条件,只有

电路才能维持振荡。

令C=100Nf,R4<1.592千欧。

图5-1-1

正弦波仿真图

由图可知

Umax=6v,f=1.041KHZ。

4.2方波发生器

电压比较器由比较器741的反相输入端接电压构成,在实用电路中为了满足负载需要,常在集成运算的输出端加稳压管限幅电路。限幅电路的作用是把输出信号幅度限定在一定的范围内,亦即当输入电压超过或低于某一参考值后,输出电压将被限制在某一电平(称作限幅电平),且不随输入电压变化。

图5-2

方波发生电路

经过阈值UTH1时,输出电平由高电平(Uz)跳变为低电平(-Uz)。当输入电压由高向低变化,经过阈值UTH2时,输出电平由低电平(-Uz)跳变为高电平(Uz)。

UTH1=R5*UZ/(R5+R6)

(5-2)

UTH2=-R5*UZ/(R5+R6)

+

(5-3)

图5-2-1

方波仿真图

由图可知Umax=5.2V,f=1.041KHZ。

4.3三角波的设计

三角波的产生是由积分电路实现的,积分电路将方波转换成三角波。积分电路中,由于集成运放的反相输入端“虚地”,又由于“虚断”,运放反相输入端的电流为零。

图5-3

三角波发生器

积分器元件参数计算如下:

Ui/R=-C*dU0/dt

(5-4)

令C=100nf,R用可变电阻R8表示。

图5-3-1

三角波仿真图

由图可知,Umax=8v,f=1.044KHZ。

5.总电路图

图6

总电路图

5.1正弦波-方波

图6-1

正弦-方波仿真图

5.2方波-三角波

图6-2

方波-三角波仿真图

5.3总波形

图6-3

总波形仿真图

第8

共9页

6.收获与体会

在这次设计过程中我对抽象的理论有了进一步的认识。通过这次课程设计,我了解了常用元件的识别和测试;熟悉了常用的仪器仪表;了解了电路的连接方法;以及如何提高电路的性能等等。虽然这次实验使得我纠结了近三天,但收获的确很多。

在这次实验中,总结了很多感触体会,我们不能盲目的图快,一定要在心底有个具体的谱然后下手去设计,这样能让我们少走弯路,更加节省时间。在实验过程中,我也遇到了不少的问题,如波形失真或者完全没有波形这样的问题。在老师和同学的帮助下,自己的总结思索下,把问题一一解决。实验中暴露出我们在理论学习中所存在的问题,有些理论知识还处于懵懂状态,这次实验让我对过去未理解的很多知识有了明了的认识。这次课程设计让我体会到了在接好电路后测试出波形的喜悦与如重释负的轻松。

此课程的设计,真的让我认识到了实践能力的的重要性与真实性。这能让我们很好的加深对不知道的理论知识的理解,同时也巩固了以前知道的知识。明白老师为什么要求我们做好这个课程设计的原因。这次课程设计让我意识到运用所学的知识去解决实际的问题的重要性,我们学理工科的同学应更多的锻炼提高我们的动手能力。

7.参考文献

[1]

冯军.电子线路基础[M].北京:高等教育出版社,1979.

[2]

康华光.电子技术基础[M].浙江:华中工学院电子学院高等教育出版,1997.

[3]

谢自美.电子线路设计[M].江苏:华中科技大学出版社,1990.

[4]

程开明.模拟电子技术[M].四川:重庆大学出版社,1992.

[5]

劳五一.模拟电子电路分析、设计与仿真[M].西安:西安电子科技大学出版社,2007.

[6]

劳五.电子电路分析与设计[M].北京:北京清华大学出版,2007.

第9

共9页

篇2:北京邮电大学课设基于MSP430的简单信号发生器的设计

北京邮电大学课设基于MSP430的简单信号发生器的设计 本文关键词:北京,邮电大学,信号发生器,简单,设计

北京邮电大学课设基于MSP430的简单信号发生器的设计 本文简介:基于MSP430的信号发生器设计报告学院:电子工程学院班级:2013211212组员:唐卓浩(2012211069)王旭东(2013211134)李务雨(2013211138)指导老师:尹露课程设计报告——基于MSP430的信号发生器的设计学院:电子工程学院班级:2013211212小组成员:唐卓浩

北京邮电大学课设基于MSP430的简单信号发生器的设计 本文内容:

基于MSP430的信号发生器

设计报告

学院:电子工程学院

班级:2013211212

组员:唐卓浩(2012211069)

王旭东(2013211134)

李务雨(2013211138)

指导老师:尹露

课程设计报告——基于MSP430的信号发生器的设计

学院:电子工程学院班级

:2013211212

小组成员:

唐卓浩(2012211069)

王旭东(2013211134)李务雨(2013211138)

一、摘要

信号发生器是电子实验室的基本设备之一,目前各类学校广泛使用的是标准产品,虽然功能齐全、性能指标较高,但是价格较贵,且许多功能用不上。本设计介绍一款基于MSP430G2553

单片机的信号发生器。该信号发生器虽然功能及性能指标赶不上标准信号发生器,但能满足一般的实验要求,且结构简单,成本较低。本次需要完成的任务是以MSP430

LaunchPad的单片机为控制核心、DAC模块作为转换与按键电路作为输入构成的一种电子产品。MSP430

LaunchPad单片机为控制核心,能实时的进行控制;按键输入调整输出状态,DAC0832将单片机输出的数字信号转化为模拟量,经运放放大后,在示波器上输出。在本次程序设计中充分利用了单片机内部资源,涉及到了中断系统、函数调用等。

关键字:信号发生器

MSP430

单片机

数模转换

二、设计要求

以msp430单片机为核心,通过一个DA(数字模拟)转换芯片,将单片机输出的方波、三角波、正弦波(数字信号)转换为模拟信号输出。提供芯片:msp430G2553、DAC0832、REF102、LM384、OP07。参考框图如下:

图1

硬件功能框图

1、基本要求

(1)

供电电压

VDD=

5V~12V;(√)

(2)

信号频率:5~500Hz(可调);(√)

(3)

输出信号电压可调范围:≥0.5*VDD,直流偏移可调:≥0.5*VDD;(√)

(4)

完成输出信号切换;(√)

(5)

方波占空比:平滑可调20%~80%;(√)

(6)

通带内正弦波峰峰值稳定度误差:≤±10%(负载1K)。(√)

2、发挥部分

(1)

信号频率:5~2000Hz(可调);(√)

(2)

多通道同时输出同频正弦波,方波,三角波。(频率可调);

(3)

输出频率与幅度可调的正弦波与余弦波,相位误差≤±5度;

(4)

自由发挥。

三、实验器材

MSP430G2553单片机(Texas

Instrument);DAC0832模数转换芯片;REF102高精度电压基准;OP07运算放大器;阻值不同的电阻及电位器若干;电容若干;导线若干。

1、

MSP430G2553单片机

TI的MSP430G2系列Launchpad开发板是一款适用于TI最新MSP430G2xx系列产品的完整开发解决方案。其基于USB

的集成型仿真器可提供为全系列MSP430G2xx器件开发应用所必需的所有软、硬件。LaunchPad具有集成的DIP插座,可支持多达20个引脚,从而使MSP430

Value

Line器件能够简便地插入LaunchPad电路板中。此外,其还可提供板上Flash仿真工具,以直接连接至PC

轻松进行编程、调试和评估。此外,它还提供了从MSP430G2xx器件到主机PC或相连目标板的9600波特率的UART串行连接。

MSP430G2系列Launchpad开发板的特性:

(1)USB

调试与编程接口无需驱动即可安装使用,且具备高达9600波特的UART

串行通信速度;

(2)支持所有采用PDIP14或PDIP20封装的MSP430G2xx和MSP430F20xx器件;

(3)两个按钮可实现用户反馈和芯片复位;

(4)器件引脚可通过插座引出,既可以方便的用于调试,也可用来添加定制的扩展板。

(5)由此易知,MSP430单片机将用于系统的控制部分。

2、

DAC0832模数转换芯片

DAC模块主要由DAC0832和OPA227PA运算放大器组成。DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。其主要参数如下:

(1)分辨率为8位;

(2)电流稳定时间1us;

(3)可单缓冲、双缓冲或直接数字输入;

(4)只需在满量程下调整其线性度;

(5)单一电源供电(+5V~+15V);

(6)低功耗,20mW

其引脚功能如下:

(1)D0~D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);

(2)ILE:数据锁存允许控制信号输入线,高电平有效;

(3)CS:片选信号输入线(选通数据锁存器),低电平有效;

(4)WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变化换,LE1的负跳变时将输入数据锁存;

(5)XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;

(6)WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。由WR2、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。

(7)IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化;

(8)IOUT2:电流输出端2,其值与IOUT1值之和为一常数;

(9)Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;

(10)Vcc:电源输入端,Vcc的范围为+5V~+15V;

(11)VREF:基准电压输入线,VREF的范围为-10V~+10V;

(12)AGND:模拟信号地;

(13)DGND:数字信号地

3、

REF102高精度电压基准

REF102是高精度10V电压基准集成电路。由于REF102无需外加恒温装置,因而功耗低、升温快、稳定性好、噪声低。REF102的输出电压几乎不随供电电源电压及负载变化。通过调整外接电阻,输出电压的稳定性及温度漂移可降至最校11.4V至36V的单电源供电电压及优异的全面性能使REF102成为仪器、A/D、D/A及高精度直流电源应用的理想选择。

REF102的特点:

(1)高精度输出:+10V

0.0025V

(2)超低温度漂移:≤2.5ppm/℃

(3)高稳定性:5ppm/1000小时(典型值)

(4)高负载调整率:≤1ppm/V,≤10ppm/mA

(5)宽供电电压范围:11.4VDC至36VDC

(6)低噪声

(7)低静态电流:≤1.4Ma

REF102的引脚:(2)为芯片电源脚,电压范围是11.4V~36V;(4)为公共引脚;(5)为外接调整电阻脚,调整输出电压稳定度及温度漂移;(6)为输出引脚;(8)为输出噪声衰减。

4、

OP07运算放大器

OP07芯片是一种低噪声,非斩波稳零的双极性运算放大器集成电路。由于OP07具有非常低的输入失调电压(对于OP07A最大为25μV),所以OP07在很多应用场合不需要额外的调零措施。OP07同时具有输入偏置电流低(OP07A为±2nA)和开环增益高(对于OP07A为300V/mV)的特点,这种低失调、高开环增益的特性使得OP07特别适用于高增益的测量设备和放大传感器的微弱信号等方面。

OP07芯片引脚功能说明:1和8为偏置平衡(调零端),2为反向输入端,3为正向输入端,4接地,5空脚

6为输出,7接电源。

四、硬件电路设计

1、

整体设计思路

方案一:控制部分由MSP430G2553实现,波形产生采用单片压控函数发生器(MAX038等),可同时产生频率可控可变的正弦波、三角波、方波。

优缺点:简单易行,采用专用芯片,系统体积大大减小;但频率步进的步长很难控制,并且整个设计中MSP430G2553仅完成简单的控制功能,资源没有充分利用。

方案二:由MSP430G2553实现对专门的DDS芯片(如AD9850)的控制,产生各种波形。

优缺点:此方案产生波形的频率稳定度高,易于程控。但DDS芯片价格高,系统成本高。

方案三:由MSP430G2553结合DAC0832实现各种波形的产生。

优缺点:此方案可以充分利用MSP430G2553上的资源,降低系统成本,但是产生波形频率较低。

综上,方案三充分利用MSP430G2553的资源,外围电路简单、系统成本较低,可以满足信号发生器的要求,所以最终采用方案三。

2、

硬件控制模块

这次试验共有三个按键输入,分别作为切换波形,加频,减频。

一个滑动变阻器作为占空比的调节,一个作为幅度的调节,一个作为直流偏置的调节。按键直接采用分压法给一个高电位,当按下去的时候相当于接地也就输出了低电平。占空比的调节在于分压法,让滑动变阻器所占电压在0~2.5伏,从而输给芯片产生相应的占空比,再输出。

3、

DAC0832的模块

其八位数据输入接MSP430的八位数据输出,通过Iout1端口输出。使能端与430相连,电源接12V。Iout2接地,f不接。

4、

放大模块

采用了反向放大电路,电源输入电压是12伏,放大了5倍左右。

同时在放大电路前并联一个滑动变阻器100K,通过它来调节整个DAC对应的输出负载电阻,也就可以达到改变电压的幅度的目的。

效果如下(由于该方波是2KHz的方波,频率较高因此边沿看上去不垂直):

5、

直流偏置

采用反向加法电路通过改变直流的接入电阻调节直流电压的大小。图如下,u1为放大之后的输入,u2为-12伏的电压。R1,3,6都是5K的电阻,R2位100k的电位器。则Uout1=12*5/R2-U1,这就达到了直流偏置的效果。

效果见下图:

五、

软件程序设计

1、

设计指标与功能

(1)波形产生和切换。正弦波、三角波和方波依次切换,采样点均为100个。

(2)频率调节。从5Hz到2000Hz可调,步进5Hz,一共400个有效频率点。

(3)占空比调节。从20%到83%平滑可调,使用ADC10连续采集滑动变阻输出电压实现。

2、

软件模块介绍

(1)

变量及宏定义

#define

SWITCH_SIG_TYPE(BIT0)

//P1.0

#define

ADD_FREQ(BIT1)

//P1.1

#define

SUB_FREQ(BIT2)

//P1.2

#define

DAC_WR(BIT3)

//P1.3

#define

ADC10_IN_PORT(BIT4)

//P1.4

#define

P1_IN_PORTS

~(SWITCH_SIG_TYPE

+

ADD_FREQ

+

SUB_FREQ

+

ADC10_IN_PORT)

#define

P1_OUT_PORTSDAC_WR

//

3:DAC

WR

#define

P1_INTERRUPT

(SWITCH_SIG_TYPE

+

ADD_FREQ

+

SUB_FREQ)

#define

P2_OUT_PORTS

(0xff)

//

DAC

data

in

#define

TOTAL_SAMPLING_POINTS100

#define

MAX_FREQ_STEPS400

#define

ENABLE_WR_PORTP1OUT

//当前的波形,0表示正弦波,1是三角波,2是方波

inttccr0_now;

//表示当前的计数初值

uintccr0_idx;

//表示当前计数初值在表中的索引号

ucharpoint_now;

//表示现在采用点的索引值

intduty_circle;

//表示当前的方波高电平的点数,用于表示占空比。

const

long

tccr0_table[MAX_FREQ_STEPS]={32000,.,78,75

};

//5-2000Hz每隔5Hz频率对应的计数器初值表,一个400个频点。

const

uchar

sin_data[TOTAL_SAMPLING_POINTS]={.};

//正弦值表,100点。

const

uchar

tria_data[TOTAL_SAMPLING_POINTS]={.};

//三角波值表,100点。

(2)

基本时钟系统

MSP430x2xx家族的单片机的基本时钟系统模块如下图所示:

MSP430有四个时钟源:LFXT1CLK、XT2CLK、DCOCLK和VLOVLK,系统时钟使用BCSCTL1寄存器设置。下面的初始化代码将系统的时钟时钟源设置为16MHz,DCO的频率设置为16MHz。

void

init_DCO(){

BCSCTL1

=

CALBC1_16MHZ;

DCOCTL

=

CALDCO_16MHZ;

}

上述的每一个时钟源都可以驱动时钟信号电路产生周期时钟信号,一共有三种独立的时钟信号,分别是MCLK、SMCLK和ACLK,其时钟源可以任意指定。这些时钟由寄存器BCSCTL2设置。

BCSCTL2

=

SELM_1

+

DIVM_0;

//

SELMx位置SELM_1,选择MCLK的时钟源为DCOCLK,DIVM_0分频比为1

BCSCTL2

//

SELS位为0表示将SMCLK的时钟源设置为DCOCLK

(3)

定时器A

定时器A是一个16位的计时器,有三种计数模式,可配置任意时钟源驱动,多种capture/compares模式和寄存器。

定时器A的工作模式如下表所示

MCx

模式

工作方式

00

Stop

停止计时

01

Up

mode

从0到TACCR0循环计数

10

Continous

mode

从0到0FFFFH循环计数

11

Up/down

mode

从0计时到TACCR0再回到0循环

定时器的计数模式和时钟源的选择由寄存器TACTL设置。

定时器的中断的产生主要依赖capture/compare寄存器的设置。MSP430x2xx家族一共有三套独立的capture/compare寄存器,可以独立产生中断。

本程序使用的是连续计数模式,计数和中断产生方式如下图所示。本程序只是用了capture/compare寄存器TACCR0和TACTL0产生中断。

void

init_timer_A0(void){

TACTL

|=

TASSEL_2

+

MC_2;

//

TASSELx置TASSEL_2选择SMCLK作为时钟源,

//

MC_2设置技术模式为连续模式

TACCR0

=

tccr0_now;//设置捕获/比较寄存器0的初值

TACCTL0

|=

CCIE;//

捕获/比较寄存器0的中断使能

}

(4)

单片机ADC10

MSP430的ADC是一个十位的模数转换模块,转换出的数字范围为0~1023。转换值的计算公式为:

ADC10一共有两大类工作方式,第一种是直接转换方式,该模式主要的特点是转换后的数据直接存放在ADC10MEM寄存器中。第二种是数据传输方式,主要特点是会将数据自动存放在内存中用户定义好数组中。

在直接转换方式中又有四种模式:

CONSEGx

模式

工作方式

00

单通道单次转换

一个通道输入,只转换一次,下一次转换的触发需要用户手动设置。

01

多通道顺序转换

多通道输入,每个通道依次转换一次,下一次转换的触发需要用户手动设置。

10

单通道循环转换

一个通道输入,下一次转换的触发自动触发。

11

多通道顺序循环

多个通道输入,每个通道依次转换,下一次转换自动触发。

ADC10的中断可选择在数据在ADC10MEM里准备好后触发。

本程序使用的是单通道单次转换,并且不设置ADC10中断,而是在主函数的while(1)循环中手动处理采集数据的时序。之所以不采用中断模式是因为在MSP430中默认不能中断嵌套,当ADC10中断进入时,定时器中断就无法进入,从而影响定时器的精度,另外如果开启中断嵌套,那么中断处理将会更复杂,因此权衡考虑后选择该工作方式。这种方式下ADC10在主程序中执行转换和处理,而定时器中断可以按时进入,保证了定时器的精度。转换的流程如下图所示:

ADC10的参考电平可以有多种选择,如下所示:

本程序选择的是第二种参考电平设置。其中VREF+是ADC10内置的参考电平,将ADC10CTL0寄存器的REF2_5V位置1,表示该电平为2.5V。Vss是MSP430的20号引脚,将其接地,表示最低参考电平为0。因此转换值的计算公式为NADC=1023*Vin/2.5。

初始化函数如下:

void

init_ADC10(void){

ADC10CTL1

|=

INCH_4;

//

A4通道,P1.4输入模拟值。

ADC10CTL1

|=

SHS_0;

//

Sample-and-hold

source

select

ADC10SC

ADC10CTL1

|=

ADC10SSEL_3;//

时钟源为SMCLK

ADC10CTL1

//

数据存储格式,表示使用ADC10MEM的低十位存储数据

ADC10CTL1

|=

CONSEQ_0;//

单通道单转换模式

ADC10AE0

=

ADC10_IN_PORT;//P1.4输入模拟值

ADC10CTL0

//

屏蔽中断

ADC10CTL0

|=

SREF_1

+

ADC10SHT_0

+

REF2_5V

+

REFON;

//

VR+

=

2.5V,VR-

=

Vss

=

0

//REFON开启内部参考电平

ADC10CTL0

//

REFOUT位置1会将参考电压输出到P1.3和P1.4上,不需要因此置0.

ADC10CTL0

|=

ADC10ON;//打开ADC10

}

主程序循环如下,采集数据到占空比的转换算法为右移4位再加20:

while(1){

ADC10CTL0

//关闭采样使能

while(ADC10CTL1

//检测是否忙

ADC10CTL0

|=

ENC

+

ADC10SC;//打开采样使能,开始转换

while(ADC10CTL1

//检测是否忙

int

adc_data

=

ADC10MEM;//读取数据

duty_circle

=(adc_data

>>4)+20;

//占空比限制在

20(20%)~83(83%)之间

//采集到的数据是0~1023

//右移四位就是0~63

//加20就是20~83

//总采样点数是100点

//占空比就是20/100=20%

~

83/100=83%

之间

}

(5)

端口I/O与中断

MSP430有P1、P2一共十六个通用IO口。其功能分配如下

端口

功能

I/O方向

P2.0

P2.7

输出8位数据到DAC

输出

P1.0

按键中断,切换波形

输入

P1.1

按键中断,增加频率

输入

P1.2

按键中断,减小频率

输入

P1.3

DAC的WR信号

输出

P1.4

ADC10的模拟输入口

输入

主要初始化端口方向、功能以及中断,程序如下:

void

init_port_io(void){

P2DIR=

P2_OUT_PORTS;//

设置输出端口P2.0~P2.7

P2REN=0x00;//

不使用上/下拉电阻

P2SEL=0x00;//

端口的功能为IO

P2SEL2=0x00;//

端口的功能为IO

P1DIR//

P1.0

P1.1

p1.2

p1.4输入

P1DIR|=

P1_OUT_PORTS;//

P1.3输出给DAC

WR

P1REN=0x00;

P1SEL=0x00;

P1SEL2=0x00;

}

void

init_port_interrupt(void){

P1IES|=

P1_INTERRUPT;//相应位置1表示下降沿触发

P1IE|=

P1_INTERRUPT;//输入位中断使能

P1IFG//清除标志位

}

五、功能实现

1、

波形输出及切换

波形的输出主要靠定时器周期性触发中断,然后将波形值数组中的值依次循环写到P2上。流程图如下:

波形切换靠按键中断以及改变波形类型标志变量curr_signal_type实现,流程图如下:

获得如下结果:

2、

频率调节

波形的频率调节通过改变计时器初值TACCR0来实现,所需的频率计算公式为

波频率

=

CPU时钟频率/(采样点数*定时器初值)

流程图如下:

为了能够使得频率可达到2000Hz,需要适当减小采样点数。在没有实现最大2000Hz时,采样电视为200点,将点数减少到100点,并适当减小DAC的WR信号的宽度,以达到在更高速的情况下能够将数据写入DAC。

结果如下。

产生5Hz的正弦波:

产生2.145KHz的正弦波

3、

占空比调节

占空比的调节主要靠ADC10采集电位器输入电压并按照一定的算法算出高电平持续的点数duty_circle来表示占空比。

采集转换的流程图如下

相应的产生方波的逻辑为:

20%占空比:

80%占空比:

六、问题及解决方案

1、

三角波和方波没有波形

最开始三角波的每一个采样点的值是由程序计算出来的,程序如下所示:

case

1:

//triangle

if

(point_now

#define

SWITCH_SIG_TYPE(BIT0)

//P1.0

#define

ADD_FREQ(BIT1)

//P1.1

#define

SUB_FREQ(BIT2)

//P1.2

#define

DAC_WR(BIT3)

//P1.3

#define

ADC10_IN_PORT(BIT4)

//P1.4

#define

P1_IN_PORTS

~(SWITCH_SIG_TYPE

+

ADD_FREQ

+

SUB_FREQ

+

ADC10_IN_PORT)

#define

P1_OUT_PORTSDAC_WR

//

3:DAC

WR

#define

P1_INTERRUPT

(SWITCH_SIG_TYPE

+

ADD_FREQ

+

SUB_FREQ)

#define

P2_OUT_PORTS

(0xff)

//

DAC

data

in

#define

TOTAL_SAMPLING_POINTS100

#define

MAX_FREQ_STEPS400

#define

ENABLE_WR_PORTP1OUT

inttccr0_now;

uintccr0_idx;

ucharpoint_now;

intpush_key;

intduty_circle;

const

long

tccr0_table[MAX_FREQ_STEPS]={

32000,16000,10666,8000,6400,5333,4571,4000,3555,3200,2909,2666,2461,2285,2133,2000,1882,1777,1684,1600,1523,1454,1391,1333,1280,1230,1185,1142,1103,1066,1032,1000,969,941,914,888,864,842,820,800,780,761,744,727,711,695,680,666,653,640,627,615,603,592,581,571,561,551,542,533,524,516,507,500,492,484,477,470,463,457,450,444,438,432,426,421,415,410,405,400,395,390,385,380,376,372,367,363,359,355,351,347,344,340,336,333,329,326,323,320,316,313,310,307,304,301,299,296,293,290,288,285,283,280,278,275,273,271,268,266,264,262,260,258,256,253,251,250,248,246,244,242,240,238,237,235,233,231,230,228,226,225,223,222,220,219,217,216,214,213,211,210,209,207,206,205,203,202,201,200,198,197,196,195,193,192,191,190,189,188,187,186,184,183,182,181,180,179,178,177,176,175,174,173,172,172,171,170,169,168,167,166,165,164,164,163,162,161,160,160,159,158,157,156,156,155,154,153,153,152,151,150,150,149,148,148,147,146,146,145,144,144,143,142,142,141,140,140,139,139,138,137,137,136,136,135,135,134,133,133,132,132,131,131,130,130,129,129,128,128,127,126,126,125,125,125,124,124,123,123,122,122,121,121,120,120,119,119,118,118,118,117,117,116,116,115,115,115,114,114,113,113,113,112,112,111,111,111,110,110,109,109,109,108,108,108,107,107,107,106,106,105,105,105,104,104,104,103,103,103,102,102,102,101,101,101,100,100,100,100,99,99,99,98,98,98,97,97,97,96,96,96,96,95,95,95,94,94,94,94,93,93,93,93,92,92,92,91,91,91,91,90,90,90,90,89,89,89,89,88,88,88,88,87,87,87,87,86,86,86,86,86,85,85,85,85,84,84,84,84,83,83,83,83,83,82,82,82,82,82,81,81,81,81,81,80,80,80,78,75};

//

cpu_freq

//

ccr0

=

-----------------------------------

//

sig_freq

total_sampling_points

const

uchar

sin_data[TOTAL_SAMPLING_POINTS]={127,135,143,151,159,167,174,182,189,196,203,209,215,221,226,231,235,239,243,246,249,251,253,254,254,254,254,253,252,250,247,245,241,237,233,228,223,218,212,206,199,192,185,178,171,163,155,147,139,131,123,115,107,99,91,83,76,69,62,55,48,42,36,31,26,21,17,13,9,7,4,2,1,0,0,0,0,1,3,5,8,11,15,19,23,28,33,39,45,51,58,65,72,80,87,95,103,111,119,127};

const

uchar

tria_data[TOTAL_SAMPLING_POINTS]={0,5,10,15,20,26,31,36,41,46,52,57,62,67,72,78,83,88,93,98,104,109,114,119,124,130,135,140,145,150,156,161,166,171,176,182,187,192,197,202,208,213,218,223,228,234,239,244,249,255,255,249,244,239,234,228,223,218,213,208,202,197,192,187,182,176,171,166,161,156,150,145,140,135,130,124,119,114,109,104,98,93,88,83,78,72,67,62,57,52,46,41,36,31,26,20,15,10,5,0};

#pragma

vector

=

TIMER0_A0_VECTOR

__interrupt

void

timer_A0(void){

if(point_now

>=

TOTAL_SAMPLING_POINTS){

point_now

=0;

}

switch(curr_signal_type){

case0:

//

sin;

write_dac(sin_data[point_now]);

break;

case1:

//

triangle

write_dac(tria_data[point_now]);

break;

case2:

//

box

if(point_now

=3){

curr_signal_type

=0;

}

}elseif(push_key

if(ccr0_idx

>=

MAX_FREQ_STEPS){

ccr0_idx

=0;

}

tccr0_now

=

tccr0_table[ccr0_idx];

}elseif(push_key

if(ccr0_idx

>=

MAX_FREQ_STEPS){

ccr0_idx

=

MAX_FREQ_STEPS

-1;

}

tccr0_now

=

tccr0_table[ccr0_idx];

}

P1IFG

//清除标志位

}

void

init_vars(){

curr_signal_type

=0;

point_now

=0;

ccr0_idx

=

MAX_FREQ_STEPS

/2-1;//初始

1kHz

tccr0_now

=

tccr0_table[ccr0_idx];

duty_circle

=

TOTAL_SAMPLING_POINTS

/2;//初始50%

占空比

}

void

init_DCO(){

BCSCTL1=

CALBC1_16MHZ;

DCOCTL=

CALDCO_16MHZ;

BCSCTL2=

SELM_1

+

DIVM_0;

//

select

DCO

as

the

source

of

MCLK

BCSCTL2

//

select

DCO

as

the

source

of

SMCLK

}

void

init_timer_A0(void){

TACTL|=

TASSEL_2

+

MC_2;//

SMCLK

source

and

Mode

continous

TACCR0=

tccr0_now;

TACCTL0

|=

CCIE;//

interrupt

enable

_EINT();

}

void

init_port_io(void){

P2DIR=

P2_OUT_PORTS;//

P2

11111111b

all

out

P2REN=0x00;//

disable

pull

up/down

resistor

P2SEL=0x00;//

io

function

is

selected

P2SEL2

=0x00;

P1DIR

//

P1.0

P1.1

p1.2

p1.4

in

P1DIR

|=

P1_OUT_PORTS;//

P1.3

for

DAC

WR

P1REN=0x00;

P1SEL=0x00;

P1SEL2

=0x00;

}

void

init_port_interrupt(void){

P1IES|=P1_INTERRUPT;//置1,下降沿触发

P1IE|=P1_INTERRUPT;//中断使能

P1IFG//清除标志位

}

void

init_ADC10(void){

ADC10CTL1

|=

INCH_4;//

A4

channel

for

convertion,P1.4

in

ADC10CTL1

|=

SHS_0;

//

Sample-and-hold

source

select

ADC10SC

ADC10CTL1

|=

ADC10SSEL_3;//

SMCLK

16M

ADC10CTL1

//

straght

binary

format

ADC10CTL1

|=

CONSEQ_0;//

Single

channel

single

convertion

ADC10AE0=

ADC10_IN_PORT;//

P1.4

in

ADC10CTL0

//

disable

interrupt

ADC10CTL0

|=

SREF_1

+

ADC10SHT_0

+

REF2_5V

+

REFON;

//

V+

=

2.5V,V-

=

Vss

=

0

ADC10CTL0

//

diasable

refout

to

p1.3

p1.4

ADC10CTL0

|=

ADC10ON;//

enable

adc

}

void

main(void){

WDTCTL

=

WDTPW

|

WDTHOLD;//

Stop

watchdog

timer

init_vars();

init_port_io();

init_port_interrupt();

init_DCO();

init_timer_A0();

init_ADC10();

_bis_SR_register(GIE);//全局中断使能

while(1){

ADC10CTL0

//关闭采样使能

while(ADC10CTL1

//检测是否忙

ADC10CTL0

|=

ENC

+

ADC10SC;//打开采样使能,开始转换

while(ADC10CTL1

//检测是否忙

int

adc_data=

ADC10MEM;//读取数据

duty_circle=(adc_data

>>4)+20;

//占空比限制在

20(20%)~83(83%)之间

//采集到的数据是0~1023

//右移四位就是0~63

//加20就是20~83

//总点数是100点

//占空比就是20/100=20%

~

83/100=83%

之间

}

}

28

/

29

篇3:外文翻译---基于DDS参数可调谐波信号发生器的研究

外文翻译---基于DDS参数可调谐波信号发生器的研究 本文关键词:可调,外文,谐波,翻译,参数

外文翻译---基于DDS参数可调谐波信号发生器的研究 本文简介:附录AResearchofParameterAdjustableHarmonicSignalGeneratorBasedonDDSLIWeiCollegeofComputerandInformationEngineeringHohaiUniversityChangzhou,213022,China[

外文翻译---基于DDS参数可调谐波信号发生器的研究 本文内容:

附录A

Research

of

Parameter

Adjustable

Harmonic

Signal

Generator

Based

on

DDS

LI

Wei

College

of

Computer

and

Information

Engineering

Hohai

University

Changzhou,213022,China

[email protected]

ZHANG

Jinbo

College

of

Computer

and

Information

Engineering

Hohai

University

Changzhou,213022,China

[email protected]

Abstract

Harmonic

signal

generator

whose

frequency,phase

and

harmonic

proportion

are

adjustable

is

designed

for

the

detecting

equipment

of

power

system.

The

principle

of

DDS

and

the

design

requirement

are

introduced.

Then

the

algorithm

of

ROM

compression

based

on

the

symmetry

of

sine

wave

is

expounded.

Finally,using

Altera

FPGA,the

detail

design

of

the

whole

system

is

presented

and

test

waveforms

are

given.

Test

results

indicate

that

the

system

fulfils

the

design

requirements.

1.

Introduction

An

ideal

power

system

supplies

power

with

sine

wave,but

the

practical

waveform

of

power

supply

often

has

many

harmonic

components.

The

basic

reason

of

harmonic

is

that

the

power

system

supplies

power

to

the

electrical

equipment

with

nonlinear

characteristic.

These

nonlinear

loads

feed

higher

harmonic

back

to

the

power

supply,and

make

the

waveform

of

current

and

voltage

in

power

system

produce

serious

distortion.

In

the

detection

field

of

power

system,standard

signal

generators

which

can

simulate

the

power

harmonic

are

highly

needed

to

calibrate

the

power

detecting

equipment,such

as

phase

detector,PD

detector,and

so

on.

So

the

research

of

parameter

adjustable

harmonic

signal

generator

provides

the

exact

basis

for

the

stable

operation

of

power

detecting

equipment,and

has

great

economic

benefit

and

social

value.

2.

Principle

of

direct

digital

synthesis

Direct

digital

synthesis

(DDS)

is

a

new

frequency

synthesis

technology

which

directly

synthesizes

waveform

on

the

basis

of

phase.

Using

the

relationship

between

phase

and

amplitude,the

phase

of

waveform

is

segmented

and

assigned

relevant

addresses.

In

each

clock

period,these

addresses

are

extracted

and

the

relevant

amplitudes

are

sampled.

The

envelope

of

these

sampled

amplitudes

is

the

expected

waveform.

If

the

clock

frequency

is

constant,the

frequency

of

output

signal

is

adjustable

with

different

extracted

steps

of

addresses.

DDS

is

composed

of

phase

accumulator,ROM

table,DAC

and

LPF.

In

each

clock

period,the

output

of

phase

accumulator

is

accumulated

with

frequency

control

word,and

high

L-bit

of

the

output

are

used

as

address

to

query

the

ROM

table.

In

the

ROM,these

addresses

are

converted

to

the

sampled

amplitudes

of

the

expected

waveform.

Then

DAC

converts

the

sampled

amplitudes

to

ladder

wave.

In

the

LPF,the

ladder

wave

is

smoothed,and

the

output

is

the

continuous

analog

waveform.

Suppose

that

the

clock

frequency

is

fc,frequency

control

word

is

K,phase

accumulator

is

N-bit,then

output

frequency

is

fout=(K/2N)fc,frequency

resolution

is

Δfmin=fc/2N.

According

to

the

Nyquist

Sample

Criterion,output

frequency

upper

limit

is

fmax<0.5fc.

Because

of

the

non-ideal

characteristic

of

LPF,output

frequency

upper

limit

of

DDS

is

fmax=0.4fc.

3.

Scheme

design

3.1.

Design

requirements

The

goal

of

the

system

is

to

design

a

harmonic

signal

generator,whose

frequency,phase

and

harmonic

proportion

are

adjustable.

The

output

waveform

is

composed

of

fundamental

wave,3th

harmonic,5th

harmonic

and

7th

harmonic.

Frequency

resolution

is

1Hz.

The

adjustable

range

of

initial

phase

is

0~2π

and

its

resolution

is

1o.

The

adjustable

range

of

harmonic

proportion

is

0~50%

and

its

resolution

is

1%.

According

to

the

design

requirements,system

clock

frequency

is

15MHz

and

phase

accumulator

is

24-bit.

In

order

to

make

the

most

of

EAB,211×8

bits

ROM

table

is

adopted.

11-bit

phase

control

word

is

used

to

meet

the

requirement

of

initial

phase

resolution.

7-bit

proportion

control

word

is

adopted

to

realize

the

setting

of

harmonic

proportion.

3.2.

Algorithm

of

ROM

compression

As

is

known,phase

truncation

error

is

the

main

factor

of

output

waveform

distortion.

To

avoid

this,the

ROM

size

must

be

exponentially

increased,however

the

EAB

of

FPGA

is

limited.

So

the

algorithm

of

ROM

compression

based

on

the

symmetry

of

sine

wave

is

adopted

in

the

system.

Sine

wave

of

one

period

is

divided

into

4

sections:

[0~π/2]

、[π/2~π]

、[π~3π/2]

、[3π/2~2π].

Using

the

symmetry

of

sine

wave,sampled

amplitudes

of

the

first

section

are

stored

in

the

ROM

table.

By

address

conversion

and

amplitude

conversion,sampled

amplitudes

of

one

period

sine

wave

can

be

generated.

By

this

means,the

ROM

size

is

a

quarter

of

the

previous

size.

In

the

same

ROM,sampling

points

can

be

increased

by

4

times

with

this

method.

Sampled

amplitudes

of

quarter

wave

are

stored

in

the

ROM

table.

The

output

address

of

phase

accumulator

is

(L+2)-bit.

The

low

L-bit

are

used

to

query

the

ROM

table

while

the

high

2-bit

are

used

to

identify

phase

sections.

When

the

highest

bit

is

1,the

output

of

ROM

table

should

be

symmetrically

converted

by

the

amplitude

convertor.

When

the

second

highest

bit

is

1,the

L-bit

address

should

be

symmetrically

converted

by

the

address

convertor.

4.

System

design

based

on

FPGA

The

system

can

be

divided

into

two

function

modules:

sine

wave

generation

module

and

harmonic

synthesis

module.

Sine

wave

generation

module

is

the

key

part

of

the

system.

It

can

be

divided

into

phase

accumulator

module

and

ROM

compression

module

.

Altera

FPGA

EP2C5Q208C8

is

adopted

as

the

core

component

of

the

system.

VHDL

is

used

to

program

the

whole

system.

Compilation

and

simulation

are

implemented

in

Quartus

Ⅱ.

4.1.

Sine

wave

generation

module

phase

accumulator

module

is

composed

of

24-bit

accumulator

and

11-bit

adder.

Under

the

control

of

system

clock,the

output

of

24-bit

accumulator

is

accumulated

with

9-bit

frequency

control

word.

Then

11-bit

adder

adds

11-bit

phase

control

word

to

the

output

of

accumulator.

High

13-bit

of

the

final

result

are

used

as

address

to

query

the

ROM

compression

module.

ROM

compression

module

is

composed

of

address

convertor,amplitude

convertor

and

ROM

table.

13-bit

address

of

phase

accumulator

module

is

divided

into

three

parts.

The

highest

bit

is

used

as

trigger

signal

of

the

amplitude

convertor.

The

second

highest

bit

is

used

as

trigger

signal

of

the

address

convertor.

The

low

11-bit

are

used

to

query

the

ROM

table.

Then

sampled

amplitudes

of

sine

wave

are

generated.

Simulation

result

of

sine

wave

generation

module

is

shown

in

Fig.4.

Frequency

control

word

is

set

as

50

while

phase

control

word

is

set

as

180.

When

the

enable

signal

is

turned

into

low

level,the

first

output

value

is

the

waveform

data

of

address

180

in

the

ROM

table.

With

each

rising

edge

of

system

clock,the

waveform

data

of

address

180,181,182,183

are

sent

out.

The

output

values

are

respectively

76,76,77,77.

4.2.

Harmonic

synthesis

module

Harmonic

synthesis

module

implements

the

synthesis

of

fundamental

wave,3th

harmonic,5th

harmonic

and

7th

harmonic.

The

3th,5th

and

7th

harmonic

data

are

respectively

multiplied

by

their

proportion

control

words.

Then

the

results

of

multiplication

are

added

to

the

fundamental

wave

data.

The

realization

of

multiplication

is

the

emphasis

of

the

module.

Because

it

is

difficult

to

implement

the

multiplication

of

floating-point

format

on

FPGA,harmonic

proportion

is

divided

into

numerator

and

denominator.

The

numerator

is

defined

as

proportion

control

word

while

the

denominator

is

100.

Firstly,harmonic

data

is

multiplied

by

the

proportion

control

word

in

the

multiplier.

Then,the

product

of

multiplier

is

divided

by

100

in

the

divider.

Finally,the

remainder

is

excluded

and

the

quotient

is

preserved.

Using

Altera

IP

tools,the

multiplier

and

the

divider

of

harmonic

synthesis

module

are

realized.

Block

diagram

of

harmonic

synthesis

module

is

shown.

Simulation

result

of

harmonic

synthesis

module

is.

Control

words

are

set

before

2.0ms.

Fundamental

wave

frequency

is

50Hz,and

its

initial

phase

is

0o.

The

3th

harmonic

frequency

is

150Hz,initial

phase

is

45o

and

proportion

is

50%.

The

5th

harmonic

frequency

is

250Hz,initial

phase

is

90o

and

proportion

is

25%.

The

7th

harmonic

frequency

is

350Hz,initial

phase

is

135o

and

proportion

is

17%.

When

enable

signal

is

turned

into

low

level,harmonic

synthesis

module

begins

to

generate

the

harmonic

synthesis

data.

5.

Test

results

Figure

7.

Two-channel

sine

waves

(frequency

is

50Hz

and

phase

difference

is

180o)

Figure

8.

Two-channel

sine

waves

(frequency

is

50Hz

and

phase

difference

is

120o)

Figure

9.

Harmonic

synthesis

waveform

After

the

design

of

the

system,the

whole

function

is

tested.

Fig.7

shows

two-channel

sine

waves

whose

frequency

is

50Hz

and

phase

difference

is

180o.

Fig.8

shows

two-channel

sine

waves

whose

frequency

is

50Hz

and

phase

difference

is

120o.

Fig.9

shows

the

harmonic

synthesis

waveform,whose

fundamental

wave

proportion

is

100%,3th

harmonic

proportion

is

25%,and

5th

harmonic

proportion

is

10%.

Test

waveforms

indicate

that

the

parameter

adjustable

harmonic

signal

generator

fulfils

the

design

requirements.

6.

Conclusion

In

the

detection

field

of

power

system,standard

signal

generators

which

can

simulate

the

power

harmonic

are

highly

needed

to

calibrate

the

power

detecting

equipment.

To

solve

this

problem,a

harmonic

signal

generator

whose

frequency,phase

and

harmonic

proportion

are

adjustable

is

presented.

Using

Altera

FPGA,the

whole

system

is

implemented.

Test

results

indicate

that

the

adjustment

and

stabilization

precision

of

parameters

meet

the

design

requirements.

This

subject

provides

the

exact

basis

for

the

stable

operation

of

power

detecting

equipment,and

has

great

economic

benefit

and

social

value.

References

[1]

Li

Xiaoming

and

Qu

xiujie,“Application

of

DDS/FPGA

in

Signal

Generator

Systems”,Modern

Electronics

Technique,2006:78-79.

[2]

Yu

Yong

and

Zheng

Xiaolin,“Design

and

Implementation

of

Direct

Digital

Frequency

Synthesis

Sine

Wave

Generator

Based

on

FPGA”,Journal

of

Electron

Devices,2005:596-599.

[3]

M.A.

Taslakow,“Direct

Digital

Synthesizer

with

improved

spectrum

at

low

frequencies”,2000

IEEE/EIA

International

Frequency

Control

Symposium

and

Exhibition,2000:280-284.

[4]

Yang

Li

and

Li

Zhen,“Multi-wave

shape

Signal

Generator

Based

on

FPGA”,Radio

Engineering,2005:46-48.

[5]

D.J.

Betowski

and

V.

Beiu,“Considerations

for

phase

accumulator

design

for

Direct

Digital

Frequency

Synthesizers”,IEEE

International

Conference

on

Neural

Networks

and

Signal

Processing,2003:176-179.

[6]

J.

Vankka,“Methods

of

mapping

from

phase

to

sine

in

Direct

Digital

Synthesis”,1996

IEEE

International

Frequency

Control

Symposium,1996:942-950.

[7]

K.A.

Essenwanger

and

V.S.

Reinhardt,“Sine

output

DDSs

A

survey

of

the

state

of

the

art”,1998

IEEE

International

Frequency

Control

Symposium,1998:370-376.

附录B

基于DDS参数可调谐波信号发生器的研究

李炜

学院计算机与信息工程河海大学

常州,

213022

,中国[email protected]

张金波

学院计算机与信息工程河海大学

常州,

213022

,中国[email protected]

摘要

谐波信号发生器的频率,相位和谐波比例可调的目的是为检测设备的电源系统。介绍了DDS的原理和设计要求。然后在ROM的压缩算法的基础上阐述了正弦波的对称性。最后,利用Altera的FPGA详细的设计了整个系统,并给出了测试波形。实验结果表明,该系统满足了设计要求。

1简介

一个理想的电力系统是正弦波供电,但实际波形电源往往有许多谐波成分。产生谐波的基本原因是电力系统供电的电气设备的非线性特性。这些非线性负载依靠高次谐波回到电源,使波形的电流和电压的电力系统产生严重的失真。在电力系统的检测领域,标准信号发生器可以模拟电力谐波非常需要标定功率检测设备,如相位检测器,局部放电检测仪,等等。因此,为参数可调谐波信号发生器的研究提供准确的依据和稳定运行的电力检测设备,并具有很大的经济利益和社会价值。

2直接数字频率合成的原理

直接数字合成(

DDS

)是一种在相位的基础上直接合成波形的新的频率合成技术,利用相位和振幅之间的关系,对相位的波形分割和分配有关的地址。在每一个时钟周期,提取这些地址和有关振幅采样。系统中这些被抽样幅度是预期的波形。如果时钟频率是恒定的,频率可调输出信号的地址可有不同提取步骤。

直接数字频率合成器由累加器,存储器,

DAC和低通滤波器组成。在每一个时钟周期,输出相位累加器是由频率控制字累计,高左旋位输出作为地址查询存储器。在ROM中,这些地址被转换为预期波形的抽样振幅。然后数模转换器转换采样振幅为阶梯波。在低通滤波器,平滑阶梯波,输出的是连续的模拟波形。

假设时钟频率是fc,频率控制字为K

,相位累加器为N位,则输出频率fout

=

K/2N

)fc,频率分辨率是Δfmin

=

fc/2N

。根据奈奎斯特采样标准,输出频率上限是fmax<0.5fc

。由于非理想特性的低通滤波器,DDS的输出频率上限的是fmax

=

0.4fc。

3方案设计

3.1设计要求

该系统的目标是设计一个谐波信号发生器,其频率相位和谐波比例可调。输出波形是由基波,第三谐波,第五次谐波和第七次谐波构成。频率分辨率是1赫兹。可调范围的初始阶段为0~2π,其图形分辨率为1。可调范围的谐波比例为0~50%,其图形分辨率是1%。根据设计要求,系统时钟频率是15MHz,相位累加器是24位。为了产生最多的EAB,采用211×8位ROM。11位相位控制字是用来满足初始阶段的图形分辨率。7位比例控制字采用正确设定的谐波比例。

3.2ROM的算法

正如人们所知,相位截断误差的主要因素是输出波形畸变。为避免出现这种情况,ROM大小必须成倍增加,但EAB的FPGA是有限的。因此,该算法压缩的ROM基于系统中正弦波的对称性。正弦波一期分为4个部分:[0~π/2],[π/2~

π],[π~3π/2],[3π/2~2π]。使用对称的正弦波,取样振幅的第一部分都存储在ROM。通过地址转换和振幅转换,一期正弦波的采样振幅可以生成。通过这一手段,ROM大小是之前大小的四分之一。在相同的ROM中应用这种方法,采样点可提高4倍。

采样波振幅分块存储在ROM中。输出相位累加器地址是(L+2)-bit。低左旋位是用来查询表的ROM,而高2位是用来识别阶段部分。当最高位为1

,输出的ROM表为对称转换的幅度变换器。当第二个最高位是1

,L型位地址为对称转换的地址转换。

4基于FPGA的系统设计

该系统可分为两个功能模块:正弦波代模块和谐波合成模块。正弦波代模块是系统中关键的部分。它可分为阶段累加器模块和ROM压缩模块。Altera的FPGA

EP2C5Q208C8是该系统的核心组成部分,VHDL语言用来设计整个系统。汇编和仿真使用Quartus

实现。

4.1正弦波生成模块

相位累加器模块由24位累加器和11位加法器组成的。系统时钟所控制的是9位频率控制字与24位累加器的相加的输出。然后11位相位控制字增加了11位加法器和累加器的输出。高13位的最后结果被用作处理查询正弦数据查询ROM模块。正弦数据查询ROM模块是由地址转换,振幅转换器和ROM模块组成的。13位地址相位累加器模块分为三部分。最高位被用作触发信号的幅度变换器。第二个最高位被用作触发信号的地址转换。低11位是用来查询正弦数据查询ROM模块。然后取样振幅产生正弦波。正弦波信号发生器模块的仿真结果正确。频率控制字设置为50,而相位控制字设置为180。当时钟控制信号变成低电平时,第一个产生数值是ROM模块中地址为180时所对应的正弦波的值。系统时钟的每个上升沿产生波形数据地址所对应的180,181,182,183。其产生的数值分别为76,76,77,77。

4.2谐波合成模块

谐波合成模块完成的是基波,第三次谐波,第五次谐波和第七次谐波的合成。第三次,第五次和第七次谐波数据分别乘以其比例控制字。然后其相乘的结果再加上基波数据。其结果实现的是增强电路模块。因为基于FPGA很难实施多元化的浮点格式,调和比例的划分结果分为分子和分母。分子被定义为比例控制字而分母为100。首先,谐波的数据是乘以这个比例控制字的乘数。然后,这个相乘后的结果再在触发其里除以100。最后,剩下的是余数和商被保存了下来。使用Altera

IP工具、乘法器和除法来实现器谐波合成模块。框图的谐波合成将被显示。谐波合成模块的仿真结果正确。使用2.0ms以内的控制字的话。基波的频率为50赫兹,其初始相位是0度。第三次谐波频率为150赫兹,其初始相位是45度和比例为50%。第五次谐波频率是250赫兹,其初始相位是90度和比例是25%。第七次谐波频率是350Hz,其初始相位是135度和比例是17%。当时钟控制信号转变成低电平时,谐波合成模块开始产生所合成的谐波的数据。

5测试结果

经过系统的设计,整体功能的测试。图7显示双通道正弦波,其频率为50赫兹和相位差是180度。图8显示双通道正弦波,其频率为50赫兹和相位差是120度。图9显示了谐波合成波形,其基波比例为100%,第三谐波的比例是25%,和第5次谐波的比例是10%。试验表明,波形参数可调谐波信号发生器满足了设计要求。

7

双通道正弦波(频率

50,相位差是180o

8

双通道正弦波(频率

50,相位差是120o

图9

谐波合成波形

6结论

在电力系统的检测领域,标准信号发生器模拟电力谐波非常精确的标定功率检测设备。为了解决这个问题,介绍了一种频率,相位和谐波比例可调的谐波信号发生器。利用Altera的FPGA实现了整个系统的实施。试验结果表明,调整和稳定精度的参数达到设计要求。这一主题提供了准确的依据,稳定运行的电力检测设备,具有强大的经济利益和社会价值。

参考文献

[

1

]李晓明,曲秀杰,“DDS/FPGA在信号发生器的系统的应用”,现代电子技术,2006年:78-79

[

2

]于育,郑小琳,“基于FPGA的直接数字频率合成正弦波发生器的设计与实现”,电子器件杂志,2005年:596-599

[

3

]M.A.

Taslakow,“改进频谱低频的直接数字频率合成器”,2000年的IEEE

/频率控制的环境影响评估国际研讨会及展览,

2000年:280-284

[

4

]杨力,李镇,“多波形信号发生器的FPGA实现”,无线电工程系,

2005年:46-48

[

5

]

D.J.

Betowski,

V.

Beiu,“思考阶段累加器设计直接数字频率合成器”,IEEE国际会议的神经网络和信号处理,2003年:176-179

[

6

]

J.

Vankka,“以正弦波直接数字频率合成方法测绘阶段”,1996年IEEE国际频率控制专题讨论会,1996年:942-950

[

7

]

K.A.

Essenwanger,

V.S.

Reinhardt,“正弦输出统计局的调查,国家的艺术”,1998年IEEE国际频率控制专题讨论会,1998年:370-376