¿Es necesario el control de flujo de hardware?

Quiero comunicarme usando un cable serial a un dispositivo que usa control de flujo RTS/CTS y una velocidad de 115200 baudios. Quiero usar este adaptador Sparkfun TTL a rs232, pero no tiene pines RTS o CTS. ¿Qué puedo hacer para obtener control de flujo de hardware o hay una solución de software?

Wow, ese circuito es todo un truco. No es de extrañar que estén siendo tan insípidos acerca de qué tan rápido realmente puede ir. Es curioso cómo dicen que es para cuando no hay un MAX232 disponible, pero aún así es un kit, por lo que simplemente podrían hacerlo disponible. Por un poco más de dinero, pero completamente ensamblado y con especificaciones reales que no dependen de los datos entrantes, consulte mi convertidor de lógica a RS-232 en microchipdirect.com/ProductSearch.aspx?Keywords=TEMR . Las especificaciones completas se encuentran en embedinc.com/products/rslink2/index.htm .
Si nos brinda más información sobre el dispositivo y lo que pretende comunicar, podemos ayudar a determinar si RTS/CTS es realmente necesario.
A juzgar por las revisiones y la afirmación de que "funciona muy bien hasta 38400 bps", claramente debería buscar otro adaptador.
El dispositivo al que se conectará es una microcomputadora casera basada en Z80, enviará datos en ambos sentidos para el teclado y la pantalla. Información aquí: searle.hostei.com/grant/cpm/index.html

Respuestas (3)

La solución de software se llama control de flujo XON/XOFF . Básicamente consiste en enviar ^S/DC3 (0x13) para suspender la transmisión y ^Q/DC1 (0x11) para reanudarla. Naturalmente, esto requiere que el otro lado lo admita, por lo que si solo se admite el control de flujo de hardware, entonces no será una solución viable.

Si su dispositivo requiere control de flujo de hardware, un truco es conectar su RTS a su propio pin CTS. De esta manera, se dice a sí mismo que está bien enviarlo. El truco es que si sobrepasa su búfer de entrada, en su lugar suprimirá su envío. Si se requiere el envío de datos para consumir su propia entrada (por ejemplo, eco de entrada o secuencias de comando/respuesta), puede terminar en un punto muerto, por lo que debe tener cuidado de no enviar cosas demasiado rápido.

Si ambos extremos son siempre lo suficientemente rápidos para recibir todos los envíos del otro extremo, no hay necesidad de control de flujo. Este suele ser el caso con las velocidades UART.