欢迎大家来到IT世界,在知识的湖畔探索吧!
Machine 是指某一款机器,可以是某款设备,某款开发板,又或者是某款智能手机,由此可以看出Machine几乎是不可重用的,每个Machine上的硬件实现可能都不一样,CPU不一样,Codec不一样,音频的输入、输出设备也不一样。Machine为CPU、Codec、输入输出设备提供了一个载体。 machine驱动主要是定义将platform/codec/dai连接在一起的dai_link
Platform 一般是指某一个SoC平台,比如pxaxxx,s3cxxxx,omapxxx等等,与音频相关的通常包含该SoC中的时钟、DMA、I2S、PCM等等,只要指定了SoC,那么我们可以认为它会有一个对应的Platform,它只与SoC相关,与Machine无关,这样我们就可以把Platform抽象出来,使得同一款SoC不用做任何的改动,就可以用在不同的Machine中。实际上,把Platform认为是某个SoC更好理解。snd_soc_platform_driver和snd_soc_dai_drivr。其中,platform_driver负责管理音频数据,把音频数据通过dma或其他操作传送至cpu_dai中,dai_driver则主要完成cpu一侧的dai的参数配置,同时也会通过一定的途径把必要的dma等参数与snd_soc_platform_driver进行交互
Codec 字面上的意思就是编解码器,Codec里面包含了I2S接口、D/A、A/D、Mixer、PA(功放),通常包含多种输入(Mic、Line-in、I2S、PCM)和多个输出(耳机、喇叭、听筒,Line-out),Codec和Platform一样,是可重用的部件,同一个Codec可以被不同的Machine使用。嵌入式Codec通常通过I2C对内部的寄存器进行控制。codec驱动主要是配置codec相关功能参数
音频中常用的术语
frame:
- 1帧立体声48khz 16位的pcm数据长度为4bytes
- 1帧5.1正道48k 16位pcm流的大小为12bytes
period_size:每两次硬件中断之间的帧数
period_count:硬件处理一个buffer会中断的次数,
frame:channel*每个采样点位数
2.MTK 6753音频前端接口AFE:
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/97792.html