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

发布者:ShimmeringStar最新更新时间:2009-03-09 来源: 单片机与嵌入式系统关键字:IIS总线  音频接口  嵌入式系统  音频驱动 手机看文章 扫描二维码
随时随地手机看文章

  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);产生IISLRCK和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是很好的选择。

  本测试采用MDD/PDD的驱动结构,下面讲述本驱动的关键点。

  2.1 DMA控制及驱动

  通俗地讲,DMA(直接内存存取)不需要CPU干扰也不消耗CPU资源,可以把音频数据自动地从系统总线搬到IIS总线上;如果音频平均按采样频率44.1 kHz、16位字长、左右2声道计算,码流为1.411 Mbps,通常在1~3Mbps,所以采用DMA传输十分必要。

  2.2 时钟配置

  只要位时钟和采样时钟能匹配好,IIS数据格式主从一致,DMA配置好,音频就可以工作了。

  IIS数据格式主要分3种:左对齐、右对齐、IIS格式。声音听起来“怪怪地”,就是数据格式不对。频率计算方法如表1所列。

  IIS主设备时钟频率可以通过采样频率来选择。IIS主设备时钟频率是由IIS预分频器产生的(IIS主设备时钟频率=MCLK/预分频器值),因此必须选择合适的预分频器的值和CODECLK的采样频率类型(256或者384fs),才能获得合适的IISLRC采样频率(IISLRCK频率=IIS主设备时钟频率/CODECLK的采样频率类型);串行位采样频率类型(16/32/48fs)可以通过配置每个通道的串行位数和CODECLK采样频率类型来完成,它们之间的关系如表2所列。

  如晶振频率为16.934 4 MHz,通过384分频为44.1kHz(采样频率就是这么来的)。

  位时钟频率=采样频率×数据位×2=44.1 kHz×16×2=1.411 MHz

  对于其他频率的晶振或是来自于总线的时钟频率,就要计算出IISC0N中的分频系数了,以最大限度拟合CODECLK。

  2.3 CODEC控制

  目前有SPI、I2C和L3三种总线控制CODEC。L3总线(L3MODE、L3CLOCK、L3DATA)都是由通用的I/O端口来控制的。其中L3接口实际上是一种串行接口,它由3根信号线组成,完成处理器和C0DEC之间的数据和控制信号交换。UDAl341TS就是采用L3接口的。

  L3DATA:处理器接口数据线。

  L3MODE:处理器接口模式信号线。

  L3CLOCK:处理器接口时钟信号线。

  三种控制方式中以I2C最为常见。其中I2C又分为寄存器方式和I/O模拟方式两种,I/O模拟方式的可移植性好,仅I/0模拟方式的I2C驱动又可分为8位、9位、16位,以及是否带子地址、是否可以连读连写、是否要兼容SCCB总线。

  2.4 音量控制节点

  使用音量调节的地方较多。图2是音量控制节点的一般模型。

  ①处的增益由播放器的音量控制功能决定,最大是0dB。也就是说,最多只能还原出原信号强度。

  ②和③处的增益由Coded IC自身控制,WM8731没有产生增益功能,②处容易引入信号失真,一般置为O dB,codec加大音量时主要在③处提高增益。

