DSP课程设计报告_第1页
DSP课程设计报告_第2页
DSP课程设计报告_第3页
DSP课程设计报告_第4页
DSP课程设计报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据采集处理和控制系统设计一 课程设计要求1.基本DSP硬件系统设计要求基本DSP硬件系统以TMS320C54x系列为核心处理器,包括最小系统、存储器扩展、显示器、键盘、AD、DA等电路模块;硬件设计画出主要芯片及电路模块之间的连接即可,重点考查电路模块方案设计与系统地址分配;设计方案以电路示意图为主,辅以必要的文字说明。2.基本软件设计要求看懂所给例程,画出例程输出波形示意图;修改例程程序,使之输出其它波形,如方波、三角波、锯齿波等均可;设计方案以程序实现为主,辅以必要的文字说明。3.课程设计报告要求硬件系统设计:设计思路、设计系统功能、主要芯片选型及使用方法、设计方案说明、电路示意图软件系

2、统设计:示例程序功能解读及输出波形示意图、设计软件功能、设计思路、实现源码(带程序注释)报告总结二 系统分析利用实验箱的模拟信号产生单元产生不同频率的信号,或者产生两个频率的信号的叠加。在DSP 中采集信号,并且对信号进行频谱分析,滤波等。通过键盘或者串口命令选择算法的功能,将计算的信号频率或者滤波后信号的频率在LCD 上显示。主要功能如下: (1)对外部输入的模拟信号采集到DSP 内存,会用CCS 软件显示采集的数据波形。 (2)对采集的数据进行如下算法分析: 频谱分析:使用fft 算法计算信号的频率。 对信号进行IIR 滤波或FIR 滤波,并且计算滤波前后信号的频率。 外部键盘或者从计算机

3、来的串口命令选择算法功能,并且将结果在LCD 上显示。 绘制出DSP系统的功能框图、使用AD(Altium Designer)绘制出系统的原理图和PCB 版图。在 DSP 中采集信号,用CCS 软件显示采集的数据波形,以及对采集的数据进行算法分析。三 硬件设计3.1 硬件总体结构3.2 DSP模块设计3.3 电源模块设计将5V电源电压转换为3.3V和1.6V电源3.4 时钟模块设计此处由外部晶振提供时钟信号3.5 存储器模块设计DSP上只有一个读写控制信号引脚,而FLASH有两个引脚,将读、写分开,故在OE上接一个非门电路,实现高时读,低时写。FLASH上的地址线和数据线与DSP上的地址线、数

4、据线相连3.6 JATG模块设计3.7 TMS320VC5416 最小系统 PCB 版图板上包括了支持TMS320VC5416独立运行的时钟电路、复位电路、Flash模块、JTAG仿真接口电路以及电源模块等。为节省空间和材料,部分器件放在了反面。四 软件设计4.1正弦波信号发生器所给例程输出波形为正弦波,波形如下图所示:4.2三角波(方波)信号发生器 *三角波信号发生程序(括号内为方波)*.mmregs .defstart k1 .usect k,1outdata1 .set 0800h(0800h)outdata2 .set 09ffh(0fffh)outdata3 .set 0affh(0

5、fffh)outdata4 .set 0bffh(0fffh)outdata5 .set 0cffh(0fffh)outdata6 .set 0dffh(0fffh)outdata7 .set 0effh(0fffh)outdata8 .set 0fffh(0fffh)outdata9 .set 1000h(0fffh)outdata10 .set 0fffh(0fffh)outdata11 .set 0effh(0fffh)outdata12 .set 0dffh(0fffh)outdata13 .set 0cffh(0fffh)outdata14 .set 0bffh(0fffh)outd

6、ata15 .set 0affh(0fffh)outdata16 .set 09ffh(0fffh)outdata17 .set 08ffh(0800h)outdata18 .set 07ffh(0000h)outdata19 .set 06ffh(0000h)outdata20 .set 05ffh(0000h)outdata21 .set 04ffh(0000h)outdata22 .set 03ffh(0000h)outdata23 .set 02ffh(0000h)outdata24 .set 01ffh(0000h)outdata25 .set 00ffh(0000h)outdata

