29
контроллеры). Способен работать в дуплексном режиме (одновре-
менная передача и прием данных).
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Для соединения с персональным компьютером потребуется дополнитель-
ная специальная микросхема (например, MAX232 или ADM232) согласования
уровней по интерфейсу стандарта RS-232 («COM-Port»). Для передачи данных
на расстояния более одного километра потребуется
микросхема интерфейса RS-
485. Программный код получения/отправки данных в микроконтроллере оста-
нется прежним как для RS-232, так и для RS-485.
Выводы UART выведены на конкретные отдельные ножки микро-
контроллера, которые переназначить на другие порты («пины») в программе
нельзя.
Протокол обмена представлен на рисунке 3.1.
Рис. 3.1 – Протокол обмена UART
Старт-бит – служит для определения начала посылки.
Биты данных – может быть от 5 до 9 бит, но наиболее часто используется
8 бит – один байт.
Бит контроля четности – позволяет проверить не произошел ли при пере-
даче сбой.
Стоп-биты – 1 или 2 бита, служат для определения окончания посылки.
В начале отправки передатчик выставляет линию TX в низкий уровень –
это старт-бит. Приемник интерпретирует изменение
уровня как старт бит и
начинает считывать последующее заранее настроенное число бит. Последний
бит (изменение с низкого уровня на высокий) – это стоп-бит, он сигнализирует
о том, что передача этого байта завершена. В конце байта, перед стоп-битом,
30
может
быть и бит четности, который получается если просчитать все единицы в
данных. Используется для контроля качества передачи.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Самым широко используемым режимом является 8 бит, один
старт, один стоп, без четности.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
За порядок выставления старт, стоп и требуемых бит данных на линии
отвечает встроенный модуль UART в микроконтроллере. Программисту доста-
точно настроить модуль на нужный режим работы
как приемника, так и пере-
датчика. Уровень напряжений обычно соответствует напряжению питания
микроконтроллера.
· · · · · · · · · · · · · · · · · · · · · · · · ·
Пример
· · · · · · · · · · · · · · · · · · · · · · · · ·
Слово «асинхронный» (приемо/передатчик) означает, что отсутствуют
импульсы синхронизации между устройствами. Однако устройства имеют соб-
ственные (обычно разные) задающие генераторы частоты (кварцевые резонато-
ры) и могут работать на разных частотах.
Например, у передатчика частота
процессора 25 МГц, а у приемника – 8 МГц. При задании скорости (например,
115 200 бит/с) нужно внутренними делителями попытаться добиться требуемой
частоты передачи. Проблема заключается в том, что делители обычно кратны 2
и появляется ошибка округления – рассогласования частот.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
В протоколе применяется автоподстройка частоты для решения данного
вопроса. На рисунке 3.2,
а показано, если частота процессоров приемника и пе-
редатчика совпадает и имеются одинаковые настройки скорости (делителей ча-
стот), то считывание бита происходит аппаратно в середине интервала для ис-
ключения влияния фронтов нарастания и спада. Интервал считывания бита
прогнозируется приемником исходя из заданной скорости. На рисунке 3.2,
б
показано, если скорость
передатчика немного больше, чем у приемника, то
приемник корректно считывает все биты из посылки, но имеется накапливаемая
задержка при считывании. Если не сбрасывать накапливаемую временную
ошибку рассинхронизации, то спустя несколько байт возможно считывание со-
седнего неверного бита.
Стоп-бит растягивается по времени, а по спадающему фронту старт-бита
происходит синхронизация устройств.
31
На рисунке 3.2,
в показана
возможная обратная ситуация, при которой
длительность стоп-бита уменьшится, а синхронизация произойдет по старт-
биту. Допустимое расхождение скоростей определено протоколом UART.
Рис. 3.2 – Синхронизация в
протоколе обмена UART
33
Рис. 3.5 – Стандарт RS-232. Соединение приемника и передатчика
Do'stlaringiz bilan baham: