IIS 接口(Inter-IC Sound)在20 世纪80 年代起首被飞利浦用于花费音频,并在一个称为LRCLK(Left/RightCLOCK)的旌旗灯号机制中经由多路转换,将两路音频旌旗灯号变成单一的数据队列。当LRCLK 为高时,左声道数据被传输;LRCLK 为低时,右声道数据被传输。与PCM 比拟,IIS 更合适于立体声体系。对于多通道体系,在同样的BCLK 和LRCLK 前提下,并行履行几个数据队列也是可能的。
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 明显削减了整体管脚数。
① 打开设备文件/dev/dsp
PCM、IIS 和AC97 各有其长处和应用范围,例如在CD、MD、MP3 随身听多采取IIS 接口,移动德律风会采取PCM 接口,具有音频功能的PDA 则多应用和PC 一样的AC'97 编码格局。
3. Linux OSS 音频设备驱动及应用编程
3.1 OSS 驱动的构成
2)模块化的内核驱动法度榜样
OSS 标准中有2 个最根本的音频设备:mixer(混音器)和DSP(数字旌旗灯号处理器)。
在声卡的硬件电路中,mixer 是一个很重要的构成部分,它的感化是将多个旌旗灯号组合或者叠加在一路,对于不合的声卡来说,其混音器的感化可能各不雷同。OSS 驱动中,/dev/mixer 设备文件是应用法度榜样对mixer进行操作的软件接口。
混音器电路平日由两个部分构成:输入混音器(input mixer)和输出混音器(output mixer)。
- ioctl(fd, SOUND_MIXER_READ_RECMASK, &recmask);
- if (recmask & SOUND_MIXER_CD)
- printf("The CD input can be a recording source");
输入混音器负责大年夜多个不合的旌旗灯号源接收模仿旌旗灯号,这些旌旗灯号源竽暌剐时也被称为混音通道或者混音设备。模仿旌旗灯号经由过程增益控制器和由软件控制的音量调节器后,在不合的混音通道中进行级别(level)调制,然后被送到输入混音器中进行声音的合成。混音器上的电子开关可以控制哪些通道中有旌旗灯号与混音器相连,有些声卡只许可连接一个混音通道作为灌音的音源,而有些声卡则许可对混音通道做随便率性的连接。经由输入混音器处理后的旌旗灯号仍然为模仿旌旗灯号,它们将被送到A/D 转换器进行数字化处理。
输出混音器的工作道理与输入混音器类似,同样也有多个旌旗灯号源竽暌闺混音器相连,并且事先都经由了增益调节。当输出混音器对所有的模仿旌旗灯号进行了混淆之后,平日还会有一个总控增益调节器来控制输出声音的大年夜小,此外还有一些声调控制器来调节输出声音的声调。经由输出混音器处理后的旌旗灯号也是模仿旌旗灯号,它们最终会被送给喇叭或者其它的模仿输出设备。对混音器的编程包含若何设置增益控制器的级别,以及如何在不合的音源间进行切换,这些操作平日来讲是不持续的,并且不会像灌音或者放音那样须要占用大年夜量的计算机资本。
因为混音器的操作不相符典范的读/写操作模式,是以除了open()和close()两个体系调用之外,大年夜部分的操作都是经由过程ioctl()体系调用来完成的。与/dev/dsp 不合,/dev/mixer 允很多个应用法度榜样同时拜访,并且混音器的设置值会一向保持到对应的设备文件被封闭为止。DSP 也称为编解码器,实现灌音(灌音)和放音(播放),其对应的设备文件是/dev/dsp 或/dev/sound/dsp。
OSS 声卡驱动法度榜样供给的/dev/dsp 是用于数字采样和数字灌音的设备文件,向该设备写数据汲臣芏着激活声肯喔赡D/A 转换器进行放音,而向该设备读数据则意味着激活声肯喔赡A/D 转换器进行灌音。在大年夜DSP 设备攫取数据时,大年夜声卡输入的模仿旌旗灯号经由A/D 转换器变成数字采样后的样本,保存在声卡驱动法度榜样的内核缓冲区中,当应用法度榜样经由过程 read()体系调用大年夜声卡攫取数据时,保存在内核缓冲区中的数字采样结不雅将被复制到应用法度榜样所指定的用户缓冲区中。须要指出的是,声卡采样频率是由内核中的驱动法度榜样所决定的,而不取决于应用法度榜样大年夜声卡攫取数据的速度。如不雅应用法度榜样攫取数据的速度过慢,乃至低于声卡的采样频率,那么多余的数据将会被丢弃(即overflow);如不雅攫取数据的速度过快,乃至高于声卡的采样频率,那么声卡驱动法度榜样将会壅塞那些请求数据的应用法度榜样,直到新的数据到来为止。在向DSP 设备写入数据时,数字旌旗灯号会经由D/A 转换器变成模仿旌旗灯号,然后产生出声音。应用法度榜样写入数据的速度应当至少等于声卡的采样频率,过慢会产生声音暂停或者逗留的现象(即underflow)。如不雅用户写入过快的话,它会被内核中的声卡驱动法度榜样壅塞,直到硬件有才能处理新的数据为止。
推荐阅读
视野。但不知为何,法度榜样员在很多人中的印象并不是特别好,蓬头垢面、满脸油光、格子衫、小短裤似乎成了法度榜样员的代名词。 反不雅同一公司里的其它岗亭,产品、运营、>>>详细阅读
本文标题:Linux音频设备驱动架构及应用编程
地址:http://www.17bianji.com/lsqh/38578.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示