STM32 USB音频应用

发布者:EnigmaticSoul最新更新时间:2023-07-06 来源: zhihu关键字:STM32  USB音频  音频编码 手机看文章 扫描二维码
随时随地手机看文章

STM32已经在很多领域被广泛应用,比如消费电子、医疗设备、楼宇安防、网络互联、工业控制等,在这些领域有各种各样的应用,这篇文章主要介绍家庭音响和汽车音响。

ST现有的音频应用

1. STM32 USB音频应用

USB音响

音频编码(WAV,MP3)

音频解码(WAV,MP3,WMA,AAC)

iPod Docking

软件升级(U_disk)

2. STM32其他音频应用

DSP

一些其他免费的编码和解码

Sound bar

Smart Phone音频开发板

USB拓扑图

只有一个主机

最多7层

最多5层是HUB

最多127端点


例子——USB拓扑图


USB逻辑图


USB传输

在一个USB系统中,主机只有一个,它会初始化所有的通讯,能够跟一个或者多个设备在同一个总线上通讯。

主机也提供电源,对设备进行供电,数据是基于帧进行发送和接收,每一帧包含多个数据包。

在USB通讯的工程中,数据的接收和发送都是由主机发起要求。

在传输的过程中,我们会看到四种传输类型:

控制传输:强制所有设备都必须支持。

批量传输:非周期性,大量的数据,保障数据的正确性。

中断传输:非周期性,小数据量,实时性。

同步传输:周期性,实时性。

ST USB库

ST Support USB 2.0

全速(12M)

高速(up to 480M)

HCC Library(not free)

iAP1

MP3,WMA,decoder

Firmware update

ST Library(Free)

USB Device,USB Host and OTG

Apple Accessories

Android Accessories

MP3(encoder and decoder),WMA,AAC(.adts、adif、.loas)

Audio Streaming

Firmware update

ST的USB库包含多个版本


STM32 USB类


OTG_FS & OTG_HS library


虽然USB是一个高度标准化的接口,但是它也是具有多功能和高度客户化的接口。

USB允许通过不同的方式传输各种类型的数据。

它有多种USB类去允许传输数字音频数据,这些类都有它们各自的优缺点:

USB Audio Class 1.0 & 2.0

USB Mass Storage

USB MTP

USB CDC

USB Audio Class 1.0 & 2.0

1. 同步传输,实时性得到保障,但是并不保障数据的完整性,占有高带宽(最高可以达到90%的带宽);

2. 允许扩展音频的一些控制(source,sink,volume,clocks……);

3. 有效的同步机制:

Synchronous:设备从主机的SOF上面获取它的音频时钟(Start Of Frame)。(高可靠 性,低成本)

Asynchronous:设备的时钟是自己控制,设备需要自己实现自我同步。(可靠性低,低成本,软件简单)

Adaptive:设备根据自己收到的数据获取和改变它的时钟。(高可靠性,软件简单,硬件复杂)

4. 不完全兼容!

5. USB Audio Class 2.0是基于USB Audio Class 1.0增加和适当的修改了一些功能:

支持高速模式

使用了时钟单元

设备可以通过中断端点去通知主机设备端的一些改变

支持“Category”,允许主机去自动检测或判断设备具有的主要功能

MSC

  1. 大批量数据传输:

数据得到保障,但是不保障实时性。

没有办法同步。

2. 尽管它被广泛应用于汽车音响、消费类电子,但是USB没有任何专门协议对于音频(它仅仅只是通过USB读取文件数据)。

3. 非常容易得到各种元数据。

4. 没有专门的控制协议。

5. 主机必须增加文件管理系统。

6. 需要额外的软件去编码或者解码这些压缩文件。

MTP

  1. 大批量数据传输:

保障数据的完整性,但是不保障数据的实时性。

没有办法同步。

2. 它是基于PTP(Picture Transfer Protocol)

命令-数据-响应的通讯模式。

基于抽象的音频内容和大小的数据传输。

3. 元数据和音频控制也是可能的。

4. 内容数字版权加密保护技术(DRM)。

5. 广泛应用于便携式或者掌上音频设备。

CDC

1. 任一传输类型:

CDC是收集了任何传输接口的传输类。

一个CDC设备可以用作音频类、MTP……

2. 没有专门应用于音频的协议。

3. 主要应用于电话和网络协议。

4. 它是多接口的应用典范。

5. 并没有广泛的应用。


关键字:STM32  USB音频  音频编码 引用地址:STM32 USB音频应用

上一篇:STM32 USB 设备音频数据流
下一篇:STM32安全固件更新的额外设计

推荐阅读最新更新时间:2024-11-09 10:20

