通话中RX和TX-智能手机音频系统概述

是通讯中的?
TX: transmit 传送 打电话 上行数据
RX: receive 接收  接电话 下行数据

在INTTERFACE中 
查看WAN网卡的流量时 RX 为下行流量 TX为上行流量 
查看LAN网卡的流量时 RX为上行流量   TX为下行流量

声明:本文非本人原创,主要整理了网上搜集到的一些资料,并加上个人注解。

音频系统概述

专业术语:

[plain] view plain copy
  1. ASLA         - Advanced Sound Linux Architecture  
  2. OSS          - 以前的Linux音频体系结构,被ASLA取代并兼容  
  3. Codec        - Coder/Decoder  
  4. I2S/PCM/AC97 - Codec与CPU间音频的通信协议/接口/总线  
  5. DAI          - Digital Audio Interface 其实就是I2S/PCM/AC97  
  6. DAC          - Digit to Analog Conversion  
  7. ADC          - Analog to Digit Conversion  
  8. DSP          - Digital Signal Processor  
  9. Mixer        - 混音器,将来自不同通道的几种音频模拟信号混合成一种模拟信号  
  10. Mute         - 消音,屏蔽信号通道  
  11. PCM          - Pulse Code Modulation 一种从音频模拟信号转换成数字信号的技术,区别于PCM音频通信协议  
  12. Sample Rate  - ADC的频率,每秒采样的次数,典型值如44.1KHZ  
  13. Sample Length- 比如24bit,就是将音频模拟信号按照2的24次方进行等分  
  14. SSI          - Serial Sound Interface  
  15. DAPM         - Dynamic Audio Power Management  

以Codec作为研究对象,它的输入有Mic(Microphone)、PhoneIn电话信号等,输出有耳机HP(Headphone)、扬声器SPK(Speaker)和PhoneOut电话信号。另外需要注意在Codec与CPU端间也有音频数字信号的输入输出。

1、播放


2、录音


3、电话上行


4、电话下行


5、通过蓝牙电话上行


6、通过蓝牙电话下行


以上摘自:http://blog.csdn.net/qianjin0703/article/details/6387662

Loon:1-4即播放、录音、打电话、接听电话和我们目前的音频系统基本是一致的,也应该属于常规设计。5-6增加了蓝牙模块,只是画出了CODEC与Bluetooth的接法,CODEC与CPU、Bluetooth与CPU的连接未给出。我们CODEC只有一组DAI(可以配置成I2S或PCM),那么CODEC到Bluetooth、CODEC到CPU能否复用一组DAI?设计中……


WM9713音频通路设计

CODEC : WM9713

要求:通话录音、电话背景音播放。支持耳机以及蓝牙耳机

[plain] view plain copy
  1. WM9713 路由控制:  
  2. 本机:  
  3.     AP声音播放 : DAC -> SPKMIXER -> SPK   
  4.     录音       : MIC1 -> REC -> ADC (板载MIC接MIC1)  
  5.     电话上行   : MIC1 -> MONOMIXER -> MONO -> 模组输入  
  6.     电话下行   : 模组输出 -> HEADSET / 免提状态 : 模组输出 -> MONOIN/PCBEFF -> SPKMIXER -> SPK  
  7.     通话录音   : MONOMIXER -> REC (电话上行), MONOIN -> REC (电话下行)  
  8.     背景音播放 : DAC -> MONOMIXER  
  9.   
  10. 耳机:  
  11.     AP声音播放 : DAC -> HPMIXER -> HP  
  12.     录音       : MIC2A -> REC -> ADC (耳机MIC接MIC2A)  
  13.     电话上行   : MIC1 -> MONOMIXER -> MONO -> 模组 (这里明显用板载MIC进行电话上行,个人觉得用耳机MIC效果更好)        
  14.     电话下行   : 模组输出 -> LINE -> HPMIXER -> HP  
  15.     通话录音   : MONOMIXER -> REC (电话上行), HPMIXER -> REC (电话下行)  
  16.     背景音播放 : DAC -> MONOMIXER  
  17.   
  18. 蓝牙耳机:蓝牙耳机通过CODEC的PCM接口连接。  
  19.     AP声音播放 : DAC -> HPMIXER -> REC -> ADC -> PCM -> BLUETOOTH   
  20.     录音       : BLUETOOTH -> PCM -> VOICEDAC -> ADC  
  21.     电话上行   : BLUETOOTH -> PCM -> VOICEDAC -> MONOMIXER -> MONO -> 模组输入         
  22.     电话下行   : MONOIN/PCBEFF -> HPMIXER -> REC -> ADC -> BLUETOOTH  
  23.     背景音播放 : DAC -> MONOMIXER  