[page] 

   ④、⑤处由功放决定,最大也是O dB,便携式功放通常是电流型,靠放大电流去推动扬声器。

  ①+②+③三处的增益和超过O dB时,1 kHz的信号就会产生失真,但是大部分音乐的强度都小于1 kHz测试方波时的强度,所以这三项的和可以比O dB略大,但不能太大,否则会引起信号失真。

  a.应用程序通过调用waveOutSetVolume,与手工在控制面板中调节音量等效。

  b.调节MediaPlay播放器音量时,通过消息跟踪可以判断是否改变了①处的增益,即ARM的DSP数字输出增益。

  c.调节控制面板里的音量时,会发现CODEC的功放寄存器值也会改变。猜想是通过IIS总线实现控制相关寄存器,因为在IoControl消息中没有发现通过I2C改写任何寄存器。

  通过分析调整音量的方法,有图2所示的5个节点可控制,目的是音量最大失真最小:让①处输出增益最大的情况下,②处PCM Volume置为0 dB(此处放大最容易引入失真),功放置最大时便能获得不失真最大音量了;如果想再增大音量只能牺牲失真度了,人耳最多接收10%THD(Total Hamonic Distortion,总谐波失真),此种情况下主要靠调节③处的增益。

  3 提高音量的有效方法

  ①在C0DEC与功放不可更改的前提下,选择合适的喇叭至关重要(不同的喇叭效果大不一样)。口径大小不等,纸盆有深有浅。在选择喇叭时一般要求功放的额定功率是喇叭额定功率的2倍以上,喇叭的实际最大承受功率是其额定输出功率的2~3倍。喇叭的灵敏度参数很重要,一般是O.1 W时85 dB左右,还要看额定功率时的灵敏度。灵敏度用来衡量将电能转换为声音的效率,只讲额定功率不讲额定功率时的灵敏度是没有意义的,额定功率下的低灵敏度无益于电阻丝“发热不出声”。

  ②提高功放电压,根据P=U·U/R,很小的提升电压,就能获得平方级的功率提升。如由4 V→6V,功率可提高2.25倍。

  ③改善音腔设计。

  ④原则上不建议以牺牲保真度来换取音量。如不得已而为之,使用时也要严格控制在THD<10%。

  3.1 功放与扬声器的匹配和选择

  功放的输出功率一定要大于喇叭的输出功率,否则不但会影响声音效果,而且会加速功放的损坏。如选择的喇叭阻抗比功放的输出阻抗高时,将影响放大器的输出功率;而当喇叭的阻抗过低时(如低于4Ω),使用的功率放大器与额定的输出功率又不相匹配,这种情况下失真将增大。如果喇叭的阻抗符合要求,额定功率又比功放的额定功率稍小,失真就相对小,喇叭的声音质量就好。

  扬声器的选择:

  ①口径大,纸盆深,转换效率就高,承受功率也越大;口径小,纸盆过浅,高频响应就不好。

  ②用手轻按同样口径的纸盆时,比较费力的扬声器谐振频率高,动态范围较大。

  ③坚硬、密实纸盆的扬声器,高频性能一般较好;粗疏、柔软纸盆的扬声器,音质一般较柔和。

  ④放大器应该有足够的功率输出,尤其是晶体管放大器。扬声器的最大输出功率应该是其额定功率的3倍以上,并且扬声器的最大输入功率应该等于放大器的输出功率,以保护扬声器的安全。

  ⑤阻抗匹配是最基本的要求:对于Class D类功效,由于PWM易引起高频干扰,因此还要考虑合适的感抗,以起到滤波作用。如图3所示,线圈的阻抗和感抗组成了一个低通滤波器,理想情况下将阻隔PWM产生的高频谐波干扰。这里选择增益为一3 dB时的频率作为高频的截止点fc=RL/2πL。当阻抗为8Ω时,令截止频率为20kHz,则有L=RL/2πfc=8Ω/(2π×20 kHz)=64μH。8 Ω的便携式扬声器感抗为20~100μH。如果实际感抗>64μH,将限制带通特性;如果实际感抗<64μH,截止频率会>20 Hz,此时又会引入噪声。所以,选择扬声器时感抗要尽量接近64μH;对于AB类功放,则不作严格要求。

  3.2 音腔设计

  好的音腔,同样的功率下,音量会更大。

  ①音腔内要平,不要有高低不平的落差感。

  ②出音孔是音腔面积的15%~20%(手机中常用的)。

  ③音腔要尽量深,形成“V”型出音,效果较好。

  ④前后音腔要隔开,以免前后声音互相干扰。这个原理和喇叭放出的声音比起喇叭装在箱子里面的声音要小很多的原因一致。

  ⑤前音腔:扬声器前面音腔的大小主要由扬声器上面的泡棉高度所决定,一般来说至少要留O.2 mm的泡棉。前音腔主要对高频声音有所影响,对于SPL(SoundPressure Level,声压级)影响不是太大。

  ⑥后音腔:要足够大,如果能够达到手机喇叭的等效声容积的2倍的水平最好;更大的后音腔使得扬声器在低频可以得到更好的效果。

  ⑦前音腔和出音孔要设计合理、恰当:前音腔和出声孔形成一个Helmholtz共鸣器,会在某个频率点出现谐振峰。若不是特殊设计,可以把该谐振峰调整到高频端(>10 kHz),相应地就要求前腔浅,出音孔面积大;若有特殊设计要求,譬如为了提高响度,可以把谐振峰调整到3.4~6 kHz,不过带来的结果将是声音偏单调,而且对音源的要求会苛刻。

  ⑧密封性:最基本的是要让扬声器的前音腔和后音腔分开,保证良好的密封性(尽可能地保证手机音腔的密封性)。良好的密封性使得扬声器在低频段可以得到更好的效果(可以得到更大、更柔美的声音)。

  4 音效测试

  由于人耳对音频发声的感官不尽相同,且主观差异较大,曾想写一篇文章,专门介绍音效的评测及控制方法,需控要什么样的仪器,实验方案如何。但由于实验条件和本人能力有限,加上专业性很强,不敢写也怕写不好,只好作罢。以下是Wolfson Microelectronics plc Jason Fan所列(仅供参考),同时期待这类文章早日出现。

  ①基本仪器:稳压电源、内置滤波器的毫伏表(可以测量输出的噪声和输出的功率)、失真仪、声压仪、信号发生器。

  ②高级仪器:AP音频分析仪、音频全频扫描仪(用来测试扬声器功率)。

  ③音频系统的评估指标有基本指标和升级指标。

  基本指标有:输出功率、信噪比、频率响应、失真度、左右通道分离度、左右声道平衡度。

  升级指标(需使用音频分析仪测量)有:THD+N、动态范围、FFT。

  作音频测试时,一般会使用一些标准的测试信号,如左右声道1 kHz O dB;左右声道30 Hz O dB;左右声道100Hz 0 dB;左右声道10 kHz 0 dB;左右声道16 kHz O dB;左声道l kHz O dB;右声道1 kHz 0 dB。

  上述仪器都会附带使用方法和实验方案。

  5 总 结

  面对音视频驱动,首先不要有畏惧心理而觉得其高深莫测不敢去接触。掌握基础原理和上述要点后,一般的IIS音频CODEC均能驱动。在本人驱动WMXXX系列(WM9712/WM8978/WM8960/WM8731)、UDAl314、PCMl770、UCBl440、CS4344等芯片的过程中,均得到了有效验证。

  在应用CS42L52时,发现背景噪声明显,但耳机音质很好,说明噪声来自于功放;一上电不做任何初始化照样有,进一步说明来自功放,而且不随音量改变而改变。不能正面降噪,后来采取的规避措施是:没有DMA传输时关掉声音通道,此问题后来通过新老电路板对比,查出是扬声器的输出端所接LC回路中电感参数不当产生了自激。把电感换成O Ω电阻后,噪声基本消除。

  在ARM中,晶振以12 MHz和16.934 4 MHz最为常见(视频系统中也有27 MHz或28.XXX MHz),系统外围总线是50 MHz,能不能配成精准的44.1 kHz或48kHz,要视各芯片自身的PLL了,这一点要格外重视。如果频率相差太多,也会引入噪声且有语速不正常现象。

  选型建议:

  ①选型时,一定要贴在自己的电路板上实测,不能仅凭供应商的DEMO板演示。

  ②背景噪声有没有,在正版歌曲的前5 s空白时间基本上可以听出来。

  ③要看看芯片是否已量产且是不是已被人采用,口碑是参考的重要因素。

  WM9712l带有四线电阻Touch接口,在MP4视频播放器方案中应用较为普遍。WM897x在手机中或智能手机采用得比较多;在MP3或是低成本方案中,PCMl770占不少份额;欧胜(Wolfson)推出的WM897x系统IIS音频协议不但提高了系统的集成度,也提高了系统的音频质量;WM897x以DSP微处理器为内核,可将风声等过滤来提高音频系统的录音功能,新产品还采用了5波段与3D音频系统的均衡来提高音频输出以及可编程阻态滤波器消除噪声。这些系统通常也支持时钟频率在12~19MHz的麦克风及手机喇叭的驱动部分,可进一步减少产品中元器件的数量。为使高质量音频喇叭以及压电型喇叭的功耗可以达到900 mW,使用了数字式录音回放限制器,以防止喇叭的过量输出。

