2

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

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

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

Вопрос

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

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

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

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

1 ответ1

0

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

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

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

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

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

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

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .