Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
Шунт, вот, не в обиду, но имхо, сразу видно, что вы теоретик.
Всегда можно найти неразличимые байты.
Стоповый бит вообще ни на что не влияет при условии произвольных пауз, так как он просто добавится к паузе и все.
Четность тоже - легко находятся неразличимые последовательности.
А в общем случае (если прием начат в произвольный момент, например)
и последовательности, где можно определить скорость,
но нельзя определить границы байтов.
Ну вот вы приняли на фоне длинной единицы один нулевой импульс.
Вы понимаете, что начало этого нула - это старт бит (по определению).
То что дальше долго идут единицы говорит вам о том, что четность = 1
(ну и стоп бит = 1 по определению). В зависимости от настроек порта
четность=1 может означать что нулевых битов в байте либо четное либо нечетно число...
Допустим нечетное. Тогда принятый нулевой импульс может оказаться - стопом и одним нулевым битом, или стопом и тремя нулевыми битами, или стопом и пятью нулевыми битами...
UART - это даже из названия ясно АСИНХРОННЫЙ протокол. Ему нужна внешняя синхронизация (кварцы, например или отдельный сигнал)...
Ну... я не знаю, как это еще сказать... это понятно совершенно невооруженным глазом :)))
Составить ответ | Вернуться на конференцию.
Ответы