7、26 .set 01ffh(0000h)outdata27 .set 02ffh(0000h)outdata28 .set 03ffh(0000h)outdata29 .set 04ffh(0000h)outdata30 .set 05ffh(0000h)outdata31 .set 06ffh(0000h)outdata32 .set 07ffh(0000h)/定义输出数据 .textstart: stm 2000h,sp /置堆栈指针 stm#k1,ar2 /将操作数#k1装入ar2 st #outdata1,*ar2 /将数据送到*ar2 nop nopbegin:st #outdata

8、1,*ar2portw*ar2,0bfffh /将*ar2内容从D/A转换器输出 rpt #7fffh/等待一段时间nop st #outdata2,*ar2portw*ar2,0bfffh rpt #7fffhnopst #outdata3,*ar2portw*ar2,0bfffh rpt #7fffhnopst #outdata4,*ar2portw*ar2,0bfffh rpt #7fffhnopst #outdata5,*ar2portw*ar2,0bfffh rpt #7fffhnopst #outdata6,*ar2portw*ar2,0bfffh rpt #7fffhnopst

9、#outdata7,*ar2portw*ar2,0bfffh rpt #7fffhnopst #outdata8,*ar2portw*ar2,0bfffh rpt #7fffhnopst #outdata9,*ar2portw*ar2,0bfffh rpt #7fffhnopst #outdata10,*ar2portw*ar2,0bfffh rpt #7fffhnopst #outdata11,*ar2portw*ar2,0bfffh rpt #7fffhnopst #outdata12,*ar2portw*ar2,0bfffh rpt #7fffhnopst #outdata13,*ar2

10、portw*ar2,0bfffh rpt #7fffhnopst #outdata14,*ar2portw*ar2,0bfffh rpt #7fffhnopst #outdata15,*ar2portw*ar2,0bfffh rpt #7fffhnopst #outdata16,*ar2portw*ar2,0bfffh rpt #7fffhnopst #outdata17,*ar2portw*ar2,0bfffh rpt #7fffhnop st #outdata18,*ar2portw*ar2,0bfffh rpt #7fffhnopst #outdata19,*ar2portw*ar2,0

11、bfffh rpt #7fffhnopst #outdata20,*ar2portw*ar2,0bfffh rpt #7fffhnopst #outdata21,*ar2portw*ar2,0bfffh rpt #7fffhnopst #outdata22,*ar2portw*ar2,0bfffh rpt #7fffhnopst #outdata23,*ar2portw*ar2,0bfffh rpt #7fffhnopst #outdata24,*ar2portw*ar2,0bfffh rpt #7fffhnopst #outdata25,*ar2portw*ar2,0bfffh rpt #7

12、fffhnopst #outdata26,*ar2portw*ar2,0bfffh rpt #7fffhnopst #outdata27,*ar2portw*ar2,0bfffh rpt #7fffhnopst #outdata28,*ar2portw*ar2,0bfffh rpt #7fffhnopst #outdata29,*ar2portw*ar2,0bfffh rpt #7fffhnopst #outdata30,*ar2portw*ar2,0bfffh rpt #7fffhnopst #outdata31,*ar2portw*ar2,0bfffh rpt #7fffhnopst #o

13、utdata32,*ar2portw*ar2,0bfffh rpt #7fffhnopbbegin /循环输出32个数据.end/代码段结束4.3 本系统软件总体流程4.4 核心模块及实现代码 FFT算法程序:void kfft(double prLength,double piLength,int n,int k,double frLength,double fiLength,int l,int il) int it,m,is,i,j,nv,l0; double p,q,s,vr,vi,poddr,poddi; for (it=0; it=n-1; it+) m=it; is=0; for

