• ASOC层


    ALSA Soc Layer
    ALSA 芯片系统(ASOC)层总体工程目标是对芯片处理器嵌入式系统提供更好ALSA支持(e.g.
    Pxa2xx,au1x00,iMX,etc)和方便的音频codecs.当前内核有一些soc audio 支持,不过有一些限制:
    (1)当前,codec驱动总是紧密和SOC cpu联系在一起,这不是真实想法以及将导致代码的重复,例如linux 有4个不同wm8731驱动对应4个不同的soc platforms.
    (2)对于信号使用有一些不是标准的方法来初始audio事件,例如:耳机和耳麦插入,耳机和耳麦检测来自于插入事件.在便携式设备有一些很正常的事件以及常常需要machine指定的代码去re route 音频,使能amp等etc来自与一个事件.
    (3)当播放和录音时候当前驱动试着去一直供电(power up),对于pc是很好的,但是对于portable devices容易浪费大量电,还有不支持改变codec的采样率和偏执电流来节省power.
    ASOC 当前一直在进步并且大部分特性实现了以及当前主流内核支持PXA2xx和AT91xx和S3C24XX  Soc.
    
    设计:
    ASOC 层被设计去区分如下如下情况并且提供如下特性(features):
    (1)Codec independence,允许重新使用codec 驱动在其他平台(platforms)和机器(machines).
    (2)简单i2s/pcm音频接口配置(setup)在codec和soc之间,在应用hw params可知道情况下每一个soc接口和codec 注册它的音频接口兼容core以及之后matched和配置。
    (3)动态音频电源管理(DAPM),DAPM在任何时候自动设置codec处于最小的功率状态。包含上电和下电内部电源模块取决与内部codec 音频路由和任何有效的streams.
    (4)pop和click减小,通过正常上电和下电codec时序(包含使用数字mute 信号)可以减少pops和clicks.改变了电源状态影响了codec的信号.
    (5)Machine指定的控制,允许机器添加控制了sound card .例如: speaker amp的音量控制。
    为了实现所有这些,ASOC基本分成了嵌入式音频系统3个组成部分:
    A: codec驱动:包含了平台独立和包含音频控制和音频接口兼容,codec DAPM定义和codec IO功能.
    B:platform驱动:包含了音频DMA和音频接口驱动(I2S,AC97,PCM).
    C:Machine驱动:处理机器指定的控制和音频事件,例如开始播放打开功放。
    支持的SOCs:
    
    下面soc cpus目前是支持的:
    Intel/Marvell PXA2xx and PXA3xx (AC97, I2S & PCM)
    Atmel AT91 and AVR32 (I2S)
    S3C24xx (AC97 & I2S)
    Freescale i.MX31 (I2S & PCM)
    Renesas SH7760 (AC97 & I2S)
    TI OMAP (I2S)
    ADI Blackfin (AC97 & I2S)
    TI DaVinci (I2S)
    Freescale PPC (I2S)
    AMD/RMI/Alchemy Au1200/Au1550 (AC97, I2S)
    一勤天下无难事。
  • 相关阅读:
    php自动跳转中英文页面
    如何让一个层关闭之后,就算刷新页面了也不显示。除非关闭页面再次打开
    彻底杜绝warning: Cannot add header information headers already sent in......
    大三了
    X牛人關於編程語錄
    C++虚函数表解析
    epoll:Edge or Level Triggered
    LRU和LFU的区别
    会话、进程组与僵死进程
    Effective C++学习笔记:确定基类有虚析构函数
  • 原文地址:https://www.cnblogs.com/nowroot/p/13669012.html
Copyright © 2020-2023  润新知