您好,欢迎来到微智科技网。
搜索
您的当前位置:首页音频系统方案

音频系统方案

来源:微智科技网
⾳频系统⽅案

audio系统⼀硬件架构1 总体架构:

2 Pxa955与codec和BT的连接:

3 CP中的编解码模块和voice enhancement component:

4 ABU的部架构:

DMA传输分为两种模式:中断驱动传输和⾃动DMA传输。中断驱动传输是当数据请求条件满⾜时,产⽣中断,在中断处理函数⾥配置DMA,启动传输。

采⽤的是⾃动DMA数据传输。当数据从⽤户空间拷贝到核buffer后,当核buffer不为空时,配置ABU和DMA的参数,启动DMA,当ABU的SysRxFiFo中的数据⼩于播放⽔位线,即有空间从DMA接收数据时,产⽣DMA请求,DMA控制器获得数据请求后,启动传输。每传输完DMA的⼀个描述符后,产⽣⼀次中断,在中断函数中,更新ABU和核buffer 的指针状态,分配下⼀个DMA描述符缓冲区的地址。5 Codec的部架构:

Codec中的增益放⼤器

所⽤到的codec通路

LEVANTE_AnaMIC1_TO_PCM_L 通话时,MIC通路LEVANTE_AnaMIC1_LOUD_TO_PCM_L 通话免提时,MIC通路LEVANTE_AnaMIC2_TO_PCM_L 通话插⽿机时,MIC通路LEVANTE_PCM_L_TO_EAR_VIA_DAC1 通话时,听筒通路LEVANTE_PCM_L_TO_SPKR_VIA_DAC1 通话免提时,SPEAKER通路LEVANTE_PCM_L_TO_HS 通话插⽿机时,⽿机通路LEVANTE_I2S_TO_EAR_VIA_DAC1 ⽤听筒放⾳频的通路LEVANTE_I2S_TO_SPKR_VIA_DAC1 ⽤SPERKER放⾳频的通路LEVANTE_I2S_TO_HS ⽤⽿机放⾳频的通路LEVANTE_AnaMIC1_LOUD_TO_PCM_L_APPS APPS录⾳时,MIC通路

LEVANTE_AnaMIC2_TO_PCM_L_APPS 插着⽿机⽤APPS录⾳时,⽿机上的MIC通路LEVANTE_I2S_TO_SPKR_HS 插着⽿机,来电铃⾳通路⼆软件架构1架构图

2控制流和数据流的路径控制流:AP HiFi 播放/录⾳

Android audio system → Marvel HAL → ALSA Lib → Ctrl Plugin → Audio Server → AM → ACM → Levante Component →ALSA Lib → Levante Kernel Driver → Levante Audio HW CodecCP voice call 通路/⾳量控制

Android audio system → Marvell HAL → ALSA Lib → Ctrl Plugin → Audio Server → AM → ACM → Levante Component →ALSA Lib → Levante Kernel Driver → Levante Audio HW Codec

Android audio system → Marvell HAL → ALSA Lib → Ctrl Plugin → Audio Server → AM→ ACM → audio stub → Communication subsystemCP voice call MUTE 控制

Android RIL →Marvell Telephony →Audio Server →AM →ACM →audio stub →Communication subsystem数据流:AP HiFi 播放

Android audio system → Marvell HAL → ALSA Lib → ALSA core/ABU driver → Levante Audio HW CodecAP HiFi 录⾳

Levante Audio HW Codec →ALSA core/ABU driver →ALSA Lib →Marvell HAL →Android audio system

AP 向CP发送数据进⾏播放

Android audio system → Marvell HAL → ALSA Lib → PCM Plugin → Audio Server →AM → ACM → audio stub →Communication subsystemCP录⾳发送到AP

Communication subsystem→ audio stub→ ACM → AM → Audio Server → PCM Plugin →ALSA Lib → Marvell HAL → Androidaudio system3软件各功能块描述3.1 Marvell HAL3.1.1 功能

通过ALSA Lib连接Android audio system和Marvell 的硬件系统。从Android audio system获取⾳频路由通知,发送到Audio Server

从Android audio Apps获取⾳频数据,通过ALSA Lib发送到codec或者Communication subsystem。从ALSA Lib获取数据发送到Android audio Apps。3.1.2 代码位置

vendor/marvell/generic/libaudio/AudioHardware.cppvendor/marvell/saarbmg1/libaudiopath/AudioPath.c3.1.3 通路配置实例

通过以下函数来配置路由通知。

void enable_audio_path_for_device(uint32_t devices, unsigned char left, unsigned char right) voiddisable_audio_path_for_device(uint32_t devices)

void set_volume_for_device(uint32_t devices, unsigned char left, unsigned char right) 其中,enable_audio_path_for_device将参数device与结构数组audio_path_list[]中各个数组元素的device成员进⾏匹配,然后调⽤相匹配的数组元素的enable成员所指向的函数,⽐如enable_loud_speaker。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务