¿Tiene USB una garantía de calidad de servicio para los datos enviados entre mi dispositivo USB-CDC y el host USB?
Sé que con RS232 tradicional en una situación ruidosa (p. Ej., Puerto de diagnóstico automotriz), los bits defectuosos suceden con la frecuencia suficiente para que las sumas de verificación sean importantes para el protocolo. Si tuviera que adaptar dicho protocolo a una aplicación puramente USB, ¿puedo omitir con seguridad la suma de verificación y las rutinas relacionadas con el manejo de errores?
Como referencia, estoy usando un AT91SAM7S256 con el marco USB-CDC proporcionado por Atmel.
Actualizar:
Ejercité mi Google-Fu un poco más sobre este problema y encontré este artículo que describe una subclase de CDC para la emulación de Ethernet y afirma:
A través del cable USB, las tramas Ethernet encapsuladas fluyen comenzando con la dirección MAC de destino y terminando justo antes de la suma de verificación de la trama. (La suma de comprobación del marco no es necesaria ya que el USB es un transporte confiable).
Pueden significar que USB-CDC es un transporte confiable, no USB en general, ya que algunas clases de dispositivos destinados a datos de ráfaga de alto rendimiento (¿cámara web?) Pueden no querer llenar buffers si un programa no puede sondear datos lo suficientemente rápido.
Todavía me gustaría una confirmación adicional sobre esto.
fuente
USB puede ser un protocolo relativamente confiable, pero no todos los dispositivos y controladores que usan CDC son confiables. He visto un par de dispositivos diferentes que tenían el hábito bastante molesto de omitir bytes de datos enviados por la PC. La observación de los datos en un alcance mostró que el problema no era que el dispositivo receptor se desbordara: algunos bytes de datos simplemente desaparecieron (pude capturar un paquete completo en el alcance; el encabezado y el pie de página estaban presentes, pero algunos de los bytes entre ellos faltaban). No estoy seguro de qué salió mal exactamente para causar ese comportamiento, pero tratar de enviar datos demasiado rápido parecía ser un factor contribuyente.
fuente