Асинхронный режим EUSART

June 10, 2014 by admin Комментировать »

Модуль передаёт и принимает данные, используя стандартный без возврата к нулю формат (NRZ) Он реализует два уровня: VOH высокое состояние, представляющее «1» бита данных, а VOL низкое состояние, которое представляет «0» бита данных NRZ означает тот факт, что последовательно передаваемые биты данных того же значения остаются на том же уровне без возвращения к нейтральному уровню между каждым передаваемым битом Порт передачи NRZ находится в высоком состоянии при покое Каждый символ передачи состоит из одного стартового бита с последующими восьмью или девятью битами данных и всегда завершается одним или более стоповым битом Стартовый бит всегда низкого уровня, а стоповый бит (или биты) всегда высокого уровня Наиболее широко распространено использование 8и битов данных Каждый передаваемый бит занимает 1/(Baud Rate) Встроенный специализированный 8/16и битовый генератор скорости обмена (Baud Rate) используется для получения стандартных частот скорости обмена от системного генератора Ниже в таблице приведены примеры конфигурации

Модуль передаёт и получает первым младший бит Передатчик и приёмник модуля функционально независимы, но используют одинаковый формат данных и скорость обмена Бит чётности не поддерживается на аппаратном уровне, но может быть реализован программно и использоваться, как девятый бит данных

Рис 521 Примеры таблиц конфигурации

В своём рассказе я использую асинхронный обмен данными, но советую вам прочитать всё, что есть в описании микроконтроллера о модуле USART

Включение передачи

Передатчику EUSART разрешается работа для асинхронных операций конфигурированием следующих трёх битов:

·              TXEN = 1

·              SYNC = 0

·              SPEN = 1

Все остальные управляющие биты EUSART предполагается оставить в состоянии, заданном по умолчанию

Установка бита TXEN регистра TXSTA разрешает работу схемы передатчика EUSART Очистка бита SYNC регистра TXSTA подготавливает EUSART к асинхронным операциям Установка бита SPEN регистра RCSTA разрешает работу EUSART и автоматически конфигурирует вывод входа-выхода TX/CK на выход Если вывод TX/CK связан с аналоговой периферией, функции аналогового ввода-вывода должны быть запрещены очисткой соответствующего бита ANSEL

Передача данных

Передача инициируется записью символа в регистр TXREG Если это первый символ или предыдущий символ был полностью извлечён из TSR, данные из TXREG немедленно передаются в регистр TSR Если TSR всё ещё содержит все или часть предыдущих символов, новый символ данных остаётся в TXREG пока не будет передан стоповый бит предыдущего символа Ожидающий в TXREG символ затем будет передан в TSR в один из TCY немедленно следом за передачей стопового бита Передача последовательности из стартового бита, битов данных и стопового бита(ов) начинается немедленно за передачей данных в TSR из TXREG

Асинхронная передача

1                           Инициализируйте регистровую пару SPBRGH, SPBRG и биты BRGH и BRG16, чтобы задать нужную скорость обмена (baud rate)

2                           Разрешите работу порта асинхронного последовательного обмена, очистив бит SYNC и установив бит SPEN

3                           Если нужна 9и-битовая передача, установите управляющий бит TX9 Установка девятого бита данных будет означать, что 8 последних значащих битов данных

– это адрес, когда приёмник настроен на обнаружение адреса

4                           Разрешите передачу, установив управляющий бит TXEN Это вызовет установку бита прерывания TXIF

5                           Если прерывание нужно, установите бит разрешения прерывания TXIE Прерывание будет обнаружено немедленно, поддерживая установку битов GIE и PEIE регистра INTCON

6                           Если выбрана 9и-битовая передача, девятый бит будет загружен в TX9D бит данных

7                           Загрузите 8и-битовые данные в регистр TX9D Это сразу начнёт передачу

Включение приёмника

Приёмнику EUSART разрешаются асинхронные операции конфигурированием следующих трёх управляющих битов:

·              CREN = 1

·              SYNC = 0

·              SPEN = 1

Подразумевается, что все остальные управляющие биты EUSART установлены по умолчанию

