版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据采集处理和控制系统设计 一 课程设计要求 1. 基本DSP硬件系统设计要求 基本DSP硬件系统以TMS320C54X系列为核心处理器,包括最小系统、存 储器扩展、显示器、键盘、 AD、 DA 等电路模块; 硬件设计画出主要芯片及电路模块之间的连接即可,重点考查电路模块方 案设计与系统地址分配; 设计方案以电路示意图为主,辅以必要的文字说明。 2. 基本软件设计要求 看懂所给例程,画出例程输出波形示意图; 修改例程程序,使之输出其它波形,如方波、三角波、锯齿波等均可; 设计方案以程序实现为主,辅以必要的文字说明。 3. 课程设计报告要求 硬件系统设计:设计思路、设计系统功能、主要芯片选型及使
2、用方法、设 计方案说明、电路示意图 软件系统设计: 示例程序功能解读及输出波形示意图、 设计软件功能、 设 计思路、实现源码(带程序注释) 报告总结 二 系统分析 利用实验箱的模拟信号产生单元产生不同频率的信号, 或者产生两个频率的 信号的叠加。在 DSP 中采集信号,并且对信号进行频谱分析,滤波等。通过键 盘或者串口命令选择算法的功能,将计算的信号频率或者滤波后信号的频率在 LCD 上显示。主要功能如下: 对外部输入的模拟信号采集到 DSP内存,会用CCS软件显示采集的数据 波形。 (2) 对采集的数据进行如下算法分析: 频谱分析:使用fft算法计算信号的频率。 对信号进行 IIR 滤波或
3、FIR 滤波,并且计算滤波前后信号的频率。 外部键盘或者从计算机来的串口命令选择算法功能,并且将结果在 LCD 上显示。 绘制出DSP系统的功能框图、使用 AD( Altium Designer )绘制出系统的原 理图和PCB版图。 在DSP中采集信号,用CCS软件显示采集的数据波形,以及对采集的数据 进行算法分析。 三 硬件设计 3.1 硬件总体结构 CLKS D15.O A19.O 20 CONTROL Power (73HD3XX) 11 1MX16BIT FLASH WE OE 复位电路 TMS32054X RESET CE 16 XDS510 JTAG 3.2 DSP模块设计 ss
4、ri kh 3 IWE yFllr旨 3.3电源模块设计 二: 2 4HND P2 二 rr 1 +5V icfi Olif 2S =C-I LDllF AV- 2S =C-I LDllF H21 v- =C:5 0uF F 22 22 fO T IV OJuF fO T IV 3 GND 将5V电源电压转换为3.3V和1.6V电源 3.4时钟模块设计 此处由外部晶振提供时钟信号 CLKX2 3 U3 nTTT vcc 1 ? MW l GND 1 CLKS GNL) GND 3.5存储器模块设计 DSP上只有一个读写控制信号引脚,而 FLASHt两个引脚,将读、写分开, 赢怎罰 岛 故在0E
5、上接一个非门电路,实现高时读,低时写。FLASH上的地址线和数据线 与DSP上的地址线、数据线相连 3.6 JATG模块设计 5 3.7 TMS320VC5416最小系统PCB版图 口 O 匚 S O O D O O O O O C O O G 14 o 10 板上包括了支持TMS320VC541独立运行的时钟电路、复位电路、Flash模块、 JTAG仿真接口电路以及电源模块等。为节省空间和材料,部分器件放在了反面。 四软件设计 4.1正弦波信号发生器 所给例程输出波形为正弦波,波形如下图所示: y 4.2三角波(方波)信号发生器 * * 三角波信号发生程序(括号内为方波)* * .mmreg
6、s .def start k1.usect k,1 outdatal .set 0800h(0800h) outdata2 .set 09ffh(0fffh) outdata3 .set 0affh(0fffh) 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) out
7、datall .set 0effh(0fffh) outdata12 .set 0dffh(0fffh) outdata13 .set 0cffh(0fffh) outdata14 .set 0bffh(0fffh) outdata15 .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(00
8、00h) outdata22 .set 03ffh(0000h) outdata23 .set 02ffh(0000h) outdata24 .set 01ffh(0000h) outdata25 .set 00ffh(0000h) outdata26 .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
9、07ffh(0000h) / 定义输出数据 .text start: stm 2000h,sp / 置堆栈指针 stm #k1,ar2 / 将操作数 #k1 装入 ar2 st #outdata1,*ar2 / 将数据送到 *ar2 nop nop begin: st #outdata1,*ar2 portw *ar2,0bfffh /将*ar2内容从D/A转换器输出 rpt #7fffh / 等待一段时间 nop nop st #outdata4,*ar2 portw *ar2,0bfffh rpt #7fffh nop st #outdata5,*ar2 portw *ar2,0bfffh
10、 rpt #7fffh nop st #outdata6,*ar2 portw *ar2,0bfffh rpt #7fffh nop st #outdata7,*ar2 portw *ar2,0bfffh rpt #7fffh nop st #outdata8,*ar2 portw *ar2,0bfffh rpt #7fffh nop st #outdata9,*ar2 portw *ar2,0bfffh rpt #7fffh nop st #outdata10,*ar2 portw *ar2,0bfffh rpt #7fffh nop st #outdata11,*ar2 portw *ar
11、2,0bfffh rpt #7fffh nop st #outdata12,*ar2 portw *ar2,0bfffh rpt #7fffh nop st #outdata13,*ar2 portw *ar2,0bfffh rpt #7fffh nop st #outdata14,*ar2 portw *ar2,0bfffh rpt #7fffh 7 nop st #outdata15,*ar2 portw *ar2,0bfffh rpt #7fffh nop st #outdata16,*ar2 portw *ar2,0bfffh rpt #7fffh nop st #outdata17,
12、*ar2 portw *ar2,0bfffh rpt #7fffh nop st #outdata18,*ar2 portw *ar2,0bfffh rpt #7fffh nop st #outdata19,*ar2 portw *ar2,0bfffh rpt #7fffh nop st #outdata20,*ar2 portw *ar2,0bfffh rpt #7fffh nop st #outdata21,*ar2 portw *ar2,0bfffh rpt #7fffh nop st #outdata22,*ar2 portw *ar2,0bfffh rpt #7fffh nop st
13、 #outdata23,*ar2 portw *ar2,0bfffh rpt #7fffh nop nop st #outdata26,*ar2 portw *ar2,0bfffh rpt #7fffh nop st #outdata27,*ar2 portw *ar2,0bfffh rpt #7fffh nop st #outdata28,*ar2 portw *ar2,0bfffh rpt #7fffh nop st #outdata29,*ar2 portw *ar2,0bfffh rpt #7fffh nop st #outdata30,*ar2 portw *ar2,0bfffh r
14、pt #7fffh nop st #outdata31,*ar2 portw *ar2,0bfffh rpt #7fffh nop st #outdata32,*ar2 portw *ar2,0bfffh rpt #7fffh nop b begin / 循环输出 32 个数据 .end / 代码段结束 4.3 本系统软件总体流程 系统各模块初始化 7 调用FIR滤波器设计函数设计系统函数 米集数据并调用FF和口卷计算法对信号进行处理 1 / 计算输入信号的频率和滤波后的信号频率 每采集256点计算频率参数 返回第三步 4.4核心模块及实现代码 piLe ngth,i ntn ,i nt k,
15、double FFT算法程序: void kfft(double prLe ngth,double frLength,double fiLength,int l,int il) int it,m,is,i,j,nv,IO; double p,q,s,vr,vi,poddr,poddi; for (it=0; it=n-1; it+) m=it; is=0; for (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=co
16、s(p); pi1=-si n(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=(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
17、+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); 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
18、.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; double xmean = 0.0; double xmid100; for(m=0;mh_Len;m+) xmidm = 0.0; for (m=0; mLeng; m+) xmean = xm + xmean
19、; 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 * hj; rm = rm + r; ym = rm; 最大值, k2 次最大值 求最大值和次大值函数: void max() int k1,k2; /k1 int r; for(r=0;r16;
20、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=data_buffj-sum; pij=0.0; FIR滤波器设计函数: 求 h(n) void firdes(double npass)/ int t; for (t=0; tFL
21、en; t+) ht=si n( (t-(FLe n-1)/2.0)* npass*3.1415926)/(3.1415926*(t-(FLe n-1) /2.0); if (t = (FLen-1)/2) ht=npass; 外部中断2服务函数: void in terrupt Extl nt2(void) int i1,j; *(u nsig ned in t*)IFR=0 xFFFF; /清除所有中断标志 data_buffi1 = port8002 i1+; if(i1 = 256) avg(); kfft(pr,pi,256,8,fr,fi,0,1); max(); npass=fc/250000.0; firdes( npass); Con volveok(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计算结果 17 51阶滤波器H(n)波形 滤波前后信号频谱图: 由滤波前后高低频分量的相对大小证明低通滤波器对高频分量的衰减作用比 较强,但没有完全滤出去 五课程设计总结 DSP芯片有更适合于数字信号处理的软件和硬件资源,非常适合于通用数字 信号处理的开发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年口腔疾病康复中心医师聘用与康复服务合同2篇
- 2025年度道路交通事故理赔处理合同2篇
- 二零二五年度门窗行业广告宣传与推广合同样本4篇
- 《伦理学课件善恶》课件
- 安全制度建设实现道路旅客运输企业安全目标的制度保障
- 二零二五年度差旅服务与出差补贴管理合同3篇
- 二零二五版高端集成房屋定制服务合同3篇
- 二零二五版金融衍生品交易定金借款合同3篇
- 2024年医护人员医德医风工作总结
- 2025年度抹灰班组建筑古建筑修缮施工合同范本2篇
- 拆迁评估机构选定方案
- 床旁超声监测胃残余量
- 上海市松江区市级名校2025届数学高一上期末达标检测试题含解析
- 综合实践活动教案三上
- 《新能源汽车电气设备构造与维修》项目三 新能源汽车照明与信号系统检修
- 2024年新课标《义务教育数学课程标准》测试题(附含答案)
- 医院培训课件:《静脉中等长度导管临床应用专家共识》
- 趣味知识问答100道
- 中国国际大学生创新大赛与“挑战杯”大学生创业计划竞赛(第十一章)大学生创新创业教程
- 钢管竖向承载力表
- 2024年新北师大版八年级上册物理全册教学课件(新版教材)
评论
0/150
提交评论