Linux 音频(二)ALSA框架

一.概述 

ALSA是 Advanced Linux Sound Architecture 的缩写,目前已经成为了linux的主流音频体系结构。

ALSA 官网链接:AlsaProjecticon-default.png?t=N7T8https://www.alsa-project.org/

alsa-lib :对于用户空间 alsa-lib提供了一系列接口,可以用对音频设备进行一些列操作。

alsa soc :asoc是建立在标准的alsa core基础之上,为了更好支持嵌入式系统和应用于移动设备的音频 codec 的一套软件体系

hardware:分为三大块: machine,platform,codec。

2.ALSA/ASOC中硬件设备的关系

Macine:

        一般指某个机器,或者可以说是某个特定的板子,通过配置dai_link把cpu_dai、codec_dai、各个音频接口链结成一条条音频链路,platform和codec驱动通常是可以重用的,而machine有他特定的硬件特性几乎是不可以重用。比如

        1、soc platform 与 Codec的差别

        2. Dais之间的连接方式

        3.经过某个GPIO打开AMP

        4.经过某个GPIO检测耳机插拔;

        5、使用某个时钟如MCLK/External-OSC作为I2S,CODEC的时钟源等等。

Codec:

        就是一个编解码芯片,但是不同型号内部部件可能不同,常见ADC,DAC,Mixer,PGA,line-in、line-out,有些高端的codec芯片还有EQ、DSP、SRC、DRC。

Platform:

        主要是完成音频数据的管理,通过CPU的数字音频接口(DAI)把音频数据传送给Codec进行处理,最终由Codec输出驱动外设。

        ASOC把platform驱动分为两个部分

                snd_soc_platform_driver:把音频通过dma或者其他操作送到cpu dai。

                snd_soc_dai_driver:完成CPU侧dai参数的配置。

拿放音举例子PCM数据流向大致如下。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值