郭万有DSP实验2_第1页
郭万有DSP实验2_第2页
郭万有DSP实验2_第3页
郭万有DSP实验2_第4页
郭万有DSP实验2_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、实验二实验目的: 了解DMA通信基本原理,掌握内存与SDRAM间一维DMA通信方式、二维DMA通信方式以及相关控制方法。学习数字滤波器设计方法,掌握其调试步骤,使学生加深对IIR的理解,进一步提高对数字信号处理理论的认识。实验任务:u 实验1:内存与SDRAM间的一维DMA通信实验u 实验2:内存与SDRAM间的二维DMA通信实验u 实验3:无限脉冲响应数字滤波器(IIR)的设计实验实验内容:l 实验1内存与SDRAM间的一维DMA通信实验l 实验原理DMA是一种不需要处理器内核干预的数据传输机制,作为一种后台任务执行,即进行DMA传输时,处理器可以处理其它任务。如果使能了DMA中断,那么当数

2、据传输结束后会产生中断信号,表示DMA传输已经完成。DMA传输方式包括:一维DMA、二维DMA、链式DMA、AutoDMA等,本次实验使用一维DMA方式,即传输存储器中一段连续的数据(地址是相邻接的)。若要利用DMA传输数据,首先应配置DMA传输控制块(TCB)寄存器。DMA传输的数据具有方向性,即从发送端(源)到接受端(目的),若为外部存储器DMA传输,则需要设置两个TCB参数,一个源TCB,用于描述源数据的地址、大小和每次传输数据的长度等;还有一个目的TCB,用于描述数据传入的目标地址、数据大小及每次传输数据的长度等。若要使能DMA中断,也需要在TCB中设置相应位。若使用链路或AutoDM

3、A通道则只需一个目的TCB。设置好TCB寄存器后,DMA传输自动开始。TS201S一共14个DMA通道,4个通道(03)专用于外部存储器设备,8个通道(411)用于链路口,2个通道(1213)用于自动DMA操作。本次实验使用DMA0通道实现内存与外部存储器SDRAM间的一维DMA通信。相关的寄存器:1TCB寄存器TCB寄存器是一个128位的四字组寄存器,由DI、DX、DY和DP寄存器组成:a)DI是DMA索引寄存器,包括了将要发送或者接收的数据的源地址或者目的地址,既可以指向内部存储器又可以指向外部存储器,也可指向链路口b)DX包含了一个16位(高)的计数值和一个16位的修改量,若使能了二维D

4、MA则该寄存器保存的只是X方向的计数值和修改量c)DY与DX结合一起使用,保存了Y方向上的16位计数值和16位修改量。如果只进行一维DMA传输,就不需要设置该寄存器。d)DP寄存器包括了DMA所有控制信息,分为两个主要段 3122210DMA控制链式指针&链标记(用于链式DMA)对DP寄存器各位功能说明:位说明位说明014四字地址(TCB指针)2526操作数据长度:01=32位,10=64位,11=128位1516链指针选择存储单元1721链目的通道27二维DMA使能22使能链式DMA28DMA请求优先级,0=正常优先级,1=高优先级23DMA请求使能24DMA中断使能2931指定DM

5、A设备类型2中断屏蔽寄存器(IMASK) IMASK是一个64位寄存器,由IMASKH和IMASKL组成,当IMASK中某位被设置成1的时,那么将响应这个位所对应的中断。DMA0中断对应在IMASKL中的第14位,所以我们要取消对DMA0中断的屏蔽,使能DMA0中断,可以通过如下指令实现:xr0=0x4000; /*0x4000= B 0100 0000 0000 0000 */IMASKL=xr0;xr0=0;IMASKH=0也可以直接使用如下指令实现,原理是一样的,下面的方法更为直观一些。xr0=INT_DMA0; /* INT_DMA0在头文件中的定义的值为0x4000*/IMASKL=

6、xr0;l 实验步骤:1)启动VisualDSP+,新建工程命名为”test2_1”,路径选择为”D:DSP”,并将源代码文件夹下默认生成的test2_1.c文件移除; 2)新建空白文件(选择菜单FileàNewàFile),输入参考源代码,保存为DMA_1.asm,并将其添加到工程中;3)分析、理解源程序,并编译文件纠错;4)建立链接文件(选择菜单ToolsàExpert LinkeràCreate LDF)4)编译整个工程,若出现错误“The following symbols referenced in processor 'p0'

