三相信号源设计资料Word下载.docx

上传人:b****4 文档编号:17873035 上传时间:2022-12-11 格式:DOCX 页数:17 大小:183.70KB
下载 相关 举报
三相信号源设计资料Word下载.docx_第1页
第1页 / 共17页
三相信号源设计资料Word下载.docx_第2页
第2页 / 共17页
三相信号源设计资料Word下载.docx_第3页
第3页 / 共17页
三相信号源设计资料Word下载.docx_第4页
第4页 / 共17页
三相信号源设计资料Word下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

三相信号源设计资料Word下载.docx

《三相信号源设计资料Word下载.docx》由会员分享,可在线阅读,更多相关《三相信号源设计资料Word下载.docx(17页珍藏版)》请在冰豆网上搜索。

三相信号源设计资料Word下载.docx

第三周

完成三相信号发生器设计硬件电路调试和软件程序调试,编写设计说明书。

提交硬件设计作品及硬件课程设计说明书,完成硬件课程设计面试。

2013.5.6-2013.5.10

五、指导教师评语及学生成绩

指导教师评语:

2013年5月11日

成绩

指导教师(签字):

引言

在现代电子系统的测试和应用中,信号源是必不可少的。

根据不同系统对信号的不同要求,人们希望信号源输出波形信号的幅值、频率可调,且频率准确、稳定;

甚至在一些情况下还希望信号源能够输出相位关系确定的多路信号。

因此,传统的模拟信号源已经远远不能满足目前的电子设计要求,而是直接采用数字化合成技术产生的全数字化信号源。

以数字化为基础的智能信号源,不仅在性能上有质的飞跃,功能上也更强大,操作更简单。

经过考虑,我决定设计一台三相信号源,来代替电网的高压三相电,满足部分电力系统实验的模拟和研究,同时,还可以用做测试信号。

第一章系统设计方案与论证

1.1总体方案选择

方案一:

利用模拟开关和电阻网络产生阶梯波,从而拟合出正弦信号。

但为了准确的增益阶跃,选取精密电阻十分困难,而且为了消除模拟开关导通电阻的影响,需要加电位器微调,即麻烦,又不能达到精度要求。

方案二:

以单片机为控制核心,利用单片机片发出数字量通过DAC转换器输出所需波形。

控制单片机写入到数模转换器的数字量,即可控制其输出的模拟电压值。

波形发生程序控制单片机输出到DAC模块的数据,使其产生所需波形的模拟电压。

改变更新输出数据的时间间隔,控制输出波形的频率。

可将一个周期正弦波分为72个时段,每时段起始正弦值存入数组,DAC用该数组数据拟合正弦波。

当单片机的两路DAC输入数据在所存数组中相差24个单元,即可保证DAC0和DAC1输出正弦波相位相差120°

设DAC0和DAC1对应三相正弦交流电中的uA和uB相电压,相电压uC=-(uA+uB)。

因此,可将DAC0和DAC1输出经反相加法器合成为相电压uC,使信号发生器同时输出三相基波信号。

此方案输出信号稳定,电路设计也相对简单。

方案三:

从电网引入三相交流电,通过变压器降压,再通过滤波电路滤去高频杂波,得到三相信号。

再通过一些后续电路实现频率及其幅值的调整,以达到设计要求。

此方案得到的信号频率固定,后续调整较为麻烦。

综合考虑我们选择方案二。

1.2器件的选择

1.2.1控制芯片选择

采用目前比较通用的51系列单片机。

此单片机的运算能力强,软件编程灵活,自由度大。

虽然该系统采用单片机为核心,能够实现对外围电路的智能控制,但核心控制部件使用89C51时,为达到设计的要求,外围电路必须加上D/A芯片,这就使得整个系统硬件电路变得复杂,而且D/A器件价格较高,使得系统的性价比偏低。

采用MSP430F169单片机。

此单片机功能较强,性价比高、集成度高、易扩展、可靠性高、功耗小及具有较高的数据处理和运算能力。

由于MSP430F169单片机内部集成了D/A转换器,不需外加D/A。

这种方案既能实现智能化的特点,简化硬件电路,提高测量精度,这给调试、维护和功能的扩展、性能的提高,带来了极大的方便。

鉴于上面考虑,我们采用方案二。

1.2.2显示器选择

采用LED显示,把测量所得到的高度通过数码管显示。

数码管亮度高,体积小,重量轻。

再配上74HC164(串行输入转并行输出),使其不需要时时更新吧,节省CPU资源,而且可以使数据稳定,以达到静态显示的目的。

采用12864LCM点阵显示器,点阵显示界面友好,显示信息量丰富,接口电路简单,可以和单片机直接相连。

考虑到本题显示信息较少,只需要显示三相信号的频率,12864LCM点阵显示器性价比较差,所以,我们决定选择LED数码管作为本系统的显示模块。

