DSP应用技术实验指导书.doc_第1页
DSP应用技术实验指导书.doc_第2页
DSP应用技术实验指导书.doc_第3页
DSP应用技术实验指导书.doc_第4页
DSP应用技术实验指导书.doc_第5页
免费预览已结束,剩余13页可下载查看

下载本文档

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

文档简介

DSP应用技术实验指导书蒋书波南京工业大学自动化学院2005-08-16目 录实验一 CCS集成开发环境2实验二 数据的寻址方式 7实验三 FIR数字滤波器 12实验一 CCS集成开发环境一实验目的1 了解TMS320C54X汇编语言程序的基本格式,数字信号处理器系统的基本开发过程。2 初步熟悉CCS集成开发环境的使用,以及开发过程。3 初步熟悉软件Simulink仿真的使用方法。二实验内容1 启动CCS集成开发环境。2 创建新工程(Project),并且在工程中加入汇编语言文件(.ASM文件)和控制文件(.CMD文件)。3 对新建的工程进行编译及链接,生成DSP可执行文件(.OUT文件)。4. 加载程序,对生成的DSP可执行文件(.OUT文件)进行软件仿真。要求:l 了解软件仿真的操作过程,熟悉各窗口的操作。l 运行程序(包括单步执行)。l 检查、修改CPU寄存器的内容。l 检查、修改存储器单元的内容。l 断点的设置、检查和撤销。l 用观察窗口检查变量或存储单元的内容。l 了解部分其他命令。三实验设备及仪器CCS的集成开发环境。四. 实验步骤1 启动CCS集成开发环境如果你第一次使用CCS集成开发环境,而且拖动DSK板的话,请在启动你的PC机的时候,在BIOS里把PC机的并口模式设置成EPP模式,然后双击CCSsetup快捷方式,配置目标板为我们的仿真实验板,保存设置后退出CCSsetup,随即启动CCS。当然,如果以前已经使用过了此集成开发环境,则这个配置过程可以省略。而直接双击快捷方式以启动CCS。2 创建新工程打开CCS集成开发环境后,要创建新工程:ProjectNew,然后出现如下对话框:图1-1创建工程在空白处键入所要创建的新工程的名称,location一栏可以选择新工程所在目录。按“完成”键即创建了一个新的工程。一般情况下最好将新工程创建在CCS安装目录下的myprojects文件夹里。新的工程还需要配置各种文件,如.cmd文件.asm文件等。在新的工程里加入文件的方法如下:在工程窗口中右键点击Projects,选择Open Project打开刚才新创建的工程,而后再右键点击打开的工程,选择Add Files即可以选择加入各种需要的文件。一般情况下,需要先将要加入的文件拷贝到和新创建的工程的同一个目录下。3 编译和连接工程在工程窗口中双击源文件,则编辑窗口显示要编辑的源文件,点击按钮或者选择Project Compile file即可编译文件;源文件编译通过后还要进行构建,方法是:点击按钮或选择ProjectBuild;如果出现错误,可以根据提示信息在编译窗口中修改编辑,然后再次编译、构建,直到没有错误为止。4 加载程序并进行软件仿真程序编译和连线都没有错误后,下一步的工作就是加载程序以进行软件仿真。方法是FileLoad Program,然后选择.OUT文件(可能在Debug目录下也可能与Debug文件夹在同一目录下),打开即加载成功。这样的软仿真的前序工作就基本上完成了。l 图1-3给出了仿真中经常用的几个窗口,编辑窗口中两个窗口是源文件窗口和反汇编窗口,下面的两个是观察窗口和CPU寄存器窗口。其中观察窗口可以用来观察你想要看的各个寄存器的值,而且十进制、十六进制可选;CPU寄存器窗口用来观察各个CPU寄存器的值在程序执行过程中的变化。l 加载.OUT文件后要运行程序可以从菜单中选择DebugRun、Step Into、Step Over、Step Out、Run Free,这样就可以运行程序了,其中Run是直接运行程序但如果有断点将停止运行;Step Into是单步执行;Step Over是跳过;Run Free是忽略断点运行程序。图1-2 仿真的常用窗口l 常用窗口显示方法为,反汇编窗口:ViewDisassembly;观察窗口:ViewWatch Windows;CPU寄存器显示:ViewCPU Registers;在运行程序时大家应注意仔细观察程序的运行位置和相关寄存器的值的变化,并核实是否和理论相一致。l 如果要检查、修改某个寄存器的值,双击该寄存器,则会弹出对话框如图1-3: 图1-3 修改寄存器 图1-4 修改存储器在其中输入期望值,点Done即可。也可以选择菜单中EditRegister,弹出图1-3的对话框。l 要修改存储单元的值,双击该寄存器单元,弹出图1-4的对话框;选择相应的地址和页,输入期望的值,就完成了修改的工作。当然也可以选择从菜单EditMemory,弹出图1-4的对话框进行修改。l 断点的设置在调试程序时,经常要设置断点,方法是将光标定在需要设置断点的地方,然后用鼠标双击该行的前面,则该行的前面出现一个红色的点。如下图所示:图1-5 断点的设置断点设置也可以使用工具栏上的快捷图标,如果要取消断点,则可以使用工具栏快捷图标,断点取消后,源文件的断点处的红点即消失。l 使用观察窗口来观察某个寄存器或存储单元的值;观察窗口如下图所示:图1-6 观察窗口要想观察某个存储单元的值,只需要在Name一栏中键入要显示的存储单元的名称,按回车键即可观察到它的内容。而且显示的数据格式可设置。l 其他命令:CCS的功能还有很多,大家在实验的过程中可以逐步学习掌握。实验二 数据的寻址方式一实验目的1 熟悉TMS320C54X的各种寻址方式。2 初步熟悉CCS集成开发环境的使用,以及开发过程。3 初步熟悉软件仿真的使用方法。二实验内容1 启动CCS集成开发环境。2 创建新的工程,并且在工程中加入汇编语言文件(.ASM文件)和连接命令文件(.CMD文件)。3 对新建的工程进行编译及连接,生成DSP可执行文件(.OUT文件)。4加载程序,对生成的DSP可执行文件(.OUT文件)进行软件仿真。要求:l 从而了解软件仿真的操作过程,熟悉各窗口的操作。l 运行程序(包括单步执行)。l 检查、修改CPU寄存器的内容。l 检查、修改存储器单元的内容。l 断点的设置、检查和撤销。l 用观察窗口检查变量或存储单元的内容。l 其他命令。三实验设备及仪器1. DSP的集成开发环境。2. DSP的七种寻址方式:立即寻址;绝对寻址;累加器寻址;间接寻址;存储器映像寄存器寻址;堆栈寻址。四. 注意事项需要注意的是本次实验给出的例子中有7种寻址方式,实验时要逐个运行,充分理解各种寻址方式,并学会初步使用CCS软件仿真。五. 实验步骤TMS320C54X的寻址方式有:立即寻址;绝对寻址;累加器寻址;直接寻址;间接寻址;存储器映像寄存器寻址;堆栈寻址等。1启动CCS集成开发环境。在CCSsetup 中将CCS设置成sim54x方式后可按实验一的方法启动CCS集成开发环境。2创建新的工程,将实验给出的示例加到新建的工程中,要注意示例中给出的是7种寻址方式的例子,需要分别加载到不同的新工程中。方法如同实验一。3对新建的各个工程进行编译和连接,生成.OUT文件。4加载程序:FileLoad Program,然后选择.OUT文件(可能在Debug目录下也可能与debug文件夹在同一个目录下),打开即加载成功,下面就可以进行软件仿真。软件仿真常用的窗口如下图:编辑窗口中三个小窗口分别是源文件窗口(.asm)、反汇编窗口(Disassem)、存储器窗口(Memory)。下面的两个窗口分别是CPU寄存器窗口和外围寄存器窗口。l 加载.OUT 文件后要运行程序可以从菜单中选择DebugRun、Step Into、Step Over、Step Out、Run Free,这样就可以运行程序了,其中Run是直接运行程序但如果有断点将停止运行;Step Into是单步执行;Step Over是跳过;Run Free是忽略断点运行程序。l 仿真常用窗口的操作如下:反汇编窗口显示方法为选择ViewDisassembly;存储器窗口显示方法为选择ViewMemory;CPU寄存器窗口显示方法为ViewCPU RegisterCPU registers;外围寄存器窗口的显示方法为ViewCPU RegisterPeripheral regs;其他窗口可以在使用中慢慢摸索。图2-1 软件仿真常用窗口l 运行程序:此时最好将常用的几个寄存器显示窗口打开以便于观察,一般如果寄存器的值有变化,将会显示成红色。在调试程序时最好采取单步执行的方式,此时应注意观察寄存器的值的变化,同时观察源程序或反汇编窗口中左边黄色箭头的指示位置,看程序执行到哪一步,与寄存器中的变化值是否相一致。图2-2 单步执行时的反汇编窗口l 检查和修改CPU寄存器的值打开CPU寄存器窗口,当运行程序时,各个寄存器的值即可以观察到,如果要修改寄存器的值,可双击要修改的寄存器,就会出现下面的对话框,在其中输入要修改的值,点击“Done”按钮即可。l 检查和修改存储单元值的方法与上述相同 图2-3 修改CPU寄存器的对话框 图2-4 修改存储单元的值l 断点的设置方法为:在源程序中将光标定在需要设置断点的位置,点击按钮即可;也可以在需要设置断点的位置前双击即可。已经设置的断点处会有一个黄色的点。如图2-5:图2-5 断点设置当断点设置好之后,按F5键运行程序时可以看见,程序运行到断点处便停止,但如果采用单步执行方式时,断点将被忽略;如果要取消断点,既可以在原来的断点处双击也可以将光标定在要取消的断点处,然后点击按钮l 观察窗口启动观察窗口:ViewWatch Window然后在Name栏中输入要观察的寄存器的名称,按回车键即可以显示出寄存器的值。图2-6 观察窗口上图为使用观察窗口所观察的几个寄存器时的状况;l 其他的一些常用命令如Quick Watch、Graph等需要在实验过程中慢慢学习和使用。 实验三 FIR数字滤波器一实验目的数字滤波的作用是滤除信号中某一个部分频率分量。信号经过滤波处理,就相当于信号频谱与滤波器的频率响应相乘的结果。从时域来看,就是输入信号与滤波器的冲激响应作卷和。数字滤波器在各种领域有广泛的应用,例如数字音响、音乐和语音合成、噪声消除、数据压缩、频率合成、谐波消除、过载检测、相关检测等。本实验学习数字滤波器的DSP实现原理和C54X编程技巧。二实验内容本实验需要使用C54X汇编语言实现FIR滤波器。a) 设计FIR滤波器的系数可以使用数字滤波器辅助设计软件包或自行计算FIR滤波器的系数。注意,FIR滤波器系数设计时,系统采样频率应和实际采样频率设置一致。本实验例子中使用的是一个34阶的对称结构的FIR低通滤波器,其采样频率Fs为20KHZ,通带截止频率为4KHZ,阻带截止频率为7KHZ,阻带衰减为-40dB,其系数使用Matlab中的FDA或软件编程得到。b) 编写实验程序代码本实验基于Code Composer Studio开发系统平台进行滤波计算。输入数据通过开发系统File I/O功能完成待处理数据的输入,并将输入数据送入输入数据Buffer,运算结果也输出到输出Buffer中,通过开发系统的相应图形功能加以显示。输入数据为流文件,文件名rect.dat,表征采样率20KHZ的1KHZ的方波信号。在实际应用中,须根据应用系统加入输入输出控制模块。FIR滤波器数据窗口Buffer设置在2000h,输入数据Buffer在2100h,输出数据Buffer在2200h。图3-1 实验框图c) 在Code Composer Studio开发系统上调试运行,观察结果。a) 完成程序代码的编写和出入,建立一个名为fir的Project,加入vector.asm中断向量表文件和fir.cmd命令字文件,Build生成可执行的COFF文件。b) 在File菜单中选取Load Program命令将coff文件装入DSP系统。c) 在Dis-Assemble Windows中选择一行指令,加入Probe Point探测点用以输入信号对应的数据流文件rect.dat,建议使用程序空间的0x1433地址指令nop。在File I/O框中加入文件,同时确定输入地址0x2100(fir_in_buff)和长度0x100(fir_buff_size),然后在选定Wrap Around和使能Probe Point。d) 为显示输入信号图形,选取ViewGraphTime/Frequency,改变Star Address的地址为fir_in_buff。为显示输出的运算结果,选取ViewGraphTime/Frequency,改变Star Address的地址为fir_out_buffe) 使用Run菜单中的Animate命令,加以观察和调试。三实验设备及仪器DSP的集成开发环境。四. 实验要求本实验重点研究FIR滤波器的DSP实现方法,没有讨论FIR滤波器的设计原理和方法。用户可以使用数字滤波器辅助设计软件包或自行计算FIR滤波器的系数。本实验例子中使用的是一个20阶的对称结构的FIR低通滤波器,其采样频率Fs为20KHZ,通带截止频率4KHZ,阻带截止频率为7KHZ,阻带衰减为-40dB。五. 实验原理设FIR滤波器的系数为h(0),h(1),h(N-1),X(n)表示滤波器在n时刻的输入,则n时刻的输出为:y(n)=h(0)x(n)+h(1)x(n-1)+h(N-1)Xn-(N-1)使用MAC或FIRS指令可以方便地实现上面的计算。图3-1说明了使用循环寻址实现FIR滤波器的方法。为了能正确使用循环寻址,必须先初始化BK,块长为N。同时,数据缓冲区和冲激响应(FIR滤波器的系数)的开始地址必须是大于N的2的最小次方的倍数。例如,N=11,那么数据缓冲区的第一地址应是16的倍数,开始地址的最低4位必须是0。图3-1 FIR滤波器存储器里的数据存储方式在图3-1中,滤波系数指针初始化时指向h(N-1),经过一次FIR滤波计算后,在循环寻址的作用下,仍然指向h(N-1)。而数据缓冲区指针指向的是需要更新的数据,如x(n)。在写入新数据并完成FIR运算后,该指针指向x(n-(N-1)。所以,使用循环寻址可以方便地完成滤波窗口数据的自动更新。使用带MAC指令的循环寻址模式实现FIR滤波器的程序片段如下:(输入数据在AL中,滤波结果在AH中)STM #1,AR0 ;AR0=1STM #N,BK ;BK=N,循环寻址BUFFER大小为NSTL A,*FIR_DATE_P+% ;更新滤波窗口中的采样数据RPTZ A,#(N-1) ;重复MAC指令N次,先将A清零MAC *FIR_DATE_P+0%,*FIR_COFF_P+0%,A ;完成滤波计算。注意FIR滤波系数存放在 ;数据存储区为FIR_COFF_P指定。在上面的程序片段中的MAC指令使用了两个操作数;DSP系统要求这两个操作数均在双访问数据空间中。许多应用场合,由于双访问存储器无法满足要求(如大小,资源紧张程度等),而对DSP的滤波速度要求不高时,则可以使用MACP指令,用下面程序片段完成:STM #1,AR0 ;AR0=1STM #N,BK ;BK=N,循环寻址BUFFER大小为NSTL A,*FIR_DATE_P+% ;更新滤波窗口中的采样数据RPTZ A, #(N-1) ;重复MACP指令N次,先将A清零MAC *FIR_DATE_P+0%,COEFFS,A ;完成滤波计算。注意FIR滤波系数存放在 ;程序存储区中,为COEFFS指定其首址另一种方法是利用C54x系列芯片的提供的FIRS指令来实现FIR滤波器。图3-2为一种有限单位冲激响应呈现对中心点对称的FIR滤波器。长度为N的线性相位FIR滤波器的输出表达式为:图3-2 N阶均衡FIR滤波器框图要利用FIRS指令,需要将输入数据缓冲分成两个,循环缓冲区大小寄存器的值设为N/2。设辅助寄存器AR2指到缓冲区1(Buffer1)的顶部,AR3指到缓冲区2(Buffer2)的底部。每次进行滤波之前,应先将缓冲区1顶部的数据移到缓冲区2的底部,新来的一个样本存储到缓冲区1中时,并对缓冲区1指针AR2加1(使用循环寻址)。处理器然后使用FIRS指令进行乘加运算,即h(0)x(0)+x(-N+1)。当然,在使用FIRS指令前,需要预先计算一次求和,以便初始化A。在RPTZ重复指令和循环寻址的配合下,完成FIR滤波,滤波完成后,需要对两个数据缓冲区的指针进行修正,以便对下一个点进行处理

温馨提示

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

评论

0/150

提交评论