4. Any other considerations?
Sí. Los puertos seriales clásicos suelen estar orientados a bytes, es decir, un carácter a la vez con una latencia bastante baja. El USB es inherentemente orientado a paquetes, con una latencia comparativamente alta. En otras palabras, el USB es excelente para mover una gran cantidad de datos a la vez, pero en realidad es más lento para mover pequeñas cantidades de datos. Si intentas mover una gran cantidad de datos en pequeñas partes con USB, pierdes - mal .
Para solo escribir en un programa de terminal hablando con un módem o un dispositivo integrado, o incluso cargar archivos, etc., esto realmente no es un problema, porque las dosis únicas de latencia son pequeñas en términos humanos, y el USB puede fácilmente mueva bloques de datos lo suficientemente rápido como para mantenerse al día con cualquier velocidad de transmisión en serie.
Pero otros protocolos que dependen de la constante ida y vuelta de mensajes cortos o caracteres individuales entre una computadora y un periférico en serie pueden disminuir la velocidad (o incluso funcionar mal) cuando se usan con un convertidor en serie USB. Si una computadora hace algo como enviar un solo carácter, y esperar a que el periférico responda antes de enviarlo a continuación, la velocidad de caracteres se determina por la latencia de dos paquetes USB completos: uno para enviar un solo carácter y otro para recibir uno (incluso puede ser peor: la potencia de recepción en el nivel más bajo implica poling). En el mundo de hoy, donde los convertidores USB-serie son tan comunes o más que los puertos seriales reales, es importante diseñar protocolos para que pueda enviar una gran cantidad de datos, antes de tener que esperar una respuesta. Con los sistemas heredados, puede que tenga suerte y encuentre que funciona bien, puede funcionar pero lentamente, o puede que no funcione de manera confiable.
E incluso dentro de un determinado protocolo, periférico, computadora y controlador de sistema operativo, el diseño del software del cliente es importante. Una vez encontré una pieza de software de administración para un dispositivo integrado que había sido escrito y probado por un contratista usando un puerto serial real. Resultó usar una variación de las llamadas seriales .NET que resultaron ser "ver cómo se arrastran los resultados" en una computadora portátil con un convertidor usb-serial. Mi propia herramienta de administración de win32 simple anterior para ese dispositivo se ejecutó sin demora aparentemente en la misma computadora portátil con el mismo convertidor. Tal vez escribí un código mejor, pero dado que el convertidor era mi entorno de prueba normal, si hubiera habido un problema similar con mi código, habría tenido la suerte de encontrarlo mientras aún había tiempo para solucionar el problema.
La moral de la perorata en el mundo de hoy, cualquier cosa (hardware o incluso software cliente) diseñada para usar un puerto serie debe probarse para su uso con los convertidores USB-serie lo suficientemente temprano en su desarrollo que el diseño Se puede cambiar para solucionar cualquier problema descubierto.