赞
踩
USB通信协议为设备和主机(如PC)之间可靠、快速的数据传输提供了规范
该协议定义了四种类型的数据传输(批量、中断、控制和同步)
PC(USB主机)会将板子识别为USB扬声器
PC通过USB将音频样本发送到电路板,MCU通过I2C配置音频编解码器,并通过I2S传输音频样本,编解码器连接到模拟扬声器
PC会将STM32板识别为USB麦克风
话筒将声音捕捉为PDM样本,板子将PDM样本转换为PCM格式,并通过USB将其传输至PC(USB主机)
如果是alsa框架,在linux平台,可以在/proc/asound/目录中找到声卡,确定card为usb声卡
如果是oss框架,在linux平台,可以在/dev/目录中找到dsp,确定dsp为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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。