信号分析与处理实验:ch4_5 实验五利用DSP实现信号实时滤波_第1页
信号分析与处理实验:ch4_5 实验五利用DSP实现信号实时滤波_第2页
信号分析与处理实验:ch4_5 实验五利用DSP实现信号实时滤波_第3页
信号分析与处理实验:ch4_5 实验五利用DSP实现信号实时滤波_第4页
信号分析与处理实验:ch4_5 实验五利用DSP实现信号实时滤波_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、信号分析与处理实验信号分析与处理实验Projects of Signal Analysis and Processing 教育部电子信息与电气信息基础课程教学指导分委员会立项实验教材教育部电子信息与电气信息基础课程教学指导分委员会立项实验教材陈后金陈后金 郝晓莉郝晓莉 钱满义钱满义 高海林高海林高等教育出版社高等教育出版社 20062006年年一、实验目的一、实验目的1. 掌握直接存储器访问控制器DMA的结构与工作参数设置2. DSPLIB库中FIR滤波器函数调用规则3. 掌握综合利用A/D、D/A及DMA等资源进行信号实时滤波二、实验原理二、实验原理1. 利用DSP进行信号实时处理基本原理框

2、图2. DMA方式下数据处理流程示意图3. 直接存储器访问控制器(DMA)的结构4. DMA的工作参数设置5. TMS320C54x DSPLIB库滤波函数的调用6. 利用DSP进行实时信号滤波1. 利用DSP进行信号实时处理基本原理框图直接存储器访问直接存储器访问(Direct Memory Access)C5402有6个可独立编程的DMA通道:DMA0DMA5,允许6个不同的DMA操作。DMADMA特性:特性:完成数据传输而不影响完成数据传输而不影响CPUCPU,因此数据传输速度快。,因此数据传输速度快。应用场合:应用场合:在要求信号实时采集和处理的系统中常采在要求信号实时采集和处理的系统

3、中常采用用DMADMA方式进行信号采集与传输。方式进行信号采集与传输。1. 利用DSP进行信号实时处理基本原理框图存储器存储器外设外设CPUDMA2.DMA方式下数据处理流程示意图A/D转换完的数据被串口1的数据接收寄存器收到后,启动DMA2传输,将数据写到指定的数据接收缓冲区,通过DMA方式完成一次数据采集。当DMA2采集完一帧256个点数据后产生一次DMA2中断,通知CPU对其进行FIR滤波处理。于此同时DMA2按照设定继续采集数据,实现了数据采集与CPU处理的并行操作。在DMA2的中断服务程序中,DMA2接收缓冲区1中的数据经过FIR滤波处理后,放入DMA3的发送缓冲区1,同时启动DMA

4、3进行FIR数据到串口1的数据发送寄存器的DMA传输。FIR输入数据缓冲区分为3个,buffer、buffer+0 x100、buffer+0 x200;输出数据缓冲区分为2个,buffer+0 x300、buffer+0 x400;每个缓冲区的大小为256个点。输入输出缓冲区采用了“乒乓”方式,即输入1=输出1,输入2=输出2,输入2=输出2,输入3=输出1,输入1=输出2,2.DMA方式下数据处理流程3. 直接存储器访问DMA的结构 C5402有6个可独立编程的DMA通道:DMA0DMA5,允许6个不同的DMA操作。 DMA的操作由DMA寄存器控制 DMA寄存器分成两类:1. 通道寄存器:

5、指与每个通道特定设置相关的寄存器2. 全局寄存器:对所有通道都起作用的寄存器2. 直接存储器访问直接存储器访问DMA的结构的结构每个DMA通道受各自的5个16位寄存器控制源地址寄存器DMSRCDMSRC和目的地址寄存器DMDSTDMDST : 指明了数据传输读取和写入的位置单元计数寄存器DMCTRDMCTR : 规定DMA传送数据的个数(DMCTR值减1)同步事件和帧计数寄存器DMSFCDMSFC : 规定DMA传送数据的同步事件类型和传送一块数据所含帧信号的个数。传输模式控制寄存器DMMCRDMMCR : 规定了DMA通道的传输模式。2. 直接存储器访问直接存储器访问DMA的结构的结构全局寄

