USB a RS232 sin host (dispositivos esclavos)

1

Estoy intentando que dos dispositivos esclavos (es decir, no haya un controlador host) para comunicarse.

  • Slave 1: USB con chip FT232RQ
  • Slave 2: DB9

Al usar los cables convertidores USB a RS232 estándar, no puedo lograr que los dos dispositivos se comuniquen entre sí. Creo que esto se debe a no tener un "controlador de host"?

Para obtener comunicación, creo que necesito introducir un controlador "host" entre los dos esclavos:

TTL < - > Anfitrión < - > RS232

¿Estoy en la línea correcta con esta idea / solución?

    
pregunta user3424480

1 respuesta

4

Creo que hay una confusión en alguna parte aquí. No puede decir "dispositivo DB9 esclavo" porque a pesar de que DB9 se usa para innumerables protocolos (CAN, USART, etc.) ninguno de ellos tiene nada que ver con el significado de dispositivo esclavo USB.

A menos que, por supuesto, este DB9 esté conectado internamente a otro convertidor de serie a USB que lleve al esclavo USB real más abajo en la línea. Pero dado que ocultar el esclavo USB en una caja separada del mundo por una interfaz serial tiene muy poco sentido, supongo que no es el caso aquí.

Entonces, básicamente tienes un dispositivo desconocido (para mí) con algún protocolo serial basado en TTL en el lado DB9. Al conectar un cable RS232 a USB NO lo convierte mágicamente en un dispositivo esclavo. O, más precisamente, lo convierte en un esclavo USB de "clase de proveedor" con el descriptor de interfaz FTDI (o cualquier chip que se encuentre dentro de ese cable).

En el otro lado, tiene un dispositivo con conector USB conectado internamente al chip FT232R y además a MCU con interfaz serial. Esto me dice que Slave 1 tampoco es un esclavo USB verdadero. Los chips FT232R se utilizan como capa de transporte entre la interfaz en serie del dispositivo y el puerto en serie virtual en la computadora host.

Lo que básicamente significa que también tienes otro dispositivo serie (ni host ni esclavo) en este lado. Y si tiene acceso a su firmware, puede programar cualquier protocolo serie que admita el dispositivo DB9. Esto es algo bueno.

Lo malo, es que el chip FT232R requiere host en el medio, no hay solución aquí. Entonces, básicamente tienes cuatro opciones:

  1. Opción de software + hardware: cree su propio adaptador con host USB basado en MCU compatible con USB. Su software también tendrá que funcionar como controlador FTDI. Este es el enfoque más complejo, pero debería permitir que no se realicen cambios en el firmware del esclavo 1.

  2. Opción de Hardware + Firmware: haga su propio adaptador con el chip Vinculum de FTDI. Cárguelo con el UART-to-FT232 host bridge preprogramado. Es posible que alguien que ya esté haciendo estos adaptadores o cables comercialmente, así que navegue por la web. Modifique el firmware en Slave 1 para comunicarse con Slave 2 como si estuvieran conectados directamente por UART . Este es el enfoque más portátil, básicamente su propio cable RS232 a USB.
    ACTUALIZACIÓN: en realidad, FTDI hace que placa de desarrollo esté prácticamente lista para esta aplicación.

  3. Opción de software: conecte ambos dispositivos a la PC, Slave 1 directamente, Slave 2 a través del cable RS232 a USB normal. Obtendrá dos puertos COM en la computadora. Desde aquí puede escribir el programa "controlador" para comunicarse con ambos dispositivos a través de esos puertos COM.

  4. Opción Software + Firmware: conecte ambos dispositivos a la PC como se indicó anteriormente. Puentee dos puertos COM utilizando cualquier software disponible, como controlador de puerto serie virtual de Eltima. Modifique el firmware en el esclavo 1 (exactamente como en la opción 2 anterior).

respondido por el Maple

Lea otras preguntas en las etiquetas