当前位置:首页 > speech - enhancent(语音增强之谱减法实现)
制寄存器:每个McBSP有两个接收控制寄存器RCR1和RCR2,以及两个发送控制寄存器XCR1和XCR2,用于配置收发操作的不同参数。采样率发生寄存器:每个McBSP有两个采样率发生器SRGR1和SRGR2,通过配
置这两个寄存器来选择与时钟和帧同步有关个参数。引脚控制寄存器:每个McBSP有一个引脚控制寄存器PCR,通过配置该寄存器来实现McBSP同步模式的选择和省电模式的控制等。
3)多通道选择寄存器
多通道选择寄存器包括多通道控制寄存器和收发通道使能寄存器。多通道控制寄存器:每个McBSP有两个多通道控制寄存器,即MCR1和MCR2,用于所有通道的使能和通道的选择等。收发通道使能寄存器:每个McBSP有八个接收通道使能寄存器RCERA~RCERH和八个发送通道使能寄存器XCERA~XCERH,主要用于使能通道的的收发。
上面介绍了McBSP的寄存器,下面就来说明McBSP串口的初始化和配置。 McBSP串口初始化和配置的整个过程包括三部分: ①接收部分的初始化。 ②发送部分的初始化。 ③采样率产生器初始化。 它的具体初始化和配置步骤为:
①设置SPCR中XRST、RRST和FRST都为0,将整个串口复位。 ②设置采样率发生寄存器 (SRGR),串口控制寄存器(SPCR)、引脚控制寄存 器(PCR)、接收控制寄存器(RCR)和发送控制寄存器(XCR)为所需要的值。注意 不要改变上一步己经设置的位。
③设置SPCR寄存器中GRST为1,使采样率发生器退出复位状态,内部的时钟信 号CLKR开始由选定的时钟源按预先设定的分频比驱动。如果McBSP收发部分的时钟 和帧信号都是由外部输入的,则此步可以省略。
④等待2个周期的传输时钟(CLK留CLKX),以保证内部正确同步。 ⑤在中断选择寄存器中,映射 xINTI/xINTI和(或)RINTo瓜INTI中断。 ⑥使能所映射的中断。
4、C5416的直接存储器访问(DMA)控制器
为了满足信号处理中高速数据采集和高速运算的需要,高性能DSP芯片往往都设有在片 DMA(DireetMemoryAccess)控制器。DMA控制器可以在没有CPU参与的情况下完成存储器映射区之间的数据传输。DMA允许在片内存储器、片内外设或外部器件之间进行数据传输,而且DMA以后
台形式进行数据传输,不需要CPU的干预和控制。DMA控制器使得串口数据的传输更加方便,在DMA控制器配置完成后,串口数据的传输以后台形式进行,不影响CPU的工作。因此,采用DMA方式进行串口通信,可以减少核心处理器的负担,提高系统的工作效率。基于谱减法的语音增强在DSP环境下实时实现的研究。
如图4.3为高效的DSP系统通常采用的结构。在芯片内部寄存器中开辟输入、输出两个缓冲区,采用DMA来负责数据的采集和搬运。这样,CPU就可以从繁忙的数据采集和搬运中解放出来,从而可以专注于数据的处理,极大地提高了系统的性能和效率。
A/D DMA 输入缓冲 核心运算单 元 输出缓冲 DMA D/A 图3.3高效的DSP系统采用的结构 (1)DMA控制器的主要特征
采用DMA方式可以在不影响CPU运算能力的前提下实现高速数据采集和传输,显著地提高了系统的效率。这是因为DMA控制器具有其自身所特有的特征。DMA控制器的主要特征有:
·后台操作。DMA控制器可以独立于CPU工作。
·6个可编程的通道。DMA可以通过编程控制6个通道独立实现读写等不同内容的操作。 ·多帧传输。每个DMA通道的每个块所包含的帧的数目以及每个帧中多少数据(单字模式16bit或双字模式32bit)都是可独立编程实现的。在一个块传输过程中,DMA每次会传输块中的所有帧。
·可编程的优先级。每个通道对于CPU的优先级是可以独立编程的。
·地址的产生和产生方式可编程。每个通道传输的源和目的寄存器的地址以及在传输过程中用于读和写操作地址的偏置量都是可以编程实现的。
·可以访问整个扩展地址范围。DMA可以访问片内存储器、片内外设以及扩展存储器。因此可以实现满地址访问。
·自动初始化。当一个数据块传输完成后,DMA通道会自动重新为下一个数据块的传输做好初始化。
·事件同步。DMA的读、写以及帧操作都可以由指定的事件触发。中断CPU。当一帧或一块数据传输完成后,每个DMA通道都会产生一个DMA中断,CPU响应中断而进入中断服务程序。
(2)寄存器子寻址
我们已经知道,McBSP通过一系列存储器映射控制寄存器来进行配置和操作。它采用了寄存器子地址寻址方案。DMA也采用了寄存器子地址寻址方案。DMA的寄存器子寻址是通过子块地址寄存器(DMSA)和子块访问寄存器(DMSDN和DMSDI)的控制来实现的。当需要访问指定的子寻址寄存器,先将子地址写到DMSA,DMSA驱动复接器,就可以使多路复用器连接DMSDN和DMSDI到所要访问的物理地址。当在子块数据寄存器进行一次访问(读或写)时,数据将被移到子区地址寄存器所指定的嵌入数据寄存器,或者从该嵌入数据寄存器移出。
DMA提供了两种子块访问寄存器:DMSDN和DMSDI。二者的区别在于:DMSDI可自动完成子地址自动增加,即在每次访问操作后子地址会自动增加,这样,如果需要对整个DMA控制寄存器进行配置,就可以选择DMSDI;DMSDN不能够在每次访问操作后自动完成子地址的增加,因而不会在每次访问后担心子地址的变化和修改,因此,当只是需要配置DMA控制寄存器中的一个寄存器时,可以选择DMSDN。
(3)DMA的操作和配置
DMA有6个可编程的DMA通道,可独立实现读写等不同内容的操作。DMA的控制寄存器有:DMA通道优先级和使能控制寄存器(DMPREC),子块地址寄存器(DMSA)和子块访Ib]寄存器(DMSDN和DMSDI)。每个DMA通道都有5个通道上下文寄存器,分别用于配置每个通道的操作。而且每个通道的控制寄存器都采用子地址(即寄存器子寻址)的形式。DMPREC主要用于对DMA的每个通道选择性使能、多路中断控制和通道优先级控制。它的存储器映射地址为0054h,位于数据空间并且不使用子寻址方式。
DMA通道的5个上下文寄存器为:源地址寄存器(DMSRCx)、目的地址寄存器(DMDSTx)、单元计数器(DMCTRx)、DMA同步时间和帧记数寄存器(DMSFCx)和DMA传输模式控制寄存器(DMMCRx)。其中:DMSRCx和DMDSTx用来保存DMA通道读数据的源地址和将要写入数据的目的地址。DMCTRx用来初始化每个DMA通道都有的一个16位的计数器,该单元计数器用于跟踪所执行DMA传输的次数。在初始化时,DMSFCx应该初始化为比所要传输的单元数少一。DMSFCx用于确定触发DMA的同步事件、传输是单字模式 (16bit)还是双字模式(32bit)以及将要传输的帧的数目。如果一个DMA通道配置为与某一个事件同步时,每个单元传输只有等到该事件出现才进行操作。在单字模式下,每个单元为16bit,那么一个同步事件也就触发一个16bit的单元传输;当通道为双字传输模式时,则每个单元为32bit,此时一个同步事件触发32bit的单元传输。DMSFCx中的帧计数器(FrameCount)用于指定包含在一个传输块中的帧数目,和单元计数器一样, FrameCouni应该初始化为比将要传输的帧数少一的数值。在每次传输完一个帧后, FrameCouni就被DMA控制器自动减
1。DMMCRx用来控制各个DMA通道的传输模式,例如通道的源和目的地址修改模式以及DMA通道的寻址模式等。通常,在使用DMA时,首先应该对DMA进行初始化,配置其各个控制寄存器,以达到系统设计所期望的DMA传输方式。一般情况下,DMA的初始化由以下步骤组成:
①设置DMA传输的源地址: ②设置DMA传输的目的地址;
③设置DMA传输大小(传输大小的数值为整个缓冲区大小减1); ④设置DMA传输模式控制寄存器; ⑤设置DMA同步事件; ⑥设置单元地址索引;
⑦设置通道优先级和使能寄存器。 (4)DMA的寻址模式
DMA的寻址模式就是DMA传输计数器(包括单元计数器和帧计数器)的控制模式。DMA每个通道的寻址模式有两种:多帧模式 (MultiframeMode)和自动缓冲模式 (AutoBufferingMode,简称 ABuMede)。每个通道寻址模式是通过DMMcRx寄存器中的CTMOD位的设置来实现的。由前面我们已经知道,每一帧所传输的单元数是由单元计数器的设置来确定,而每个块中所传输的帧的数目是由DMSFCx中的帧计数器来定义。在多帧模式和ABU模式两种情况下,DMA传输计数器(包括单元计数器和帧计数器)具有不同的控制模式。二者的共同点是在每次单元或帧传输完成后分别减少1。在多帧模式下,每一个数据块包括多个数据帧,同时每个数据帧又包括多个数据单元。单元计数器自动由DMA控制器减少1。当到达每个数据帧的最后一个单元,单元计数器就会重载初始数值并保存于映像寄存器中,同时帧计数器减1,直至减为O。若DMA自动初始化被使能,则在完成一个数据块传输后,通道上下文寄存器就会被自动重新初始化单元计数器和帧计数器也就因此会加载其各自初始值。在ABU模式下,DMA的传输具有自动循环缓冲的功能。在此模式下,ABU模式会为DMA传输提供一个环形数据缓冲区,当数据缓冲区全满或半满时,DMA就会给CPU发送一个中断信号,通知CPU可以取走数据进行处理。如果是半满就产生中断的情况,那么CPU则可以处理已经满了的半个数据缓冲区中的数据,而DMA就会自动去操作另外半个数据缓冲区。在ABU模式操作期间,单元计数器的值为数据缓冲区的大小,而帧计数器在ABU模式下没有作用。传输的数目不用指定,地址可以自动绕回到开始位置。需要说明的是,BSP的ABU模式是由BSP单独完成的,而McBSP的ABU是由McBSP与ABU模式条件下的DMA共同配合下才可以实现的。
共分享92篇相关文档