O USB tem uma garantia de qualidade de serviço para os dados enviados entre o meu dispositivo USB-CDC e o host USB?
Eu sei que com o RS232 tradicional em uma situação barulhenta (por exemplo, porta de diagnóstico automotivo) os bits ruins acontecem com frequência suficiente para que as somas de verificação sejam importantes para o protocolo. Se eu fosse adaptar esse protocolo a um aplicativo USB puro, posso omitir com segurança a soma de verificação e as rotinas de tratamento de erros relacionadas?
Para referência, estou usando um AT91SAM7S256 com a estrutura USB-CDC fornecida pela Atmel.
Atualizar:
Eu exercitei meu Google-Fu um pouco mais sobre esse problema e encontrei este artigo que descreve uma subclasse CDC para emulação Ethernet e declara:
Pelo cabo USB, os quadros Ethernet encapsulados fluem começando com o endereço MAC de destino e terminando imediatamente antes da soma de verificação do quadro. (A soma de verificação do quadro não é necessária, pois o USB é um transporte confiável.)
Eles podem significar que o USB-CDC é um transporte confiável, e não o USB em geral, uma vez que algumas classes de dispositivos destinadas a dados intermitentes de alta produtividade (webcam?) Podem não querer preencher buffers se um programa não puder pesquisar dados com rapidez suficiente.
Eu ainda gostaria de uma confirmação adicional sobre isso.
fonte
O USB pode ser um protocolo relativamente confiável, mas nem todos os dispositivos e drivers que usam o CDC são confiáveis. Eu já vi alguns dispositivos diferentes que tinham o hábito bastante irritante de ignorar bytes de dados enviados pelo PC. Observar os dados em um escopo mostrou que o problema não estava no excesso do dispositivo receptor - alguns bytes de dados simplesmente desapareceram (eu consegui capturar pacotes inteiros no escopo; o cabeçalho e o rodapé estavam presentes, mas alguns dos bytes entre eles estavam ausentes). Não tenho certeza do que exatamente deu errado para causar esse comportamento, mas tentar enviar dados muito rápido parecia ser um fator que contribui.
fonte