Пример использования порта UART
Схема организации связи по порту UART микроконтроллера с СОМ-портом компьютера. Еще одна задача программирования микроконтроллеров - обеспечение связи контроллера с компьютером. Такая связь позволяет решать вопросы управления МК, накопления данных МК в реальном времени с последующей передачей массивов данных в компьютер для хранения, обработки и отображения.
Для поддержки связи по каналу RS-232B в используемом микроконтроллере предусмотрена аппаратная функция UART. Компьютер для поддержки связи снабжен СОМ-портом. Поэтому для описания работы компьютера и микроконтроллера в режиме связи используется разная терминология (UART, RS-232, СОМ-порт).
Подробную информацию, связанную с передачей сигналов по каналу RS-232, легко найти как в литературе [3, 8, 10, 15, 16], так и в Internet, поэтому ограничимся минимальными сведениями из [15, 16].
Канал RS-232 предназначен для обмена информацией между двумя устройствами как в синхронном, так и в асинхронном режиме.
В компьютере для организации СОМ-порта используется только асинхронный способ передачи и лишь часть сигналов и функций, предусмотренных стандартом RS-232.
В микроконтроллерах AVR с UART аппаратно-программными средствами поддерживаются только две линии: линия приема (RxD) и линия передачи данных (TxD).
Для связи компьютера с микроконтроллером мы используем только общий провод и две сигнальные линии (см. рис. 2.33). По одной из них данные передаются от микроконтроллера к компьютеру, по другой - от компьютера к микроконтроллеру.
Данные по каналу передаются последовательно, бит за битом. Информация передается группами битов. Для выделения группы перед ее началом передается стартовый бит, по окончании передачи группы - один или два стоповых бита, которым может предшествовать бит четности.
Описываемое здесь устройство передает стартовый бит, 8-битную группу (один байт), бит четности и один столовый бит.
И передающее, и принимающее устройства должны работать на одинаковой скорости, которая может быть выбрана из предусмотренного стандартом ряда.
Логическая единица передается по каналу RS-232 уровнем напряжения -3...-12 В относительно общего провода, логический ноль - уровнем напряжения +3...+12 В. Указанные уровни напряжений приведены ко входу приемника сигнала.
Уровни сигналов в диапазоне -3...+3 В попадают в зону нечувствительности и не воспринимаются приемником.
Компьютер снабжен необходимыми преобразователями уровней, и на контактах его СОМ-портов уровни сигналов соответствуют требованиям стандарта RS-232.
На линиях RxD и TxD микроконтроллера уровни сигналов соответствуют уровням TTL-логики, поэтому для подключения микроконтроллера к каналу RS-232 требуется преобразователь уровней.
На рис. 2.33 приведен фрагмент схемы контроллера, обеспечивающий подключение микроконтроллера к СОМ-порту компьютера.
Линия TxD микроконтроллера подключается к линии RxD компьютера через преобразователь уровня, а линия TxD компьютера - к линии RxD микроконтроллера также через преобразователь уровня.
Подобные преобразователи уровней в интегральном исполнении выпускаются многими компаниями, например Analog Devices, Maxim.
Обычно в наименовании преобразователей присутствуют числа 232, 242. Чаще встречаются микросхемы с двумя или четырьмя преобразователями.
Микросхемы преобразователей могут работать с конденсаторами емкостью 0,1 мкФ или с электролитическими конденсаторами емкостью 1 мкФ, обычно это определяется буквой, следующей за числом в наименовании микросхемы.
Частота кварцевого резонатора ВQ равна 7.3728 МГц. Использование кварцевого резонатора с такой частотой позволяет точно устанавливать скорости передачи, рекомендованные стандартом RS-232.
Для того чтобы получить или передать данные по каналу RS-232, необходимо создать программы для обоих связываемых устройств, т.е. нужна программа для микроконтроллера и программа для компьютера.
Обычно программное обеспечение для компьютера и для микроконтроллера разрабатывают разные специалисты или группы специалистов.
Протокол обмена должен содержать всю необходимую информацию для разработки обеих программ так, чтобы независимо созданные программы, удовлетворяющие всем требованиям протокола, могли быть в кратчайший срок стыкованы друг с другом.
Поэтому в протоколе должны быть учтены все тонкости совместной работы программ, а его положения должны быть четкими и не должны допускать возможности различного толкования. В то же время нет смысла перегружать протокол, например, переписывая из стандарта RS-232 требования к электрическим параметрам сигнала.
Рис. 2.33. Схема обеспечения связи МК с компьютером через UART
Контрольные вопросы
1. Назначение и основные характеристики УСАПП
2. Чем отличается синхронный режим работы УСАПП от асинхронного?
3. Какие ошибки определяются в структуре посылки? Перечислите причины возникновения ошибок при обмене.
4. Основные блоки УСАПП и их назначение.
5. Формат и структура посылки при асинхронной работе УСАПП.
6. Приведите выражения для вычисления скорости связи при различных режимах работы.
7. В каких единицах измеряется скорость передачи данных?
8. Отчего зависит скорость передачи УСАППа?
9. Регистр данных УСАПП – UDRn и его назначение. Приведите команды обращения к регистру данных UDRn (n=0 или 1).
10. Назначение битов регистра управления и статуса УСАПП - UCSRnA (n=0, 1). Приведите пример инициализации УСАПП.
11. Назначение битов регистра управления и статуса УСАПП - UCSRnB (n=0, 1).
12. Назначение битов регистра управления и статуса УСАПП –UCSRnC
13. Назначение регистров скорости связи УСАПП - UBRRnL и UBRRnH. Приведите пример определения скорости связи.
14. Для чего используются флажки прерывания? Приведите примеры их использования.
15. Каким образом запретить (разрешить) отработки запросов прерывания передатчика (приемника) УСАППа?
16. Принцип работы передатчика УСАПП. Приведите фрагмент программы инициализации передатчика УСАППа.
17. Принцип работы приемника УСАПП. Приведите фрагмент программы инициализации приемника УСАППа.