您的位置:首页 > 其它

[接口]嵌入式系统中的IIS音频接口技术

2010-11-11 10:15 411 查看
原文地址

http://tech.ddvip.com/2009/05/1242301714119209.html

1 IIS总线

   IIS(Integrate Interface of Sound)即集成音频接口,在上个世纪80年代首先被Philips公司用于消费产品的音频设备,并在一个称为LRCLK(Left/Right CLOCK)的信号机制中经过多路转换,将两路音频信号合成单一的数据队列。当LRCLK为高时,左声道数据被传输;LRCLK为低时,右声道数据被传输(也可以反过来,高低与左右声音的对应可以自定义)。对于多通道系统,在同样的BCLK和LRCLK条件下,并行执行几个数据队列也是可能的。由于IIS、PCM和类似的音频接口不能提供寄存器入口,因此需要独立的控制接口。

   IIS总线一般具有4根信号线,如图1所示,包括串行数据输入(IISDI)、串行数据输出(IISD0)、左/右声道选择(IISLRCK)和串行数据时钟(IISCLK);产生IIS
LRCK和IISCLK的是主设备。



2 IIS音频驱动实现

   音频驱动有3种模式:MDD/PDD模式、Wavedev2模式、UAM模式。它们相同的地方很明显:接口相同,都是流驱动,透过流接口与上层的waveapi.dll交互。

   第1种MDD/PDD模式是最早的模式,也是其他驱动常见的分层模式。如果使用CE提供的MDD(wavem—dd.1ib),会受到一些限制:仅支持一个设备;一个设置仅支持一个流;对循环的支持不大可靠;对流的支持较弱。当然,由于提供了源码,可以自己修改MDD,突破以上这些限制。

   第2种Wavedev2模式,是因为2000年的Smartphone项目产生了新的要求,这些需求需要大改MDD/PDD。比如上面的限制2,根据CE的开发历史,此时waveapi.dll也不支持software mixer,这就是说只能同时允许一个应用在播放。所以根据当时情况,CE的多媒体开发团队设计了Wavedev2模式。这是一个单体(不分层)的驱动模式,平台相关的模块都在hwctxt.h和hwetxt.cpp中,此外还加入了midi支持、software mixer支持、S/PDlF接口、gain class接口、forcespeaker接口,等等。因此,开发Smartphone或者PPC,这个模式是挺适合的。

  第3种UAM模式,即统一音频模式(Unified AudioModel),在开发WinCE4.2时,要增加对DirectSound的支持,而且有一些音频设备是支持硬件mixer的,对此使用UAM是很好的选择。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: