21. Модуль USART
21.1. Отличительные особенности
- Полнодуплексная работа (отдельные регистры у приемника и передатчика)
- Асинхронная или синхронная работа
- Синхронная передача, тактируемая ведущим или подчиненным устройством
- Улучшенный генератор скорости
- Поддержка посылок с 5, 6, 7, 8 или 9 битами данных и 1 или 2 стоп-битами
- Генерация и проверка паритета (четность/нечетность) на аппаратном уровне
- Обнаружение ошибок переполнения данных и ошибок в посылке
- Фильтрация шума, в т.ч. обнаружение ложного старт-бита и цифровой фильтр низких частот
- Отдельные прерывания по завершению передачи, по опустошению регистра данных передатчика и по завершению приема
- Режим мультипроцессорной связи
- Режим асинхронной связи с удвоенной скоростью
- Режим ведущего SPI с синхронной передачей данных по трем линиям
- Поддержка всех четырех режимов SPI (режим 0, 1, 2 и 3)
- Настройка передачи первым младшего или старшего бита данных
- Работа с очередями (двойная буферизация)
- Высокоскоростная работа (fXCK.MAX = fPER/2)
- Модуль IRCOM для IrDA-совместимой модуляции/демодуляции
21.2. Обзор
Модуль универсального синхронно-асинхронного последовательного приемника и передатчика (USART) - чрезвычайно гибкий модуль последовательной связи. Модуль USART поддерживает полнодуплексную синхронную или асинхронную передачу данных. USART может быть переведен в режим ведущего SPI-совместимого интерфейса.
Передача выполняется посылками, формат которых задается пользователем. Это позволяет добиться совместимости с различными стандартами. Модуль USART буферизован в обоих направлениях, что позволяет добиться непрерывности передачи данных без каких-либо пауз между посылками. Предусмотрены отдельные векторы прерываний по завершению приема и по завершению передачи, что позволяет реализовать управление связью полностью по прерываниям. Ошибки в посылке и переполнение буфера обнаруживаются на аппаратном уровне, о чем сигнализируют отдельные флаги статуса. Также поддерживается генерация и проверка паритета (четность или нечетность).
Функциональная схема модуля USART показана на рисунке 21.1. Его основными компонентами являются генератор синхронизации, передатчик и приемник (выделены пунктирной линией).
Рисунок 21.1. Функциональная схема модуля USART
Логика генерации синхронизации содержит дробный генератор скорости, позволяющий генерировать множество скоростей. В неё также входит логика синхронизации, связанная с внешним входом синхронизации работающего в синхронном режиме подчиненного устройства.
Передатчик состоит из одного буфера записи (DATA), сдвигового регистра, генератора паритета и логики управления, предназначенные для обработки посылок различного формата. Буфер записи позволяет непрерывно передавать данные без каких-либо задержек между посылками.
Приемник состоит из двухуровневого буфера (DATA) и сдвигового регистра. Для гарантирования надежности синхронизации и подавления шума во время асинхронного приема данных предусмотрены блоки восстановления данных и синхронизации. Кроме того, в приемник входят блоки обнаружения ошибок в посылке, переполнения буфера и паритета.
После перевода модуля USART в режим ведущего SPI-совместимого устройства, вся специфическая логика интерфейса USART отключается, а в работе остаются лишь буферы приема и передачи, сдвиговые регистры и генератор скорости. Управление выводами и генерация прерываний остаются идентичными в обоих режимах работы. Использование регистров тоже остается прежним в обоих режимах, но их функциональность отличается при определенных настройках.
Совместно с одним из USART может работать модуль IRCOM, предназначенный для IrDA 1.4-совместимой модуляции и демодуляции импульсов на скорости до 115.2 кбит/сек. Более детально о его работе см. в разделе 22 "Модуль инфракрасной связи IRCOM".
|