7、 could not be resolved: 'main _main' referenced from 'ts_hdr_TS201.doj'”则说明声明的程序段/数据段(变量)所存放到了不能被执行的位置,导致该程序段/数据段(变量)没有被分配到相应的存储空间。处理方式:打开生成的LDF链接文件,在打开的Expert Linker窗口中将红叉项下的DMA1.obj添加(用鼠标拖拽)到MSSD0存储区(由于TS201S将外部存储器SDRAM地址映射到了0x4000 0000到0x7FFF FFFF之间的四个部分:MSSD03,所以我们将DMA1.obj添加至其中之

8、一即可,由于开发板上SDRAM是映射在MSSD0,为方便以后实验,直接添加至MSSD0即可)。5)重新编译工程,为方便观察存储器内相应地址其内容变化,在_Done处设置断点,同时打开两个存储器观察窗口(选择菜单Memory->TigerSHARC Memory)分别输入tx_data和rx_data。6)运行(RUN)工程,程序自动运行至_Done后停止,观察tx_data内数据值,然后单步运行程序(按F11键),观察rx_data内数据变化。l 实验结果:1.未修改时的实验结果:2. 修改程序后运行的结果:3. DMA传输的实验结果:l 结果分析:由实验结果图1可以看出,代码修改前传输

9、了4个字的数据;而从实验结果图2可以看出,代码改为传输一个字后,发送的数据只接受收到一个字长度的数据;由实验结果3可以看出,改为DMA传输后,发送的所有数据均接收到了。l 实验2内存与SDRAM间的二维DMA通信实验l 实验原理二维DMA将存储区中的数据块作为一个数据阵列进行传输,有利于执行矩阵操作的DSP算法。若要进行二维DMA传输,对DX、DY寄存器都要进行设置,同时在DP寄存器中使能二维DMA(第27位)。DX增量寄存器(DX低16位)保存的是偏移值,此值加上当前地址后指向X维的下一数据元素(下一内循环首址),DX计数寄存器(DX高十六位)保存在X维方向(循环内部)需要传输的字数,传输一

10、次减一,可以指示当前行中待传输的字数。DY增量寄存器保存的是Y维方向(外循环)的偏移值,此值加上当前地址可以指示Y维方向上下一个数据元素(下外循环的首址)。DY计数寄存器初始值是Y维的传输单元数(外循环次数),每当DX计数器减少至零时,其值才减一。当Y计数寄存器内容减为零时,DMA传输完成。二维DMA的具体执行过程:1 输出保存在TCB DI寄存器中的当前地址,启动一个DMA存储器周期;2 在此周期内,将TCB DX增量寄存器中的值与当前DI寄存器中的当前地址相加,产生下一个要访问的数据元素地址,同时更新DI寄存器的值;3 DX计数器的值减一,然后跳回第二步执行,直至DX计数器值减为零;4 D

11、X计数器减为零后,DX计数器被重新加载原来的初始值;5 DY增量寄存器的值加到DI寄存器中的当前地址;6 DY计数寄存器内容减一,然后从第二步继续开始执行,直至DY计数器减少至零,完成二维DMA传输。相关寄存器说明:TCB寄存器TCB寄存器是一个128位的四字组寄存器,由DI、DX、DY和DP寄存器组成:a) DI是DMA索引寄存器,包括了将要发送或者接收的数据的源地址或者目的地址,既可以指向内部存储器又可以指向外部存储器,也可指向链路口b) DX包含了一个16位(高)的计数值和一个16位的修改量,若使能了二维DMA则该寄存器保存的只是X方向的计数值和修改量c) DY与DX结合一起使用,保存了

12、Y方向上的16位计数值和16位修改量。如果只进行一维DMA传输,就不需要设置该寄存器。d) DP寄存器包括了DMA所有控制信息,分为两个主要段21310DMA控制链式指针&链标记(用于链式DMA)22对DP寄存器各位功能说明:位说明位说明014四字地址(TCB指针)2526操作数据长度:01=32位,10=64位,11=128位1516链指针选择存储单元1721链目的通道27二维DMA使能22使能链式DMA28DMA请求优先级,0=正常优先级,1=高优先级23DMA请求使能24DMA中断使能2931指定DMA设备类型源代码中寄存器的对应关系:XR0 <> DI Regist

