Divisor Y serial RS232 para Raspberry Pi (USB) e impressora térmica, às vezes, bloqueia o fluxo para a impressora

2

Estamos farejando dados de um sistema de ponto de venda de restaurante (RJ45 a DB9) para sua impressora térmica usando um divisor RS232 e um Raspberry Pi (DB9 para USB no Pi).

Isso funcionou muito bem 99% do tempo, mas muito raramente o POS envia um comando de impressão normal e a impressora não imprime. Então, se desconectarmos o USB no Pi, a impressora imprimirá o recibo, como se ele estivesse na fila e bloqueado pelo Pi de alguma forma. Isso não faz sentido para o motivo pelo qual ele poderia ser bloqueado, pois achei que o cabo Y criou dois fluxos separados de dados seriais, mutuamente exclusivos.

Nota: Isso parece ocorrer apenas quando o script do listener de porta serial Ruby no Pi não está em execução, embora normalmente desligemos o script e a impressora ainda imprima ...

Eu não posso replicar isso sob demanda, o que tornou ainda mais frustrante.

    
por Micah 16.02.2015 / 20:32

1 resposta

3

Algumas coisas a considerar ...

  • Esse divisor duplica linhas de controle diferentes de Tx, Rx e GND? Em caso afirmativo, eu seria fisicamente desconectar essas linhas no lado Serial-to-USB. Essas linhas podem ser usadas para controle de fluxo. Mesmo o pino Tx não é necessário para o lado do Raspberry Pi, então você pode desconectá-lo também. Apenas o RX-GND parece ser suficiente para o Pi.
  • A porta RS-232 no POS pode não ser capaz de fornecer corrente suficiente para dois peers conectados, já que não é padrão. Usando bem protegido & cabos mais curtos podem ajudar. Na verdade, parece que você não precisa usar esse longo cabo preto no lado POS para testes.
  • Usando o indicador de sinal RS-232 (assim: link ) pode ajudar a analisar o problema.
  • Monitore as voltagens das linhas Tx / Rx usando multímetros para encontrar a diferença entre as condições normais e a condição 'preso'.
  • E, por favor, não esqueça que o próprio conversor USB-Serial pode ter problemas. Já ouvi tantos problemas estranhos causados por conversores USB. Então, se possível, tente o mesmo teste sem usar conversores USB-serial, o que provavelmente requer outro equipamento como o PC.

Além disso, usar dois conversores USB-Serial no Raspberry Pi pode ajudar na duplicação de dados entre a impressora e o PDV, como [Impressora] - RS232 - [Raspberry Pi] - RS232 - [POS]. Isso provavelmente requer um novo programa no Pi para realmente duplicar os dados seriais, mas pelo menos não vai quebrar a regra do RS-232 que não é garantida para rodar em conexões 1: n. No entanto, esta configuração também pode ser arriscada, pois pode introduzir problemas de temporização, especialmente com equipamentos não PC. Você pode tentar isso se não houver mais nada para tentar.

    
por 16.02.2015 / 22:42