Algo está errado com minha comunicação serial [fechada]

0

Eu não sou especialista em comunicação serial, e foi há muito tempo que tentei. Meu objetivo imediato era conectar-se ao processador de serviços em um SUN Sparc T5140, mas desde que tentei me conectar a vários dispositivos e aos mesmos resultados todas as vezes. Eu recebo uma tela / terminal em branco, o cursor não está se movendo, nada acontece na tela / terminal.

Eu tenho um cabo de conexão estreito (cabo de modem nulo) entre o host (também tentei hosts diferentes) e o destino, conectado a uma porta serial de 9 pinos.

Eu verifiquei qual porta eu estou usando, desta forma:

0: uart:16550A port:000003F8 irq:4 tx:0 rx:0 RTS|DTR
1: uart:16550A port:000002F8 irq:3 tx:0 rx:0

Com isso, posso ver que é o ttyS0 que tem uma conexão elétrica.

Eu também experimentei modos / velocidades diferentes, grosseiros, etc.

Eu tentei clientes diferentes, como minicom, screen e putty, e todos acabam nessa tela / terminal vazia, que não está mostrando nada e não recebe nenhuma entrada. Há mais clientes que não tentei, mas sinto que não há necessidade disso, o problema está em outro lugar.

Eu considerei o cabo, mas comprei hoje, em uma loja em que confio, e acho que, como está mostrando a conexão elétrica, deve estar certo ...? Mas aqui eu não tenho certeza ...

Se eu usar algo diferente de ttyS0 ou ttyS1, a tela diz o seguinte:

[root@tc1 ~]# screen /dev/ttyS2
[screen is terminating]

O que eu acho que deve significar que não há comunicação ou nenhum dispositivo configurado.

    
por Jokra 23.10.2018 / 15:56

1 resposta

2

Through this I can see that it is the ttyS0 that has an electrical connection.

Sinto muito, mas você está enganado aqui.

Os sinais RTS e DTR indicam apenas que algo está ativando a porta no lado local, ou seja, há screen , minicom , ModemManager , agetty ou um programa semelhante em execução na porta em seu computador. Eles não contam nada sobre o lado remoto, já que ambos são sinais de saída. Use fuser -u /dev/ttyS0 como root para obter o PID do processo local que está ativando a porta.

Se você não acredita em mim, execute screen /dev/ttyS1 e, enquanto ele estiver em execução, execute cat /proc/tty/driver/serial novamente em outra janela. Agora você deve ver os sinais ttyS1 RTS e DTR ativos também.

Os sinais CTS e DSR, por outro lado, indicariam duas coisas:

  • o cabo na verdade tem essas linhas conectadas (alguns cabos seriais possuem apenas três fios: dados de entrada, dados de saída e aterramento) de alguma forma
  • se os sinais CTS e DSR aparecerem sozinhos, sem RTS e DTR, então e somente então isso indicaria que há algo do outro lado, com certeza. Alguns cabos de modem nulos conectam DTR local a DSR local e RTS local a CTS local em cada conector, como uma solução alternativa para a situação em que o dispositivo em uma extremidade deve usar handshaking de hardware e o dispositivo na outra end não pode fazer isso. Nesse caso, os sinais CTS e DSR de entrada sempre aparecerão assim que a porta for energizada e os sinais RTS e DTR de saída forem acionados, mesmo se a outra extremidade do cabo não estiver conectada.

Freqüentemente, você também deve ter os parâmetros da conexão serial antes de funcionar. A variável mais comum é a taxa de transmissão (velocidade) da conexão: em uma porta de console de um T5140, eu primeiro tentaria 9600 bps. Outros dispositivos também podem usar 38400 ou até 115200 bps; esses são os valores mais comuns na minha experiência.

Os outros parâmetros são o número de bits de dados (8 é o valor mais comum hoje), paridade ("nenhum" é o mais comum) e o número de bits de parada (1 é o mais comum).

Mesmo se você tiver todos os parâmetros corretos, a outra extremidade pode não enviar nada até obter alguns caracteres válidos como entrada. Assim, depois de iniciar seu screen ou minicom , pressione Enter uma ou duas vezes.

A maioria das conexões de console serial funciona no princípio "eco remoto": quando você digita algo, os caracteres digitados são enviados pela porta serial sem exibi-los na tela. Somente quando a extremidade remota exibir os caracteres de volta, eles serão exibidos. Isso permite a inserção de senhas sem que elas sejam visíveis na tela (pois a extremidade remota apenas desabilita a função de eco para entrada de senha) e informa que os caracteres digitados foram recebidos corretamente.

Em conexões seriais que não são destinadas para uso humano, esta função de eco remoto pode ser omitida: se você estiver solucionando uma conexão, você pode querer ativar a função "echo local" no seu emulador de terminal (Q no seção de configurações "tela e teclado" em minicom , por exemplo). Se você tiver o eco local e remoto em vigor simultaneamente, qualquer coisa que você digitar aparecerá ddoouubblleedd na tela.

    
por 24.10.2018 / 06:32