¿Existe algún método que pueda monitorizar un dispositivo durante periodos muy largos de tiempo con millones de paquetes pasando y encontrar la fuente del error?
Sí, el dispositivo se llama "analizador de protocolo USB".
Si se monitoriza sólo el lado del software del host, lo máximo que se puede ver es que hubo algún "error de transacción", y que el puerto puede o no recuperarse después de la caída. El protocolo USB tiene medios asistidos por hardware para reintentar las transacciones que fallan, y el software no tiene ninguna visibilidad en el "recuento de errores". Así que tienes que identificar la causa del error a nivel físico, en los cables D+/D-.
Existen analizadores USB asequibles, especialmente para la tasa USB 1.1 (FS 12 Mbps). Un buen analizador puede configurarse para un disparo sofisticado mientras se monitoriza el tráfico en un bucle largo, o incluso grabar todo el tráfico hasta la capacidad de su disco duro. Yo recomendaría un pequeño Teledyne/Lecroy modelo Mercury T2 , pero otros tipos como Ellisys y Totalphase Beagle son cada vez mejores.
Sin embargo, hay que tener cuidado, ya que los analizadores son algo invasivos, y sus conectores/internas tienen algún efecto sobre la integridad de la señal. En caso de una conexión defectuosa y una tasa de error poco frecuente, el analizador puede mejorar la señal (y es posible que nunca se vea el problema) o puede anular la funcionalidad del enlace (lo que ayudará a localizar el problema).
Así que, en resumen, hay que identificar quién tiene la culpa cuando se produce la caída del dispositivo. Puede ser (a) que el dispositivo responda de forma incorrecta a un protocolo USB válido, (b) que haya un problema de integridad de la señal del canal, o (c) que el hardware del host tenga un error en el manejo de algunas peculiaridades del protocolo USB.
Yo empezaría por (b) y comprobaría si todas las señales del bus cumplen las especificaciones básicas de la señal USB: la frecuencia del patrón dentro de 2000 ppm, el jitter dentro de la norma, los bordes de la señal son monotónicos y el ojo de la señal cumple la máscara del diagrama, todo ello sobre sus cables, dispositivos y hosts específicos. En la página web de USB-IF se describen procedimientos estándar para realizar las pruebas eléctricas dentro de Programa de cumplimiento del USB .
Si las señales cumplen las especificaciones básicas de la señal FS, el analizador de protocolos sería lo siguiente a desplegar. Puede que sea un reto configurar un disparador adecuado y tener una interpretación correcta de los eventos del bus que conduzcan a un error. Si no tienes experiencia con los analizadores USB, puede que necesites formación o contratar a un consultor.