Универсальный синхронно-асинхронный приемопередатчик USART

Универсальный синхронно-асинхронный приемопередатчик USART

USART (Universal Synchronous Asynchronous Receiver Transmitter) – это модуль последовательного ввода-вывода, который может использоваться для работы с периферийными устройствами, такими как терминалы или персональные компьютеры, модемы, микросхемами ЦАП, АЦП, последовательными EEPROM и т.д.

USART может работать в трех режимах:

  • асинхронный, полный дуплекс;
  • ведущий синхронный, полудуплекс;
  • ведомый синхронный, полудуплекс.

Модуль приемо-передатчика обеспечивает полнодуплексный обмен по последовательному каналу, при этом скорость передачи данных может варьироваться в довольно широких пределах. Длина посылки может составлять от 5 до 9 битов. В модуле присутствует схема контроля и формирования бита четности.

Модуль USART может обнаруживать следующие внештатные ситуации:

  • переполнение;
  • ошибка кадрирования;
  • неверный старт-бит.

Для уменьшения вероятности сбоев в модуле также реализована функция фильтрации помех. Для взаимодействия с программой в микроконтроллере, как правило, предусмотрены прерывания, запрос на генерацию которых формируется при наступлении следующих событий:

  • «передача завершена»;
  • «регистр данных передатчика пуст»;
  • «прием завершен».

Интерфейс USART задействует 3 линии ввода-вывода:

  • TxD – передача данных;
  • RxD – прием данных;
  • XCK – тактовый сигнал (используется только в синхронном режиме).

Соединение двух устройств по интерфейсу USART осуществляется по следующей схеме:

Соединение устройств по интерфейсу USART

Кадр – совокупность одного слова данных и сопутствующей информации. Кадр начинается со старт-бита, за которым следует младший бит слова данных. Слово данных может состоять из 5, 6, 7, 8 или 9 битов. После старшего бита слова данных следует один или два стоп-бита. Если включена схема формирования бита четности, он включается между старшим битом слова данных и первым стоп-битом.

Кадрирование USART

Схема контроля четности предполагает два возможных режима работы:

  • контроль четности (even parity) - исключающее ИЛИ всех битов слова данных:Контроль по четности
  • контроль нечетности (odd parity) - исключающее ИЛИ всех битов слова данных с логической единицей:
    Контроль по нечетности
Асинхронный режим работы

В асинхронном режиме, а также в синхронном режиме при работе в качестве ведущего скорость приема и передачи данных задается контроллером скорости передачи, работающим как делитель системного тактового сигнала с программируемым коэффициентом деления.

Скорость передачи данных, как правило, выбирается из стандартного ряда: 300; 600; 1200; 2400; 4800; 9600; 19200; 38400; 57600; 115200; 230400; 460800; 921600 бод.

Реальное значение скорости передачи может отличаться от стандартного ряда, поскольку определяется тактовой частотой микроконтроллера и ограничено разрядностью регистра конфигурации. При этом можно определить величину ошибки:

Ошибка скорости передачи USART
BaudRate - реальная скорость передачи;
BAUD - требуемая скорость передачи из стандартного ряда.

При использовании скоростей, дающих ошибку больше 0,5 %, снижается помехозащищенность линии передачи.

Для обеспечения приема в асинхронном режиме работы используются схемы восстановления тактового сигнала и данных. Схема восстановления тактового сигнала предназначена для синхронизации внутреннего тактового сигнала, формируемого контроллером скорости передачи, и кадров, поступающих на вывод RxD микроконтроллера. Схема восстановления данных осуществляет считывание и фильтрацию каждого бита принимаемого кадра. Схема восстановления тактового сигнала осуществляет опрос входа приемника с целью определения старт-бита кадра.

Обнаружение спадающего фронта на выводе RxD интерпретируется как возможное появление переднего фронта старт-бита. После этого проверяется значение заданных значений выборок входного сигнала. Если значение хотя бы двух выборок из указанных равно «1», старт-бит считается ложным (помеха), а приемник переходит к ожиданию следующего изменения входного сигнала с «1» в «0». В противном случае считается, что обнаружен старт-бит новой последовательности, с которым синхронизируется внутренний тактовый сигнал приемника. После этого начинает работать схема восстановления данных.

Решение о значении принятого бита принимается также по результатам заданных выборок входного сигнала. Состоянием бита считается логическое значение, которое было получено, хотя бы в двух из трех выборок. Процесс распознавания повторяется для всех битов принимаемого кадра, включая первый стоп-бит.

Старт-бит нового кадра может передаваться сразу же после последней выборки, используемой для определения значения бита.

Синхронный режим работы

При работе в синхронном режиме в качестве ведомого скорость приема и передачи определяется частотой сигнала, поступающего на вход XCK.

При работе модуля USART в синхронном режиме состояние вывода RxD считывается по одному из фронтов сигнала XCK, а выдача сигнала вывод TxD - по другому фронту.

Назад

Прокрутить вверх