Latências no adaptador Ethernet para RS232

2

Requisito: Eu tenho um software em execução no meu Windows que se comunica com um dispositivo externo usando a porta RS232. O hardware recebe os comandos enviados pelo PC e responde de volta ao PC. Ao usar um cabo simples entre o computador e o hardware, sem nenhum adaptador, a transmissão e a recepção são concluídas, digamos, em 50 ms. Ao usar o adaptador Ethernet para RS232, o tempo total de comunicação é (50 + x) ms, com uma latência de x ms.

Há muitos produtos disponíveis on-line, eu passei por algumas das folhas de dados dos produtos. Havia informações sobre parâmetros de comunicação serial e ethernet, como bits de dados, taxa de transmissão, velocidade, mas em nenhum lugar eu poderia encontrar as informações de latência.

Até agora Eu usei um adaptador (max. Taxa de transmissão de 230,4 kbps) para testar o meu software, mas eu corri para a exceção de tempo limite de porta serial.

Pergunta

Em que critérios esta latência depende?

A latência depende da taxa de transmissão?

O que devo verificar no DataSheets para determinar a latência (aproximada)?

Os fabricantes fornecem informações de latência?

    
por lerner1225 16.03.2017 / 14:53

1 resposta

0

On what criteria does this latency depends on?

Buffer, enquadramento de dados, transmissão, protocolo e tempo limite eu acho que seriam os principais.

Como outros comentaristas mencionaram, no mínimo você tem atrasos na tradução de protocolos. Você precisaria levar em conta o ponto final e o buffer de dados da ponte, a recodificação, a sobrecarga do protocolo e o tempo de transmissão. A latência será afetada pelo fato de um quadro completo de dados estar ou não armazenado em buffer antes da transmissão e do tempo limite interno. Estes podem ser configurados em alguns dispositivos.

Também depende se o protocolo Ethernet está usando UDP, TCP ou um protocolo personalizado. Dependerá se o protocolo suporta a retransmissão e se acrescenta integridade adicional ou informações de sinalização. Mais uma vez, estes podem ser configurados em alguns dispositivos. Sem ter olhado, eu diria que dispositivos de baixo custo tendem a usar UDP sem integridade ou retransmissão e tendem a armazenar em buffer um quadro de dados UDP completo com algum tempo limite interno para enviar um quadro parcial se o fluxo de dados parar.

Does latency depends on the baud rate?

Depende realmente de qual latência você está medindo. A diferença nas taxas de dados em série provavelmente afetará mais a sua taxa de transferência do que a sua latência . Sim, isso afeta a latência, mas tenha em mente que a 9600bps, um byte leva cerca de 1ms para transmitir.

What should I check in the DataSheets to determine (approximate) latency?

Do manufacturers provide latency information?

Pontes para aplicações industriais às vezes fornecem informações sobre latência e / ou taxa de transferência. Por exemplo, uma dessas páginas de produtos cita uma latência de 2 ms. Há também alguns relatórios de testes patrocinados pela empresa, como essa comparação competitiva de 2003 ou este relatório de 2002 que compara as latências de vários dispositivos. As latências nos testes variam de alguns milissegundos até 861 ms médios.

De qualquer forma, parece que o problema subjacente é o tempo limite da porta serial, e não um problema de latência. Pelo pouco que você disse, suspeito provisoriamente de um erro de software ou configuração. Geralmente, há vários tempos limite especificados em uma biblioteca de interface serial, como tempo de interbordo, tempo de leitura multibyte e tempo de gravação. Além disso, há erros de estouro de buffer se os dados em buffer não estiverem sendo esvaziados com rapidez suficiente. Como você deve saber, normalmente você pode ajustar ou desativar cada tempo limite no seu cliente serial.

Eu começaria identificando onde o erro está originando. Você também pode reduzir a velocidade para 9600, já que os adaptadores baratos nem sempre funcionam bem em seus máximos nominais.

    
por 17.03.2017 / 10:47