卡尔曼滤波方式研究
前段时间在论坛里简单地发了一些关于kalman的理解。 有很多网友顶贴的,趁着今天休息,整理一下前段时间的工作。 有些理解和说法可能不正确,以此抛砖引玉吧。 1, 在google上搜索卡尔曼滤波,很容易找到以下这个帖子: http://blog.csdn.net/lanbing510/article/details/8828109 这里面很简单形象的解释了kalman的作用。 但是帖子后半段,将kalman回归到了一大堆数学推理、推导上,对非数学专业,或者数学基础尤其是概率和随机过程基础不好的同学来讲实在太过头痛。 帖子最后用matlab实现了kalman,其中很简单地用i,j,k来命名,可能不是太妥当,新手理解的时候,脑袋里面
[单片机]
STM32单片机中断详解
中断,在单片机中占有非常重要的地位。代码默认地从上向下执行,遇到条件或者其他语句,会按照指定的地方跳转。而在单片机执行代码的过程中,难免会有一些突发的情况需要处理,这样就会打断当前的代码,待处理完突发情况之后,程序会回到被打断的地方继续执行。 1 EXTI控制器 外部中断/事件控制器(EXTI)管理了控制器的 23 个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。EXTI 可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。 外部信号进入经过1的边沿检测电路,检测是否符合(有2和3的上升沿和下降沿选择寄存器决定),产生信号,然后和4软件
[单片机]
<font color='red'>STM32</font>单片机中断详解
STM32高级开发——使用VS Code搭建STM32开发环境
以前在伴随着开发平台的转换中,我尝试过各种各样的开发环境,而在最近一段时间的开发中我使用了Visual Studio Code来作为代码编辑器,其优异的工程管理,超快的启动速度,各种各样功能强大的插件,使我立刻爱上了这个文本编辑器。 但是在开发中来来回回在编辑器和Keil等IDE之间来回切换对我造成了不少不方便,另外由于希望能够在windows下使用gcc工具链开发,所以我尝试使用插件来完整的在vscode上搭建了一个开发环境。可以说这是我在windows平台下尝试过的最好用的一种搭配,下面我就来详细讲述一下这个环境的搭建和基本使用方式。 ps:启动真心快,在win下优化程度堪比记事本. 1 安装软件 下载安装 Visual
[单片机]
stm32ad采样测电压范围
AD(模拟数字)转换模块是嵌入式系统中经常使用的一个功能模块,它可以将模拟电压信号转换成数字信号,以便后续处理。在STM32系列微控制器中,AD采样测电压范围是一个重要的参数,它决定了我们可以测量的电压的范围。在本文中,我们将详细介绍STM32AD采样测电压范围及其相关的知识。 一、STM32AD转换模块简介: STM32系列微控制器广泛应用于各种嵌入式系统中,其中的AD转换模块被用于测量电压信号。STM32的AD转换模块具有以下特点: 多通道:STM32的AD转换模块通常具有多个输入通道,可以同时对多个模拟信号进行采样。 高分辨率:STM32的AD转换模块通常具有12位或16位的分辨率,可以实现较高的精度。 快速转换速
[单片机]
STM32字符串打印
源码xxx.c void UART_PutChar(USART_TypeDef* USARTx, uint8_t ch) { while((USARTx- SR&0X40)==0);//循环发送,直到发送完毕 USARTx- DR = (ch & (uint16_t)0x01FF); } void printf_uart(USART_TypeDef* USARTx, uint8_t *str) { while (*str != '' ) { UART_PutChar(USARTx, *str); str++; } } 头文件定义xxx.h void UA
[单片机]
STM32用串口(USB串口)下载程序的方法(只能用UASRT1)
一、 STM32串口下载程序步骤 1)安装《CH340驱动(USB串口驱动)_XP_WIN7共用》 2)打开串口下载软件《STM32F4串口下载软件(FLYMCU)》 3)开发板USB接口连接到电脑USB口,给开发板供电 4)下载软件设置如下;点搜索串口,选择正确的串口号,波特率不用管,选择HEX文件,点开始编程就可以下载了。 二、 硬件连接 USB转串口CH340接线图如下。 ARM串口TXD连接到CH340G的RXD脚,RXD连接到CH340G的TXD脚; CH340是5V供电,可以由USB供电。boot0置1(接到3.3V) ,boot1置0(接地)。 三、说明:对于已加密的STM32芯片可以通过串口下载程序来解锁下
[单片机]
<font color='red'>STM32</font>用串口(<font color='red'>USB</font>串口)下载程序的方法(只能用UASRT1)
STM32 IO中断(F407)
Title:STM32单片机系列(三) Date: 2020-2-22 Author: Page Categories: -单片机 Tags: -STM32F407 中断 STM32 F4 的每个 IO 都可以作为外部中断的中断输入口,这点也是 STM32 F4 的强大之处。 STM32 F407 的中断控制器支持 22 个外部 中断事件请求。每个中断设有状态位,每个中断事件都有独立的触发和屏蔽设置。 STM32 F407的 22 个外部中断为: EXTI线 0~15 :对应外部 IO 口的输入中断。 EXTI线 16 :连接到 PVD 输出。 EXTI线 17 :连接到 RTC 闹钟事件。 EXTI线 18 :连接到 USB
[单片机]
<font color='red'>STM32</font> IO中断(F407)
STM32-2-GPIO
最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多: (1)GPIO_Mode_AIN 模拟输入 (2)GPIO_Mode_IN_FLOATING 浮空输入 (3)GPIO_Mode_IPD 下拉输入 (4)GPIO_Mode_IPU 上拉输入 (5)GPIO_Mode_Out_OD 开漏输出 (6)GPIO_Mode_Out_PP 推挽输出 (7)GPIO_Mode_AF_OD 复用开漏输出 (8)GPIO_Mode_AF_PP 复用推挽输出 对于刚入门的新手,我想这几个概念是必须得搞清楚的,平时接触的最多的也就是推挽输出、开漏输出、上拉输入这三种,但一直未曾对这些做过归纳。因此,在这里做一个总
[单片机]
STM32-2-GPIO

