Задержки в Ethernet к адаптеру RS232

552
lerner1225

Требование: на моем Windows работает программное обеспечение, которое обменивается данными с внешним устройством через порт RS232. Аппаратное обеспечение принимает команды, отправленные с ПК, и отвечает обратно на ПК. При использовании простого кабеля между компьютером и оборудованием без каких-либо адаптеров передача и прием завершаются, скажем, за 50 мс. При использовании адаптера Ethernet к RS232 общее время связи составляет (50 + x) мс с задержкой x мс.

Есть много продуктов, доступных в Интернете, я просмотрел некоторые данные о продуктах. Была информация о параметрах Ethernet и последовательной связи, таких как биты данных, скорость передачи данных, скорость, но нигде я не мог найти информацию о задержке.

До сих пор я использовал адаптер (макс. Скорость передачи 230,4 кбит / с) для тестирования своего программного обеспечения, но я столкнулся с исключением по истечению времени ожидания последовательного порта.

Вопрос

От каких критериев зависит это время ожидания?

Зависит ли задержка от скорости передачи?

Что я должен проверить в DataSheets, чтобы определить (приблизительную) задержку?

Предоставляют ли производители информацию о задержке?

2
Задержка является эффектом и относится к промежутку времени между началом и завершением процесса. Как таковой, он меняется в зависимости от перспективы и никогда не является спроектированной / определенной вещью (хотя это часто неизбежно), так что это не то, что любая конкретная система может указать. Не похоже, что конкретный кабель имеет определенную «задержку» с большинства точек зрения. Задержка распространения является самой близкой и относится к количеству времени, которое требуется для перемещения сигнала от одного конца носителя к другому, но это встроено в спецификации для сетевых стандартов, таких как 802.3 / Ethernet или в вашем случае RS-232. Frank Thomas 7 лет назад 2
Насколько я понимаю, вы конвертируете сигнал RS232 в поток данных Ethernet и обратно в сигнал RS232, верно? Таким образом, это будет, по крайней мере, задержка, необходимая для преобразования, которое определено как команда пакет / распаковка ... дважды (по одному для каждого конца). Seth 7 лет назад 0

1 ответ на вопрос

0
user650881

От каких критериев зависит это время ожидания?

Буферизация, кадрирование данных, передача, протокол и время ожидания, я думаю, будут основными.

Как упоминали другие комментаторы, как минимум, у вас есть задержки трансляции протокола. Вам нужно будет учесть конечную точку и буферизацию данных моста, перекодирование, издержки протокола и время передачи. Задержка будет зависеть от того, буферизован ли полный кадр данных перед передачей и какие могут быть внутренние таймауты. Они могут быть настроены на некоторых устройствах.

Это также будет зависеть от того, использует ли протокол Ethernet UDP, TCP или собственный протокол. Это будет зависеть от того, поддерживает ли протокол ретрансляцию и добавляет ли он дополнительную информацию о целостности или сигнализации. Опять же, они могут быть настроены на некоторых устройствах. Не взглянув, я бы предположил, что устройства низкого уровня будут склонны использовать UDP без какой-либо целостности или повторной передачи и будут буферизовать полный кадр данных UDP с некоторым внутренним таймаутом для отправки частичного кадра, если поток данных остановится.

Зависит ли задержка от скорости передачи?

Это действительно зависит от того, какую задержку вы измеряете. Разница в скорости последовательных данных, вероятно, повлияет на вашу пропускную способность более значительно, чем ваша задержка . Да, это влияет на задержку, но имейте в виду, что при скорости 9600 бит / с байт для передачи занимает около 1 мс.

Что я должен проверить в DataSheets, чтобы определить (приблизительную) задержку?

Предоставляют ли производители информацию о задержке?

Мосты для промышленных приложений иногда предоставляют информацию о задержке и / или пропускной способности. Например, одна такая страница продукта указывает задержку 2 мс. Существуют также отчеты о тестировании, спонсируемые компанией, такие как конкурентное сравнение 2003 года или отчет 2002 года, в котором сравниваются задержки для нескольких устройств. Задержки в их тестах варьируются от нескольких миллисекунд до 861 мс в среднем.

В любом случае, похоже, что вашей основной проблемой является тайм-аут последовательного порта, а не проблема задержки. Из того, что вы сказали, я подозреваю ошибку программного обеспечения или конфигурации. Обычно в библиотеке последовательного интерфейса указывается несколько таймаутов, таких как межбайтовое время, многобайтовое время чтения и время записи. Также есть ошибки переполнения буфера, если буферизованные данные очищаются недостаточно быстро. Как вы, возможно, знаете, вы можете настроить или отключить каждый таймаут в вашем последовательном клиенте.

Я бы начал с определения места возникновения ошибки. Вы также можете снизить скорость до 9600, поскольку дешевые адаптеры не всегда работают хорошо при своих номинальных максимумах.

Похожие вопросы