嵌入式系统中的IIS音频接口技术的研究.docx





《嵌入式系统中的IIS音频接口技术的研究.docx》由会员分享,可在线阅读,更多相关《嵌入式系统中的IIS音频接口技术的研究.docx(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式系统中的IIS音频接口技术的研究 (1)2009-03-09 19:50:40作者:刘亚波 丁德红来源:单片机与嵌入式系统 关键字:IIS总线 音频接口 嵌入式系统 音频驱动 1 IIS总线IIS(Integrate InteRFace of Sound)即集成音频接口,在上个世纪80年代首先被Philips公司用于消费产品的音频设备,并在一个称为LRCLK(LeftRight CLOCK)的信号机制中经过多路转换,将两路音频信号合成单一的数据队列。当LRCLK为高时,左声道数据被传输;LRCLK为低时,右声道数据被传输(也可以反过来,高低与左右声音的对应可以自定义)。对于多通道系统,在
2、同样的BCLK和LRCLK条件下,并行执行几个数据队列也是可能的。由于IIS、PCM和类似的音频接口不能提供寄存器入口,因此需要独立的控制接口。IIS总线一般具有4根信号线,如图1所示,包括串行数据输入(IISDI)、串行数据输出(IISD0)、左右声道选择(IISLRCK)和串行数据时钟(IISCLK);产生IISLRCK和IISCLK的是主设备。2 IIS音频驱动实现音频驱动有3种模式:MDDPDD模式、Wavedev2模式、UAM模式。它们相同的地方很明显:接口相同,都是流驱动,透过流接口与上层的waveapi.dll交互。第1种MDDPDD模式是最早的模式,也是其他驱动常见的分层模式。
3、如果使用CE提供的MDD(wavemdd1ib),会受到一些限制:仅支持一个设备;一个设置仅支持一个流;对循环的支持不大可靠;对流的支持较弱。当然,由于提供了源码,可以自己修改MDD,突破以上这些限制。第2种Wavedev2模式,是因为2000年的Smartphone项目产生了新的要求,这些需求需要大改MDDPDD。比如上面的限制2,根据CE的开发历史,此时waveapidll也不支持software mixer,这就是说只能同时允许一个应用在播放。所以根据当时情况,CE的多媒体开发团队设计了Wavedev2模式。这是一个单体(不分层)的驱动模式,平台相关的模块都在hwctxth和hwetxt
4、cpp中,此外还加入了midi支持、software mixer支持、SPDlF接口、gain class接口、forcespeaker接口,等等。因此,开发Smartphone或者PPC,这个模式是挺适合的。第3种UAM模式,即统一音频模式(Unified AudioModel),在开发WinCE42时,要增加对DirectSound的支持,而且有一些音频设备是支持硬件mixer的,对此使用UAM是很好的选择。本测试采用MDDPDD的驱动结构,下面讲述本驱动的关键点。21 DMA控制及驱动通俗地讲,DMA(直接内存存取)不需要CPU干扰也不消耗CPU资源,可以把音频数据自动地从系统总线搬到I
5、IS总线上;如果音频平均按采样频率441 kHz、16位字长、左右2声道计算,码流为1.411 Mbps,通常在13Mbps,所以采用DMA传输十分必要。22 时钟配置只要位时钟和采样时钟能匹配好,IIS数据格式主从一致,DMA配置好,音频就可以工作了。IIS数据格式主要分3种:左对齐、右对齐、IIS格式。声音听起来“怪怪地”,就是数据格式不对。频率计算方法如表1所列。IIS主设备时钟频率可以通过采样频率来选择。IIS主设备时钟频率是由IIS预分频器产生的(IIS主设备时钟频率=MCLK预分频器值),因此必须选择合适的预分频器的值和CODECLK的采样频率类型(256或者384fs),才能获得
6、合适的IISLRC采样频率(IISLRCK频率=IIS主设备时钟频率CODECLK的采样频率类型);串行位采样频率类型(163248fs)可以通过配置每个通道的串行位数和CODECLK采样频率类型来完成,它们之间的关系如表2所列。如晶振频率为16934 4 MHz,通过384分频为441kHz(采样频率就是这么来的)。位时钟频率=采样频率数据位2=441 kHz162=1411 MHz对于其他频率的晶振或是来自于总线的时钟频率,就要计算出IISC0N中的分频系数了,以最大限度拟合CODECLK。23 CODEC控制目前有SPI、I2C和L3三种总线控制CODEC。L3总线(L3MODE、L3C
7、LOCK、L3DATA)都是由通用的IO端口来控制的。其中L3接口实际上是一种串行接口,它由3根信号线组成,完成处理器和C0DEC之间的数据和控制信号交换。UDAl341TS就是采用L3接口的。L3DATA:处理器接口数据线。L3MODE:处理器接口模式信号线。L3CLOCK:处理器接口时钟信号线。三种控制方式中以I2C最为常见。其中I2C又分为寄存器方式和IO模拟方式两种,IO模拟方式的可移植性好,仅I0模拟方式的I2C驱动又可分为8位、9位、16位,以及是否带子地址、是否可以连读连写、是否要兼容SCCB总线。 24 音量控制节点使用音量调节的地方较多。图2是音量控制节点的一般模型。处的增益
8、由播放器的音量控制功能决定,最大是0dB。也就是说,最多只能还原出原信号强度。和处的增益由Coded IC自身控制,WM8731没有产生增益功能,处容易引入信号失真,一般置为O dB,codec加大音量时主要在处提高增益。、处由功放决定,最大也是O dB,便携式功放通常是电流型,靠放大电流去推动扬声器。+三处的增益和超过O dB时,1 kHz的信号就会产生失真,但是大部分音乐的强度都小于1 kHz测试方波时的强度,所以这三项的和可以比O dB略大,但不能太大,否则会引起信号失真。a应用程序通过调用waveOutSetVolume,与手工在控制面板中调节音量等效。b调节MediaPlay播放器音
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 中的 IIS 音频接口 技术 研究

限制150内