В HTML      В PDF
микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Обзоры по типам > Микроконтроллеры > AVR

реклама

 
радиационно стойкие ПЗУ Миландр

Продажа силового и бронированного кабеля и провода в Москве




Arduino Uno R3 Atmega328
готовый модуль
Лучшая Цена 335 руб




Стартовый набор с большим набором аксесуаров
Arduino Uno R3 Atmega328
Лучшая Цена 2211 руб



21.4. Форматы посылок

Передача данных производится посылками. Каждая посылка состоит из бит данных, бит синхронизации (старт- и стоп-биты) и опционального бита паритета для проверки ошибок. Обратите внимание, что сказанное не распространяется на работу в режиме SPI (см. раздел 21.4.2 "SPI-совместимые форматы посылок").

Допустимы следующие форматы посылок USART (всего 30 комбинаций):

  • 1 старт-бит
  • 5, 6, 7, 8 или 9 бит данных
  • бит паритета (четность или нечетность) или передача без бита паритета
  • 1 или 2 стоп-бита

Посылка всегда начинается со старт-бита, вслед за которым передается младший бит данных и все остальные биты данных вплоть до старшего бита. Если разрешена передача бита паритета, то он вставляется между передачей бит данных и первым стоп-битом. Сразу по завершении передачи посылки может быть передан старт-бит и новая посылка. Если дальнейшая передача не требуется, линия остается в состоянии IDLE (высокий уровень). Возможные комбинации форматов посылки проиллюстрированы на рисунке 21.5. Биты, показанные в квадратных скобках, являются опциональными.

Форматы посылок
Рисунок 21.5. Форматы посылок

Таблица 1

St Старт-бит, всегда имеет низкий уровень.
(n) Биты данных (0…8).
P Бит паритета. Может быть четным или нечетным.
Sp Стоп-бит, всегда имеет высокий уровень.
IDLE Состояние линий RxD и TxD, когда по ним не выполняется передача.
Линия в состоянии IDLE всегда имеет высокий уровень.

21.4.1. Вычисление бита паритета

При необходимости проверки ошибок передачи может быть активизирована функция генерации и проверки паритета (четность или нечетность). Если выбран четный паритет, то бит паритета будет равен единице, если количество единичных бит данных нечетное, т.о. образом делая общее число единичных бит четным. Если же выбирается нечетный паритет, то бит паритета становится равным единице, если количество единичных бит данных четное и, в результате, общее число единичных бит становится нечетным.

21.4.2. SPI-совместимые форматы посылок

Посылка в режиме SPI состоит только из 8 бит данных. USART, работающий в режиме ведущего SPI, поддерживает два формата посылки:

  • 8-бит данных с передачей первым старшего бита
  • 8-бит данных с передачей первым младшего бита

По завершении передачи посылки из 8 бит, можно сразу передать новую посылку. В противном случае, линия передачи данных переходит в состояние IDLE (высокий уровень).

21.5. Инициализация USART

Инициализация USART выполняется по следующей последовательности:

  1. Установка высокого уровня на выводе TxD и опционально низкого уровня на выводе XCK.
  2. Настройка TxD и опционально XCK на вывод
  3. Настройка скорости и формата посылки.
  4. Задание режима работы (при выборе синхронного режима разрешается работа выхода XCK).
  5. Разрешение работы передатчика и/или приемника в зависимости от необходимости.

При управлении передачей по прерываниям перед инициализацией необходимо активизировать общий запрет прерываний.

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

21.6. Отправка данных передатчиком USART

После разрешения работы передатчика, нормальная работа порта на выводе TxD перекрывается сигналом с выхода передатчика модуля USART. Дополнительно, в регистре направления вывод TxD должен быть настроен как выход. Подробности по управлению портом см. разделе 13 "Порты ввода-вывода".

21.6.1. Отправка посылок

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

По завершении передачи посылки и при условии, что в буфере передачи нет новых данных, происходит установка флага прерывания по завершению передачи (TXCIF) и генерируется опциональное прерывание.

Запись в регистр передаваемых данных (DATA) возможна только, когда установлен флаг опустошения регистра данных (DREIF). Это сигнализирует о том, что регистр свободен и готов для записи новых данных.

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

21.6.2. Отключение передатчика

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



<-- Предыдущая страница Оглавление Следующая страница -->





 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (495) 514 4110. e-mail:info@eust.ru
©1998-2016 ООО Рынок Микроэлектроники