Depuração de USB alternate setting e bandwidth: por que áudio, UVC e streaming falham em alta qualidade
Como depurar alternate settings em USB, reserva de bandwidth, modos de câmera UVC, sample rates de áudio USB, endpoints isochronous, troca de interface e falhas de stream em alta qualidade.
Muitos dispositivos de streaming USB funcionam em baixa qualidade, mas falham em alta qualidade. Uma webcam funciona em 720p, mas trava em 1080p. Uma interface de áudio USB funciona em 48 kHz, mas estala em 192 kHz. Um dispositivo de captura começa em um modo, mas falha quando a aplicação escolhe outro. Buscas como "USB alternate setting bandwidth", "UVC camera alternate setting", "USB audio isochronous bandwidth", "SET_INTERFACE streaming failed" e "USB device works low resolution not high resolution" traduzem exatamente esse cenário: "o dispositivo não está completamente quebrado. Um modo de interface está falhando."
O Bus Scope ajuda porque alternate settings ficam visíveis nos descritores e nas requisições SET_INTERFACE. A evidência-chave é qual alternate setting foi selecionado antes da falha.
O que são alternate settings
Uma interface USB pode definir múltiplos alternate settings. O alternate setting 0 geralmente não tem endpoints de streaming. Alternate settings mais altos podem habilitar endpoints com packet sizes ou requisitos de banda diferentes.
Exemplo:
Interface 1 alternate 0: no streaming
Interface 1 alternate 1: low bandwidth endpoint
Interface 1 alternate 2: medium bandwidth endpoint
Interface 1 alternate 3: high bandwidth endpoint
O host seleciona um deles usando:
SET_INTERFACE interface=1 alternate=3
Se o alternate 3 exige mais banda do que o barramento consegue fornecer, o streaming pode falhar.
Modos de câmera UVC
Câmeras USB Video Class costumam expor muitos modos:
- MJPEG versus YUY2 descompactado
- 720p versus 1080p versus 4K
- 15 fps versus 30 fps versus 60 fps
- diferentes packet sizes de endpoint
- diferentes alternate settings
Vídeo descompactado pode exigir muito mais banda do que MJPEG. Uma câmera pode enumerar corretamente, mas falhar quando a aplicação escolhe um modo agressivo.
Sample rates em áudio USB
Interfaces de áudio podem alternar alternate settings para sample rate, quantidade de canais, bit depth e packet size. Um modo que funciona em um host controller pode falhar via hub ou dock.
Sintomas:
- Cliques e pops em sample rate alto.
- Stream falha só com muitos canais.
- Dispositivo funciona depois de reconectar, mas falha após troca de modo.
- Áudio para quando outro dispositivo USB começa a trafegar.
O trace do barramento deve mostrar o alternate setting selecionado e o status dos pacotes isochronous.
Reserva de bandwidth
Transferências isochronous e interrupt reservam banda periódica. Se o barramento não consegue atender a requisição, o host pode rejeitar a seleção de interface ou o stream roda mal.
Pressão de banda vem de:
- várias câmeras em um hub
- áudio USB mais dispositivo de captura
- dispositivo full-speed atrás de um transaction translator
- topologia de dock
- limites de agendamento do host controller
- cabo causando fallback de velocidade
Checklist de depuração
Use este fluxo:
- Capture os descritores desde a conexão.
- Liste os alternate settings da interface de streaming.
- Capture a requisição
SET_INTERFACE. - Registre o alternate setting selecionado.
- Compare modos de qualidade que funcionam e que falham.
- Inspecione max packet size e interval do endpoint.
- Confira a velocidade negociada do dispositivo.
- Teste porta direta versus hub ou dock.
- Reduza resolução, frame rate, sample rate ou canais.
- Preserve setup e pacotes de streaming juntos.
Diagnóstico final
Falhas de alternate setting em USB são problemas de seleção de modo e bandwidth. Um dispositivo pode enumerar e funcionar em um modo, mas falhar quando o host seleciona um alternate setting de banda mais alta.
O Bus Scope ajuda a expor o modo de interface selecionado e a evidência de endpoint, para que falhas de streaming em alta qualidade sejam diagnosticadas como comportamento de bandwidth e descritor USB, e não como instabilidade genérica da aplicação.