USB Audio调试知识

1 USB isochronous
1.1 USB isochronous
USB为何要用isochronous机制呢?这是一个历史问题,我们熟悉的SPDIF接口,AES/EBU接口都是基于isochronous的。

With voice latency of 15 milliseconds being a threshold where most people can start noticing.
The Linux batching of iso packets in one urb.

1.2 USB SOF
FS: 1.000ms ± 500ns, jitter = 500ns
HS: 125.0µs ± 62.5ns, jitter = 62.5ns
高速设备在每1 ms的周期内,会看到具有相同帧号的SOF包8次(每125 µs)。如果需要,高速设备可以通过检测具有与前一个SOF不同的帧号的SOF,并将其作为第0个微帧,以此来确定特定的微帧编号。接下来的7个具有相同帧号的SOF可以视为第1至第7个微帧。
USB ISO ASAP: start_frame = cur_frame_number + 1

2 USB Audio
2.1 I2S多声道
2.1.1 2声道I2S的pin定义
LRCK - 帧时钟,左右声道切换频率,高(右声道)低(左声道)为一个周期;等于采样频率
BCLK - bit位时钟,等于采样频率 x SDATA声道数 x 采样bit数
SDATA - 串行数据,左右声道

2.1.2 多声道I2S的pin定义
实现一:
有多路的SDATA线,每线上可以传输两声道的信号,公用LRCLK、BCLK等。代表产品XMOS芯片(ex-INMOS,International NMOS)。
LRCK - 帧时钟,左右声道切换频率,高(右声道)低(左声道)为一个周期;等于采样频率
BCLK - bit位时钟,等于采样频率 x SDATA1声道数 x 采样bit数
SDATA1 - 串行数据,声道1和2
SDATA2 - 串行数据,声道3和4
SDATA3 - 串行数据,声道5和6

实现二:
将I2S配置成TDM(时分复用,主要是车机用),I2S的SDATA只能传输2声道,但是配成TDM后SDATA却可以支持多声道,代表产品NXP LPC5460x

2.2 USB多声道
- UAC1.0最高只支持到双声道192Khz 16bit的音源
- UAC2.0可以最高支持15声道384Khz 32bit的音源
1)只有一个playback接口(stream interface),该接口的一个ISO endpoint实现多声道(声道数bNrChannels和空间位置位图配置bmChannelConfig),代表产品XMOS USB声卡

2.3 ADC和DAC需求
- ADC的每个channel传输一个声道的数据,例如5.1声道录音就需要6个channel的ADC
- DAC的每个channel传输一个声道的数据,例如5.1声道放音就需要6个channel的DAC

2.4 USB FS ISO最大包尺寸
Table 5-4. Full-speed Isochronous Transaction Limits from the USB 2.0 standard
传输一帧ISO报文后(1023 + 9 overhead),每帧剩余字节数为468 = 1500 - 1032;而High-speed的overhead等于偶数。
UAC1: 1023 bytes
UAC2: 1024 bytes

48KHz/16bit/2ch,则每1ms(+/-500ns)的数据量为48个采样,也即是1ms可以分成48个等份,每个等份的间隔是20.83us(= 1/48KHz),1ms传输的数据量为192字节。
ISO urb->interval = pow(2, (bInterval - 1))
qh->period == urb->interval
0 <= qh->phase <= qh->period - 1
USB ISO start_frame = current_frame_number + 10 + phase_correction
AVB Class C的调度间隔是1.3333ms,每个间隔分成64等份,每个等份的时间是20.83us(= 1/48KHz)。

2.5 Feedback Endpoint
UAC反馈端点实际反应的是当前音频设备的采样率。
UAC 1.0 10.14 (full-speed and high-speed)
feedbackValue = ((curSampleFrequency / 1000) << 14) | ((curSampleFrequency % 1000) << 4)
UAC 2.0 16.16 (high-speed)
feedbackValue = ((curSampleFrequency / 1000) << 13) | ((curSampleFrequency % 1000) << 3)

MP3解码库for MCU:helix库

2.6 ALSA PCM插件
aplay -D plughw:0,0 xxx.wav
plughw后面的0,0指的是声卡id和设备id,(card0,device0),对应到/dev/snd/pcmCxDyp,使用aplay -l查找。
hw: accesses the hardware device directly.
plughw: inserts sample rate and format conversion plugins, if needed.

