转载:https://www.cnblogs.com/xinghuo123/p/13149829.html
前三节介绍了alsa的基本知识,包含PCM和Control设备——前三节应该归为一章。
接下来我们讲新的一章。
ASOC
1、ASOC 简介
ASoC–ALSA System on Chip ,是建立在标准ALSA驱动层上,为了更好地支持嵌入式处理器和移动设备中的音频Codec的一套软件体系.在ASoc出现之前,内核对于SoC中的音频已经有部分的支持,不过会有一些局限性。
我们音频路径包含SOC <–> Codec <–> input/output设备
Codec驱动与SoC CPU的底层耦合过于紧密,这种不理想会导致代码的重复,例如,仅是wm8731的驱动,当时Linux中有分别针对4个平台的驱动代码。音频事件没有标准的方法来通知用户,例如耳机、麦克风的插拔和检测,这些事件在移动设备中是非常普通的,而且通常都需要特定于机器的代码进行重新对音频路劲进行配置。当进行播放或录音时,驱动会让整个codec处于上电状态,这对于PC没问题,但对于移动设备来说,这意味着浪费大量的电量.同时也不支持通过改变过取样频率和偏置电流来达到省电的目的。
ASoC正是为了解决上述种种问题而提出的,目前已经被整合至内核的代码树中:sound/soc.ASoC不能单独存在,他只是建立在标准ALSA驱动上的一个它必须和标准的ALSA驱动框架相结合才能工作。其作为升级版的alsa
所以我们要用统一的框架把** SOC ** 和** CODEC** 的功能函数分离出来。使SOC 和 CODEC解耦合,同一个Soc和Codec 可以随意更换不同的soc和codec。但是soc 和codec的链路关系和连接我们就引入了一个另一个东西叫Machine
== 简单来说就是machine 指定了使用的soc 和codec和inpu和output设备,以及音频传输接口dai等等 machine也有

本文介绍了ASOC(AudioSystemonChip)的概念,它是为解决嵌入式设备音频驱动问题而设计的,通过将SoC、Codec和Machine解耦,提供统一的框架并强调硬件和软件的模块化。文章详细阐述了硬件架构、软件架构、数据结构及其在音频处理中的作用。
最低0.47元/天 解锁文章
2万+