13、er XR1 <> DX Register XR2 <> DY Register XR3 <> DP Register DCS0 <>TRANSMITTE TCB REGISTERSYR0 <> DI Register YR1 <> DX Register YR2 <> DY Register YR3 <> DP Register DCD0<>RECEIVER TCB REGISTERSl 实验步骤1)启动VisualDSP+,新建工程命名为”test2_2”,路径选择为”D:DSP”,

14、并将源代码文件夹下默认生成的test2_2.c文件移除; 2)新建空白文件(选择菜单FileàNewàFile),输入参考源代码,保存为DMA_2.asm,并将其添加到工程中;3)分析、理解源程序,并编译文件纠错;4)建立链接文件(选择菜单ToolsàExpert LinkeràCreate LDF)4)编译整个工程,若出现错误“The following symbols referenced in processor 'p0' could not be resolved: 'main _main' referenced

15、from 'ts_hdr_TS201.doj'”处理方法同前一个实验。5)重新编译工程,为方便观察存储器内相应地址其内容变化,在_Done处设置断点,同时打开两个存储器观察窗口(选择菜单Memory->TigerSHARC Memory)分别输入tx_data和rx_data。6)运行(RUN)工程,程序自动运行至_Done后停止,观察tx_data内数据值,然后单步运行程序(按F11键),观察rx_data内数据变化。l 实验结果:1. 源代码执行后的结果:2.代码修改后运行的结果:3.代码修改为只接收奇数数据后的运行结果:l 结果分析:从实验结果图1可以看到,接收到了

16、发送地所有数据;从实验结果图2.1可以看出,发送的数据每隔一个字接收,从实验结果图2.2可以看到,接收了数据,并且是每隔一个字接收,且这一个字的数据丢失了;从实验结果图3可以看出,只接收了奇数数据,并且接收到的数据按顺序排列。l 实验3 无限脉冲响应数字滤波器(IIR)的设计实验l 实验原理所谓的数字滤波,指的是输入、输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分。数字滤波可分为无限脉冲响应(IIR)滤波和有限脉冲响应(FIR)滤波。本次试验利用VISUAL DSP+ 软环境SIMULATOR模拟实现无限脉冲响应(IIR)数字信号处理。无限脉冲响应(I

17、IR)的系统函数为: .公式1即如果输入为X(Z),输出为Y(N),则:Y(Z)=X(Z)H(Z),即.公式2本试验中利用的公式是对上面的公式2对了相应的形式变化,利用中间变量 .公式3那么 .公式4因此,本次试验设计了一个4阶IIR滤波,其对应的公式3和公式4的时域公式如下:wn=xn*scale+wn-1*a1+wn-2*a2+wn-3*a3+wn-4*a4公式5yn=wn+wn-1*b1+wn-2*b2+wn-3*b3+wn-4*b4公式6本次设计中系数a4,a3,a2,a1,b4,b3,b2,b1都是用户自己初始化的时候给定的且均为常数,其中x(n)是输入的数字序列。从公式5和公式6可

18、知,只要我们设定设计需要的a4,a3,a2,a1,b4,b3,b2,b1,以及初始化w(n-1), w(n-2), w(n-3), w(n-4),就可以得到我们所需要的滤波器了。滤波器算法中的变量分配:inputsN: 存放输入数据;coeffs2*SECTIONS:按顺序猘2, a4, b2,b4,a1, a3, b1, b3存放滤波器系数;delaylineSECTIONS:存放w(n-1), w(n-2), w(n-3), w(n-4)初始化值(此处滤波器设计为因果滤波器,n<0时w(n)全为0);outputN:存放计算结果。l 实验步骤:1)启动VisualDSP+,新建工程命名为”test2_3”,路径选择为”D:DSP”,并将源代码文件夹下默认生成的test2_3.c文件移除; 2)新建空白文件(选择菜单FileàNewàFile),输入参考源代码,保存为IIR.asm,并将其添加到工程中;3)分析、理解源程序,并编译文件纠错;4)编译整个工程;5)查看inputs和output的时域图和频谱图: 新建绘图窗口(选择菜单 ViewDebug WindowsPlotNew项)在Plot设置窗口中type设定为Line Plot

温馨提示

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

评论

0/150

提交评论