全志R系列音频模块使用文档
5 E币
成为会员,免费下载资料
文件大小:2.55 MB
上传者:淡定哥
时间:2021-01-06 11:36:34
下载量:11
概述
1.1. 编写目的
介绍 Tina 平台音频模块的使用方法。
1.2. 适用范围
适用于 Tina SDK。 1.3. 相关人员
音频相关开发人员。
初始版本,整合全志R40/R16/R6/F35/R18 内容
相关术语
模块整体介绍
linux 中的音频子系统采用 ALSA 架构实现。ALSA 目前已经成为了 Linux 的主流音频体系结构。在内核设备驱动层,ALSA 提供了 alsa-driver,同时在应用层,ALSA 为我们提供了 alsa-lib,应用程序只要调用alsa-lib 提供的 API,即可以完成对底层音频硬件的控制。
2.1. 驱动架构
Tina SDK 对各个平台的音频设备驱动均采用 ASOC 架构实现。ASoC 是建立在标准 alsa 驱动层上,为了更好地支持嵌入式处理器和移动设备中的音频 codec 的一套软件体系,ASoC 将音频系统分为 3 部分:
Codec,Platform 和 Machine。- Codec 驱动
asoc 中的一个重要设计原则就是要求 Codec 驱动是平台无关的,一般提供以下特性:
Mixer 和其他的音频控件;
Codec 的 ALSA 音频操作接口; - Platform 驱动
它包含了该 SoC 平台的音频 DMA 和音频接口的配置和控制(I2S,PCM,AC97 等等);一般不
包含与板子或 codec 相关的代码。 - Machine 驱动
单独的 Platform 和 Codec 驱动是不能工作的,它必须由 Machine 驱动把它们结合在一起才能完成整个
设备的音频处理工作。
接口使用描述
应用程序使用 alsa-lib 的接口使用音频驱动。在 Tina SDK 中,提供了 3 个应用程序 amixer,aplay,arecord用于音频的测试。
Mixer 控件接口
对音频通路、功放音量等 mixer 控件(control)接口的操作可通过对 amixer 进行封装来实现。如下所示为获取/设置音量的接口封装 demo。
Record 接口
展开》
折叠》