Linux音频设备驱动————音频设备

一、数字音频设备
Linux音频设备驱动————音频设备
目前,手机、PDA、MP3 等许多嵌入式设备中包含了数字音频设备,一个典型的数字音频系统的电路组成为:嵌入式微控制器/DSP 中集成了PCM、IIS 或AC97 音频接口,通过这些接口连接外部的音频编解码器即可实现声音的AD 和DA 转换,功放完成模拟信号的放大功能。

音频编解码器是数字音频系统的核心,衡量它的指标主要有:

• 采样频率
采样的过程就是将通常的模拟音频信号的电信号转换成二进制码0 和1 的过程,这些0 和1 便构成了数字音频文件。如图17.2 中的正弦曲线代表原始音频曲线,方格代表采样后得到的结果,二者越吻合说明采样结果越好。采样频率是每秒钟的采样次数,我们常说的 44.1kHz 采样频率就是每秒钟采样44100 次。理论上采样频率越高,转换精度越高,目前主流的采样频率是48kHz。

• 量化精度
量化精度是指对采样数据分析的精度,比如24bit 量化精度就是是将标准电平信号按照2 的24 次方进行分析,也就是说将图17.2 中的纵坐标等分为224 等分。量化精度越高,声音就越逼真。

二、 音频设备硬件接口
2.1 PCM 接口
针对不同的数字音频子系统,出现了几种微处理器或DSP 与音频器件间用于数字转换的接口。最简单的音频接口是PCM(脉冲编码调制)接口,该接口由时钟脉冲(BCLK)、帧同步信号(FS)及接收数据(DR)和发送数据(DX)组成。在FS 信号的上升沿,数据传输从MSB(Most Significant Bit)字开始,FS 频率等于采样率。FS 信号之后开始数据字的传输,单个的数据位按顺序进行传输,1 个时钟周期传输1 个数据字。发送MSB 时,信号的等级首先降到最低,以避免在不同终端的接口使用不同的数据方案时造成MSB 的丢失。PCM 接口很容易实现,原则上能够支持任何数据方案和任何采样率,但需要每个音频通道获得一个独立的数据队列。

2.2 IIS 接口
IIS 接口(Inter-IC Sound)在20 世纪80 年代首先被飞利浦用于消费音频,并在一个称为LRCLK(Left/RightCLOCK)的信号机制中经过多路转换,将两路音频信号变成单一的数据队列。当LRCLK 为高时,左声道数据被传输;LRCLK 为低时,右声道数据被传输。与PCM 相比,IIS 更适合于立体声系统。对于多通道系统,在同样的BCLK 和LRCLK 条件下,并行执行几个数据队列也是可能的。

IIS接口详细描述

2.3 AC97 接口
AC’97(Audio Codec 1997)是以Intel 为首的五个PC 厂商Intel、Creative Labs、NS、Analog Device与Yamaha 共同提出的规格标准。与PCM 和IIS 不同,AC’97 不只是一种数据格式,用于音频编码的内部架构规格,它还具有控制功能。AC’97 采用AC-Link 与外部的编解码器相连,AC-Link 接口包括位时钟(BITCLK)、同步信号校正(SYNC)和从编码到处理器及从处理器中解码(SDATDIN 与SDATAOUT)的数据队列。AC’97数据帧以SYNC 脉冲开始,包括12 个20 位时间段(时间段为标准中定义的不同的目的服务)及16 位“tag”段,共计256 个数据序列。例如,时间段“1”和“2”用于访问编码的控制寄存器,而时间段“3”和“4”分别负载左、右两个音频通道。“tag”段表示其他段中哪一个包含有效数据。把帧分成时间段使传输控制信号和音频数据仅通过4 根线到达9 个音频通道或转换成其他数据流成为可能。与具有分离控制接口的IIS方案相比,AC’97 明显减少了整体管脚数。
Linux音频设备驱动————音频设备

AC’97接口手册

PCM、IIS 和AC97 各有其优点和应用范围,例如在CD、MD、MP3 随身听多采用IIS 接口,移动电话会采用PCM 接口,具有音频功能的PDA 则多使用和PC 一样的AC’97 编码格式。