首页 理论教育Linux内核与设备驱动中的音频设备需求

Linux内核与设备驱动中的音频设备需求

【摘要】:音频设备还有可能有多路数据源,而在设备内部作混音,所以在考虑控制需求的时候,同样要考虑相关的应用以及混音通路的设置。这样更进一步要求控制流能够和数据流分离。然而控制流和数据流不仅要考虑分离又要考虑关联,毕竟控制部分同样需要能够获取数据流格式等相关的信息。

对计算机以及嵌入式设备来说,音频设备同样是一种重要的输出设备,由于人们对声音是十分敏感的,所以在有人机交互功能的设备中音频设备的重要性就不言而喻了。

声音是连续的模拟信号,而音频设备是要将这些模拟信号与数字信号进行转换,从而满足音频的输入输出的需求。而这种模拟信号和数字信号转换的原理如图6-12所示。

978-7-111-49426-3-Chapter06-113.jpg

图6-12 音频信号模数转换的原理

从图6-11可见这种转换的基本原理就是通过离散时间对信号进行量化来实现对连续模拟信号尽量准确地模拟。根据这个原理可知对音频信号数字效果的影响因素如下:

●采样频率。采样频率是指单位时间内的采样次数。采样频率越大,采样点之间的间隔就越小,数字化后得到的声音就越逼真,但相应的数据量就越大。声音采样频率以kHz(千赫兹)衡量。

●量化位数(采样位数)。量化位数是模拟量转换成数字量之后的数据位数。量化位数表示的是声音的振幅,位数越多,音质越细腻,相应的数据量就越大。量化位数主要有8位和16位两种。(www.chuimin.cn)

●声道数。声道数是指处理的声音是单声道还是立体声。单声道在声音处理过程中只有单数据流,而立体声则需要左、右声道的两个数据流。显然,立体声的效果要好,但相应的数据量要比单声道的数据量加倍。

不同的音频效果就是以上因素的各种组合,而音频设备与主处理器之间的实际音频流就是通过以上因素获得的数字音频信息。所以驱动要能够支持各种组合的音频信号,其中必然包含数据流的传输支持以及控制支持。另外音频通常包括输入和输出,输入和输出是允许同时进行的,所以还要能够支持音频流输入输出的同时传送。

另外还有很多产生和制作数字音频的技术(如Sequencer、MIDI),也是需要与音频设备进行相应的支持,这属于可选功能。

除了以上数字音频的部分(与主处理器关联的都是数字信号),音频设备还有模拟部分,这部分对于驱动的需求通常是在控制上,数据流都是转换成数字信号进行存储。这样在需求上就需要分为控制部分和数据部分,驱动也要对这些进行支持。

音频设备还有可能有多路数据源,而在设备内部作混音,所以在考虑控制需求的时候,同样要考虑相关的应用以及混音通路的设置。这样更进一步要求控制流能够和数据流分离。然而控制流和数据流不仅要考虑分离又要考虑关联,毕竟控制部分同样需要能够获取数据流格式等相关的信息。

总体来说,音频设备可理解为有单一控制通路,有一个或多个数据通路的设备。