三相信号源设计.docx

上传人:b****4 文档编号:11342385 上传时间:2023-05-31 格式:DOCX 页数:22 大小:194.36KB
下载 相关 举报
三相信号源设计.docx_第1页
第1页 / 共22页
三相信号源设计.docx_第2页
第2页 / 共22页
三相信号源设计.docx_第3页
第3页 / 共22页
三相信号源设计.docx_第4页
第4页 / 共22页
三相信号源设计.docx_第5页
第5页 / 共22页
三相信号源设计.docx_第6页
第6页 / 共22页
三相信号源设计.docx_第7页
第7页 / 共22页
三相信号源设计.docx_第8页
第8页 / 共22页
三相信号源设计.docx_第9页
第9页 / 共22页
三相信号源设计.docx_第10页
第10页 / 共22页
三相信号源设计.docx_第11页
第11页 / 共22页
三相信号源设计.docx_第12页
第12页 / 共22页
三相信号源设计.docx_第13页
第13页 / 共22页
三相信号源设计.docx_第14页
第14页 / 共22页
三相信号源设计.docx_第15页
第15页 / 共22页
三相信号源设计.docx_第16页
第16页 / 共22页
三相信号源设计.docx_第17页
第17页 / 共22页
三相信号源设计.docx_第18页
第18页 / 共22页
三相信号源设计.docx_第19页
第19页 / 共22页
三相信号源设计.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

三相信号源设计.docx

《三相信号源设计.docx》由会员分享,可在线阅读,更多相关《三相信号源设计.docx(22页珍藏版)》请在冰点文库上搜索。

三相信号源设计.docx

三相信号源设计

信息与控制工程学院硬件课程设计说明书

三相信号发生器设计

学生学号:

学生姓名:

专业班级:

指导教师:

职称:

起止日期:

2013.4.22~2013.5.10

 

吉林化工学院

JilinInstituteofChemicalTechnology

硬件课程设计任务书

一、设计题目:

三相信号发生器设计

二、设计目的:

1.掌握三相信号发生器设计方法。

2.了解MSP430F169单片机硬件结构。

3.掌握MSP430F169系统的设计方法。

4.掌握直流稳压电源设计方法。

三、设计任务及要求

1.学习MSP430F169单片机等器件的工作原理及各引脚的说明,掌握该单片机系统的工作原理和设计方法。

利用MSP430F169等元器件完成单片机系统设计和焊装、调试。

2.使用单片机和运算放大器等电子元件实现三相正弦信号发生器电路设计。

3.完成基于MSP430F169单片机的三相正弦信号发生器程序设计和系统电路硬件焊装、调试。

四、设计时间及进度安排

设计时间共三周,具体安排如下表:

周次

设计内容

设计时间

第一周

学习MSP430F169等器件的工作原理、各引脚说明和编程方法,学习三相信号发生器设计原理,查找相关资料。

2013.4.22-2013.4.26

第二周

利用MSP430F169单片机等元器件完成三相信号发生器设计和焊装。

2013.4.29-2013.5.3

第三周

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

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

2013.5.6-2013.5.10

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

指导教师评语:

2013年5月11日

成绩

指导教师(签字):

硬件课程设计任务书1

引言3

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

1.1总体方案选择4

1.2器件的选择4

1.2.1控制芯片选择4

1.2.2显示器选择4

1.2.3键盘模块选择5

第二章系统硬件电路设计6

2.1单片机小系统设计6

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

2.1.2复位电路设计8

2.1.3按键电路设计8

2.2A相信号输出电路8

2.2.1隔直滤波电路设计8

2.2.2放大电路设计9

2.3B相信号输出电路9

2.4C相信号输出电路9

2.4.1求和电路设计10

2.4.2放大电路设计10

2.5显示电路设计10

2.6电源电路设计11

2.6.1单相桥式整流电路11

2.6.2滤波电路11

2.6.3稳压电路11

第三章程序设计13

3.1程序部分参数计算13

3.2各程序流程图13

3.2.1主程序流程图13

3.2.2看门狗14

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

4.1测试工具15

4.2测试数据15

结果分析15

结论16

参考文献17

附录18

引言

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

根据不同系统对信号的不同要求,人们希望信号源输出波形信号的幅值、频率可调,且频率准确、稳定;甚至在一些情况下还希望信号源能够输出相位关系确定的多路信号。

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

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

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

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

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

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

*双路正弦波数据表,存入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&0x01;

P1OUT=0x01;

P1OUT=0x00;

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];//ccr1Pwmcycle

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;}break;

case4:

setdata=xdata;N2=setdata;

init_TB();

break;

}

czb();

}

}

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

main函数

*******************************************

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2