郭鹏正弦信号Word下载.docx
- 文档编号:17006109
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:19
- 大小:216.84KB
郭鹏正弦信号Word下载.docx
《郭鹏正弦信号Word下载.docx》由会员分享,可在线阅读,更多相关《郭鹏正弦信号Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
生产文件整理、PCB焊接调试。
周三:
系统调试。
周四~周五:
设计报告撰写。
周五进行答辩和设计结果检查。
3、参考资料
[1]张雄伟曹铁勇.DSP芯片的原理与开发应用.北京:
电子工业出版社
[2]刘教瑜曾勇单片机原理及应用武汉:
武汉理工大学出版社
[3]邹彦等.DSP原理及应用.北京:
中国水利水电出版社
[4]戴明祯等.TMS320LF2407A的结构、原理及应用.北京:
北京航空航天大学出版社
第1章课程设计任务要求
1.1课程设计任务
1)电源电路
2)复位电路
3)时钟电路
4)外部存储器总线接口电路(扩充一定容量的外部存储器)
5)仿真器接口电路
1.2课程设计要求
使用DSP产生300—4000HZ的正弦信号,要求使用计算法,并且频率可变、幅度可变、直流分量可变。
第2章设计思路
2.1设计原理
正弦波信号发生器已被广泛地应用于通信、仪器仪表和工业控制等领域的信号处理系统中。
通常有两种方法可以产生正弦波,分别为查表法和泰勒级数展开法。
查表法是通过查表的方式来实现正弦波,主要用于对精度要求不很高的场合。
泰勒级数展开法是根据泰勒展开式进行计算来实现正弦信号,它能精确地计算出一个角度的正弦和余弦值,且只需要较小的存储空间。
本次课程设计只要使用泰勒级数展开法来实现正弦波信号。
1.
产生正弦波的算法
在高等数学中,正弦函数和余弦函数可以展开成泰勒级数,其表达式为
若要计算一个角度x的正弦和余弦值,可取泰勒级数的前5项进行近似计算。
2.
正弦波的实现
⑴计算一个角度的正弦值
利用泰勒级数的展开式,可计算一个角度x的正弦值,并采用子程序的调用方式。
在调用前先在数据存储器d_xs单元中存放x的弧度值,计算结果存放在d_sinx单元中。
⑵计算一个角度的余弦值
利用余弦函数展开的泰勒级数的前五项计算一个角度的余弦值,可采用子程序的调用方式来实现。
调用前先将x弧度值放在数据存储器d_xc单元中,计算结果存放在d_cosx单元中。
⑶正弦波的实现
利用计算一个角度的正弦值和余弦值程序可实现正弦波。
其实现步骤如下:
第一步:
利用sin_start和cos_start子程序,计算45°
~0°
(间隔为0.5°
)的正弦和余弦值;
第二步:
利用sin(2x)=2sin(x)cos(x)公式,计算90°
的正弦值(间隔为1°
);
第三步:
通过复制,获得359°
的正弦值;
第四步:
将359°
的正弦值重复从PA口输出,便可得到正弦波。
在实际应用中,正弦波是通过D/A口输出的。
选择每个正弦周期中的样点数、改变每个样点之间的延迟,就能够产生不同频率的波形,也可以利用软件改变波形的幅度以及起始相位。
正弦波产生的流程图如图2.1所示。
图2.1正弦波产生的流程图
2.2总体方案设计
CCS本实验是基于CCS开发环境的。
是TI公司推出的为开发TMS320系列DSP软件的集成开发环境,是目前使用最为广泛的DSP开发软件之一它提供了环境配置源文件编译、编译连接、程序调试、跟踪分析等环节,并把软、硬件开发工具集成在一起,使程序的编写、汇编、程序的软硬件仿真和调试等开发工作在统一的环境中进行,从而加速软件开发进程。
通过CCS软件平台上应用C54X汇编语言来实现正弦信号发生装置。
总体思想是:
正弦波的波形可以看作由无数点组成,这些点与x轴的每一个角度值相对应,可以利用DSP处理器处理大量重复计算的优势来计算x轴每一点对应的y的值(在x轴取N个点进行逼近)。
整个系统软件由主程序和基于泰勒展开法的SIN子程序组成,相应的软件流程图如图2.2所示。
图2.2软件流程图
第3章硬件设计
3.1电源电路
电源电路的选择是系统设计的一个重要部分,设计好坏对系统的影响最大。
首先需要注意的是,为了减少电源噪音和相互干扰,数字电路和模拟电路一般要独立供电,数字的和摸拟的要分开,并最终通过一个磁珠在一点连在一起,用TPS7333Q进行3.3V电压的转换对最小系统供电。
电路图如图3.1所示。
图3.1电源电路
电源插孔J1标识为内正外负,5V稳压直流电源输入。
FUSE为自恢复保险;
7333电源转换芯片作为5V转3.3V的高性能稳压芯片。
并可提供上电复位信号。
该信号/RS_DSP接到DSP的复位引脚上。
7333输出后的10uF和0.1uF的电容不能省略,否则得不到稳定的3.3V电压。
电容滤波电路是滤去所得3.3V的非直流部分。
3.2复位电路
TMS320LF2407A内部带有复位电路,因此可以直接RS复位引脚外面接一个上拉电阻即可,这对简化外围电路,减少电路板尺寸很有用处,但是为了调试方便经常才管用手动复位电路。
复位电路图如图3.2所示。
图3.2复位电路
3.3PLL锁相环电路
TMS320LF2407A内部就有内部锁相环电路,可以从一个较低的外部时钟通过锁相环倍频率电路实现内部倍频。
TMS320LF2407A的PLL模块使用外部滤波器电路回路来一直信号抖动和电磁干扰,使信号抖动和干扰最小。
锁相环电路如图3.3所示。
图3.3锁相环电路
3.4晶振电路
DSP2407最小系统的时钟电路设计有两种工作方法。
一种是利用利用锁相环时钟模块中提供内部振荡电路,在DSP芯片的引脚XTAL1/CLKIN与XTAL2之间连接一晶体,启动内部振荡器。
另一种方法是不使用片内的振荡电路,完全由外部有源晶体振荡器产生时钟电路信号。
第二种方法比较复杂,这里使用第一种方法,如图3.4所示。
图3.4晶振电路
3.5JTAG仿真接口电路
JTAG是JOINTTESTACTIONGPOUP的简称,JTAG接口用于连接DSP系统板和仿真器,实现仿真器DSP访问,JTAG的接口必须和仿真器的接口一致,否则将无法连接上仿真器。
其连接图如图3.5所示。
图3.5JTAG仿真接口
3.6外部扩展存储器
DSP2407A仿真开发和脱机工作时使用不同的程序存储器。
在仿真开发时,DSP2407A使用片外扩展的SARAM作为程序存储器;
而在脱机工作时,DSP2407A使用片内的FLASH存储器作为程序存储器。
2407A片内RAM只有2K,如果要调试较大一些的程序的话就只能外扩RAM作为程序存储器。
外扩的RAM也可以作为数据存储器。
因为2407A内部RAM空间不足,数据采集大的场合,所有采样结果均保存在外部的CY7C1021中,CY7C1021在调试过程中作为程序的外部存储器,正常运行时作为AD采样结果的存储空间。
外部扩展总线接口电路如图3.6所示。
图3.6外部扩展总线接口电路
3.7其他引脚
1.为使TMS320LF2407A最小系统正常工作,在设计时需考虑一下四种类型电源,以满足DSP芯片工作。
CPU核电源:
CPU核3.3V引脚VDD,CPU核地引脚VSS。
I/O口电源:
I/O口3.3V引脚VDDO,I/O口地引脚VSSO。
PLL电源:
PLL3.3V引脚PLLVCCA,PLL地引脚VSS。
FLASH编程电源:
FLASH编程5V引脚VCCP。
应当把2407A以上所有电源引脚都接到各自供电电源上。
2.DSP其他引脚功能处理
READY接高电平,使其一直固定为有效的访问外部存储器状态。
ENA_144通过上拉电阻接3.3V,其意义为使外部接口信号有效。
VIS_OE可视为输出使能引脚,故悬空。
TP1、TP2测试引脚,悬空。
3.未用I/O引脚处理
对于未用的I/O引脚,如果缺省状态为输出引脚,则可以悬空不接;
如果缺省状态为输入引脚,可以将它们上拉或下拉为固定电平。
这样做有两方面原因:
一是悬空不接时,电平浮动,对于DSP是一种干扰;
二是输入引脚悬空,当高、低电平转换时,会产生功耗。
对于未用的I/O引脚,若没有做硬件处理,在软件初始化时把这些I/O引脚设置为输出引脚。
第4章软件设计
4.1程序流程
在电机控制和运动控制的应用中,PWM电路被设计为减少产生PWM波形的CPU开销和减少用户的工作量。
与比较单元相关的PWM电路其PWM波形的产生由以下器存器控制:
对于EVA模块,T1CON、COMCONA、ACTRA和DBTCONA;
对于EVB模块,T3CON、COMCONB、ACTRB和DBTCONB。
产生PWM的器存器设置:
设置和装载ACTRx寄存器;
如果使能死区,则设置和装载DBTCONx寄存器;
设置和装载T1PR或T3PR寄存器,即规定PWM波形的周期;
设置和装载COMCONx寄存器;
设置和装载T1CON或T3CON寄存器,来启动比较操作;
更新CMPRx寄存器的值,使输出的PWM波形的占空比发生变化。
程序流程图如图4.1所示。
图4.1程序流程图
4.2系统初始配置
unsignedintcmp=0x1000;
unsignedintuWork;
asm("
setcINTM"
);
/*关中断*/
asm("
setcSXM"
/*符号位扩展有效*/
clrcOVM"
/*累加器中结果正常溢出*/
clrcCNF"
/*B0被配置为数据存储空间*/
WDCR=0x6f;
WDKEY=0x5555;
WDKEY=0xaaaa;
/*关闭看门狗中断*/SCSR1=0x81fe;
/*DSP工作在40MHz*/
IMR=0;
/*屏蔽所有可屏蔽中断*/
IFR=0x0ffff;
/*清除中断标志*/
uWork=WSGR;
/*I/O引脚0等待*/
uWork&
=0x0fe3f;
WSGR=uWork;
波形输出:
CMPR1=0x3000;
/*比较单元1设置*/
CMPR2=0x3000;
/*比较单元2设置*/
CMPR3=0x3000;
/*比较单元3设置*/
CMPR4=0x3000;
/*比较单元4设置*/
CMPR5=0x3000;
/*比较单元5设置*/
CMPR6=0x3000;
/*比较单元6设置*/
第5章设计仿真结果及分析
图5.1程序仿真图
在ccs集成环境中实现正弦波能够起到防止干扰的作用,同时也大大地减小了波形的线性失真。
同时我们也能从中看出ccs能够精确地对各个角度进行计算得出相应的正弦值,幅度和频率易于调节,波形也较为稳定,抗干扰能力较强。
最重要的是这种设计方案简单可行,新颖实用,具有很高的实践和推广价值。
分析:
通过不断的发现错误、改正错误和调试,最终得到了所希望的图象,即正弦波信号。
总结
课程设计时间虽短,但是这次我也基本熟悉了一种新的集成开发环境CCS,学习新的知识的过程也是自己学习能力培养与提升的过程。
仿真器驱动程序的安装以及相应的配置流程也有了一定的了解。
仿真环境的配置,到工程的建立,文件的加载,到程序的仿真,与目标板的链接与调试,整个过程在摸索中逐渐熟悉。
对已有程序进行修改,重复相应的过程也能实现预定的功能,在短短的时间里能掌握这些基本就差不多了,由于有的需要配置的文件的缺失,无法完成对相应工程的配置设置,所以采用的参考例程里的程序,完成整个过程,这也是一个学习的过程。
做项目不是一个人的事,每个成员都应积极的参与,为整个项目的完成提供保障,团队的协作,尽可能的去发挥每个成员的专长,在整个项目的完成都能有所收获,这才应该是做项目的真正目的,加强同学之间的交流,用心付出,共同享受带给大家的成功的喜悦。
相关课程的学习只是个基础,在此基础之上对相应的硬件与软件结合,切实去体验一个芯片所能实现的各种功能,去发现所学的知识会在哪些方面用到,是如何应用,有怎样可以改进的方法,更深层次去掌握跟其他相关课程的交叉点,提升学习能力,从近期来看,可以为我们将要开始的毕业设计做准备,当做是一次练手,争取出色完成毕业设计,为四年的大学交出一份完美的答卷。
从长远看,为自己以后的工作也在一定程度的奠定基础,学习能力强了,自己就能比较快的接受新知识,更能适应社会对人才的要求。
相信团队的力量,同时也要提高个人解决问题的能力,让自己在团队中发挥的作用,将个人融入团队中,才能让自己有更大的收获。
好好珍惜每次锻炼学习的机会,不断提升自己,不断超越自己,成就人生美好的梦想!
参考文献
附录A程序清单
.mmregs
.defstart
.defd_xs,d_sinx,d_xc,d_cosx,sinx,cosx
sin_x:
.usect"
sin_x"
360
STACK:
STACK"
10H
k_theta.set286;
theta=pi/360(0.5deg)
start:
.text
STM#STACK+10H,SP
STMk_theta,AR0
STM0,AR1
STM#sin_x,AR6
STM#90,BRC
RPTBloop1-1
LDMAR1,A
LD#d_xs,DP
STLA,@d_xs
STLA,@d_xc
CALLsinx;
d_sinx=sin(x)
CALLcosx;
d_cosx=cos(x)
LD#d_sinx,DP
LD@d_sinx,16,A;
A=sin(x)
MPYA@d_cosx;
B=sin(x)*cos(x)
STHB,1,*AR6+;
AR6----2*sin(x)
MAR*AR1+0
loop1:
STM#sin_x+89,AR7;
sin91(deg.)-sin179(deg.)
STM#88,BRC
RPTBloop2-1
LD*AR7-,A
STLA,*AR6+
loop2:
STM#179,BRC;
sin180(deg.)-sin359(deg.)
STM#sin_x,AR7
RPTBloop3-1
LD*AR7+,A
NEGA
loop3:
STM#sin_x,AR6;
generatesinwave
STM#1,AR0
STM#360,BK
Bloop3
sinx:
.defd_xs,d_sinx
.data
table_s.word01C7H;
C1=1/(8*9)
.word030BH;
C2=1/(6*7)
.word0666H;
C3=1/(4*5)
.word1556H;
C4=1/(2*3)
d_coef_s.usect"
coef_s"
4
d_xs.usect"
sin_vars"
1
d_squr_xs.usect"
d_temp_s.usect"
d_sinx.usect"
d_l_s.usect"
SSBXFRCT
STM#d_coef_s,AR5;
movecoeffstable_s
RPT#3
MVPD#table_s,*AR5+
STM#d_coef_s,AR3
STM#d_xs,AR2
STM#d_l_s,AR4
ST#7FFFH,d_l_s
SQUR*AR2+,A;
A=x^2
STA,*AR2;
(AR2)=x^2
||LD*AR4,B;
B=1
MASR*AR2+,*AR3+,B,A;
A=1-x^2/72,T=x^2
MPYAA;
A=T*A=x^2(1-x^2/72)
STHA,*AR2;
(d_temp)=x^2(1-x^2/72)
MASR*AR2-,*AR3+,B,A;
A=1-x^2/42(1-x^2/72);
T=x^2(1-x^2/72)
MPYA*AR2+;
B=x^2(1-x^2/42(1-x^2/72))
STB,*AR2;
(d_temp)=x^2(1-x^2/42(1-x^2/72))
A=1-x^2/20(1-x^2/42(1-x^2/72))
B=x^2(1-x^2/20(1-x^2/42(1-x^2/72)))
(d_temp)=B
A=1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72)))
MPYAd_xs;
B=x(1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72))))
STHB,d_sinx;
sin(theta)
RET
cosx:
.defd_xc,d_cosx
d_coef_c.usect"
coef_c"
table_c.word0249H;
C1=1/(7*8)
.word0444H;
C2=1/(5*6)
.word0AABH;
C3=1/(3*4)
.word4000H;
C4=1/2
d_xc.usect"
cos_vars"
d_squr_xc.usect"
d_temp_c.usect"
d_cosx.usect"
c_l_c.usect"
STM#d_coef_c,AR5;
movecoeffstable_c
MVPD#table_c,*AR5+
STM#d_coef_c,AR3
STM#d_xc,AR2
STM#c_l_c,AR4
ST#7FFFH,c_l_c
A=1-x^2/56,T=x^2
A=T*A=x^2(1-x^2/56)
(d_temp)=x^2(1-x^2/56)
A=1-x^2/30(1-x^2/56);
T=x^2(1-x^2/56)
B=x^2(1-x^2/30(1-x^2/56))
(d_temp)=x^2(1-x^2/30(1-x^2/56))
A=1-x^2/12(1-x^2/30(1-x^2/56))
SFTAA,-1,A;
-1/2
B=-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))
MAR*AR2+
RETD
ADD*AR4,16,B;
STHB,*AR2;
cos(theta)
.end
MEMORY
{
PAGE0:
EPROM:
org=0E000H,len=1000H
VECS:
org=0FF80H,len=0080H
PAGE1:
SPRAM:
org=0060H,len=0020H
DARAM1:
org=0080H,len=0010H
DARAM2:
org=0090H,len=0010H
DARAM3:
org=0200H,len=0200H
}
SECTIONS
.text:
>
EPROMPAGE0
.data:
STACK:
SPRAMPAGE1
sin_vars:
DARAM1PAGE1
coef_s:
cos_vars:
DARAM2PAGE1
coef_c:
sin_x:
align(512){}>
DARAM3PAGE1
.vectors:
VECSPAGE0
}
电气信息学院课程设计评分标准
环节
项目
评价
优
良
中
及格
不及格
实践环节(70%)
1、设计方案合理性与创造性
2、开发板焊接及其调试完成情况
3、硬件设计或软件编程完成情况
4、硬件测试或软件调试结果*
5、解决问题能力及答辩情况
6、纪律和出勤情况
设计报告(30%)
1、设计报告内容完整、规范,
2、图纸正确、清晰,
3、设计步骤规范、正确,
4、设计结果可行
综合评价
课程设计成绩评定为:
□优□良□中□及格□不及格
指导老师签名:
________________
日期:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 正弦 信号