Автоматическое определение конфигурации последовательного порта?

StackOverflow https://stackoverflow.com/questions/712687

  •  23-08-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

Это полнодуплексное или полудуплексное устройство?Можете ли вы управлять отправкой запроса и отслеживать разрешение на отправку на обоих концах последовательной линии?Является ли последовательная линия двухточечной (например, RS-232) или многоточечной (например, RS-485)?Это будет иметь значение (хотя и небольшое), если вы собираетесь вмешиваться в работу других уже подключенных устройств во время переговоров с недавно подключенным.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top