¿Cómo detectar la conectividad RS232 y USB?

2

Mi proyecto implica un PIC que se comunica a través de los canales USB y RS-232, que luego se multiplexan en 1 UART mediante un interruptor analógico SPDT doble. Como tal, el PIC tiene que saber qué puertos están físicamente conectados, para seleccionar el puerto USB o el puerto RS232.

¿Cómo voy a hacer esto? Para RS-232, podría establecer una interrupción externa para la línea DTR, pero en mi campo de la industria, solo se utilizan Tx, Rx y Gnd.

Para USB, podría usar Vbus para detectar la presencia, pero es posible una sobrecorriente

¿O sería más factible monitorear la impedancia de las líneas diferenciales usb y las líneas rs232 tx rx, como en los circuitos de detección de conectores de audio?

    
pregunta Siidheesh

1 respuesta

3

Para USB, la forma más fácil de monitorear la presencia de VBUS.

No estoy seguro de lo que quiere decir con "sobrecorriente", no debería tener que cargar la línea de alimentación USB mucho, en todo caso. Si está realmente preocupado, coloque una resistencia de 10K en serie con el USB Vcc y simplemente ejecútelo en un pin de entrada. Eso debería protegerte de cualquier falla.

Desafortunadamente, para la serie, puede ser mucho más complicado.

Si tiene suerte, su sistema usa señalización de nivel TTL invertida, lo que significa que el nivel de línea cuando no hay tráfico es Vcc, o señalización de nivel RS232, lo que significa que el voltaje de línea sin tráfico es ~ + 10v o ~ -10v, dependiendo de si su bus está invertido.

Luego, puedes simplemente monitorear el nivel de voltaje. 0v significa nada conectado.

Si no tiene suerte, su sistema utiliza señalización de nivel TTL, con un estado de bus inactivo de 0V. En este caso, realmente la única forma posible de determinar si un dispositivo está conectado es enviar algo de tráfico y ver si recibe una respuesta.

    
respondido por el Connor Wolf

Lea otras preguntas en las etiquetas