音频硬件基础

1、CODEC

音频压缩CO+解压缩DEC,CODEC就是多媒体数字信号编解码器,主要负责DAC和ADC。不管是音频加速器,还是I/O控制器,他们输入输出的都是纯数字信号,我们要使用声卡上的Line Out插孔输出信号的话,信号就必须经过声卡上的CODEC的转换处理。可以说,声卡模拟输入输出的品质和CODEC的转换品质有着重大的关系,音频加速器或I/O控制器决定了声卡内部数字信号的质量,而CODEC则决定了模拟输入输出的好坏。

在这里插入图片描述

外挂codec(AC107):

AC107是具有I2S/TDM输出转换的高度集成的2通道ADC。它专为高清语音捕获和识别应用平台中的多麦克风阵列而设计。

集成的数字PLL支持大范围的输入/输出频率,它可以从6 // 12-MHz,6.144- / 12.288-MHz,5.6448- / 11.2896-MHz,13MHz,19.2MHz,24.576MHz和其他非标准音频系统时钟。支持音频采样8kHz,11.025kHz,12kHz,16kHz,22.05kHz,24kHz,32kHz,44.1kHz,48kHz,96kHz。

AC107将立体声同步ADC与独立的可编程麦克风偏置电压和麦克风升压放大器集成在一起,可提供有效的通道数据,从而可以消除通道串扰。模拟输入端口MIC1P / N〜MIC2P / N被设计为两个差分麦克风引脚或单端输入引脚。每个通道中都提供独立的数字音量控制器。

AC107可以通过标准I2S或PCM格式在I2S端口上传输其2通道输出数据。同样,一台设备到八台设备可以组合起来,通过一条TDM线传输多达16个通道的输出数据。此外,当AP的I2S格式为常规协议类型时,可以使用一种称为编码模式的新格式来传输16个通道数据。

AC107通过TWI(2线串行接口,与I2C兼容)进行控制。时钟支持高达400 KHz的速率。它仅在从机模式下工作。

AC107特性:

  • 103dB动态范围(A权重)@0dB提升增益
  • – 85dB THD+N@0dB增强增益
  • ADC支持的采样率:8kHz〜96kHz
  • 两个全差分麦克风输入
  • 一个数字麦克风SCLK输出@1.024M〜3.072M
  • PLL支持宽时钟输入6 / 12MHz的,6.144MHz,5.6448MHz,13MHz的,16MHz的,19.2MHz的和24MHz的可编程低噪声麦克风偏置1.8V〜3.0V
  • <20mW的2-ADC低功耗应用

AC107应用:

  • 智能语音助手系统
  • 语音记录器
  • 数码相机和摄像机
  • 语音会议系统

AC107应用图:
在这里插入图片描述
在这里插入图片描述

2、数字音频接口

数字音频接口DAI,即Digital Audio Interfaces,顾名思义,DAI表示在板级或板间传输数字音频信号的方式。相比于模拟接口,数字音频接口抗干扰能力更强,硬件设计简单,DAI在音频电路设计中得到越来越广泛的应用。图2-1是一个典型的数字音频系统的电路组成,图中的嵌入式微控制器/DSP中集成了PCM、IIS或AC97音频接口,通过这些接口连接外部的音频编解码器即可实现声音的AD和DA转换,图中的功放完成模拟信号的放大功能。
图 2-1
              图 2-1

在这里插入图片描述

下面主要介绍音频设备的3种硬件接口—IIS,PCM和AC97:

2.1 IIS接口

2.1.1 IIS简介

IIS接口(Inter-IC Sound Bus内置集成电路音频总线)是飞利浦在1986年定义(1996年修订)的数字音频传输标准,用于数字音频数据在系统内部器件之间传输,例如编解码器CODEC、DSP、数字输入/输出接口、ADC、DAC和数字滤波器等。它采用了沿独立的导线传输时钟与数据信号的设计,通过将数据和时钟信号分离,避免了因时差诱发的失真,为用户节省了购买抵抗音频抖动的专业设备的费用。

I2S时差性能要优于SPDIF,适合短距离通讯。

2.1.2 IIS特点

  • 支持全双工/半双工。(单工数据传输只支持数据在一个方向上传输;半双工数据传输允许数据在两个方向上传输,但是在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;全双工数据通信允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。)

  • 支持主/从模式。(主模式:就是主CPU作为主机,向从机(挂载器件)发送接收数据。从模式:就是主CPU作为从机,接收和发送主机(挂载器件)数据。而主从机的分别其实是一个触发的作用,主机主动触发,从机只能被动响应触发。)

  • 和PCM相比,I2S更适合立体声系统。当然,IIS的变体也支持多通道的时分复用,因此可以支持多声道。

2.1.3 硬件结构

IIS是比较简单的数字接口协议,没有地址或设备选择机制。

