UAC2.0 Win10原生驱动已经支持,同时UAC2.0较UAC1.0有天生的高带宽、低延时的优势。支持32bit 384k的音频格式,同时支持USB High Speed! stm32f407+USB3300 完美实现高速USB模式下UAC2.0
为什么要在高速USB模式下运行UAC2.0???
- UAC1.0 不支持 32bit音频格式
- UAC2.0 在USB 全速模式下 ,96K@32bit播放和录制只能单独使用!!
- UAC2.0 在USB全速模式下,不能使用异步模式(linux 可以,但win10不行)
基于以上3点,高速USB模式下 UAC2.0才能达到高音质、低延时的目的
UAC2.0 同步模式 & 异步模式
模式 | 说明 | 备注 |
---|
同步模式(Synchronous) | 发送端和接收端速率Fs与SOF同步 | 发送端和接收端分别以各自的时基运行 | 自适应模式(Adaptive) | 发送端使用显式反馈 | 速率取决与发送端 接收端适应发送端的速度 | 异步模式(Asynchronous) | 接收端使用显式反馈 | 速率取决与接收端 接收端实时反馈数据速率,发送端依据接收端反馈适时调节发送速率 |
异步模式的必要性
- PC时钟 和 stm32的时钟各自运行,必然存在时钟不同步因素
- 由于时钟不同步,必然导致,或PC发送数据过快,或stm32处理数据过快
- 数据速率不同步,会导致stm32内部buffer上溢或下溢,从而出现播放丢帧或数据混叠
异步模式下 feedback运行原理
- PC 端以PC的时钟基准进行发送数据,此速率表现在USB SOF上
- stm32 以USB SOF为基准(High Speed 125us),测量 I2S 数据实际发送速率(相对USB时钟的samplerate)
- 将测量得到的samplerate,以规定的格式通过feedback端点发送到PC
- PC 根据接收端反馈的samplerate,动态调整数据发送速率
详细参考http://www.usbzh.com/article/detail-274.html
|