当前位置:   article > 正文

四、音频如何从USB输入输出_usb音频电路

usb音频电路


由于USB接口的广泛使用,很多场景下会选择USB接口进行音频的输入输出。这时候可以选择USB外置声卡,也可以选择在板子内部通过固件将音频芯片转换到USB,二者区别在于转换的工作是在板子内部还是外部。一般,USB外置声卡的使用更为广泛。

一、USB协议概述

USB通信协议为设备和主机(如PC)之间可靠、快速的数据传输提供了规范
该协议定义了四种类型的数据传输(批量、中断、控制和同步)

二、USB音频功能描述

2.1 音频播放

PC(USB主机)会将板子识别为USB扬声器
PC通过USB将音频样本发送到电路板,MCU通过I2C配置音频编解码器,并通过I2S传输音频样本,编解码器连接到模拟扬声器

2.2 音频录制

PC会将STM32板识别为USB麦克风
话筒将声音捕捉为PDM样本,板子将PDM样本转换为PCM格式,并通过USB将其传输至PC(USB主机)

三、USB描述符

如果是alsa框架,在linux平台,可以在/proc/asound/目录中找到声卡,确定card为usb声卡
如果是oss框架,在linux平台,可以在/dev/目录中找到dsp,确定dsp
为usb声卡

四、内核中的USB音频

1、linux内核中加入了USB core,可以操作usb,大部分的工作都已经放入了这个USB core中(例如音频),我们现在只需要知道,怎么跟USB core进行互动即可

2、在alsa的世界里,关于音频的一切,都抽象成一个card对象,音频的操作,抽象成Device对象。 因此在alsa的世界里,就是创建各种card对象、device对象,以及card对象、device对象的各种回调

3、内核配置:首先要知道,内核配置跟三类文件有关,包括.config,Kconfig,Makefile,其中.config只有根目录下有, Kconfig和Makefile在根目录和每个子目录都有,先说下他们的功能: Kconfig:定义配置项 Makefile:说明配置项的编译方法 .config:控制配置项编译进内核、编译成模块还是不编译
想要控制USB音频,首先需要打开makemenuconfig,将USB声卡驱动使能,具体如下:
Device Drivers --> Sound card support --> Advanced Linux Sound Architecture --> USB sound devices

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/988397
推荐阅读
相关标签
  

闽ICP备14008679号