6、存器全局寄存器全局源地址重载寄存器DMGSA全局目的地址重载寄存器DMGDA全局单元计数重载寄存器DMGCR全局帧计数重载寄存器DMGFR 等帧传输模式下,帧传输模式下,DMGSA内容DMSRCnDMGDA内容DMDSTnDMGCR内容DMCTRnDMGFR内容DMSFCn4. DMA的工作参数设置dma_init( unsigned int channel /*IN: DMA channel number */ ,unsigned int dmsefc /*IN: Value to set sync & fr reg */ ,unsigned int dmmcr /*IN: Valu

7、e to set mode control reg */ ,unsigned int dmctr /*IN: Value to set element count reg */ ,unsigned int src_page /*IN: Value to set source page reg */ ,unsigned int src_addr /*IN: Value to set source addr reg */ ,unsigned int dst_page /*IN: Value to set dest page reg */ ,unsigned int dst_addr /*IN: V

8、alue to set dest addr reg */ )dmsefc = (DSYNC_REVT1 12); /DMA与与McBSP1接收事件同步接收事件同步/通过通过传输控制模式寄存器传输控制模式寄存器DMMCR设置设置数据传输模式。帧结束数据传输模式。帧结束DMA产生中产生中断;传输后源地址不修改,目的地址加断;传输后源地址不修改,目的地址加1,源地址和目的地址为数据空间等,源地址和目的地址为数据空间等dmmcr = (AUTOINIT_ENABLE 15) | (DINM_ENABLE 14) | (IMOD_HALFBLOCK 13) | (CTMOD_DEC 12) | (IND

9、EXMO DE_NOMOD 8) | (SPACE_DATA 6) | (INDEXMODE_INC 2) | (SPACE_DATA);dmctr = 0 xFF; /单元记数单元记数,期望传输数据减期望传输数据减1/将将MCBSP1的接收寄存器设为源地址的接收寄存器设为源地址src_addr = DRR1_ADDR(HANDSET_CODEC);/目的地址为数组目的地址为数组inp_buffer,即接收到的数据存放在即接收到的数据存放在inp_buffer中中dst_addr = (unsigned int) &inp_buffer;/初始化初始化DMA通道通道2dma_init(

10、DMA_CH2, dmsefc, dmmcr, dmctr, SPACE_DATA, src_addr , SPACE_DATA, dst_addr);dmsefc = (DSYNC_REVT1 12); /DMA与与McBSP1接收事件同步接收事件同步/设置传输控制模式寄存器设置传输控制模式寄存器DMMCR16位的值,以确定数据传输模式。各比位的值,以确定数据传输模式。各比特位值的含义查特位值的含义查DMMCR寄存器寄存器表表dmmcr = 0 x4141 ; /禁止自动初始化,块结束禁止自动初始化,块结束DMA产生中断;传输后源地址产生中断;传输后源地址加加1,目的地址不修改,源地址和目的

11、地址为数据空间等,目的地址不修改,源地址和目的地址为数据空间等dmctr = 0 xFF ; /单元记数单元记数,期望传输数据减期望传输数据减1/源地址为数组源地址为数组out_buffer,即即处理后处理后的数据存放在的数据存放在out_buffer中中待待发送发送src_addr = (unsigned int) &out_buffer+(unsigned int)frame*0 x100);/将将MCBSP1的的发送发送寄存器设为目的地址寄存器设为目的地址dst_addr = DXR1_ADDR(HANDSET_CODEC);/初始化初始化DMA通道通道3dma_init(DMA

12、_CH3, dmsefc, dmmcr, dmctr, SPACE_DATA, src_addr , SPACE_DATA, dst_addr);SPACE_DATA的值在的值在dma54xx.h中定义中定义4. DMA的工作参数设置DMA_CH0/* DMA Channel 0 */DMA_CH1/* DMA Channel 1 */DMA_CH2/* DMA Channel 2 */DMA_CH3/* DMA Channel 3 */DMA_CH4/* DMA Channel 3 */ DMA_CH5/* DMA Channel 5 */* chan为所选DMA通道的通道号 */分别为:4