Установка бита CREN регистра RCSTA разрешает работу схемы приёмника EUSART Очистка бита SYNC регистра TXSTA конфигурирует EUSART для асинхронных операций Установка бита SPEN регистра RCSTA разрешает работу EUSART и автоматически конфигурирует вывод RX/DT на вход Если вывод RX/DT связан с аналоговой периферией, аналоговые функции должны быть запрещены очисткой соответствующего бита ANSEL

Получение данных

Схема восстановления полученных данных инициирует приём символа по спадающему фронту первого бита Первый бит, также называемый стартовым битом, всегда нулевой  Схема  восстановления  подсчитывает  время  полупериода  бита  по  центру

стартового бита и проверяет, что бит всё ещё остаётся нулевым Если нет, тогда цепь восстановления данных прерывает приём символа без генерации ошибки и возобновляет слежение за спадающим фронтом стартового бита Если проверка стартового нулевого бита успешна, тогда схема восстановления подсчитывает полное время установки бита до центра следующего бита Затем бит проверяется схемой обнаружения возрастания и результирующие «0» или «1» «вдвигаются» в RSR

Это повторяется, пока все биты данных не будут получены и «вдвинуты» в RSR Один окончательный временной интервал бита измеряется, и значение принимается за образец Это стоповый бит, который всегда равен «1» Если схема восстановления данных принимает «0» в позиции стопового бита, тогда устанавливается ошибка кадра для этого символа, иначе эта ошибка очищается

Сразу, как только получены все биты данных и стоповый бит(ы), символ в RSR передаётся в приёмник FIFO и флаг прерывания RCIF регистра PIR1 устанавливается Верхний символ FIFO выводится из FIFO при чтении в регистр RCREG

Асинхронный приём

1         Инициализируйте  регистровую  пару  SPBRGH,  SPBRG  и  биты  BRGH  и  BRG16,  чтобы выбрать нужную скорость обмена

2         Разрешите работу порта установкой бита SPEN Бит SYNC должен быть очищен для асинхронных операций

3         Если прерывание выбрано, установите разрешение прерывания RCIE и биты GIE и PEIE регистра INTCON

4         Если выбран 9и-битовый приём, установите бит RX9

5         Разрешите приём установкой бита CREN

6         Флаг прерывания RCIF будет установлен, когда символ будет передан из RSR в буфер приёма Прерывание произойдёт, если установлено разрешение прерывания RCIE

7          Прочитайте  регистр  RCSTA,  чтобы  проверить  на  наличие  флагов  ошибок  и,  если разрешён 9и-битовый приём, девятый бит данных

8         Получите 8 значащих битов данных из буфера приёма чтением регистра RCREG

9          Если обнаруживается сбой темпа, сбросьте флаг OERR, очистив бит CREN разрешения приёма

Регистры USART

Рис 522 Регистры, связанные с асинхронной передачей

Рис 523 Регистры, связанные с асинхронным приёмом TXSTA:

Рис 523 Регистр управления и состояния передачи Бит 7 CSRC: бит выбора источника тактового сигнала

Асинхронный режим: Не участвует

Синхронный режим:

1 = Режим ведущего (Master) (таковая частота генерируется внутренне из BRG) 0 = Режим ведомого (Slave) (тактовая частота от внешнего источника)

Бит 6 TX9: бит разрешения 9и-битовой передачи 1 = Выбирается 9и-битовая передача

0 = Выбирается 8и-битовая передача

Бит 5 TXEN: бит разрешения передачи 1 = Передача разрешена

0 = Передача запрещена

Бит 4 SYNC: бит выбора режима EUSART 1 = Синхронный режим

0 = Асинхронный режим

Бит 3 SENDB: Отсылает бит Break символа Асинхронный режим:

1 = Отправляет Sync Break при следующей передаче (очищается аппаратно по завершении) 0 = Передача Sync Break завершена

Синхронный режим: Не участвует

Бит 2 BRGH: бит выбора высокой скорости (High Baud Rate)

Асинхронный режим: 1 = Высокая скорость 0 = Низкая скорость Синхронный режим:

Не используется в этом режиме

Бит 1 TRMT: бит состояния сдвигающего регистра передачи (Transmit Shift Register) 1 = TSR пуст

