Android系统-Linux音频驱动架构

简介

LINUX下音频驱动开发,要遵循标准的ALSA架构,
下面分别从硬件架构、软件架构、驱动程序,3个方面分析。

硬件架构

硬件上音频总线接口有很多,如I2S、PCM、TDM、SLIMBUS等,以I2S为例分析:

 

  • 播放流程
  1. 使用I2C对CODEC做初始化配置。
  2. 音频数据从外部flash读取到内存中。
  3. 数据经过DMA送到I2S的TXFIFO。
  4. 数据由TXFIFO送到CODEC硬件。
  5. 在CODEC硬件里,数据从数字信号转变成模拟信号。
  6. 模拟信号经过喇叭播放出来,就实现了声音的播放。
  • 录音流程
    与播放流程相反,在第5步,从模拟信号变成数字信号,其他都一样

软件架构-ALSA

安卓的整体音频架构

从上到下分别是:

1、APP-HAL,安卓中的音频框架,用于适配LINUX内核。

2、ALSA-lib,LINUX内核音频驱动框架。

3、machine-codec驱动,硬件音频驱动程序。

驱动程序

按照ALSA驱动框架要实现的接口有:

各个部分功能分别是:

1、DTS,音频硬件参数配置。

2、CPU DAI,CPU上的音频接口驱动,如I2S,PCM,SLIMBUS等。

3、platform,基于CPU的DMA接口封装,用于实现音频数据在内存和DMA之间流动。

4、CODEC DAI,CODEC上的音频接口驱动。

5、CODEC,CODEC自身驱动。

6、I2C,实现CODEC的配置接口。

7、machine,设备层面组装所有驱动,实现音频通路。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值