1.2.3键盘模块选择

采用普通按键模式,通过点阵显示器索显示的信息对系统进行控制,方便快捷,易于实现。

采用4×

4矩阵键盘,其优点是按键数目较多,方便数据输入,但需要单片机对其进行动态扫描,耗电量较高,编程较难。

考虑到本系统的输入信息较少,我们选择普通按键作为本系统的键盘模块。

第二章系统硬件电路设计

本设计采用MSP430F169单片机作为系统控制单元,单片机通过按键或上位机读取用户设置的输出信号频率,再通过D/A转换发出给定值,并通过滤波和放大产生A相和B相信号,再将A相和B相信号反向求和得到B相信号,设置及输出信号参数通过LED显示屏显示。

系统结构框图如图2-1所示。

图2-1系统结构框图

2.1单片机小系统设计

采用MSP430F169单片机作为系统控制单元,外配4MHz主晶振和32768Hz的辅助晶振、复位电路、按键电路、LM12864显示器构成单片机小系统,MSP430F169单片机小系统电路如图2-2所示。

图2-2MSP430F169单片机小系统电路

2.1.1MSP430F169单片机及内部模块介绍

MSP430F169是TI公司进入中国市场的MSP430F系列单片机中功能最强的芯片。

内部模块如下:

(1)CPU(中央处理单元):

执行程序,处理16位二进制数据,自动执行。

(2)振荡器系统时钟:

与外电路配合产生方波时钟信号,驱动CPU按时钟节拍工作。

(3)JTAG接口:

与计算机系统连接,下载、仿真运行程序,自动执行。

(4)只读存储器(ROM):

容量64KB,存储程序、常数数据,执行过程中不能改动,掉电不丢失。

下载时自动完成。

MSP430F413的F是指该单片机采用FLASH型只读存储器。

(5)随机存储器(RAM):

容量64KB,存储数据,执行过程中可改动,掉电丢失。

自动执行。

(6)上电复位:

与芯片58脚(/RST-RESET)配合,芯片供电后引脚电平由低到高,CPU开始工作,自动执行。

(7)PIO端口:

并行(8条引脚对应8位二进制数)输入输出接口,实现微控制器与外电路连接。

P1至P6输入输出功能相同,但P1和P2具有中断功能。

(8)看门狗定时器:

实现定时功能,。

(9)增计数模式:

捕获/比较寄存器CCR0用作Timer_A增计数模式的周期寄存器,因为CCR0为16位寄存器,所以该模式适用于定时周期小于65536的连续计数情况。

计数器TAR可以增计数到CCR0的值,当计数值与CCR0的值相等(或定时器值大于CCR0的值)时,定时器复位并从0开始重新计数。

增计数模式的计数过程如图2-3所示。

通过改变CCR0值,可重置计数周期。

图2-3增计数模式示意图

2.1.2复位电路设计

当系统一上电先经RC电路对电容充电,电容电压不能跃变,为低电平,单片机自动复位,当电容充电过1/2VCC时,为逻辑高电平,单片机完成复位,开始正常工作状态。

当出现紧急情况需要复位时,按下按键,电容对地放电,当电容电压低于1/2VCC时,单片机复位,松开按键,再重复上过程。

我还配以保护二极管用以钳制引入单片机的电压不大于5V,从而保护单片机。

2.1.3按键电路设计

按键引入经过二极管的电源电压VCC1,再经下拉电阻接地,当按键没有按下时,单片机读入低电平,当按键按下时读入高电平,大约4.3V。

2.2A相信号输出电路

单片机DA转换器产生的A相信号经过RC滤波电路,产生正弦信号,由电压跟随器送入反向比例放大电路放大输出,如图2-4所示。

图2-4A相信号输出电路

2.2.1隔直滤波电路设计

单片机DAC输出电压范围0—2.5V(峰—峰值),中心轴(偏移量)对应1.25V,没有负压。

所以必须经过隔直滤波,将DAC输出的信号整体下移1.25V,使中心轴对应0V,从而模拟产生正弦信号。

我设计选用RC隔直滤波。

2.2.2放大电路设计

由于经过隔直滤波产生的电压信号是幅值为1.25V的正弦信号,幅值和要求的比较太小,需要功率放大,我选用同向比例放大电路将幅值放大。

放大比例关系如式2-2-2。

(2-2-2)

为了避免隔直滤波电路和放大电路之间的干扰,再在两者之间加电压跟随器,将两者隔离。

2.3B相信号输出电路

单片机的另一路DA转换器产生B相信号,原理和电路设计和A相完全相同,电路设计如图2-5所示。

图2-5B相信号输出电路

2.4C相信号输出电路

由三相交流电的基本特性uC=-(uA+uB),将产生的A,B两相信号引入反相加法器求和,再经放大电路放大输出,电路如图2-6所示。