0 = TSR полон

Бит 0 TX9D: девятый бит передаваемых данных

Может быть битом адреса/данных или битом чётности

RCSTA:

Рис 524 Регистр управления и состояния приёма

Бит 7 SPEN: бит разрешения работы последовательного порта

1 = Работа порта разрешена (конфигурирует RX/DT и TX/CK выводы как выводы порта) 0 = Работа порта запрещена (удерживается при сбросе)

Бит 6 RX9: бит разрешения 9и-битового приёма 1 = Выбирается 9и-битовый приём

0 = Выбирается 8и-битовый приём

Бит 5 SREN: бит разрешения одиночного приёма Асинхронный режим:

Не участвует

Синхронный режим – ведущий (Master): 1 = Разрешает одиночный приём

0 = Запрещает одиночный прём

Этот бит очищается после завершения приёма Синхронный режим – ведомый (Slave):

Не участвует

Бит 4 CREN: бит разрешения непрерывного приёма Асинхронный режим:

1 = Разрешает приём 0 = Запрещает приём Синхронный режим:

1 = Разрешает непрерывный приём пока бит разрешения CREN очищен (CREN отменят SREN) 0 = Запрещает непрерывный приём

Бит 3 ADDEN: бит разрешения обнаружения адреса Асинхронный режим 9и-битовый (RX9 = 1):

1 = Разрешает обнаружение адреса, разрешает прерывание и загружает буфер приёма, когда RSR<8> установлен

0 = Запрещает обнаружение адреса, все байты принимаются и девятый бит можно использовать, как бит чётности

Асинхронный режим 8и-битовый (RX9 = 0): Не участвует

Бит 2 FERR: бит ошибки кадра

1 = Ошибка кадра (может быть обновлено чтением регистра RCREG и получением следующего правильного байта)

0 = Нет ошибки кадра

Бит 1 OERR: бит ошибки скорости

1 = Ошибка скорости (может очищаться очисткой бита CREN) 0 = Нет ошибки темпа

Бит 0 RX9D: девятый бит принимаемых данных

Можно использовать, как бит адреса/данных или как бит чётности, который должен вычисляться программно пользователем

BAUDCTL:

Рис 526 Регистр управления скоростью обмена

Бит 7 ABDOVF: бит переполнения автоматического обнаружения скорости Асинхронный режим:

1 = Таймер Auto-baud переполнен

0 = Таймер Auto-baud не переполнен Синхронный режим:

Не участвует

Бит 6 RCIDL: бит флага бездействия приёмника Асинхронный режим:

1 = Приёмник бездействует

0 = Был получен стартовый бит и приёмник принимает Синхронный режим:

Не участвует

Бит 5 не используется: читается как «0»

Бит 4 SCKP: бит выбора полярности тактовых синхроимпульсов Асинхронный режим:

1 = Передаёт инверсные данные на вывод RB7/TX/CK

0 = Передаёт не инверсные данные на вывод RB7/TX/CK Синхронный режим:

1 = Данные тактируются нарастающим фронтом тактовых импульсов

0 = Данные тактируются спадающим фронтом тактовых импульсов

Бит 3 BRG16: бит 16и-битового выбора генератора скорости (Baud Rate Generator) 1 = Используется 16и-битовый Baud Rate Generator

0 = Используется 8и-битовый Baud Rate Generator

Бит 2 не используется: читается как «0» Бит 1 WUE: бит разрешения Wake-up

Асинхронный режим:

1 = Приёмник ждет спадающего фронта Не будет принят байт символа, пока не установлен RCIF WUE будет автоматически очищен после установки RCIF

0 = Приёмник работает нормально Синхронный режим:

Не участвует

Бит 0 ABDEN: бит разрешения обнаружения Auto-Baud Асинхронный режим:

1 = Режим обнаружения Auto-Baud разрешён (очищается, когда завершено автоматическое обнаружение скорости)

0 = Запрещён режим Auto-Baud Синхронный режим:

Не участвует

Источник: Гололобов ВН,- Самоучитель игры на паяльнике (Об электронике для школьников и не только), – Москва 2012

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты