音频子系统
奇小葩
学习,思考,总结
展开
-
Linux音频子系统(四)PCM设备的创建
1. PCM是什么PCM是英文Pulse-code modulation的缩写,中文译名是脉冲编码调制。PCM就是要把声音从模拟转换成数字信号的一种技术,他的原理简单地说就是利用一个固定的频率对模拟信号进行采样,采样后的信号在波形上看就像一串连续的幅值不一的脉冲,把这些脉冲的幅值按一定的精度进行量化,这些量化后的数值被连续地输出、传输、处理或记录到存储介质中,所以对于音频原始的数据是PCM格式。...原创 2019-08-05 23:02:41 · 1000 阅读 · 0 评论 -
linux音频子系统(一)硬件基础接口
在传统的音频电路中有麦克风、前置放大器、模/数转换器ADC、数/模转换器DAC、输出放大器,以及扬声器,它们之间使用模拟信号连接,对于硬件工程师来说,调试复杂,有大量的ADC和DAC调试工作量。但是随着技术的发展和对性能考虑,越来越多的使用数字电路接口来替换传统需要模数转化和数模转换的芯片,而使用内部集成该功能,直接从外部可以输出数字信号,软件可配置,使得工作量极大得到了提升。对于这块,必...原创 2019-08-01 20:38:34 · 1988 阅读 · 0 评论 -
Linux音频子系统(二)ALSA架构简介
上章从硬件上来了解了音频子系统中,对于硬件上有哪些接口,了解基本的一些概念。本章就开始真正学习ALSA的框架,整个学习的过程以实际项目中TI的AM3352的芯片,搭配外围的Codec为模型来总结和整理。本章的重点是来看看Alsa的框架模型是什么样,怎么分层,每一层都完成什么工作,后面章节以此为基础进行介绍。1. 概述Alsa是Advanced Linux Sound Architecture的...原创 2019-08-01 20:39:05 · 1880 阅读 · 0 评论 -
Linux音频子系统(六)ASoC驱动框架
1. 硬件架构首先我们来看看,我们实际的开发板上的硬件接口,一般由一个cpu和一个codec组成,其大致的框图为对于音频的应用主要有播放和录音的功能,数据流通过I2S的接口来传输,而I2c主要完成的控制接口,例如控制声音的大小,功放的增益等操作。对于回放/录音的情形,PCM 数据流向大致是:2. 软件架构ASoC–ALSA System on Chip ,是建立在标准ALSA驱动层上,...原创 2019-08-06 09:37:43 · 1199 阅读 · 0 评论 -
Linux音频子系统(三)ALSA的核心层声卡注册
前一章节对整个ALSA的框架进行了分层,本章主要来梳理下ALSA的驱动框架层。1. 声卡驱动初始化static int __init alsa_sound_init(void){ snd_major = major; snd_ecards_limit = cards_limit; if (register_chrdev(major, "alsa", &snd_fops)) {...原创 2019-08-05 23:02:29 · 1377 阅读 · 0 评论 -
Linux音频子系统(八)ASoC架构中的Codec
对于Codec,在我们的开发板中使用的uda1341,在这个开发板上主要完成以下功能:音频播放,应用程序将音频文件转换成PCM数据,然后codec芯片对PCM等信号进行D/A转换,把数字的音频信号转换为模拟信号录音,对Mic、Linein或者其他输入源的模拟信号进行A/D转换,把模拟的声音信号转变CPU能够处理的数字信号对音频信号做出相应的处理,例如音量控制,功率放大,EQ控制等等...原创 2019-08-14 20:03:26 · 935 阅读 · 0 评论 -
Linux音频子系统(九)ASoC架构中的platform
Platform驱动的主要作用是完成音频数据的管理,最终通过CPU的数字音频接口(DAI)把音频数据传送给Codec进行处理,最终由Codec输出驱动耳机或者是喇叭的音信信号。在具体实现上,ASoC有把Platform驱动分为两个部分:snd_soc_platform_driver和snd_soc_dai_driver。其中,platform_driver负责管理音频数据,把音频数据通过dma或其...原创 2019-08-15 19:47:28 · 1633 阅读 · 0 评论 -
Linux音频子系统(七)ASoC架构中的Machine
前面一节的内容我们提到,ASoC被分为Machine、Platform和Codec三大部分,并且介绍了其软硬件框架和基本的数据流,其中的Machine驱动负责Platform和Codec之间的耦合以及部分和设备或板子特定的代码,本章的主要内容是Machine如何驱动负责处理机器特有的一些控件和音频事件Machine驱动如何把Platform和Codec结合在一起完成整个设备的音频处理工作。...原创 2019-08-13 22:39:48 · 1118 阅读 · 0 评论