13、. DMA的工作参数设置dma_global_init( unsigned int dmpre /*IN:Value for priority and enable reg*/ ,unsigned int dmsrcp /*IN:Value for source page reg */ ,unsigned int dmdstp /*IN:Value for dest page reg */ ,unsigned int dmidx0 /*IN:Value for element index reg 0 */ ,unsigned int dmidx1 /*IN:Value for element

14、index reg 1 */ ,unsigned int dmfri0 /*IN:Value for frame index reg 0 */ ,unsigned int dmfri1 /*IN:Value for frame index reg 1 */ ,unsigned int dmgsa /*IN:Value for global src addr reload */ ,unsigned int dmgda /*IN:Value for global dst addr reload */ ,unsigned int dmgcr /*IN:Value for global count r

15、eload reg*/ ,unsigned int dmgfr) /*IN:Value for global frame reload reg*/* Set up global autoinit registers for DMA CH2 Input */dmgsa = src_addr; /将通道源地址赋给全局源地址重载寄存器将通道源地址赋给全局源地址重载寄存器dmgda = dst_addr; /将通道目的地址赋给全局目的地址重载寄存器将通道目的地址赋给全局目的地址重载寄存器dmgcr = 0 xFF; /将通道单元记数寄存器的值赋给全局单元记数重载寄存器将通道单元记数寄存器的值赋给全局单

16、元记数重载寄存器dmgfr = 1; /将通道帧记数寄存器的值赋给全局帧记数重载寄存器将通道帧记数寄存器的值赋给全局帧记数重载寄存器/DMA通道优先级最高,中断分配控制位给通道优先级最高,中断分配控制位给DMA2 dmpre = (HIGH_PRIORITY 10) | (INTSEL_01 6); dmsrcp = SPACE_DATA; /源地址为数据空间源地址为数据空间dmdstp = SPACE_DATA; /目的地址为数据空间目的地址为数据空间dmidx0 = 0; /给单元地址索引寄存器给单元地址索引寄存器0赋值赋值dmidx1 = 0; /给单元地址索引寄存器给单元地址索引寄存器

17、1赋值赋值dmfri0 = 0; /给帧地址索引寄存器给帧地址索引寄存器0赋值赋值dmfri1 = 0; /给帧地址索引寄存器给帧地址索引寄存器1赋值赋值dma_global_init(dmpre, dmsrcp, dmdstp, dmidx0, dmidx1, dmfri0, dmfri1 , dmgsa, dmgda, dmgcr, dmgfr);5. TMS320C54x DSPLIB库滤波函数的调用 DSPLIB库是一个为C语言程序员开发TMS320C54x而建立的经过优化的DSP函数库。包含50多个采用汇编语言编写的常用信号处理程序,可以由C语言调用。 调用DSPLIB库函数时,在工

18、程中要添加库文件54xdsp.lib,在C源程序中要包含dsplib.h头文件。 函数调用格式:oflag = short fir(DATA *x, DATA *h, DATA *r, DATA *dbuffer, ushort nh, ushort nx)功能功能 用用FIR滤波器对信号滤波滤波器对信号滤波调用参数说明:xnx 表示含有nx个实数的实输入信号向量;hnh 表示含有nh个实数的系数向量,按自然顺序排列, 即滤波器的单位脉冲响应。rnx 表示含有nx个实数的输出向量;允许原位运算,即r=x。 5. TMS320C54x DSPLIB库滤波函数的调用 dbuffernh 延迟缓冲区

19、;对存储器的要求同hnh。 nx 向量x中实数的个数; nh 向量h中系数的个数; oflag=1 有溢出 ; oflag=0 无溢出 对数组对数组h和和dbuffer的特殊要求特殊要求: 输入数组首地址最低log2(nx)位为必须为0。oflag = short fir(DATA *x, DATA *h, DATA *r, DATA *dbuffer, ushort nh, ushort nx)5. TMS320C54x DSPLIB库滤波函数的调用函数fir()使用示例(a)一次调用处理一个数据一次调用处理一个数据#pragma DATA_SECTION(h,coe_buf)DATA hN;#pragma DATA_SECTION(db,delay_buf)DATA dbN;DATA dbN=0;DATA *dbp = &(db0); DATA x,y; fir(&x,

温馨提示

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

评论

0/150

提交评论