Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопросы по rs-232
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Интерфейсы
MaxiMuz
Доброго времяни суток!
Поднял из уже заброшенных складов СОМ-порт, стряхнул с него пыль, и хочу выяснить вот какой вопрос. В статье Олега Титова. Работа с коммуникационными портами (COM и LPT) в программах для Win32. http://www.realcodin...ticle/view/2416 говорится о несовместимости некоторых настроек:
Цитата
Так как поля структуры DCB используются для конфигурирования микросхем портов, на них накладываются некоторые ограничения. Размер байта должен быть 5, 6, 7 или 8 бит. Комбинация из пяти битного байта и двух стоповых бит является недопустимой. Так же как и комбинация из шести, семи или восьми битного байта и полутора стоповых бит.

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

И второй вопрос: что за полуторный стоповый бит ?
aaarrr
Цитата(MaxiMuz @ Apr 18 2012, 11:22) *
Почему так получается ?

Потому что у UART'ов типа 16550 запись '1' в бит STB регистра LCR выбирает два стоповых бита, если длина слова равна 6, 7 или 8 битам, и полтора стоповых бита, если длина слова равна 5 битам. Других вариантов не предусмотрено.
Полуторный стоповый бит следует понимать буквально - стоп бит длительностью 1.5 периода передачи бита (справедливости ради надо заметить, что он почти никогда не используется).
MaxiMuz
т.е. это специфика железа. Значит при 1ом стоповом бите разрешена любая длина информационного байта ?
aaarrr
Да, любая.
@Ark
Теоретически возможна (допускается) следующая структура:

1) один старт-бит (обязательно)
2) информационные биты - от 4 до 8 включительно
3) бит четности (опционально). возможны четыре варианта его использования, при наличии.
4) стоп-бит (обязательно). Допустимая длина - 1 ; 1,5 ; 2 битовых интервала.

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

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

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

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

Во избежание никому не нужных проблем с совместимостью/несовместимостью, рекомендую Вам всегда придерживаться
последних двух вариантов: приоритетно - первый, второй - по необходимости. А про остальные - прочно забыть.
Палыч
Цитата(MaxiMuz @ Apr 18 2012, 12:15) *
т.е. это специфика железа. Значит при 1ом стоповом бите разрешена любая длина информационного байта ?

Полтора стоповых бита при пятибитных данных - это "тяжелое наследие прошлого". Пришло оно от механических телеграфных аппаратов. Поскольку при другом (кроме 5) количестве информационных бит такая длина стопового бита не требовалась, то решили "пожертвовать" двумя стоповыми при пяти информационных - заданные "два" превратили в полтора...
MaxiMuz
Цитата(Палыч @ Apr 18 2012, 17:11) *
..... заданные "два" превратили в полтора...

фактически эти полтора и есть 2 стоповых ьита
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.