Chinaunix首页 | 论坛 | 博客
  • 博客访问: 869245
  • 博文数量: 189
  • 博客积分: 4310
  • 博客等级: 上校
  • 技术积分: 1925
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-27 08:56
文章分类

全部博文(189)

文章存档

2015年(1)

2013年(2)

2012年(1)

2011年(39)

2010年(98)

2009年(48)

分类: LINUX

2010-03-08 10:31:45

在linux系统中,先后出现了音频设备的两种框架:OSS和ALSA.
针对不同的数字音频子系统,出现了几种微处理器或DSP与音频器件间用于数字转换的接口。
音频设备的硬件接口
(1)PCM接口。
(2)IIS接口。
(3)AC97接口。

在CD,MD,MP3随身听多采用IIS接口,移动电话会采用PCM接口,具有音频功能的PDA则多使用和PC一样的AC97编码格式。

linux OSS音频设备驱动
OSS标准中有两个最基本的音频设备:mixer(混音器)和dsp(数字信号处理器)。
在声卡的硬件电路中,mixer是一个很重要的组成部分,它的作用是将多个信号组合或者叠加在一起,对于不同的声卡来说,其混音器的作用可能各不相同。在OSS驱动中,/dev/mixer设备文件时应用程序对mixer进行操作的软件接口。

OSS用户空间编程
1.dsp编程
对OSS驱动声卡的编程使用linux文件接口函数,dsp接口的操作一般包括如下几个步骤
(1)打开设备文件/dev/dsp。
(2)如果有需要,设置缓冲区大小。
(3)设置声道(channel)数量。
根据硬件设备和驱动程序的具体情况,可以设置为单声道或者立体声。
(4)设置采样格式和采样频率。
(5)读写/dev/dsp实现播放和录音。
linux ALSA音频设备驱动
ALSA的主要特点,
(1)支持多种声卡设备。
(2)模块化的内核驱动程序。
(3)支持SMP和多线程。
(4)提供应用开发函数库(alsa-lib)以简化应用程序开发。
(5)支持OSS API,兼容OSS应用程序。

ALSA系统包括 驱动包alsa-driver,开发包alsa-libs,开发板插件alsa-libplugins,设置管理工具包alsa-utils,其他声音相关处理小程序包alsa-tools,特殊音频固件支持包alsa-firmware,OSS接口兼容模拟层工具alsa-oss,其中只有驱动包是必需的。
对于每个声卡而言,必须创建一个card实例,card是声卡的“总部”,他管理这个声卡上的所有设备(组件),如PCM,mixers,MIDI,synthesizer等。因此,card和组件式ALSA声卡驱动中的主要组成元素。

PCM设备
每个声卡最多可以有四个PCM实例,一个PCM实例对应一个设备文件。PCM实例由PCM播放和录音流组成,而每个PCM流又由一个或多个PCM子流组成,
阅读(2594) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~