关键字:IIS总线  音频接口  嵌入式系统  音频驱动 引用地址:嵌入式系统中的IIS音频接口技术的研究

上一篇:安富利等四企业启动SpeedWay研讨会
下一篇:ARM Cortex-M3 即插即用的跟踪仿真器

推荐阅读最新更新时间:2024-05-02 20:46

基于DM9000AE的S3C2440嵌入式系统的以太网接口设计
本文介绍了一个基于三星ARM9芯片S3C2440嵌入式系统的以太网接口电路设计方案,采用了工业级以太网控制器DM9000AEP成功实现了嵌入式系统网络数据交换。论文在重点阐述了网络接口电路基础之上,对Windows CE系统控制软件部分DM9000AEP的驱动程序和注册表项进行了具体分析。 随着微电子技术和计算机技术的发展,嵌入式技术得到广阔的发展,已成为现代工业控制、通信类和消费类产品发展的方向。以太网在实时操作、可靠传输、标准统一等方面的卓越性能及其便于安装、维护简单、不受通信距离限制等优点,已经被国内外很多监控、控制领域的研究人员广泛关注,并在实际应用中展露出显著的优势。本文提出了一种基于DM9000AE网络接口芯片和32位
[单片机]
基于DM9000AE的S3C2440<font color='red'>嵌入式系统</font>的以太网接口设计
飞思卡尔为低端32位嵌入式系统推出10 款新ColdFire
高度集成的MCU提供免费开发工具支持,实现经济、高效的连接和超低功率应用 德州奥斯汀—2007年9月17日 ——为了解决嵌入世界的灵活连接和能源效率需求,飞思卡尔半导体又在其广泛的32位ColdFire系列产品基础上新增了10款高度集成的微控制器(MCU)。这些新增的 ColdFire MCU产品为开发人员提供诸多经济、高效和低功率的连接选项,同时还提供完善的软件工具。 扩展后的ColdFire MCU产品线包括MCF5223x 以太网MCU、 MCF5221x USB MCU和MCF51QE超低功率MCU系列新增产品。这些产品系列主要针对以下应用:安全控制面板、条形码扫描仪、医用泵/监控器、环境监控和远程数据收集。 这些
[新品]
基于AVRButterfly的电源设计能够很好地完成嵌入式系统
引 言 随着嵌入式系统设计技术的发展,在设计和仿真中,系统工程师对电源的要求也越来越高。在嵌入式系统设计是使用8031单片机和74系列集成电路时,所有使用74系列集成电路的电路板都使用单一的5 V电源供电就可以了。当时的供电电源部分不是一个需要太多注意的单元,基本上5 V的电源能满足所有的数字集成电路设计的需要。而近几年来,随着技术的发展,集成电路里的三极管变得越来越小并且工作的电压越来越低,使得嵌入式系统开发的重点从系统的速度,转到低功耗设计上。因此在同一个嵌入式系统中,存在多种不同电压的电源供电,从低于1 V到高于5 V都存在。而且在系统的稳定性和可靠性测试时,还要模拟不同的电源故障情况下,比如掉电等,嵌入式系统的稳定性和可靠
[单片机]
基于AVRButterfly的电源设计能够很好地完成<font color='red'>嵌入式系统</font>
ST 在ESC 2010上展示最新最强的嵌入式系统技术
意法半导体(纽约证券交易所代码:STM),于2010年4月27-29日在美国加州圣荷塞嵌入式系统大会(Embedded System Conference)上举行多项与微控制器有关的精彩活动,重点推介意法半导体的8位微控制器和高性能的32位基于ARM的微控制器两大产品阵容,包括最新推出的以超低功耗为最大亮点的EnergyLite™版8位和32位微控制器。各种产品演示活动为工程师提供亲身体验意法半导体微控制器和获取专门技术的机会。 意法半导体对光临1708号展台的参观者赠送500套STM8S-Discovery开发工具,让开发人员迅速了解STM8系列8位微控制器的潜能,创建并调试应用程序,向微控制器写入代码,最终使用微
[嵌入式]
嵌入式系统设计的新发展及其挑战
摘要:综述嵌入式系统设计的最新发展情况;论述当前嵌入式系统设计技术发展的特点;从嵌入式系统设计开发的复杂度,开发形式、手段和工具,开发平台和开发语言等方面嵌入式系统设计发生的各种变化,并提出应对这些变化的各种挑战。 关键词:嵌入式系统 设计技术 SoC 1 嵌入式系统设计技术发展的特点 随着微电子技术的飞速发展,CPU已经变成低成本器件。在可能的情况下,各种机电设备已经或者正在嵌入CPU构成的嵌入式系统。据Virginia Tech公司报告,嵌入式系统中所使用的CPU数量已经超过通用PC中CPU数量的30倍。 现在系统研究的重点已从通用系统转向专用系统,以及从一般性能转向可靠性、可用性、安全性、自主性、可扩展性、功能性、
[嵌入式]
基于ARM的FPGA嵌入式系统实现
ARM(Advanced RISC Machines)既可以认为是一个公司。也可以认为是对一类微处理器的统称,还可以认为是一项技术。基于ARM技术的微处理器应用约占据了32位 RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到人们生活的各个方面 。到目前为止,ARM微处理器及技术已经广泛应用到各个领域,包括工业控制领域、网络应用、消费类电子产品、成像和安全产品等。 FPGA(Field Programmable Gate Array)是一种高密度现场可编程逻辑器件,其逻辑功能是通过把设计生成的数据文件配置到器件内部的静态配置数据存储器(SRAM)来实现的。FPGA具有可重复编程性,能灵活实现各种逻辑功能。 基于
[单片机]
基于ARM的FPGA<font color='red'>嵌入式系统</font>实现
嵌入式系统中实现对U盘的操作
摘要:主要介绍在嵌入式系统中利用SL811HS对U盘操作的实现方法;简要介绍USB设备中的海量存储类、SL811HS的芯片特点及FAT文件系统。 关键词:USB U盘 FAT SL811HS 引 言   USB(通用串行总线)用于将适用USB的外围设备(device)连接到主机(host),实现二者之间数据传输的外部总线结构;是一种快速、灵活的总线接口。它最大的特点是易于使用,主要是用在中速和低速的外设。   随着USB规范的完善和成熟,USB外设的种类不断丰富,应用领域也不断扩大。在传统的应用中,主要是PC扮演着主机的角色。根据USB的规范,可以看到在USB的拓朴结构中居于核心地位的是主机,每一次的数据传输都必须由主机发起
[嵌入式]
SoC的技术支持及嵌入式系统设计
摘 要: 与ASIC设计的其他技术一样,SoC的出现是以许多技术支撑为条件的。这些技术包括深亚微米工艺技术、IP核的优化及重用技术、EDA技术、软/硬件协同设计技术。文中讨论了SoC支撑技术和SoC阶段嵌入式系统设计的作用。 关键词: 嵌入式系统 高级语言 基本性能  编程特点 引 言   SoC(System on Chip)可以译为"系统集成芯片",意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容;SoC也可以译为"系统芯片集成",意指它是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。   作为ASIC(Application Specific
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved