- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话: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.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 ***************************
*******************************************************************************
.mmregs
.def jump
.def start
.def b1,b2,b3,b4,a1,a2,a3
文档评论(0)