tagger tag windows serial-port buffer

windows - tagger - tag folders



Rol del bĂșfer FIFO para el puerto COM en Windows (1)

¿Alguien aquí puede explicar el rol de la comprobación de FiFo Buffer (en la configuración avanzada del puerto COM desde el administrador del dispositivo) en Windows?

¿Cómo afecta / desmarca el búfer de FIFO afecta la lectura de datos desde el puerto COM?

¡Muchas gracias de antemano por respuestas útiles!


El chip UART original utilizado en los diseños de IBM-PC fue el 8250 . Podría almacenar solo un byte recibido mientras el receptor estaba ocupado recibiendo el siguiente byte. Eso pone una gran demanda en la capacidad de respuesta del controlador de puerto serie del sistema operativo, respondiendo a la interrupción de "datos recibidos". Debe ser lo suficientemente rápido para leer ese byte antes de que el receptor lo sobrescriba. No ser lo suficientemente rápido causa un error de desbordamiento y una pérdida de datos irrecuperable. Las altas tasas de interrupción también son perjudiciales.

Ese diseño fue mejorado con el chip UART 16550 . Obtuvo un búfer más grande, el FIFO, lo que le da al SO más tiempo para vaciar el búfer antes de que ocurra un desbordamiento. El controlador del puerto serie puede programarlo para generar una interrupción en un nivel de llenado particular, reduciendo así la tasa de interrupción también.

Pero los diseños de chips tienen el mismo tipo de problema que el software, el 16550 original tenía un error en la implementación de FIFO. Solucionado en el 16550A, versión 1.1 en software speak.

El problema era que el conductor no podía decir si la máquina tenía la versión con errores del 16550 o una buena. Los chips simples como ese no tienen un equivalente de GetVersion (). Por lo tanto, proporcionó una página de propiedades que permite al usuario desactivar el soporte FIFO, evitando así el error.

Las probabilidades de que hoy tenga la versión con errores son cero. Apagar el FIFO ya no es necesario.