2 votos

Detectar una señal BAJA en una línea IO bidireccional que es ALTA cuando está inactiva

Estoy tratando de implementar el protocolo ISO 7816-3 como se puede encontrar en el EMV Co. Libro 1 utilizando un ESP32 y MicroPython. Sin embargo, me di cuenta de que el estado por defecto de la línea de E/S es HIGH, y sólo hay un único pin de E/S, que es de dos vías.

Entonces, si ambos lados están escuchando, y enviando una señal ALTA, ¿cómo se supone que cualquiera de los lados detecte una señal BAJA? Si uno de los dos cambia la línea de HIGH a LOW, todavía habrá 5v suministrados a la línea por la parte que escucha.

Al ser un protocolo semidúplex, ¿se supone que cada parte sólo emite altos en ciclos alternos? ¿O la idea es detectar un flujo de corriente?

Me parece que la respuesta a esto es en realidad bastante sencilla y que me estoy perdiendo algo, posiblemente algún detalle de implementación de hardware que desconozco, pero no he podido encontrar la respuesta en los requisitos de la interfaz.

3 votos

La señal se eleva mediante una resistencia de pull-up. Cada dispositivo puede tirar de la señal baja mediante el uso de drenaje abierto o transistor de colector abierto.

2 votos

@MarkoBuršic ¡Muchas gracias! Nunca había oído hablar de este método de dos vías de un solo cable; con un poco de investigación en la documentación MicroPython pude establecer el pin de E / S a drenaje abierto, y resolver el problema.

0voto

Probably_wrong Puntos 56

Las líneas son puestas en alto por el circuito de la interfaz. La tarjeta chip o el transmisor pueden tirar de la línea hacia abajo cuando quieren transmitir. Véase la página 11 de esta hoja de datos: https://www.analog.com/en/products/ltc1755.html

0voto

La línea es alta "por defecto", es decir, una resistencia pull up tira de la línea hacia arriba.

De este modo, el transmisor/receptor puede tirar de la línea hacia abajo cuando necesite una salida BAJA.

Ejemplo de implementación de I2C (TWI):

pullup imagen de aquí

Si no ves resistencias externas en un sistema de este tipo, significa que el MCU puede activar las resistencias pull-up internas en sus propios GPIOs y no hay necesidad de las externas.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X