Similar presentations:
Интерфейс USART. Режимы работы (лекция 9)
1.
Интерфейс USARTUSART0
USART1
1
2.
Интерфейс USARTРежимы работы
− асинхронный UART
(без XCK)
− синхронный USART
(с XCK)
2
3.
Интерфейс USARTСоединение USART-устройств
TXD (TD) – Transmit Data
RXD (RD) – Receive Data
XCK – ClocK
3
4.
Интерфейс USARTСоединение
USARTустройств
4
5.
Интерфейс USARTСоединение UART-устройств
5
6.
Интерфейс USARTСоединение
UARTустройств
6
7.
Интерфейс USARTОсновные характеристики USART
– тип последовательный
– ТТЛ-уровни представления
отдельных битов посылки:
уровень логического нуля 0 В
(0 В … 1,5 В), логической
единицы 5 В (1,7 В … 5 В) 7
8.
Интерфейс USARTОсновные характеристики USART
– интерфейс
универсальный:
может выступать и в синхронном
варианте, и в асинхронном;
– протокол гибкий;
– интерфейс двунаправленный
(полнодуплексный);
– расстояние связи до 20 м
8
9.
Интерфейс USARTФормат посылки
Условное обозначение
формата посылки
− старт-бит
N-P-n
− непосредственные данные
(LSB): N = 5, 6, 7, 8 или 9 бит
− паритет: P = чётный (E, Even),
нечётный (O, Odd),
отсутствующий (N, None)
− стоп-биты: n = 1 или 2
9
10.
Интерфейс USARTОсциллограммы взаимодействия
UART 8-N-1
TXD
(RXD)
Непосредственное данное == 0х01
Формат посылки у всех устройств
должен быть идентичным!!!
10
11.
Интерфейс USARTОсциллограммы взаимодействия
UART
8-O-1
TXD
(RXD)
Непосредственное данное == 0х74
Формат посылки у всех устройств
должен быть идентичным!!!
11
12.
Интерфейс USARTОсциллограммы взаимодействия
UART
8-E-1
TXD
(RXD)
Непосредственное данное == 0х74
Формат посылки у всех устройств
должен быть идентичным!!!
12
13.
Интерфейс USARTОсциллограммы взаимодействия
UART
6-N-1
TXD
(RXD)
Непосредственное данное == ???
Формат посылки у всех устройств
должен быть идентичным!!!
13
14.
Интерфейс USARTОсциллограммы взаимодействия
UART 8-N-1
TXD (RXD)
Непосредственные данные == ???
14
15.
Интерфейс USARTОсциллограммы взаимодействия
TXD
(RXD)
Полярность
UCPOL = 1
XCK
USART
8-O-1
Непосредственное данное == ??? 15
16.
Интерфейс USARTОсциллограммы взаимодействия
TXD
(RXD)
XCK
USART
8-O-1
Полярность
UCPOL = 0
Непосредственное данное == ??? 16
17.
Интерфейс USARTОсновные события в USART
− состояние ДАННОЕ ПРИНЯТО
− состояние ДАННОЕ ПЕРЕДАНО
− состояние
РЕГИСТР ДАННЫХ ДЛЯ ПЕРЕДАЧИ ПУСТ
17
18.
ИнтерфейсUSART
Функциональная
схема USART
18
19.
Интерфейс USARTТаблица регистров специальных функций USART
19
20.
Интерфейс USARTUCSRnA (USART Control and Status Register A, n = 0, 1) –
регистр A управления и состояния USART
RXCn (Receive Complete) – флаг завершения приёма
USART; устанавливается аппаратно, когда в приёмном
буфере содержатся несчитанные данные, сбрасывается
при считывании принятых данных
TXCn (Transmit Complete) – флаг завершения передачи
USART; устанавливается аппаратно, когда вся посылка
из сдвигового регистра передатчика полностью передана
и в передающем буфере UDRn нет новых данных
20
21.
Интерфейс USARTUCSRnA (USART Control and Status Register A) –
регистр A управления и состояния USART
UDREn (USART Data Register Empty) – флаг
освобождения регистра данных USART
FEn (Frame Error) – ошибка посылки;
устанавливается, если в приёме посылки,
находящейся на выходе из приёмного буфера,
была определена ошибка в её структуре, т.е.
первый стоп-бит посылки имеет нулевое значение
21
22.
Интерфейс USARTUCSRnA (USART Control and Status Register A) –
регистр A управления и состояния USART
DORn (Data OverRun) – флаг переполнения
данных USART; переполнение данных возникает
в случае приёма очередного бита при
заполненном приёмном буфере
UPEn (USART Parity Error) – ошибка паритета
U2Xn – бит удвоения скорости связи USART
MPCMn (Multiprocessor Communication Mode) –
режим многопроцессорной связи
22
23.
Интерфейс USARTUCSRnB (USART Control and Status Register B, n = 0, 1) –
регистр B управления и состояния USART
RXCIEn (Receive Complete Interrupt Enable) – разрешение
прерывания по завершении приёма USART, т.е. по флагу
RXCn
TXCIEn (Transmit Complete Interrupt Enable) –
разрешение прерывания по завершении передачи USART,
т.е. по флагу TXCn
UDRIEn (USART Data Register Empty Interrupt Enable) –
разрешение прерывания по освобождению регистра
данных USART, т.е. по флагу UDREn
23
24.
Интерфейс USARTUCSRnB (USART Control and Status Register B) –
регистр B управления и состояния USART
RXENn (Receive ENable) – разрешение приёма,
т.е. включение приёмника
TXENn (Transmit ENable) – разрешение передачи,
т.е. включение передатчика
UCSZn2 (USART Character SiZe) – бит размера
принимаемых и передаваемых данных, наряду с
битами UCSZn1 и UCSZn0
24
25.
Интерфейс USARTUCSRnB (USART Control and Status Register B) – регистр
B управления и состояния USART
RXB8n (Receive Bit 8) – значение 8-го разряда
принятых данных при отсчёте разрядов с нуля,
т.е. значение 9-го бита принятых данных при
отсчёте битов с единицы
TXB8n (Transmit Bit 8) – значение 8-го разряда
передаваемых данных при отсчёте разрядов с
нуля; данный бит необходимо записать перед
записью младших разрядов данных в UDRn
25
26.
Интерфейс USARTUCSRnC (USART Control and Status Register C, n = 0, 1) –
регистр C управления и состояния USART
UMSELn (USART Mode SELect) – выбор режима USART:
0 – асинхронный, 1 – синхронный
UPMn[1:0] (USART Parity Mode) – вид паритета
26
27.
Интерфейс USARTUCSRnC (USART Control and Status Register C) –
регистр C управления и состояния USART
UPMn[1:0] (USART Parity Mode) – вид паритета
Формула расчёта паритета
27
28.
Интерфейс USARTUCSRnC (USART Control and Status Register C) – регистр C
управления и состояния USART
USBSn (USART Stop Bit Select) – количество стоп-битов:
0 – 1 стоп-бит, 1 – 2 стоп-бита
UCSZn[2:0]
(USART
Character SiZe)
–
размер
данных
в
посылке
28
29.
Интерфейс USARTUCSRnC (USART Control and Status Register C) –
регистр C управления и состояния USART
UCPOLn (USART Clock POLarity) – полярность
синхронизации; бит активен только в синхронном
режиме
29
30.
Интерфейс USARTUBRR (USART Baud Rate Register) – регистр
скорости связи
30
31.
Интерфейс USARTФормула расчёта скорости связи USART
Набор
стандартных
USART-скоростей [бит/с]:
9600, 19200, 57600, 115200, 921600
31
32.
Интерфейс USARTМногопроцессорный режим связи
Основные биты данного режима:
MPCM, RXB8, TXB8
Установка
бита
MPCM
многопроцессорного режима связи
в регистре UCSRA активизирует
функцию фильтрации входящих
посылок приёмником УСАПП
32
33.
Интерфейс USARTМногопроцессорный режим связи
Посылки,
которые не
содержат
информации об адресе, игнорируются и
не помещаются в приёмный буфер. Это
позволяет
существенно
уменьшить
количество
входящих
посылок,
подлежащих
обработке
в
многопроцессорных системах, связь между
процессорами в которых организована
через одну последовательную шину
33
34.
Интерфейс USARTМногопроцессорный режим связи
Значение бита MPCM не оказывает
никакого
влияния
на
работу
передатчика
Если приёмник настроен на приём
9 битов данных, то значение 9-го
бита RXB8
используется
для
идентификации
адреса
или
данных
34
35.
Интерфейс USARTМногопроцессорный режим связи
Если идентификатор типа посылки
(9-й бит данных) равен 1, то в посылке
содержится адрес. В противном случае
в посылке переданы данные
Режим многопроцессорной
связи
позволяет
нескольким
ведомым
микроконтроллерам
принимать
данные от одного ведущего
35
36.
Интерфейс USARTМногопроцессорный режим связи
При
этом,
ведомые
микроконтроллеры по первой
адресной посылке определяют
к
какому конкретному
микроконтроллеру адресуется
ведущий
36
37.
Интерфейс USARTМногопроцессорный режим связи
Если
один
из ведомых
микроконтроллеров обнаруживает свой
адрес, то следующие посылки данных
он будет
принимать в нормальном
режиме (MPCM = 0), а остальные
ведомые микроконтроллеры эти данные
будут
игнорировать
до
момента
обнаружения
следующей
адресной
посылки
37
38.
Интерфейс USARTМногопроцессорный режим связи
Если микроконтроллер является ведущим,
то он использует 9-битный формат данных
в посылке (UCSZ = 7)
9-й бит TXB8 данных устанавливается
(TXB8 = 1) при передаче адресной посылки
и сбрасывается (TXB = 0) при передаче
посылки данных. В этом случае ведомые
микроконтроллеры также должны быть
настроены на 9-битный формат
38
39.
Интерфейс USARTМногопроцессорный режим связи
Для
обмена
данными
в
многопроцессорном режиме связи
необходимо
использовать
следующие процедуры:
1. Все ведомые микроконтроллеры
переводятся в многопроцессорный
режим связи: MPCM = 1
39
40.
Интерфейс USARTМногопроцессорный режим связи
2. Ведущий
МК отправляет
адресную посылку (9-й бит данных
равен единице), а все ведомые
принимают и считывают её. В
ведомых МК флаг RXC в регистре
UCSRA
устанавливается
в
обычном режиме
40
41.
Интерфейс USARTМногопроцессорный режим связи
3. Каждый ведомый МК считывает
регистр UDR и определяет, к кому
адресуется ведущий МК
Адресуемый
МК
должен
очистить бит MPCM в UCSRA,
в противном случае он ожидает
следующего адресного байта и
сохраняет установки MPCM
41
42.
Интерфейс USARTМногопроцессорный режим связи
4. Адресуемый МК принимает все
данные до следующей адресной
посылки. Другие ведомые МК, у
которых бит MPCM остался
установленным будут игнорировать
посылки данных, ибо в текущих
посылках 9-й бит равен нулю
42
43.
Интерфейс USARTМногопроцессорный режим связи
5. После приёма адресуемым
МК
последней
посылки
данных
устанавливается
бит
MPCM и ожидается приём новой
адресной посылки от ведущего
МК. Далее процесс повторяется
со 2-го пункта
43