14、(i=0; i=k-1; i+) j=m/2; is=2*is+(m-2*j); m=j; frit=pris; fiit=piis; pr0=1.0; pi0=0.0; p=6.283185306/(1.0*n); pr1=cos(p); pi1=-sin(p); if (l!=0) pi1=-pi1; for (i=2; i=n-1; i+) p=pri-1*pr1; q=pii-1*pi1; s=(pri-1+pii-1)*(pr1+pi1); pri=p-q; pii=s-p-q; for (it=0; it=0; l0-) m=m/2; nv=2*nv; for (it=0; it=

15、(m-1)*nv; it=it+nv) for (j=0; j=(nv/2)-1; j+) p=prm*j*frit+j+nv/2; q=pim*j*fiit+j+nv/2; s=prm*j+pim*j; s=s*(frit+j+nv/2+fiit+j+nv/2); poddr=p-q; poddi=s-p-q; frit+j+nv/2=frit+j-poddr; fiit+j+nv/2=fiit+j-poddi; frit+j=frit+j+poddr; fiit+j=fiit+j+poddi; if (l!=0) for (i=0; i=n-1; i+) fri=fri/(1.0*n);

16、fii=fii/(1.0*n); if (il!=0) for (i=0; i=n-1; i+) pri=sqrt(fri*fri+fii*fii); if (fabs(fri)0) pii=90.0; else pii=-90.0; else pii=atan(fii/fri)*360.0/6.283185306; 卷积程序:void Convolveok( /卷积函数 double *x,/原始输入数据 double *h,/冲击响应 double *y,/卷积输出结果 UINT16 Leng, / 序列长度 UINT16 h_Len) UINT16 m,p,j;double r,rm;d

17、ouble xmean = 0.0;double xmid100;for(m=0;mh_Len;m+)xmidm = 0.0; for (m=0; mLeng; m+)xmean = xm + xmean;xmean = 1.0*xmean/Length;for (m=0; mLeng; m+)xm = xm - xmean;for (m=0; mLeng; m+)for (p=0; ph_Len; p+) xmidh_Len-p-1 = xmidh_Len-p-2; xmid0 = xm;r = 0.0;rm= 0.0; for (j=0; jh_Len; j+) r = xmidj * h

18、j;rm = rm + r; ym = rm; 求最大值和次大值函数:void max() int k1,k2; /k1 最大值,k2 次最大值 int r; for(r=0;r16;r+) if(prk1prr) k1=r; for(r=20;r64;r+) if(prk2prr) k2=r; f0=250000.0/256*k1; f1=250000.0/256*k2; fc=(f0+f1)/2;归一化函数:void avg() int j; sum= 0.0; for(j=0;j256;j+) sum+=(data_buffj/256.0); for(j=0;j256;j+) prj=d

19、ata_buffj-sum; pij=0.0; FIR滤波器设计函数:void firdes(double npass)/求h(n) int t; for (t=0; tFLen; t+) ht=sin(t-(FLen-1)/2.0)*npass*3.1415926)/(3.1415926*(t-(FLen-1)/2.0); if (t = (FLen-1)/2) ht=npass; 外部中断2服务函数:void interrupt ExtInt2(void) int i1,j;*(unsigned int*)IFR=0xFFFF; /清除所有中断标志 data_buffi1 = port80

20、02 & 0x00ff; i1+; if(i1 = 256) avg(); kfft(pr,pi,256,8,fr,fi,0,1); max(); npass=fc/250000.0; firdes(npass); Convolveok(data_buff,h,y,256,51); for(j=0;j256;j+) yrj=yj; yij=0.0; kfft(yr,yi,256,8,Yr,Yi,0,1); flag=1; i1 = 0; 4.5 程序运行效果采集的数据及其FFT计算结果51阶滤波器H(n)波形滤波前后信号频谱图:由滤波前后高低频分量的相对大小证明低通滤波器对高频分量的衰减作用比较强,但没有完全滤出去采集数据波形与滤波后波形比较由图可见滤波后信号中的高频分量得到了较大的衰减,滤波后波形变得平滑。五 课程设计总结 DSP芯片有更适合于数字信号处理的软件和硬件资源,非常适合于通用数字信号处理的开发,为数字信号处理的应用打开了新局面。学好DSP技术具有非常重要的意义。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论