基于DSP双路音频信号实时处理系统设计
在DMA应用中,可以赋予每个通道的bit流高低的优先级。每个DMA通道的同步事件为MCBSP串口收发事件,同时每个通道某个事件完成后可向CPU发送一个中断。用户可以编写代码修改寄存器配置,当DMA在进行数据传输时,只要用户使能该通道,就可将配置寄存器复制到工作寄存器中。另外DMA支持自动初始化模式,可以在块传输过程中反复复制,连接示意图如图2所示。本文引用地址:https://www.eepw.com.cn/article/150302.htm
2 软件系统设计
方案中两路麦克风输入数据,两路耳机输出数据。在此给出一路信号的接收处理发送过程,另一路信号设计思路相同。
在DARAM中开辟缓冲和处理单元,数据传输均采用DMA独立于CPU的方式。CPU只有在接收DMA触发中断后对数据进行处理,并将处理后数据拷贝到DMA发送缓冲。为保证整个传输过程中无数据丢失,DMA接收端采用半帧中断的方式接收数据。在数据载入过程中,可以选择两个区域进行操作,将数据区分为receive1与receive2用于保存载入的数据,同时开辟程序运行区process1和process2用于运行程序。当receive区域触发半帧中断,CPU读取receive1中的数据并将其复制到process1中,调用处理函数proc1,在CPU进行相关信号处理时,DMA继续将数据载入receive2,其满时触发整帧中断,DMA自动初始化将receive1覆盖。CPU此时即可将receive2中的数据复制到process2中,调用处理函数proc 2,这样receive区域交替更新,即可实现程序的不间断运行。
每次中断服务程序的运行时间必须小于半帧中断的间隔时间。此方案可以保证系统的延时足够小。在使用该方案时,用户必须根据自己的需要设计合适的采样频率和缓冲数据区的大小。为提高系统稳定性,实验可以根据要求设计中断的优先级。系统软件设计如图3所示。
3 结束语
系统采用DSPVC5509作为核心处理器,充分利用了DSP片上资源,采用独立于CPU的DMA实现了数据的实时采集处理以及发送,降低了总线占用率。设计的可更新缓冲区不仅符合DMA传输要求而且避免了数据丢失,实时更新减少了数据空间的浪费。另外该系统具有低功耗、稳定性高的特点,可以根据用户需求进一步扩展。
评论