嵌入式DSP实验报告教程.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式DSP实验报告教程

一.DSP实验课中关于硬件程序设计和调试的心得。 DSP实验课是我首次接触的嵌入式硬件设计课程,虽然以前有过汇编语言的学习,但DSP所使用的汇编语言感觉与原来所学习的汇编有相似之处但有更多的不同。首先DSP为了强化自身的运算速度有其自身的一套独有的算法语句,比如块循环,改变了判断语句的使用使得计算效率有了很大的提高,另外对cmd文件的编写也是原来所没有的,我们需要自己对内存空间进行分配,注意有没有溢出,也可以清楚的看到数据在内存中的存储和改变。程序的大体结构与一般汇编相似,都是先申明定义数据变量,然后进入主函数,也可调用子函数。但要注意控制芯片时对端口的读写和对内部寄存器的修改,在cmd文件中也要指明程序入口。在程序中最大的难点就是对寄存器的灵活使用及块循环的设定,要在理解公式的基础上,准确的算出循环位数。一些不理解的函数可以通???选中函数按f1查询其用法,根据举例来判断是如何使用,具体循环多少次。在中断程序的设计中,则要注意语句的位数,有些指令是单周期,有些是双周期,在中断映射表的设计中,都要保证能够通过偏移地址找到正确的中断位置。 在调试程序时,首先保证编译不出现error,然后要调出CPU寄存器的值和内存映像,然后在程序中设断点,比如初始化的位置设断点,看是否初始化个数正确,在循环块语句前和程序结束前设断点看每次计算结果是否正确,循环位数是否正确。有时可能无法设断点,可以加几个nop语句然后在其位置设断点。内存和寄存器值改变时颜色会变红,但要注意可能计算时值未改变,则不会变红。如果内存原先有值,则可重启软件再测,可看的更清楚。 在和硬件结合设计时,要首先确定实验板的完好,在实验时要每次从最开始的试起,确定无误再进行下一步,要保留好历史版本。程序得不到想要的结果,也可先重启实验板,先确定不是硬件问题,再考虑程序的修改。 二.滤波参数的设计与纯软件测试 MATLAB参数设计 具体代码 clear all; clf; N=10000; fs=10000; dt=1/fs; k=1:N; f1=400; f2=800; f3=4500; y=sin(2*pi*f1*k*dt)+sin(2*pi*f2*k*dt)+sin(2*pi*f3*k*dt); lp=4000; wn1=2*lp/fs; [b,a]=cheby1(3,0.5,wn1); b=b/(8*1.0711); a=a/(8*1.0711); disp();disp(b); disp();disp(a); y1=filter(b,a,y); yf=fft(y,N); yf1=fft(y1,N); ypf=yf.*conj(yf); ypf1=yf1.*conj(yf1); f=(0:N/2-1); subplot(2,1,1) plot(f,ypf(1:N/2)); subplot(2,1,2) plot(f,ypf1(1:N/2)); 实验图像: CCS仿真结果: 三.Filter和AD程序合成的代码说明与解释 将AD/DA程序和FILTER程序结合成为滤波程序的过程 阶段一:达到定时器工作正常 调试AD/DA程序成功 修改“中断设置”和vector中的跳转,得到定时器采样程序 调试该程序,示波器上得到阶梯装输出 修改.cmd文件中内部空间参数 添加滤波程序的 .set,.usect,.def,.def到.mmregs中 添加滤波器初始化过程到AD初始化后 添加滤波程序到AD/DA取值输出之间 调试得到滤波结果 阶段二:达到输出滤波正常 ad.asm文件中的详细修改: 滤波器主要参数的定义赋值 滤波器中的.def .set .uset 的添加 ad和da程序的.def .set .uset 中断映射 主函数start 定时器设置采样频率10kHz 中断设置 写状态字 设定滤波器循环长度和CPU寄存器含义 等中断wait函数 用A做计数器并使AR5指向out-data 中断服务程序jump: 发出读信号,ad开始采样 等待几个周期查看波形 读ad采样结果存入out-data 中 使读信号无效 读其他端口是ad转换器的cs为高电平 滤波主体程序,使用B寄存器每次循环将B清零将结果给ar5 写da端口,将ar5的值从da输出 程序结束 具体程序如下: ******************************************************************************* ************ TLV1571调试程序ad.asm *************************** **************************************

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档