Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шапошников_диплом.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.02 Mб
Скачать

1.2 Spi интерфейс

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

1. Полностью дуплексная 3-проводная синхронная передача данных;

2. Работа в режиме ведущего или ведомого;

3. Передача начиная со старшего или младшего бита;

4. Четыре программируемые скорости передачи;

5. Флаг прерывания по окончанию передачи;

6. Флаг защиты от коллизий при записи

7. Выход из режима Idle.

Взаимодействие между двумя устройствами SPI всегда осуществляется между устройством в режиме Master («ведущий») и устройством в режиме Slave («ведомый»). Режим работы интерфейса SPI микроконтроллера AVR определяется битом master (MSTR) регистра управления интерфейсом SPI (SPCR).

Вывод PB5(SCK) является выходом тактовых импульсов для ведущего контроллера и входом для ведомого. Запись в регистр данных SPI ведущего контроллера запускает тактовый генератор. Записанные данные сдвигаются через вывод PB3(MOSI) на вывод PB3(MOSI) ведомого контроллера. После того как байт будет выведен тактовый генератор останавливается и выставляет флаг окончания передачи (SPIF). Если разрешены прерывания (установлен бит SPIE в регистре SPCR), вызывается соответствующее прерывание. Два сдвиговых регистра в ведущем и ведомом контроллерах можно рассматривать как один распределенный 16-разрядный регистр сдвига. Когда данные сдвигаются из ведущего контроллера в ведомый, то же самое происходит в обратном направлении. За один цикл сдвига ведущий и ведомый контроллеры обмениваются байтами данных.

Система имеет одиночный буфер в направлении передачи и двойной в направлении приема. Передаваемый символ не записывается в регистр данных SPI до тех пор, пока передача не завершится. При приеме до завершения операции сдвига данные должны быть прочитаны из регистра данных. Иначе предыдущий символ теряется. При разрешении SPI выводы MOSI, MISO, SCK и SS устанавливаются на ввод/вывод в соответствии с таблицей.

Таблица 1 – Установка выводов SPI

Вывод

Направление в режиме ведущего

Направление в режиме ведомого

MOSI

Определяется пользователем

Вход

MISO

Вход

Определяется пользователем

SCK

Определяется пользователем

Вход

SS

Определяется пользователем

Вход

Взаимодействие между ведущим и ведомым контроллером AVR показано на рисунке 3.3, на котором изображено два идентичных устройства. Левое устройство сконфигурировано как ведущее (Master), правое как ведомое (Slave). Линии MISO, MOSI и SCK одного устройства соединены с соответствующими линиями другого устройства. Направление этих линий определяется режимом, в котором работает устройство. Так как смещение бита от ведущего к ведомому и от ведомого к ведущему устройству происходит одновременно с тактовым импульсом, 8-ми битные сдвигающие регистры каждого устройства могут быть рассмотрены как один 16-ти битный регистр с циклическим сдвигом. Это означает, что обмен между ведущим и ведомым устройствами осуществляется в течение 8-ми тактовых импульсов (каждое устройство одновременно производит запись и чтение б ита).

Рисунок 2 - Интерфейсы в режиме ведущего и ведомого