Перейти к содержанию
    

Вопросы по rs-232

Доброго времяни суток!

Поднял из уже заброшенных складов СОМ-порт, стряхнул с него пыль, и хочу выяснить вот какой вопрос. В статье Олега Титова. Работа с коммуникационными портами (COM и LPT) в программах для Win32. http://www.realcodin...ticle/view/2416 говорится о несовместимости некоторых настроек:

Так как поля структуры DCB используются для конфигурирования микросхем портов, на них накладываются некоторые ограничения. Размер байта должен быть 5, 6, 7 или 8 бит. Комбинация из пяти битного байта и двух стоповых бит является недопустимой. Так же как и комбинация из шести, семи или восьми битного байта и полутора стоповых бит.

Почему так получается ?

 

И второй вопрос: что за полуторный стоповый бит ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почему так получается ?

Потому что у UART'ов типа 16550 запись '1' в бит STB регистра LCR выбирает два стоповых бита, если длина слова равна 6, 7 или 8 битам, и полтора стоповых бита, если длина слова равна 5 битам. Других вариантов не предусмотрено.

Полуторный стоповый бит следует понимать буквально - стоп бит длительностью 1.5 периода передачи бита (справедливости ради надо заметить, что он почти никогда не используется).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

т.е. это специфика железа. Значит при 1ом стоповом бите разрешена любая длина информационного байта ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость @Ark

Теоретически возможна (допускается) следующая структура:

 

1) один старт-бит (обязательно)

2) информационные биты - от 4 до 8 включительно

3) бит четности (опционально). возможны четыре варианта его использования, при наличии.

4) стоп-бит (обязательно). Допустимая длина - 1 ; 1,5 ; 2 битовых интервала.

 

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

 

Наиболее часто используются следующие сочетания настроек:

 

1) один старт-бит, 8 информационных бит, без бита четности, один стоп-бит.

 

2) Некоторые протоколы (модбас, например) требуют двойной стоп-бит, остальное - аналогично.

 

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

последних двух вариантов: приоритетно - первый, второй - по необходимости. А про остальные - прочно забыть.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

т.е. это специфика железа. Значит при 1ом стоповом бите разрешена любая длина информационного байта ?

Полтора стоповых бита при пятибитных данных - это "тяжелое наследие прошлого". Пришло оно от механических телеграфных аппаратов. Поскольку при другом (кроме 5) количестве информационных бит такая длина стопового бита не требовалась, то решили "пожертвовать" двумя стоповыми при пяти информационных - заданные "два" превратили в полтора...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

..... заданные "два" превратили в полтора...

фактически эти полтора и есть 2 стоповых ьита

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...