推荐帖子

应广单片机
最近在用应广的单片机的烧录器P-002烧录程序时一直无法从电脑下载程序到烧录器中,选择文件就提示文件被保护。有没有用应广片子的大牛,求点拨一下应广单片机提示下载OK,然后才说保护,按理应属于正常操作,即先烧录/下载完成后进行保护操作,这样就不能从MCU读出程序了。不需要保护可在烧录软件的配置中取消保护功能即可,但程序就完全开放了。文件夹用英文试试烧录软件设置有问题没有应该有选择不用自动烧录的地方,这个烧录文件是否正确,选择烧录文件后才能提示被保护 问题找到了,把烧
xuanyuanzhu 单片机
网络版原理图==stm32核心板+w5100模块
http://www.stmsky.com/bbs/viewthread.php?tid=1446&extra=网络版原理图==stm32核心板+w5100模块可以直接联网ping192.168.1.2直接打开显示helloworld网络版原理图==stm32核心板+w5100模块顶上来不知道成本多少w5100价格大概45干吗要
hconfeng stm32/stm8
2014年TI杯大学生电子设计竞赛地区赛使用仪器及器件、设备
该推荐列表适用于TI参考题(TI参考题于8月12日公布),选用TI参考题的省市有:上海,江苏,浙江,陕西,湖北,四川,重庆,黑龙江,辽宁,天津。各赛区可能自行微调,最终请以分赛区组委会的通知为准。常规仪器:a)3A/30V双路稳压电源(可并联);b)60MHz示波器;c)三位半数字万用表;d)低频(10MHz)信号源;e)低频交流毫伏表。AY-LDC1000评估板(用于一道指定赛题
maylove TI技术论坛
关于模拟量采集的问题请教各位前辈
做了一个4-20ma的采集,经过校准之后,在采集4-20ma时我测了下取样电阻两端电压(用的优利德的UT58A万用表测试的)和程序测试值一样,但是如果没有接4-20ma的时候,由于有一个校准值,所以也会有0.5mV。这个值应该怎么处理。我的想法是采集到0.5mV左右的电压时,就去掉这个值,采集到的其他值就不做处理。没有做这方面的东西,不知道这样处理是否合理是否正确。前辈是否有更好更可靠的处理方法,请前辈指点,十分感谢。关于模拟量采集的问题请教各位前辈有前辈在吗
hanwenli123 TI技术论坛
电力的机车电机驱动
电路机车单相从高压电网取电,其电动机是什么规格?大家有知道的否?电力的机车电机驱动大概27500V,电机大概是500多伏特
eeleader 工控电子
IGBT参数解析
IGBT(绝缘栅双极晶体管(InsulatedGateBipolarTransistor))的内部架构如下所示:IGBT是个单向的器件,电流只能朝一个方向流动,通常IGBT会并联一个续流二极管IGBT型号:IKW40N120T2IKW40N120T2电路符号IGBT和MOSFET不同,体现在驱动时候的电流会拖尾Tail,启动和关闭都会有延时,典型的几个参数如下所示这些参数的解释是:Turn-ondelaytime:10%
xutong 开关电源学习小组
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved