IIS音频接口的MDD/PDD的驱动测试分析

网友投稿 398 2022-11-02

IIS音频接口的MDD/PDD的驱动测试分析

1 IIS总线

2 IIS音频驱动实现

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

第3种UAM模式,即统一音频模式(Unified AudioModel),在开发WinCE4.2时,要增加对DirectSound的支持,而且有一些音频设备是支持硬件mixer的,对此使用UAM是很好的选择。

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

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控制

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加大音量时主要在③处提高增益。

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

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

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

3 提高音量的有效方法

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

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

③改善音腔设计。

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

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

扬声器的选择:

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

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

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

3.2 音腔设计

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

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

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

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

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

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

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

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

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

4 音效测试

②高级仪器: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等芯片的过程中,均得到了有效验证。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:JAVA的反射机制你了解多少
下一篇:云计算与云原生 — 微服务架构 Kong APIGW 完全解析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~