图2-6C相信号输出电路

2.4.1求和电路设计

MSP430F169单片机只有两路DAC,没办法产生C相信号,所以,我考虑用A,B两相信号合成并取反产生。

并设计选择了A,B两相通过反向比例求和电路产生C相。

合成产生C相信号关系式如式2-4-1

(2-4-1)

2.4.2放大电路设计

同A相完全一样。

(略)

2.5显示电路设计

LED显示模块与单片机连接电路如图2-7所示。

图2-7LED显示模块与单片机连接电路

由单片机的P4.0发出数据,P1.0发出移位时钟信号,从而驱动74HC164,完成串行输入转并行输出用以驱动LED数码管。

74HC164芯片内部结构如图2-8所示。

图2-874HC164芯片内部结构

2.6电源电路设计

为了给三相信号源系统供电,电源电路如图2-9所示,输出±

5V直流电压。

图2-9电源电路

2.6.1单相桥式整流电路

变压器的作用是将交流电网电压u变成整流电路要求的交流电压;

四只整流二极管D1~D4接成电桥的形式,固有桥式整流电路之称。

在电源电压u的正、负半周内电流通过负载方向相同,属全波整流,将交流电变为脉动。

2.6.2滤波电路

滤波电路用于滤去整流输出电压中的纹波,一般由电抗元件组成,如在负载电阻两端并联电容器C,或在整流电路输出端与负载间串联电感器L,以及由电容、电感组合而成的各种滤波电路。

对小负载的电源,仅采用电容虑波即可。

2.6.3稳压电路

稳压电路是将不稳定的直流电压变为稳定的直流电压的集成电路,一般均采用稳压芯片制作稳压电路。

由于稳压芯片具有稳压精度高、工作稳定可靠、外围电路简单、体积小、重量轻等显箸优点,在各种电源电路中得到了普遍的应用。

常用的稳压芯片有78XX和79XX系列,其中78XX系列为正电压输出,79XX系列为负电压输出,输出电压有±

5V、±

9V、±

12V、±

15V、±

18V等规格,最大输出电流为1.5A。

它的内部含有限流保护、过热保护和过压保护电路,采用了噪声低、温度漂移小的基准电压源,工作稳定可靠,使用十分方便。

第三章程序设计

3.1程序部分参数计算

DAC输出电压范围0—2.5V(峰—峰值),对应输入数字量范围0—0FFFH;

中心轴(偏移量)对应1.25V(数字量800H);

最大值1.25V(数字量800H)。

若将一个正弦周期分为72个点,个点对应的DAC输入数值计算公式如下:

(再变为十六进制数)。

其中N为各时段序号,Din为DAC输入数值。

逐段求出后基波数据后,转换成十六进制数用常量数组存入单片机(常量数组占用ROM)。

定时中断时间常数计算公式:

其中:

Buf_TB是MSP430F169单片机定时器B定时中断时间常数;

F是单片机定时器B所选时钟频率(8MHz);

N1是一个基波周期所分时段数;

N2是基波频率数。

3.2各程序流程图

3.2.1主程序流程图

图3-1主程序流程图

3.2.2看门狗定时器流程图

图3-2看门狗定时器流程图

第四章测试数据及测试结果分析

4.1测试工具

本设计采用频率计,示波器,万用表等进行测试。

4.2测试数据

(1)测定输出信号频率

测试数据如下:

设定信号频率(HZ)

10

20

30

45

50

53

60

75

99

输出信号频率(HZ)

结果分析

经测量我们得到上面的数据,当设定输出为正弦波信号频率时,输出信号的频率误差小于0.02Hz,达到了题目要求。

误差引起的因素包括硬件电路的设计,外界的干扰,算法的选择以及测量工具本身灵密度造成的测量误差等。

结论

本设计能够输出正弦波信号,输出频率范围10~99Hz可调,步进1Hz,能够通过LED数码管显示输出信号参数。

从这次的电子竞赛中,我真正地意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,知识只有在经常的温习使用的过程中才能提高升华。

还有要锻炼自己的动手能力,不能一味地去学习理论而不实践。

随着科学的迅猛发展,新技术的广泛应用,会有很多领域是我们未曾接触过的,只有敢于去尝试才能有所突破,有所创新。

也不仅仅是通过几项工种所要求我们锻炼的几种能力,更多的则需要我们每个人在竞赛结束后根据自己的情况去感悟,去反思。

只有勤奋自勉,才能有所收获。

参考文献

[1]胡大可.MSP430系列FLASH型超低功耗16位单片机.北京:

北京航空航天大学出版社,2001

[2]秦龙.MSP430单片机常用模块与综合系统.北京:

电子工业出版社,2007

[3]曹磊.MSP430单片机C程序设计与实践.北京:

