STM32已经在很多领域被广泛应用,比如消费电子、医疗设备、楼宇安防、网络互联、工业控制等,在这些领域有各种各样的应用,这篇文章主要介绍家庭音响和汽车音响。
ST现有的音频应用
1. STM32 USB音频应用
USB音响
音频编码(WAV,MP3)
音频解码(WAV,MP3,WMA,AAC)
iPod Docking
软件升级(U_disk)
2. STM32其他音频应用
一些其他免费的编码和解码
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
大批量数据传输:
数据得到保障,但是不保障实时性。
没有办法同步。
2. 尽管它被广泛应用于汽车音响、消费类电子,但是USB没有任何专门协议对于音频(它仅仅只是通过USB读取文件数据)。
3. 非常容易得到各种元数据。
4. 没有专门的控制协议。
5. 主机必须增加文件管理系统。
6. 需要额外的软件去编码或者解码这些压缩文件。
MTP
大批量数据传输:
保障数据的完整性,但是不保障数据的实时性。
没有办法同步。
2. 它是基于PTP(Picture Transfer Protocol)
命令-数据-响应的通讯模式。
基于抽象的音频内容和大小的数据传输。
3. 元数据和音频控制也是可能的。
4. 内容数字版权加密保护技术(DRM)。
5. 广泛应用于便携式或者掌上音频设备。
CDC
1. 任一传输类型:
CDC是收集了任何传输接口的传输类。
一个CDC设备可以用作音频类、MTP……
2. 没有专门应用于音频的协议。
3. 主要应用于电话和网络协议。
4. 它是多接口的应用典范。
5. 并没有广泛的应用。
相关文章