Monitoreo en serie de los datos del puerto paralelo DB25

1

Me gustaría examinar la cadena de datos que se emiten desde el conector DB25 de un equipo industrial que se envía a una impresora. Estaba pensando que necesito convertir esta conexión paralela de 25 pines a USB tipo A, que luego se conectará a mi PC y luego se examinará con un monitor de serie.

Mi pregunta es ¿qué tipo de hardware puedo usar para convertir estos datos paralelos a USB?

¿Solo necesito los datos 0 - 7 pines y el pin de tierra en el conector DB25 para analizar los datos en mi PC?

¿Hay alguna biblioteca arduino por ahí que pueda convertir estos datos?

Aprecio cualquier ayuda. Esta es la primera vez que trato de conectar un conector DB25 a USB. He investigado un poco sobre la comunicación paralela y parece que han chocado contra una pared.

    
pregunta Matthew Buffa

4 respuestas

1

Simplemente enchúfelo en paralelo al Arduino. Tócalo como la antigua ruptura en serie cuadro días. Hágase un cable en Y para repetir los pines a otro conector de 9 pines, o compre uno de estos: -

Luego, acaba de leer los 8 pines de datos con un Arduino como una instrucción de lectura de puerto (por ejemplo, PINC). Es posible que tenga que jugar con la orden de transferencia para obtener códigos razonables. Luego, envíe el byte a través del cable USB de Arduino (utilizando Serial.print (byteValue)) a la PC que ejecuta el software de emulación de terminal como SCREEN o PuTTY. Intente ejecutar la impresora a baja velocidad, por ejemplo, 10 kBaud. El software Arduino es sorprendentemente simple. Estimo 10 - 15 líneas más una rutina de servicio de interrupción rápida.

Encontrará que para discriminar un byte de otro que pasa por el cable, también tendrá que acceder a la línea / STROBE en el pin 1. Si conecta este pin al Arduino como una interrupción, debería Poder leer los 8 bits de datos en cada señal estroboscópica.

Los antiguos puertos Centronics funcionaban bastante lentamente, por lo que la impedancia adicional de los puertos de entrada y del cable Y de Arduino no debería cargar el puerto de impresora del equipo industrial. La interfaz era de 5 V, así que obtenga un Arduino de 5 V para evitar problemas de nivel o una explosión catastrófica de uno de 3 V.

Esencialmente, construirías un analizador lógico, que también podrías usar si hay uno por ahí. Los osciloscopios de señal mixta también son buenos para esto.

    
respondido por el Paul Uszak
0

Usted no solo "convierte" un DB-25 a USB. Un DB-25 es solo un conector. USB es un conjunto de conectores y un protocolo completo. El USB es mucho más complicado. No puede simplemente conectar los pines correctos en el DB-25 a un conector USB y enchufarlo.

Luego está la pregunta de qué protocolo se está transfiriendo a través de este conector DB25. Esto podría ser una antigua interfaz de impresora de "puerto paralelo". En ese caso, son 8 líneas de datos con algunas líneas de control. Busque la especificación de puerto paralelo, luego investigue sus 25 líneas con un alcance y vea si parece coincidir.

Una vez que conozca el protocolo, probablemente sería más fácil rastrear los datos programando un microcontrolador para hacer la lectura de bajo nivel, luego enviar los datos a través de un UART o algo así. El protocolo eléctrico de bajo nivel probablemente tenga algunas restricciones de tiempo, lo que dificultará, si no imposible, cumplir con una PC que ejecuta el código de usuario en un sistema operativo moderno.

Hay micros con interfaces paralelas de 8 bits incorporadas. No debería ser difícil aprovechar eso para leer cualquier interfaz paralela de 8 bits que tenga, suponiendo que es lo que tiene. Es posible que necesite un poco de lógica de pegamento para obtener el estroboscopio de polaridad correcto y similar, pero no debería ser demasiado difícil.

Sin embargo, nuevamente, el primer paso es determinar qué hace cada uno de los cables y cuál es el protocolo de bajo nivel. Solo entonces puedes encontrar o hacer algo para capturar los datos a medida que se van realizando.

    
respondido por el Olin Lathrop
0

Lo he hecho uno o dos años atrás. Utilicé un Pic32MX. Básicamente, hay una señal estroboscópica que se usa para obtener los datos de 8 bits del puerto; lo usé para desencadenar una interrupción. Los datos entraron en un búfer que finalmente se escribió como un archivo en una memoria USB. Funcionó bien, pero tenga en cuenta que tendrá que hacer una conversión difícil para convertir los datos en una imagen.

Funcionó bien para mí, pero utilicé un software llamado PrintCapture que parece que ya no está disponible. De hecho, ahora estoy investigando la conversión a mapa de bits en el PIC, pero significa analizar el lenguaje de la impresora y escribir en un archivo de imagen, lo que puede requerir un poco de trabajo. Por lo que sé, no hay bibliotecas FOSS para esto (si me equivoco, ¡me gustaría saberlo!)

También podría ser un buen trabajo para una Raspberry Pi o similar, que tiene suficientes pines IO y mucha más memoria.

Hay bastantes partes de equipos antiguos que tienen puertos de impresora paralelos, por lo que este podría ser un proyecto bastante interesante.

    
respondido por el dmb
-4

Parece que tienes un equipo que imprime algo en una impresora a través de una interfaz paralela, pero ya no puedes encontrar una impresora moderna con esta interfaz, todas las impresoras de hoy en día son USB, ¿verdad? Puede encontrar fácilmente un simple convertidor de puerto USB a puerto paralelo, pero realizar una transición de puerto paralelo a host USB sería una tarea difícil.

Primero, necesitaría una placa MPU de tamaño considerable que sea capaz de la funcionalidad de host USB. Así que algo como Raspberry Pi3 al menos, que funciona con un sistema operativo decente.

Entonces necesita un soporte de software para clase de impresora USB que se ejecuta en su MPU.

Entonces necesitarías crear una interfaz paralela de 8 bits en esa MPU emulando Puerto de impresora Centronics (IEEE1284) , para conectarlo a su antiguo puerto DB25 de equipo industrial, para que el equipo crea que está imprimiendo en una impresora normal.

Luego deberá escribir un puente de software entre las dos interfaces, analizando los comandos y los datos de Centronics en las llamadas API al controlador de impresora USB.

Eso es todo. Buena suerte.

ADENDA: Parece que este tipo de puentes están disponibles comercialmente, vea este en Amazon . Aquí hay otro proyecto casi DIY, " LPTzUSB ".

    
respondido por el Ale..chenski

Lea otras preguntas en las etiquetas