北京航空航天大学出版社,2007

[4]康华光.电子技术基础模拟部分.北京:

高等教育出版社.2002

[5]时景荣,李立春.C语言程序设计.北京:

中国铁道出版社.2007

附录

/***********************************************************

*MSP430F169双路正弦波发生器程序清单

************************************************************/

#include<

msp430x16x.h>

*双路正弦波数据表,存入ROM区

constintNUM_SIN0[72]={//正弦波数据表

0x800,0x8b2,0x963,0xa12,0xabc,0xb61,0xc00,0xc96,0xd24,0xda8,0xe20,0xe8d,//0_55度

0xeed,0xf40,0xf84,0xfba,0xfe0,0xff8,0xfff,0xff8,0xfe0,0xfba,0xf84,0xf40,//60_115度

0xeed,0xe8d,0xe20,0xda8,0xd24,0xc96,0xc00,0xb61,0xabc,0xa12,0x963,0x8b2,//120_175度

0x800,0x74d,0x69c,0x5ed,0x543,0x49e,0x400,0x369,0x2db,0x257,0x1df,0x172,//180_235度

0x112,0x0bf,0x07b,0x045,0x01f,0x007,0x000,0x007,0x01f,0x045,0x07b,0x0bf,//240_295度

0x112,0x172,0x1df,0x257,0x2db,0x369,0x400,0x49e,0x543,0x5ed,0x69c,0x74d};

//300_355度

constintNUM0[8]={0X00,0X00,0X80,0X80,0X80,0X80,0X80,0X80};

constunsignedshortintN1=72;

//一个周期分组数

intxs[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};

constunsignedlongintF=8000256;

//高速时钟频率

shortintBuf_TB,N_sin,N_sin1;

//定时器中断周期、sin分组数

unsignedintxdata=50,indata,setdata,aindata,setadata,N2=50,i,a,b;

unsignedinta1,a2,b1,b2,i;

/***************************************************************

*串行输入转并行输出(数码管驱动显示)子程序

***************************************************************/

voidczb(void)

{

a1=xdata/10;

a2=xdata%10;

b1=xs[a1];

b2=xs[a2];

i=0;

while(i<

16)

{if(i<

8)

{P4OUT=b1&

0x01;

P1OUT=0x01;

P1OUT=0x00;

b1=b1/2;

}

if(i>

7)

{P4OUT=b2&

b2=b2/2;

i++;

}

*设置TimerB输出PWM的工作模式

voidinit_TB(void)

{

Buf_TB=(int)(F/(N1*N2));

TBCCR0=Buf_TB;

TBCTL=TBSSEL_2+TBCLR+SHR_0;

//SMCLK,clearTBR,

TBCCTL0=CCIE;

//中断使能CCR0

TBCTL|=MC0;

//设置递增模式

*TimerB0中断服务程序

#pragmavector=TIMERB0_VECTOR//中断程序入口地址

__interruptvoidtimer_B(void)

//interrupt[TIMERB0_VECTOR]voidTimer_B(void)

DAC12_0DAT=NUM_SIN0[N_sin];

//ccr1Pwmcycle

N_sin1=N_sin+24;

if(N_sin1>

71)

{N_sin1=N_sin1-72;

DAC12_1DAT=NUM_SIN0[N_sin1];

N_sin=N_sin+1;

if(N_sin==72)

{N_sin=0;

_NOP();

*WDT中断服务程序

#pragmavector=WDT_VECTOR//中断程序入口地址

__interruptvoidwatchdog_timer(void)

//interrupt[WDT_VECTOR]voidwatchdog_timer(void)

indata=P2IN&

0x07;

if(indata!

=0)

{

switch(indata)

case1:

xdata=xdata+1;

if(xdata>

99){xdata=10;

}break;

case2:

xdata=xdata-1;

if(xdata<

10){xdata=99;

case4:

setdata=xdata;

N2=setdata;

init_TB();

break;

czb();

main函数

***********************************************************/

voidmain(void)

WDTCTL=WDT_ADLY_250;

//WDT间隔时间为250ms(ACLK)

BCSCTL1=~XT2OFF+SELS;

//清零位=高频xtalon

BCSCTL2=SELS;

//选择SMCLK=HFxtal

P4DIR|=0x01;

P4OUT=0x00;

P1DIR|=0x01;

ADC12CTL0=REF2_5V+REFON;

//内部2.5V参考源接通

DAC12_0CTL=DAC12IR+DAC12AMP_5+DAC12ENC;

//内部参考源为1

DAC12_1CTL=DAC12IR+DAC12AMP_5+DAC12ENC;

DAC12_0DAT=0x800;

//1.25V

DAC12_1DAT=0x800;

IE1|=WDTIE;

//使能WDT中断

_EINT();

//使能中断

xdata=50;

a1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 城乡园林规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1