Chinaunix首页 | 论坛 | 博客
  • 博客访问: 487058
  • 博文数量: 73
  • 博客积分: 1170
  • 博客等级: 少尉
  • 技术积分: 720
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-20 15:48
文章分类

全部博文(73)

文章存档

2013年(9)

2012年(64)

我的朋友

分类: 嵌入式

2012-05-29 20:29:57

1.PCM接口
    
针对不同的数字音频子系统,出现了几种微处理器或DSP与音频器件间用于数字转换的接口。最简单的音频接口是PCM(脉冲编码调制)接口,该接口由时钟脉冲(BCLK)、帧同步信号(FS)及接收数据(DR)和发送数据(DX)组成。在FS信号的上升沿,数据传输从MSBMost Significant Bit)字开始,FS频率等于采样率。FS信号之后开始数据字的传输,单个的数据位按顺序进行传输,1个时钟周期传输1个数据字。发送MSB时,信号的等级首先降到最低,以避免在不同终端的接口使用不同的数据方案时造成MSB的丢失。
     PCM
接口很容易实现,原则上能够支持任何数据方案和任何采样率,但需要每个音频通道获得一个独立的数据队列。
2.IIS接口
     IIS
接口(Inter-IC Sound)在20世纪80年代首先被飞利浦用于消费音频,并在一个称为LRCLKLeft/Right CLOCK)的信号机制中经过多路转换,将两路音频信号变成单一的数据队列。当LRCLK为高时,左声道数据被传输;LRCLK为低时,右声道数据被传输。与PCM相比,IIS更适合于立体声系统。对于多通道系统,在同样的BCLKLRCLK条件下,并行执行几个数据队列也是可能的。
3.AC97接口
     AC'97
Audio Codec 1997)是以Intel为首的五个PC厂商IntelCreative LabsNSAnalog DeviceYamaha共同提出的规格标准。与PCMIIS不同,AC'97不只是一种数据格式,用于音频编码的内部架构规格,它还具有控制功能。AC'97采用AC-Link与外部的编解码器相连,AC-Link接口包括位时钟(BITCLK)、同步信号校正(SYNC)和从编码到处理器及从处理器中解码(SDATDINSDATAOUT)的数据队列。AC'97数据帧以SYNC脉冲开始,包括1220位时间段(时间段为标准中定义的不同的目的服务)及16“tag”段,共计256个数据序列。例如,时间段“1”“2”用于访问编码的控制寄存器,而时间段“3”“4”分别负载左、右两个音频通道。“tag”段表示其他段中哪一个包含有效数据。把帧分成时间段使传输控制信号和音频数据仅通过4根线到达9个音频通道或转换成其他数据流成为可能。与具有分离控制接口的IIS方案相比,AC'97明显减少了整体管脚数。一般来说,AC'97 编解码器采用TQFP48封装.
    PCMIISAC97各有其优点和应用范围,例如在CDMDMP3随身听多采用IIS接口,移动电话会采用PCM接口,具有音频功能的PDA则多使用和PC一样的AC'97编码格式。

     音频设备接口包括PCMIISAC97几种,分别适用于不同的应用场合。针对音频设备,Linux内核中包含了2类音频设备驱动框架,OSS ALSA,前者包含dspmixer字符设备接口,在用户空间的编程中,完全使用文件操作;后者以card和组件(pcmmixer等)为主线,在用户空间的编程中不使用文件接口而使用alsalib
     在音频设备驱动中,几乎必须使用DMA,而DMA的缓冲区会被分割成一个一个的段,每次 DMA操作进行其中的一段。OSS驱动的阻塞读写具有流控能力,在用户空间不需要进行流量方面的定时工作,但是它需要及时的写(播放)和读(录音),以免出现缓冲区的underflowoverflow

阅读(2035) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~