12 Последовательный ввод-вывод информации
SPI – последовательный синхронный интерфейс. Для передачи по 3-х проводной системе в синхронном режиме, обеспечивает высокоскоростной синхронный обмен данными между МК и периферийными устройствами или между несколькими МК.
Особенности:
1) Полнодуплексный 3-проводный синхронный обмен данными (сначала младшими, затем старшими байтами). 2) Режим работы ведущий или ведомый. 3) Обмен данными с передаваемыми первыми старшим или младшим битами. 4) Четыре программируемые скорости обмена данными. 5) Флаг прерывания по окончании передачи. 6) Активация из Idle режима (только в режиме ведомого)
Структурная схема канала. MISO и MOSI – название соединения (обозначения контактов)
Структурная схема каждой из сторон этого канала
Регистр управления SPI - SPCR. Разряды
D7 |
SPIE |
разрешение прерываний. Установка в 1 и приводит к установке SPIF бита SPSR, и при разрешении глобального прервывания, к выполнению прерывания SPI |
||
D6 |
SPE |
разрешение передачи SPI (самого канала). Установка в 1 разрешает подключение соответствующих контактов – разрешение альтернативной функции |
||
D5 |
DORD |
порядок данных (delta order) при установке в 1 передача идет младшими разрядами вперед, если 0 – старшими разрядами вперед. |
||
D4 |
MSTR |
выбор режима MS (master-slave) при установке в 1 работает в ведущем режиме соответствующая сторона, в состоянии 0 – в ведомом режиме. |
||
D3 |
CPOL |
полярность тактового сигнала. При установленном этом разряде сигнал синхронизации при ожидании передачи в высоком уровне (с 1 на 0), при установке в 0 сигнал находится в низком уровне |
||
D2 |
CPHA |
фаза тактового сигнала (на временной диаграмме) |
||
|
|
|
||
SPSL |
SPR0 |
Выбор частоты тактового сигнала |
||
0 |
0 |
- деление входной частоты на 4 |
|
|
0 |
1 |
- на 16 |
|
|
1 |
0 |
- на 64 |
|
|
1 |
1 |
- на 128 |
|
Регистр статуса SPI - SPSR
D7 |
SPIF |
- флаг прерывания. По завершению обмена последовательными данными установка в 1, если бит SPIE в регистре SPCR установлен в 1 и разрешено глобальное прерывание. Этот бит очищается аппаратно при выполнении программы обслуживания прерывания. |
D6 |
WCOL |
- флаг ошибки при записи. Устанавливается в состояние 1 если в процессе передачи данных выполнялась запись в регистр данных (SPDR). Чтение содержимого регистра данных, как и запись в него, выполненные во время пересылки данных, могут привести к неверному результату Очищается аппаратно при первом считывании регистра статуса SPI. |
Регистр данных SPI - SPDR
Адрес основного регистра $0F
Регистр данных SPI представляет собой регистр с возможностью чтения/записи и предназначен для пересылки данных между регистровым файлом и сдвиговым регистром SPI. Запись в регистр SPDR инициирует передачу данных, считывание регистра приводит к чтению сдвигового регистра приема
UART
Универсальный асинхронный приемо-передатчик.
Особенности: 1) Обеспечивает любую скорость передачи информации в бодах 2) Высокая скорость передачи при низкой частоте XTAL 3) 8-разрядный или 9-разрядный форматы данных 4) Фильтрация шума (многократное сканирование каждого бита информации) 5) Обнаружение переполнения 6) Обнаружение ошибок формирования кадров 7) Детектирование бита ложного старта 8) Три отдельных прерывания: по завершению передачи (TXC), по пустому регистру передаваемых данных (TXDRE) и по завершению приема (RXC).
9-й символ информации может быть как стоповый бит или контроль на четность.
-
Стартовый бит
9 кадр
байт
Строповый
бит
При обнаружении перехода из 1 в 0 начинается прием или передача.
Через 10 (11) разрядный сдвиговой регистр может происходить передача.
Прием и передача могут происходить в полном или в половинном дуплексном режиме. Интервал делится на 16: 8, 9 и 10 интервалы синхронизации обеспечивают выборку в середине каждого интервала. 2 импульса имеют одно и то же значение, происходит определение 0 или 1 (если они равны) – происходит выделение разряда.
Имеет 3 прерывания: 1) По завершению передачи 2) По пустому регистру передаваемых данных 3) По завершению приема
Подключение идет через порт Е РЕ0 – приемник.
РЕ1 – включается трансмиттер delta-передатчик
Структурная схема передатчика
UCR и USR – 8-и разрядные регистры
Неподключенные связи в UСR относятся к приемнику, подключенные – к передаче
Структурная схема приемника
USR – регистр статуса
D7 |
RxC |
Прием завершен. Установка в 1 при пересылке соответствующего байта из сдвигового регистра приема в UDR. Дает сигнал прерывания по завершению приема. |
D6 |
TxC |
Передача завершена. Данный бит устанавливается в состояние 1 когда весь символ (включая стоповый бит) выведен из сдвигового регистра передачи и в UDR не записаны новые данные |
D5 |
UDRE |
Регистр данных пуст. Данный бит устанавливается в 1, когда регистр данных пуст. РД готов к получению нового бита для передачи. |
D4 |
FE |
Ошибка кадра. Устанавливается в 1, при обнаружении условий ошибочного приема кадра, т.е. когда стоповый бит входящего символа в состоянии 0. |
D3 |
DOR |
Переполнение данных. Устанавливается в 1 при обнаружении условий переполнения, т.е. когда символ, уже находящийся в регистре UDR, не считан перед пересылкой нового символа из сдвигового регистра приема |
D2-D0 |
|
Зарезервированные биты. Обычно установлены в 0 |
Регистр управления UART – UCR
D7 |
RxCIE |
разрешение прерывания по завершению приема. При установленном в состояние 1 бите и установленном разрешении глобального прерывания установка бита RXC в регистре USR приведет к выполнению прерывания по завершению приема. |
D6 |
TxCIE |
Разрешение прерывания по завершению передачи. При установленном в состояние 1 бите и установленном разрешении глобального прерывания установка бита TXC в регистре USR приведет к выполнению прерывания по завершению передачи. |
D5 |
UDRIE |
разрешение прерывания по пустому регистру данных. При установленном в состояние 1 бите и установленном разрешении глобального прерывания установка бита UDRE в регистре USR приведет к выполнению прерывания по пустому регистру данных UART. |
D4 |
RxEN |
Разрешение приемника. Установленный в состояние 1 бит разрешает приемник UART. Если приемник запрещен, то флаги статуса TXC, DOR и FE установить невозможно. Если эти флаги установлены, то очистка этого бита не приведет к очистке этих флагов |
D3 |
TxEN |
разрешение передатчика Установленный в состояние 1 бит разрешает передатчик UART. При запрещении передатчика во время передачи символа, передатчик не будет заблокирован прежде, чем будут полностью переданы символ в сдвиговом регистре плюс любой находящийся в UDR следующий символ |
D2 |
CHR9 |
режим 9-разрядных символов. Если 1 передаются или принимаются 9-разрядные слова плюс стартовый и стоповый биты. Девятые биты читаются и записываются с использованием битов RXB8 и TXB8 регистра UCR. Девятый бит данных может использоваться как дополнительный стоповый бит или бит контроля четности. |
D1 |
Rx8 |
Прием 8-разрядных данных. При установленном в состояние 1 бите CHR9 этот бит является девятым битом данных принятого символа. |
D0 |
TxB8 |
Передача 8-разрядных данных. При установленном в состояние 1 бите CHR9 этот бит является девятым битом данных передаваемого символа |
Бод-генератор представляет собой делитель, генерирующий импульсы передачи с частотой, определяемой выражением
fСК – частота в бодах
16– частота кварцевого генератора
UBRR – содержимое регистра (частота меняется от 0 до 255)
Частота в бодах может принимать значения от 2 400 до 115 200 Гц.