Lo splitter Y seriale RS232 su Raspberry Pi (USB) e la stampante termica a volte bloccano il flusso verso la stampante


2

Stiamo acquisendo dati da un sistema di punti vendita di un ristorante (da RJ45 a DB9) alla sua stampante termica utilizzando uno splitter RS232 e un Raspberry Pi (da DB9 a USB sul Pi).

Questo ha funzionato benissimo il 99% delle volte, ma molto raramente il POS invia un normale comando di stampa e la stampante non stampa. Quindi, se scolleghiamo l'USB sul Pi, la stampante stampa la ricevuta, come se fosse in coda e bloccata dal Pi in qualche modo. Questo non ha senso sul motivo per cui potrebbe essere bloccato poiché pensavo che il cavo Y avesse creato 2 flussi separati di dati seriali, reciprocamente esclusivi.

Nota: questo sembra verificarsi solo quando lo script del listener di porte seriali Ruby sul Pi non è in esecuzione, anche se normalmente lo script viene spento e la stampante continua a stampare ...

Non posso replicarlo su richiesta, il che lo ha reso ancora più frustrante.

Risposte:


3

Alcune cose da considerare

  • Lo splitter duplica le linee di controllo diverse da Tx, Rx e GND? In tal caso, disconnetterei fisicamente quelle linee dal lato seriale a USB. Queste linee possono essere utilizzate per il controllo del flusso. Anche il pin Tx non è necessario per il lato Raspberry Pi, quindi è possibile disconnetterlo. Solo RX-GND sembra essere abbastanza per Pi.
  • La porta RS-232 su POS potrebbe non essere in grado di fornire abbastanza corrente per due peer collegati poiché non è standard. L'uso di cavi ben schermati e più corti può aiutare. In realtà sembra che non sia necessario utilizzare quel lungo cavo nero sul lato POS per i test.
  • Utilizzo dell'indicatore di segnale RS-232 (in questo modo: http://cnc-specialty-store.com/rs232-cables/rs-232-mini-tester-with-led-indicators-db-25-male-to-female ) può aiutare ad analizzare il problema.
  • Monitorare le tensioni delle linee Tx / Rx usando i multimetri per trovare la differenza tra le condizioni normali e la condizione "bloccata".
  • E non dimenticare che il convertitore USB-seriale stesso potrebbe avere dei problemi. Ho sentito così tanti strani problemi causati dai convertitori USB. Quindi, se possibile, prova lo stesso test senza utilizzare convertitori seriale USB, che probabilmente richiedono un'altra apparecchiatura come il PC.

Inoltre, l'utilizzo di due convertitori USB-seriale su Raspberry Pi può aiutare a duplicare realmente i dati tra la stampante e il POS, come [Stampante] - RS232 - [Raspberry Pi] - RS232 - [POS]. Ciò probabilmente richiede un nuovo programma su Pi per duplicare effettivamente i dati seriali, ma almeno non infrange la regola di RS-232 che non è garantita per funzionare su connessioni 1: n. Tuttavia, questa configurazione può anche essere rischiosa in quanto può introdurre problemi di temporizzazione, in particolare con apparecchiature non PC. Puoi provare questo se non c'è nient'altro da provare.


+1 per un elenco di punti di controllo che posso esaminare. Grazie. Ci vorrà del tempo per testare tutti questi ...
Michea,

Abbiamo rimosso tutti i pin tranne RX, GND come suggerito nel primo punto elenco, che sembrava risolvere il problema. Risolto!
Michea,

Guardando indietro, in realtà abbiamo rimosso tutti i pin tranne Rx e GND all'estremità dello splitter che si collega al seriale -> USB -> Pi. Da allora non abbiamo avuto problemi, ma ora sono sconcertato dal fatto che quella parte dello splitter DB9 possa ancora trasmettere dati al seriale -> USB se ha solo un Rx. Sono confuso su come possa ancora funzionare. Qualche idea? (Rileggendo la risposta sembra che dovremmo rimuovere i pin Tx ecc. Dal seriale -> USB, il che ha senso per me.)
Michea

1
Credo che lo splitter sia solo un connettore fisico e non sappia assolutamente nulla delle comunicazioni RS-232 o seriali: collega semplicemente tutto, come se si collegasse un ponticello su ogni singola linea. E come ho detto, il collegamento dello splitter a un RS-232 esistente in realtà infrange la regola di RS-232 che è progettata per la connessione 1 a 1. Quindi la tua configurazione in pratica non è garantita per funzionare. Ciò che ho suggerito è stato, a causa di ciò, il modo di ridurre al minimo gli impatti sulla connessione RS-232 esistente.
Scott Rhee,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.