Latências no adaptador Ethernet para RS232

Latências no adaptador Ethernet para RS232

Requerimento: Tenho um software em execução no Windows que se comunica com um dispositivo externo usando a porta RS232. O hardware recebe os comandos enviados do PC e responde 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 latência de x ms.

Existem muitos produtos disponíveis online, examinei algumas fichas de produtos. Havia informações sobre parâmetros de comunicação Ethernet e serial, como bits de dados, taxa de transmissão, velocidade, mas em nenhum lugar consegui encontrar as informações de latência.

Até aqui Usei um adaptador (taxa de transmissão máxima de 230,4 kbps) para testar meu software, mas encontrei uma exceção de tempo limite da porta serial.

Pergunta

De que critérios depende essa latência?

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

O que devo verificar nas Folhas de Dados para determinar a latência (aproximada)?

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

Responder1

De que critérios depende essa latência?

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

Como outros comentaristas mencionaram, no mínimo você tem atrasos na tradução do protocolo. Você precisaria levar em conta o buffer de dados do endpoint e 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 ser armazenado em buffer antes da transmissão e quais podem ser os tempos limite internos. Eles podem ser configurados em alguns dispositivos.

Também dependerá se o protocolo Ethernet está usando UDP, TCP ou um protocolo personalizado. Dependerá se o protocolo suporta retransmissão e se adiciona integridade adicional ou informações de sinalização. Novamente, eles podem ser configurados em alguns dispositivos. Sem ter olhado, eu acho que os dispositivos de baixo custo tenderiam a usar UDP sem qualquer integridade ou retransmitir e tenderiam a armazenar em buffer um quadro UDP completo de dados com algum tempo limite interno para enviar um quadro parcial se o fluxo de dados parar.

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

Realmente depende da latência que você está medindo. A diferença nas taxas de dados seriais provavelmente afetará seuTaxa de transferênciamais significativamente do que o seulatência. Sim, isso afeta a latência, mas lembre-se de que a 9600bps um byte leva cerca de 1ms para ser transmitido.

O que devo verificar nas Folhas de Dados para determinar a latência (aproximada)?

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

As pontes para aplicações industriais às vezes fornecem informações sobre latência e/ou rendimento. Por exemplouma dessas páginas de produtocita uma latência de 2ms. Existem também alguns relatórios de testes patrocinados pela empresa, como esteComparação competitiva de 2003oueste relatório de 2002que compara latências para vários dispositivos. As latências em seus testes variam de alguns milissegundos até uma média de 861 ms.

De qualquer forma, parece que o seu 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. Normalmente, há vários tempos limite especificados em uma biblioteca de interface serial, como tempo entre bytes, tempo de leitura multibyte e tempo de gravação. Também existem erros de buffer overflow se os dados armazenados em buffer não estiverem sendo esvaziados com rapidez suficiente. Como você deve saber, normalmente você pode ajustar ou desabilitar cada tempo limite em seu cliente serial.

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

informação relacionada