1)ALSA plugin库和配置文件之间的名字关系规则:libasound_module_pcm_xxx.so,这里的xxx对应conf文件中pcm.xxx {}。ALSA工具使用-D xxx就会使用配置文件中的pcm.xxx {}内容。
2)2个重要plugin:hw和plug。
3)showcase
pcm子参数名xxx可以通过‘.’定义也可以用花括号定义。
pcm.!default { type hw card 0 }
感叹号使得原来的pcm.default定义被覆盖。
pcm.?default { type hw card 1 }
问号会忽略掉参数值已经存在的参数。定义第一个设备的第二个声卡作为default device,但是如果default在之前已经定义过,那么这个声明无效。
4)调整widget的上下电顺序,从而修复pop音问题。
5)Linux /dev/snd/pcm*是支持多声道的,查下pcm节点支持最大ch数是多少,设置ch数就可以了,只要在范围内就没问题。
6)AVB的调度间隔对应到ALSA的period中断。

3 Android audio underrun
当检测到当前写入音频数据的时间与上次出现警告的时间间隔大于预定的最大时间间隔(5秒)后,系统将判定音频播放过程出现了underrun。然后系统会调用usleep()函数对当前 PlaybackThread进行短时间阻塞,这样上层APP就能为 PlaybackThread准备好更多音频数据。这个usleep()的时长是根据相邻2次写入音频数据的时间间隔实时计算出的。

4 Tools
Cubase

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 高通 USB音频是一种由高通公司开发的技术,用于提供高质量的音频传输和处理功能。通过将USB接口与音频设备连接,可以实现数字音频的传输和解码,从而获得更高的音质和更低的噪音。 高通的USB音频技术具有许多优势。首先,它支持高分辨率的音频传输,可以提供更清晰、更准确的音频表现。其次,它可以实现低延迟的音频传输,确保音频与视频的同步播放,提供更流畅的观感。 此外,高通的USB音频还支持多种音频格式,包括PCM、DSD和DXD等,使用户可以根据自己的需求选择合适的音频格式。它还提供了音频效果的调节功能,如均衡器和音场效果,使用户可以根据个人喜好进行音效调整。 高通的USB音频技术还支持多种应用场景。对于音乐爱好者和专业音频制作人员来说,它可以提供更高质量的音频播放和录制。对于游戏玩家来说,它可以提供更沉浸式的游戏音效。对于企业和教育机构来说,它可以提供清晰的音频会议和在线教学体验。 总的来说,高通的USB音频技术是一种先进的音频传输和处理技术,具有高音质、低延迟和多功能等特点,可以广泛应用于各种音频设备和应用场景中。 ### 回答2: 高通 USB Audio是高通公司推出的一种音频技术,旨在提供高音质和低延迟的音频体验。这项技术结合了高通在数字信号处理和嵌入式软件方面的专业知识,可以将数字音频信号传输到支持USB接口的设备上。 高通 USB Audio技术的特点之一是支持多种音频格式,包括PCM、DSD和MQA等。这意味着用户可以通过USB连接将多种音频文件格式传输到音频设备上,无需转换或解码,直接实现高保真音质的播放。 另外,高通 USB Audio还采用了先进的噪声抑制和回声消除技术,可以有效消除环境噪声和音频反馈问题,提供更清晰、更逼真的音频效果。 高通公司还为USB Audio提供了一套完整的软件开发工具包,以帮助音频设备制造商更轻松地集成这项技术。通过使用这个工具包,厂商可以定制和优化他们的产品,以确保与高通平台的兼容性和最佳性能。 总结起来,高通 USB Audio是一项音频技术,通过USB接口将数字音频信号传输到设备上,并提供高音质、低延迟的音频体验。它支持多种音频格式,具备噪声抑制和回声消除功能,并提供软件开发工具包,方便厂商集成和定制。 ### 回答3: 高通 USB音频是高通科技推出的一种音频解决方案,旨在提供高质量的数字音频传输和处理功能。 首先,高通 USB音频采用了高通自家的技术和芯片,通过USB接口与计算机或移动设备连接,实现音频信号的传输和处理。它支持的音频格式有AAC、MP3、FLAC等,具备较高的解码能力,可以播放高保真音频。 高通 USB音频还具备低功耗、低时延的特点,通过高速USB接口传输音频信号,避免了传统的3.5mm耳机接口的信号干扰和质量损失问题。同时,高通USB音频还支持高清音频的录制,能够满足专业音频录制的需求。 除了音频传输和处理功能,高通USB音频还提供了一些增强功能,如主动降噪、立体声效果等。这些功能可以通过与高通的数字信号处理(DSP)芯片结合,实现音频信号的优化和增强。 高通USB音频广泛应用于消费电子产品领域,如智能手机、平板电脑、耳机和音响等,改善了音频质量和用户体验。通过与高通其他技术的配合,如蓝牙技术、快速充电技术等,可以实现更丰富的音频功能,为用户带来更好的听觉享受。 总之,高通USB音频是一种高质量、低功耗的音频解决方案,具备高清音频传输、处理和增强功能。它在消费电子产品中得到了广泛应用,提升了音频质量和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值