WINCE声音驱动模型概述-4

WINCE声音驱动模型概述-4

ID:43515253

大小:17.68 KB

页数:3页

时间:2019-10-09

WINCE声音驱动模型概述-4_第1页
WINCE声音驱动模型概述-4_第2页
WINCE声音驱动模型概述-4_第3页
资源描述:

《WINCE声音驱动模型概述-4》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、混音的处理如果要WINDOWSCE的声音驱动模型支持混音,则要考虑如下问题:1) 声音设备是否支持硬件混音2) 声音设备需要工作在同一种采样频率下3) 声音设备要能够同时支持录音和放音操作 而声音的驱动要负责完成声音采集的混音和声音放音的混音。其基本原理如下:1) 将声音设备设定在一个频率下,比如:44.1KHZ,16BIT2) 驱动允许打开多个音频流,每个音频流可以允许不同的采样率,比如:(A:8KHZ,8BITB:44.1KHZ,16BIT)3) 放音的混音在最后的数据准备阶段(即放入到DMA前),用合成算法将所有的流进行数学运算,得出声音设备采样频率下(

2、44.1KHZ,16BIT)的数据。数据通过DMA发送到CODEC中。4) 录音的混音操作,都是从声音设备采样频率下(44.1KHZ,16BIT)下得到采样的基本数据,然后通过数学运算分配到不同的频率下的音频流上。5) 要注意的就是合成的时候要注意数据不溢出;分开的时候要注意数据速率的匹配和数据宽度的匹配。 中断和DMA驱动模型声音系统一般都使用DMA作为数据传输的基本手段,因此DMA的操作模型对于声音子系统的处理有着特别关键的作用。DMA的声音操作一般都是用双BUFFER作为数据缓冲(录和放)都如此,一个BUFFER在被DMA占用的时候,另一个BUFFER就

3、可以被CPU占用,从而提高效率。显而易见,声音子系统的硬件操作是一个典型的生产者消费者模式,因此,对共享资源的控制就特别重要。DMA的硬件实现,不同的CPU略有不同。有的嵌入式芯片做的简单,不支持DMA地址的链式连接,有的则支持,但不影响具体实现。他们相同的点是:l        一般一个DMA有N个子CHANNELl        每一个CHANNEL都可以互不干扰的独立运转或者停机,自有一个状态机l        DMA使用一个总的DMA中断通知CPU,然后由软件负责查找具体某个CHANNEL。 如果一个系统中很多驱动都需要用到DMA,那么就需要一个DMA

4、ENGINE来总协调DMA的运作,否则就会出现驱动争用DMA的问题。如果只有一个驱动使用DMA系统,则实现起来的障碍会小不少。双声道系统中的声音驱动,DMA运作都是采用两个通道独立完成录、放的操作,并且每个通道都采用双BUFFER的策略,来保证DMA和CPU可以近乎同时的工作,互不影响。而且,一个在高层支持多个流的声音驱动也要注意对DMA这个硬件设备的操作要保持互斥。在实际驱动的实现过程中,这种双通道、双BUFFER的驱动有很多细节要注意,要注意处理好几大类关系:1) 硬件DMA和硬件CODEC之间的关系在整个放音声音数据传输系统中有:APPbufferßàD

5、MAbufferßàI2S(AC97)FIFOßàCODECAPP负责提供数据,DMA负责数据传输,其实就是要把数据搬运到类似I2S或者AC97间的FIFO中,I2S负责成帧传递数据,最后由CODEC还原。录音则反之。一般来讲,I2S和CODEC要在DMA启动前准备好,而启动DMA和I2S的顺序,往往会导致一些数据的丢失,这是关注的一点。 2) DMA与APPbuffer之间的关系还原处理时:APP往往提供很大的数据包,比如16K,而DMA由于设计的需要,一般取到4K,就比较大了。启动DMA开始工作的条件是:---填充完毕两个DMABUFFER---I2S准备

6、好 当DMA完成搬运后,会产生DMA的中断,而在中断处理中,要注意一下问题:---启动第二个BUFFER,继续让DMA工作,如果不能启动就要DMA停机了。---CPU负责检查是否还有足够的数据给DMA,如果有,够填充几个DMABUFFER DMA停机的条件是:---没有更多的BUFFER可供搬运---强制停机 在实践过程中,要拿捏好DMA启动和停机的条件,因为驱动一般都是多线程运转的,一定要注意对DMA操作时的互斥,防止出现异常或者死锁。 另外,DMABUFFER的大小,直接关系到采样的频率,对于一些实时应用很重要。比如:VOIP中需要20ms的打包周期,就需

7、要限制DMABUFFER的大小,从而控制中断时间,及时为VOIP提供周期打包数据。 3) DMA多CHANNEL之间的关系如果同时启动录音和放音CHANNEL,那么在DMA的中断处理中要注意区分是谁的数据,并且要及时启动各自CHANNEL的第二个BUFFER,防止采集数据丢失或者放音停顿。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。