在IIS总线上,只能同时存在一个主设备和从设备。主设备可以是发送设备,也可以是接收设备,或是协调发送设备和接收设备的其它控制设备。在IIS系统中,提供时钟(SCK和WS)的设备为主设备。图2-2是常见的IIS系统框图。在高端应用中,CODEC经常作为IIS的主控设备以精确控制IIS的数据流。
在这里插入图片描述
               图 2-2

IIS协议定义三根信号线:时钟信号SCK、左右声道选择信号WS和数据信号SD。

  • SCK:串行时钟SCLK,也叫位时钟(BCLK),对应数字音频的每一位数据,SCLK都有一个脉冲。模块内的同步信号,从模式时由外部提供,主模式时由内部产生。
    SCLK的频率= 声道数 X 采样频率 X 采样位数。
  • WS:帧时钟LRCK,也称WCLK,声道选择信号,表明数据发送端所选择的声道(WS=0,表示选择左声道;WS=1,表示选择右声道)。一个时钟周期代表一个音频采样点数据,LRCK的频率等于声音的采样频率。
  • SD:串行数据SDATA,以二进制补码形式在数据线上传输;在WS变化后的第一个SCK脉冲,先传输最高位(MSB, Most Significant Bit)。
  • MCLK:主时钟,也是以上两个时钟的参考时钟,一个系统应该使用同一的MCLK以保证时钟同步要求。常见频率256fs或384fs。有时为了使系统间能够更好地同步,当I2S配置为主模式(并且SPI_I2SPR寄存器中的MCKOE位置1)时,使用此时钟,该时钟输出频率 256×fs,fs即音频信号采样频率(fs)。

对于系统而言,能够产生SCK和WS的信号端就是主设备,用MASTER表示,简单系统示意图如下:
在这里插入图片描述

IIS包括两个声道(Left/Right)的数据,在主设备发出声道选择/字选择(WS)控制下进行左右声道数据切换。通过增加IIS接口的数目或其它IIS设备可以实现多声道(Multi-Channels)应用。

注意SD的数量可以为多个:
在这里插入图片描述
1986年SPEC规定为TTL电平,实际使用参考手册,常见的有3.3V和1.8V两种。

2.1.4 操作模式

随着技术的发展,在统一的 I2S接口下,出现了多种不同的数据格式。根据SDATA数据相对于LRCK和SCLK的位置不同,分为左对齐(较少使用)、I2S格式(即飞利浦规定的格式)和右对齐(也叫日本格式、普通格式)。

对于所有数据格式和通信标准而言,始终会先发送最高有效位(MSB 优先)。

发送端和接收端必须使用相同的数

### 音频硬件电路设计与实现 音频硬件电路的设计涉及多个方面,包括基础理论、具体模块的功能划分以及实际应用中的技术细节。以下是关于音频硬件电路设计的核心内容: #### 1. 音频基本概念 音频信号是一种模拟电信号,其频率范围通常在20Hz至20kHz之间[^1]。为了适应不同的应用场景,音频信号可能需要经过采集、放大、滤波等一系列处理过程。 #### 2. 设备组成 音频接口作为连接外部设备的重要组件,在音频系统中起到桥梁作用。它负责输入/输出音频信号,并提供与其他电子设备通信的能力。 #### 3. 放大电路结构 音频放大电路一般由以下几个部分构成: - **前置放大器**:用于提升微弱的输入信号电平,使其达到后续处理所需的幅度[^2]。 - **音频调控级**:此阶段可以对音量大小、高低频分量比例等参数进行调整。 - **功率放大级**:最终将增强后的信号驱动扬声器发声。 #### 4. FPGA的应用实例 现代音频硬件开发还经常利用现场可编程门阵列(FPGA),这种器件允许开发者自定义内部逻辑关系来完成特定任务。例如构建一个完整的音乐播放装置就需要综合考虑软硬件协同工作模式[^3]。借助于FPGA的强大能力,不仅可以简化传统意义上繁杂冗长的研发周期,而且还能灵活应对未来可能出现的新标准新协议兼容性挑战。 #### 5. 知识储备建议 针对想要深入学习该领域的朋友来说,除了掌握必要的电气工程基础知识外,还需要积累丰富的实践经验。比如熟悉各种元器件特性及其选型原则;理解常见拓扑架构优缺点对比分析方法等等[^4]。 ```python # 示例代码展示如何初始化简单的增益控制函数 def gain_control(input_signal, gain_factor=1.0): """ 对输入信号施加线性增益变换 参数: input_signal (list): 输入的声音样本列表 gain_factor (float): 增盖系数,默认值为1表示无变化 返回: list: 经过增盖处理后得到的结果序列 """ return [sample * gain_factor for sample in input_signal] example_input = [-0.5, 0.789, -0.234] adjusted_output = gain_control(example_input, gain_factor=2.0) print(adjusted_output) ``` 上述脚本片段演示了一个非常基础的操作——通过对原始数据乘以固定倍率因子从而改变整体响度水平的效果。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值