音视频及家电
ALSA 介绍
ALSA 概述
ALSA(Advanced Linux Sound Architecture )是高级 linux 声卡架构简称,是目前Linux的主流音频体系结构, 提供了音频和MIDI的支持。
除了声音设备驱动,ALSA还捆绑了一个用户空间驱动的库用于应用开发。开发者可以使用这些 ALSA 驱动进行高级 API 开发,可以通过 ALSA 库达成与声音设备的内核(直接)交互。
ALSA 特点如下:
高效的支持所有类型音频接口,从消费类声卡到专业多声道音频接口;
完全模块化的声卡驱动;
用户空间库 (alsa-lib) 可简化应用程序编程并提供更高级别的功能;
支持较旧的开放声音系统 (OSS) API,为大多数 OSS 程序提供二进制兼容性;
更好的支持USB 音频设备;
支持蓝牙音频设备;
支持AC'97和HD Audio dial-up soft-modems (比如Si3055);
对MIDI支持得更好;
支持suspend;
ALSA 架构
最上层是音频应用和声卡服务;
ALSA Library:alsa 提高用户空间访问声卡设备标准api
ALSA Layer:ALSA 驱动层。ALSA 又可以抽象为ASoc 层。
ASoc Layer:和具体平台相关。主要包括音频接口和控制接口两大类(可以简单理解为音频数据流和控制,其他控制也包含对电压管理的支持(DAPM))
我们可以看到,对于整个 linux 系统来说,整个通用框架基本一致,为了兼容不同的硬件平台,ASoC 就出来了,ASoc 就是就是对ALSA 底层的硬件封装。
对于不同的芯片平台需要去适配ASoc 驱动框架,对于音频工程师而言大部分情况只需要移植音频驱动即可,也就是Codec Driver。
简化一下:对于ASoC 里面的各个模块。我们后续在讨论。
总结
本文简单介绍了,ALSA 驱动通用架构,以及ALSA 驱动特点,对于ALSA 驱动只是冰山一角,后续将继续深入学习。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !