MaxiMuz 0 18 апреля, 2012 Опубликовано 18 апреля, 2012 · Жалоба Доброго времяни суток! Поднял из уже заброшенных складов СОМ-порт, стряхнул с него пыль, и хочу выяснить вот какой вопрос. В статье Олега Титова. Работа с коммуникационными портами (COM и LPT) в программах для Win32. http://www.realcodin...ticle/view/2416 говорится о несовместимости некоторых настроек: Так как поля структуры DCB используются для конфигурирования микросхем портов, на них накладываются некоторые ограничения. Размер байта должен быть 5, 6, 7 или 8 бит. Комбинация из пяти битного байта и двух стоповых бит является недопустимой. Так же как и комбинация из шести, семи или восьми битного байта и полутора стоповых бит. Почему так получается ? И второй вопрос: что за полуторный стоповый бит ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 18 апреля, 2012 Опубликовано 18 апреля, 2012 · Жалоба Почему так получается ? Потому что у UART'ов типа 16550 запись '1' в бит STB регистра LCR выбирает два стоповых бита, если длина слова равна 6, 7 или 8 битам, и полтора стоповых бита, если длина слова равна 5 битам. Других вариантов не предусмотрено. Полуторный стоповый бит следует понимать буквально - стоп бит длительностью 1.5 периода передачи бита (справедливости ради надо заметить, что он почти никогда не используется). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaxiMuz 0 18 апреля, 2012 Опубликовано 18 апреля, 2012 · Жалоба т.е. это специфика железа. Значит при 1ом стоповом бите разрешена любая длина информационного байта ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 18 апреля, 2012 Опубликовано 18 апреля, 2012 · Жалоба Да, любая. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость @Ark 18 апреля, 2012 Опубликовано 18 апреля, 2012 · Жалоба Теоретически возможна (допускается) следующая структура: 1) один старт-бит (обязательно) 2) информационные биты - от 4 до 8 включительно 3) бит четности (опционально). возможны четыре варианта его использования, при наличии. 4) стоп-бит (обязательно). Допустимая длина - 1 ; 1,5 ; 2 битовых интервала. В принципе, можно выбирать любое сочетание для обмена, лишь бы обе стороны его поддерживали. Наиболее часто используются следующие сочетания настроек: 1) один старт-бит, 8 информационных бит, без бита четности, один стоп-бит. 2) Некоторые протоколы (модбас, например) требуют двойной стоп-бит, остальное - аналогично. Во избежание никому не нужных проблем с совместимостью/несовместимостью, рекомендую Вам всегда придерживаться последних двух вариантов: приоритетно - первый, второй - по необходимости. А про остальные - прочно забыть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Палыч 11 18 апреля, 2012 Опубликовано 18 апреля, 2012 · Жалоба т.е. это специфика железа. Значит при 1ом стоповом бите разрешена любая длина информационного байта ? Полтора стоповых бита при пятибитных данных - это "тяжелое наследие прошлого". Пришло оно от механических телеграфных аппаратов. Поскольку при другом (кроме 5) количестве информационных бит такая длина стопового бита не требовалась, то решили "пожертвовать" двумя стоповыми при пяти информационных - заданные "два" превратили в полтора... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaxiMuz 0 19 апреля, 2012 Опубликовано 19 апреля, 2012 · Жалоба ..... заданные "два" превратили в полтора... фактически эти полтора и есть 2 стоповых ьита Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться