Последовательный порт, возвращающий случайные ошибки на клиенте Wyse

475
Big EMPin

Мы тестируем новый клиент Wyse (модель Z90D7), который имеет последовательный порт для подключения к ПК. У нас есть внешний клиент, который использует выделенное оборудование, но для тестирования мы используем ПК. Мы запускаем приложение C # на клиентах через Citrix. Когда мы запускаем приложение, которое используем на нашем старом оборудовании Wyse, все работает без ошибок. Однако на новом оборудовании последовательный порт работает примерно раз в 10 попыток. В остальное время он выдаст либо ошибку переполнения, ошибку четности, либо ошибку RXOver.

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

Я также попытался использовать рукопожатие и большие буферы для чтения / записи без удачи. Я попробовал новый кабель и второй COM-порт на этом устройстве, тоже не повезло. Наши настройки по умолчанию:

9600 бод, четная четность, 8 бит данных, 1 стоповый бит

Учитывая, что это работает на Citrix, мы также должны запустить показанные здесь команды net use, прежде чем что-либо делать. В противном случае последовательное соединение всегда говорит, что оно подключено, и не получает никаких данных (это также происходит на старом оборудовании). Точная команда, которую мы выполняем (с измененным именем приложения, конечно):

net use com1 /DELETE net use com2 /DELETE net use com1: \\client\com1: net use com2: \\client\com2: start /d "D:\myapp" MyApplication.exe 

Кто-нибудь, кто имел дело с последовательными портами, когда-либо слышал об этих трех чередующихся ошибках? Есть ли что-нибудь кроме неисправного порта (или, скорее, двух неисправных портов), которое могло бы вызвать это? Я думаю, что размер аппаратного буфера может быть проблемой, но не могу найти способ преодолеть это.

3
Все ошибки, кажется, говорят о том, что данные не движутся, и в обоих направлениях. RXOver недостаточно быстро очищает приемный буфер. Переполнение - драйвер последовательного порта недостаточно быстро очищает буфер отправки чипа. Я не уверен, что существует способ увеличить размер аппаратного буфера. Буфер Windows может быть увеличен с помощью API, но драйвер может его игнорировать. Я бы попробовал больше оборудования, чтобы лучше понять проблему, может быть, проблему совместимости, но у меня нет прямого опыта работы с последовательными портами. harrymc 6 лет назад 1
https://www.stratusengineering.com/5-common-serial-port-problems/ harrymc 6 лет назад 0

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

1
harrymc

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

RXOver недостаточно быстро очищает приемный буфер. Переполнение - драйвер последовательного порта недостаточно быстро очищает буфер отправки чипа.

Я не уверен, что существует способ увеличить размер аппаратного буфера. Буфер Windows может быть увеличен с помощью API, но драйвер может его игнорировать.

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

В статье 5 «Общие проблемы с последовательным портом» перечислены некоторые возможные причины таких проблем:

  • Неверные параметры связи
    Оба устройства должны быть настроены с одинаковыми параметрами связи, включая скорость передачи, четность, количество битов данных и количество стоп-битов.

  • Неверный последовательный кабель

  • Bad Serial Cables
  • Неисправная проводка
До того, как я это опубликовал, я исходил из предположения, что есть неверные параметры. При моих параметрах по умолчанию 9600-E-8-1 и отсутствии рукопожатия у меня был ~ 25% успеха. Я перепробовал все возможные комбинации параметров по умолчанию, которые допускает устройство Wyse, и лучшая конфигурация 1200-E-8-1 с подтверждением связи все еще работает только в ~ 75% времени. Если я вручную пытаюсь установить скорость передачи ниже 1200, он перестает работать. Хотя я не смог найти рабочий набор параметров, ваша информация была по крайней мере полезной. Поэтому я наградил тебя за вознаграждение. Спасибо за вашу помощь. Время попробовать различное оборудование. Big EMPin 6 лет назад 0

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