函数信号发生器课程设计报告 本文关键词:函数,课程设计,信号发生器,报告
函数信号发生器课程设计报告 本文简介:课程设计报告书专用纸淮海工学院课程设计报告书课程名称:电子技术课程设计题目:函数信号发生器学院:电子工程学院学期: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