以上摘自:http://blog.csdn.net/dycl3/article/details/2645835

Loon:对于蓝牙耳机的电话上行和电话下行通路,个人觉得复杂了一点,明显有更好的设计,目前暂没明白作者这样做的意图。下面给出WM9713框图和蓝牙框图帮助理解其音频路径设计。

WM9713框图:


蓝牙通话框图:


蓝牙通话框图,指示错了,应该是“蓝色表示电话下行,红色表示电话上行”。特此更正!

 

http://blog.csdn.net/tronteng/article/details/7356115

 Android 音频系统

0. 专用术语

1. 物理结构

2. 系统架构

 

 


 

本文基于Freescale IMX平台Codec ALC5625为例。

0. 专用术语

 ASLA - Advanced Sound Linux Architecture

 OSS - 以前的Linux音频体系结构,被ASLA取代并兼容

 Codec - Coder/Decoder

 I2S/PCM/AC97 - Codec与CPU间音频的通信协议/接口/总线

 DAI - Digital Audio Interface 其实就是I2S/PCM/AC97

 DAC - Digit to Analog Conversion

 ADC - Analog to Digit Conversion

 DSP - Digital Signal Processor

 Mixer - 混音器,将来自不同通道的几种音频模拟信号混合成一种模拟信号

 Mute - 消音,屏蔽信号通道

 PCM - Pulse Code Modulation 一种从音频模拟信号转换成数字信号的技术,区别于PCM音频通信协议

 采样频率 - ADC的频率,每秒采样的次数,典型值如44.1KHZ

 量化精度 - 比如24bit,就是将音频模拟信号按照2的24次方进行等分

 SSI - Serial Sound Interface

 DAPM - Dynamic Audio Power Management

 

1. 物理结构

 音频编解码器Codec负责处理音频信息,包括ADC,DAC,Mixer,DSP,输入输出以及音量控制等所有与音频相关的功能。

 Codec与处理器之间通过I2C总线和数字音频接口DAI进行通信。

 I2C总线 - 实现对Codec寄存器数据的读写。

 DAI - 实现音频数据在CPU和Codec间的通信。

以Codec作为研究对象,它的输入有Mic(Microphone),PhoneIn电话信号等,输出有耳机HP(HeadPhone),扬声器Speaker和PhoneOut电话信号。另外需要注意在Codec与CPU端间也有音频数字信号的输入输出。

1) 播放音乐

 

2) 录音

 

3) 电话

是通讯中的?
TX: transmit 传送 打电话 上行数据
RX: receive 接收  接电话 下行数据

--- 打电话 ---                                                           --- 接听---

   

4) 通过蓝牙打电话

--- 打电话 ---                                                           --- 接听---   

 

  

 

 2. 系统架构

  Android的音频系统拥有一个比较标准和健全的架构,从上层应用,java framework服务AudioMananger,本地服务AudioFlinger,抽象层AlsaHAL,本地库,再调用external的Alsa-lib外部支持库,最后到底层驱动的codec,可谓"五脏俱全"。

 以系统启动AuidoFlinger为例,简要窥探Alsa Sound的组织架构。

Java服务AudioManager作为服务端,本地服务AudioFlinger作为客户端,两者通过Binder机制交互。AudioFlinger对硬件功能的具体实现(比如setMode设置电话/蓝牙/录音等模式)交给硬件抽象层AlsaHAL完成。抽象层可以调用本地标准接口,比如mASLADevice->route,或者直接调用Alsa-lib库去操作底层驱动。

 

 Linux的音频驱动结构相对复杂,源码位于内核目录下的/sound/soc/,其中/codec文件夹下存放与平台无关的编解码器驱动,/imx文件夹下存放于freescale imx平台相关的音频驱动,主要可分为SSI驱动和DAI驱动。

以声卡驱动的数据结构为切入点分析,

1) struct snd_soc_codec - 由与平台无关的codec驱动实现。

2) struct snd_soc_platform - 由与imx平台相关的DAI驱动实现,主要实现了音频数据的DMA传输功能。

3) struct snd_soc_dai_link - 将平台相关的DAI与平台无关的codec联系起来。

 http://blog.csdn.net/qianjin0703/article/details/6387662

你可能感兴趣的:(原理)