что такое mosi и miso

Последовательный интерфейс SPI

SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI.
В SPI используются четыре цифровых сигнала:

В зависимости от комбинаций полярности и фазы синхроимпульсов возможны четыре режима работы SPI.

Режим SPIВременная диаграмма
Режим SPI0
Активные уровень импульсов — высокий.
Сначала защёлкивание, затем сдвиг.
что такое mosi и miso. spi0. что такое mosi и miso фото. что такое mosi и miso-spi0. картинка что такое mosi и miso. картинка spi0. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:
Режим SPI1
Активные уровень импульсов — высокий.
Сначала сдвиг, затем защёлкивание.
что такое mosi и miso. spi1. что такое mosi и miso фото. что такое mosi и miso-spi1. картинка что такое mosi и miso. картинка spi1. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:
Режим SPI2
Активные уровень импульсов — низкий.
Сначала защёлкивание, затем сдвиг.
что такое mosi и miso. spi2. что такое mosi и miso фото. что такое mosi и miso-spi2. картинка что такое mosi и miso. картинка spi2. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:
Режим SPI3
Активные уровень импульсов — низкий.
Сначала сдвиг, затем защёлкивание.
что такое mosi и miso. spi3. что такое mosi и miso фото. что такое mosi и miso-spi3. картинка что такое mosi и miso. картинка spi3. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:

Мастеру приходится настраиваться на тот режим, который используется ведомым.
При обмене данными по интерфейсу SPI микроконтроллер может работать как ведущий (режим Master) либо как ведомый (режим Slave). При этом пользователь может задавать следующие параметры:

Соединение двух микроконтроллеров по структуре ведущий – ведомый по интерфейсу SPI осуществляется по следующей схеме.

что такое mosi и miso. spi ms. что такое mosi и miso фото. что такое mosi и miso-spi ms. картинка что такое mosi и miso. картинка spi ms. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:

Выводы SCK, CS для ведущего микроконтроллера являются выходами, а ведомого микроконтроллера – входами.

Передача данных осуществляется следующим образом. При записи в регистр данных SPI ведущего микроконтроллера запускается генератор тактового сигнала модуля SPI, и данные начинают побитно выдаваться на вывод MOSI и соответственно поступать на вывод MOSI ведомого микроконтроллера. После выдачи последнего бита текущего байта генератор тактового сигнала останавливается с одновременной установкой в «1» флага «Конец передачи». Если поддерживаются и разрешены прерывания от модуля SPI, то генерируется запрос на прерывание. После этого ведущий микроконтроллер может начать передачу следующего байта либо, подав на вход SS ведомого напряжение уровня логической «1», перевести его в состояние ожидания.

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

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

Вывод SS предназначен для выбора активного ведомого устройства и в режиме Slave всегда является входом. Каждый раз, когда на вывод SS подается напряжение уровня логической «1», происходит сброс модуля SPI. Если изменение состояния этого вывода произойдет во время передачи данных, и прием, и передача немедленно прекратятся, а передаваемый и принимаемый байты будут потеряны.

Если микроконтроллер находится в режиме Master, направление передачи данных через вывод SS определяется пользователем. Если вывод сконфигурирован как выход, он работает как линия вывода общего назначения и не влияет на работу модуля SPI. Как правило, в этом случае он используется для управления выводом SS микроконтроллера, работающего в режиме Slave.

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

Пример использования интерфейса SPI для микроконтроллеров STM32 хорошо описан в этой статье.
Назад

Источник

Последовательный периферийный интерфейс SPI

Последовательный периферийный интерфейс SPI (Serial Peripheral Interface) — последовательный стандарт передачи данных. Предназначен для сопряжения микроконтроллеров и периферийных устройств. SPI интерфейс иногда называют четырёхпроводным интерфейсом.

Описание работы интерфейса SPI

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

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

Такое разделение с течением времени получение и отправки данных, дает возможность использовать только один регистр. Та устройство которое управляет шиной синхроимпульсов является главным и называется «Ведущим» или «Мастером» (Master).

Главное устройство или «Master» осуществляет управление процессами передачи данных. Т.е. он определяет когда начать процесс передачи данных когда его нужно завершить и какой объем данных передать. Другие устройства которые подключаются к мастеру, называются ведомыми или «Slave«.

Наименование выводов интерфейса SPI

При двухстороннем обмене его называют полнодуплексный, в интерфейсе SPI задействованы все 4 линии:

что такое mosi и miso. 403llVLD5ck. что такое mosi и miso фото. что такое mosi и miso-403llVLD5ck. картинка что такое mosi и miso. картинка 403llVLD5ck. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:

Кодировка уровней происходит логическими «1» и «0» на шине данных (MOSI и MISO). Другими словами «1» это высокий уровень напряжения, а «0» соответственно низкий. То как выставляется уровень напряжения на шине не имеет значения, т. е. выводы передатчиков могут быть как с «открытым коллектором» там и «push-pull». Высокий уровень соответствует равен напряжению питания микросхему. Если у нас схема запитана от 5 В то и высокий уровень — 5 В, если 3.3 то соответственно высокий уровень — 3.3 В.

Линия SS необходима для установки начали и конца передачи сигнала. Этот сигнал инверсный, т.е. когда мы передает данные у нас на этой низкий уровень, когда данные не передаются то высокий. По сигналу SS мастеру можно подключаться к разным «слейвам» и использую одни и те же линии данных. Только вот к каждому «слейву» придется тянуть свою линию SS.

Название линий могу отличаться у разных производителей:

MISO: SOMI, SDO (на устройстве), DO, DON, SO, MRSR;

MOSI: SIMO, SDI (на устройстве), DI, DIN, SI, MTST;

SCLK: SCK, CLK, SPC (SPI serial port clock);

SS: nCS, CS, CSB, CSN, NSS, nSS, STE, SYNC.

что такое mosi и miso. Risunok 31. что такое mosi и miso фото. что такое mosi и miso-Risunok 31. картинка что такое mosi и miso. картинка Risunok 31. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:

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

Прием и передача и данных в интерфейсе SPI

Передача данных в интерфейсе SPI происходит побитно, а по противоположным уровням сигнала тактирования происходи либо установка либо чтение данных. Момент чтение данных называется latch, а момент установки shift.

Данные обычно не передаются по одному биту, обычно их посылают по 8 бит и более. По этой причине на выходе передатчика делают сдвиговый регистр, куда грузится сразу вся пачка передаваемых данных. Значение старшего или младшего бита сдвивого регистра устанавливается на шине данных в зависимости от точно что передаем вперед. А для того чтобы установить на шине последующий передаваемый бит, нужно лишь сдвинуть этот регистр.

Уровень сигнала в котором находится шина тактирования в неактивном состоянии когда у нас передача данных не происходит, называется полярностью ее обозначают CPOL. Если у нас нет передачи данных то на шине тактирования SCLK логический ноль, т.е. CPOL=0, и наоборот если высокий уровень на шине то CPOL=1.

Последовательность чередования считывания и сдвига называют фазой, обозначается как CPHA. Если по первому фронту на SCLK происходит считывание, то CPHA=0, а если по первому фронту на SCLK происходит сдвиг, то CPHA=1.

Режимы работы интерфейса SPI

Для обозначения режимов работы интерфейса SPI принято следующее соглашение:

Режимы работы SPI демонстрирует картинка ниже.

что такое mosi и miso. post 65952 1500974162. что такое mosi и miso фото. что такое mosi и miso-post 65952 1500974162. картинка что такое mosi и miso. картинка post 65952 1500974162. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:

Важно отметить 1 момент, линия SS это линий которая управляет сеансом обмена, а не только линия для выбора слейва. Поэтому если вы используете только слейв то линию SS подключать нужно подключать.

Источник

AVR Урок 24. Знакомство с шиной SPI

Урок 24

Знакомство с шиной SPI

Сегодня мы начинаем знакомство с шиной SPI (Serial Peripheral Interface).

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

Ещё одним важнейшим фактором необходимости нашего с ней знакомства является то, что данная шина аппаратно организована в контроллерах AVR.

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

Поэтому хочется познакомиться с данной шиной поближе.

Давайте откроем техническую документацию на контроллер Atmega8, откроем страницу, где изображена распиновка данного контроллера и посмотрим, что от 16 до 19 ножки и находятся выводы шины SPI

что такое mosi и miso. Image00 1. что такое mosi и miso фото. что такое mosi и miso-Image00 1. картинка что такое mosi и miso. картинка Image00 1. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:

Теперь немного подробнее о данных выводах

SS (chip select) – это ножка выбора устройства. Если на ведомом устройстве на данной ножке установится низкий уровень, то данное устройство будет откликаться и обмениваться информацией по шине SPI, если высокий, то не будет.

MOSI (master output slave input) – это ножка выхода ведущего устройства и входа ведомого устройства.

MISO (master input slave output) – наоборот, выход ведомого, вход ведущего.

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

Вот схема реализации шины SPI в контроллере Atmega8

что такое mosi и miso. Image01 1. что такое mosi и miso фото. что такое mosi и miso-Image01 1. картинка что такое mosi и miso. картинка Image01 1. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:

Как в любой шине, здесь имеется ряд регистров, в которых хранится определённая информация.

Нам интересен SHIFT REGISTER, через него и происходит обмен информации. Как только на ножке синхронизации будет определённый фронт, или нисходящий или восходящий, в зависимости от настройки, данные регистры у ведомого и ведущего устройства обменяются информацией, причем не всей информацией, а только одним битом. Данные регистры сдвинутся влево и старшие биты из каждого регистра уйдут в младшие биты такого же регистра сопряженного устройства. То есть ведомый передаст свой старший бит через ножку MOSI ведущему, который его запишет в освободившийся засчет сдвига влево младший бит, а ведомый свой вытесненный засчет сдвига передаст старший бит через ножку MISO в младший бит ведущего. Вот так и идёт обмен, то есть за 8 полных циклов тактирования они полностью обменяются байтами

что такое mosi и miso. Image02 1. что такое mosi и miso фото. что такое mosi и miso-Image02 1. картинка что такое mosi и miso. картинка Image02 1. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:

Как только все 8 бит одного байта информации передадутся, определённый регистр нам просигнализирует о том, что данный процесс закончен. Вернее, определённый бит определённого регистра.

Также в блок-схеме мы видим делитель, на вход которого поступают тактовые импульсы и уже потом разделённые на определенное значение поступают по цепочке на ножку SCK и уже оттуда подаются на ведомое устройство на одноимённую ножку. Этим и обеспечивается синхронность работы устройств. Частота тактовых импульсов выбирается из наименьшей поддерживаемой всеми устройствами, участвующими в обмене.

Я говорю во множественном числе, так как может быть не только два устройства в данной цепи. Как это обеспечивается при условии, что у устройств нет никаких адресов, я сейчас и расскажу.

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

Первый способ – радиальный (нажмите на картинку для увеличения изображения)

что такое mosi и miso. Image03 1. что такое mosi и miso фото. что такое mosi и miso-Image03 1. картинка что такое mosi и miso. картинка Image03 1. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:

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

Есть ещё один интересный способ – кольцевой или каскадный (нажмите на картинку для увеличения изображения)

что такое mosi и miso. Image05 502. что такое mosi и miso фото. что такое mosi и miso-Image05 502. картинка что такое mosi и miso. картинка Image05 502. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:

Здесь мы видим, что ножки выбора все запараллелены и обмен идёт по кругу. Тем самым скорость падает, засчёт того, что увеличивается круг передачи, но зато экономятся лапки портов.

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

Ну, вроде со схемотехникой передачи данных по шине SPI мы разобрались.

Теперь разберёмся, как же данным процессом управлять на уровне аппаратных регистров контроллера AVR.

Данные регистры мы видим в блок-схеме выше на странице.

У Atmega8 существуют следующие регистры для обслуживания шины SPI.

SPDR (SPI Data Register) – регистр данных, в блок-схеме это DATA BUFFER. В этот регистр мы будем заносить байт для последующей его передачи на ведомое устройство и из него же будем читать байт информации, пришедший с ведомого устройства. Также не обязательно что у нас контроллер будет ведущим устройством. Впоследствии мы соберём схему из двух контроллеров, один из которых будет ведомым. Так что именно в этом регистре будет находиться байт и для отправки и для приёма.

SPCR (SPI Control Register) – управляющий регистр

что такое mosi и miso. Image06 1. что такое mosi и miso фото. что такое mosi и miso-Image06 1. картинка что такое mosi и miso. картинка Image06 1. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:

Данный регистр включает в себя следующие биты:

SPIE (SPI Interrupt Enable) – бит, который разрешает прерывания.

SPE (SPI Enable) – бит, включающий шину SPI.

DORD (Data Order) – бит, устанавливающий порядок отправки бит, Если он установлен в 1, то первым отправляется младший бит, если в 0 – старший.

MSTR (Master/Slave Select) – бит, который назначает устройство ведущим либо ведомым. При установке данного бита 1 устройство будет ведущим.

CPOL (Clock Polarity) – полярность синхронизации, определяет, при каком фронте синхронизирующего импульса будет инициироваться режим ожидания

что такое mosi и miso. Image08 1. что такое mosi и miso фото. что такое mosi и miso-Image08 1. картинка что такое mosi и miso. картинка Image08 1. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:

Если данный бит в 1, то режим ожидания будет у нас при восходящем фронте, а если в 0, то при нисходящем.

CPHA (Clock Phase) – бит, отвечающий за фазу тактирования, то есть по какому именно фронту будет осуществляться передача бита.

что такое mosi и miso. Image09 1. что такое mosi и miso фото. что такое mosi и miso-Image09 1. картинка что такое mosi и miso. картинка Image09 1. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:

Посмотрим диаграммы передачи данных в зависимости от установки CPOL и CPHA

что такое mosi и miso. Image10 1. что такое mosi и miso фото. что такое mosi и miso-Image10 1. картинка что такое mosi и miso. картинка Image10 1. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:

Вот такая вот интересная зависимость. Порой мы иногда видим в технических характеристиках какого нибудь устройства, что оно, к примеру, может работать в режиме SPI 0:0 и SPI 1:1, вот это как раз и касается настройки этих битов.

SPR1, SPR0 (SPI Clock Rate Select) – это биты, отвечающие за значение делителя частоты синхронизации, работают совместно с битом SPI2X, находящемся в регистре статуса. Он также управляющий, так как восьми бит в управляющем регистре под все настройки не хватило, а в статусном много свободных.

SPSR (SPI Status Register) – статусный регистр

что такое mosi и miso. Image07 1. что такое mosi и miso фото. что такое mosi и miso-Image07 1. картинка что такое mosi и miso. картинка Image07 1. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:

SPI2X (Double SPI Speed Bit) – бит, удваивающий скорость, работающий совместно с битами SPR1 и SPR0 управляющего регистра.

Посмотрим зависимость частоты от данных трёх битов

что такое mosi и miso. Image11 1. что такое mosi и miso фото. что такое mosi и miso-Image11 1. картинка что такое mosi и miso. картинка Image11 1. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:

SPIF (SPI Interrupt Flag) – Флаг прерывания. Установку данного бита в единицу мы ждём. когда принимаем байт. Как только байт от другого устройства появится полностью у нас в буфере, то данный флаг установится. Данный флаг работает только в случае установки бита, разрешающего прерывания, а также разрешения глобальных прерываний.

WCOL (Write COLlision Flag) – флаг конфликта, или коллизий, установится в том случае, если во время передачи данных будет конфликт битов, если во время передачи данных выполнится попытка записи в регистр данных.

Ну теперь мы, можно сказать, немного познакомились с интерфейсом SPI.

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

Купить программатор можно здесь (продавец надёжный) USBASP USBISP 2.0

Смотреть ВИДЕОУРОК (нажмите на картинку)

Источник

Использование интерфейса SPI в Arduino – полное руководство

Современные микроконтроллеры используют много различных протоколов для взаимодействия с различными датчиками и периферийными устройствами. Одними из часто используемых протоколов проводной и беспроводной связи являются протоколы последовательной связи (Serial Communication). Последовательная связь – это процесс передачи одного бита за другим с течением времени, последовательно, по каналу связи или шине. Наиболее известными протоколами последовательной связи в настоящее время являются UART, CAN, USB, I2C и SPI.

что такое mosi и miso. spi communication between two arduinos. что такое mosi и miso фото. что такое mosi и miso-spi communication between two arduinos. картинка что такое mosi и miso. картинка spi communication between two arduinos. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:

В этой статье мы рассмотрим протокол (интерфейс) SPI и как его использовать в плате Arduino. Мы будем использовать протокол SPI для связи между двумя платами Arduino. Одна из плат Arduino будет выступать в качестве ведущей (Master), а другая – в качестве ведомой (Slave). К обоим платам Arduino будут кнопки и светодиоды. Чтобы продемонстрировать возможности связи по протоколу SPI между двумя платами Arduino мы будем управлять светодиодом на ведущей стороне при помощи нажатия кнопки на ведомой стороне и наоборот – все это мы будем осуществлять с помощью протокола последовательной связи SPI.

Что такое SPI

SPI расшифровывается как Serial Peripheral Interface и переводится как последовательный интерфейс (периферийных устройств), а по своей сути он является протоколом последовательной связи. Интерфейс SPI был разработан в компании Motorola в 1970 г. Интерфейс SPI имеет полное дуплексное соединение, что означает что данные передаются и принимаются одновременно. То есть ведущий (master) может передавать данные ведомому (slave), а ведомый одновременно с этим может передавать данные ведущему. SPI является протоколом синхронной последовательной связи, то есть ему для работы необходима синхронизация всех устройств. Ранее использование данного интерфейса на нашем сайте мы рассматривали при подключении графического ЖК дисплея Nokia 5110 к плате Arduino.

Принципы работы интерфейса SPI

Для работы по принципу ведущий/ведомый (master/Slave) протокол SPI использует 4 линии (провода). В этом протоколе ведущий всегда один, а ведомых может быть несколько. В качестве ведущего устройства обычно выступает микроконтроллер, а в качестве ведомых устройств могут выступать микроконтроллеры, датчики, АЦП, ЦАП, ЖК дисплеи и т.д.

На следующем рисунке показан принцип работы протокола SPI с одним ведущим (Master) и одним ведомым (Slave).

что такое mosi и miso. spi communication circuit between a master and slave. что такое mosi и miso фото. что такое mosi и miso-spi communication circuit between a master and slave. картинка что такое mosi и miso. картинка spi communication circuit between a master and slave. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:

SPI интерфейс для своей работы использует 4 линии – MISO, MOSI, SS, and CLK. Их назначение следующее:

На следующем рисунке показан принцип работы протокола SPI с одним ведущим (Master) и несколькими ведомыми (Slave).

что такое mosi и miso. spi communication. что такое mosi и miso фото. что такое mosi и miso-spi communication. картинка что такое mosi и miso. картинка spi communication. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:

Чтобы начать связь (взаимодействие) между ведущим и ведомым нам необходимо установить на контакте ведомого Slave Select (SS) напряжение низкого уровня чтобы он мог взаимодействовать с ведущим. Когда на этом контакте напряжение высокого уровня (high) ведомый игнорирует ведущего. Это позволяет иметь множество ведомых устройств, работающих по протоколу SPI, использующих одни и те же (общие) линии MISO, MOSI и CLK ведущего устройства. Как вы можете видеть из представленного рисунка для 4-х ведомых устройств линии SCLK, MISO, MOSI общие для соединения с ведущим, а линии (контакты) SS каждого ведомого устройства подключены к отдельным контактам SS (SS1, SS2, SS3, SS4) ведущего устройства. При помощи установки на требуемом контакте SS напряжения низкого уровня (LOW) ведущий (master) может взаимодействовать с нужным ему ведомым (slave).

Контакты SPI в плате Arduino Uno

На следующем рисунке красным прямоугольником отмечены контакты, которые могут быть использованы в плате Arduino Uno для связи по протоколу SPI.

что такое mosi и miso. spi pins in arduino uno. что такое mosi и miso фото. что такое mosi и miso-spi pins in arduino uno. картинка что такое mosi и miso. картинка spi pins in arduino uno. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:

Линия интерфейса SPIКонтакт Arduino Uno
MOSI11 или ICSP-4
MISO12 или ICSP-1
SCK13 или ICSP-3
SS10

С контактами разобрались, двигаемся дальше.

Использование интерфейса SPI в Arduino

Перед тем как начать обмен данными между двумя платами Arduino по протоколу SPI давайте рассмотрим основные принципы работы с библиотекой SPI (SPI library) в Arduino IDE.

1. SPI.begin()

Инициализирует шину SPI при помощи установки режимов работы контактов SCK, MOSI и SS на вывод данных, подачи на контакты SCK и MOSI напряжения низкого уровня (low), а на контакт SS – напряжения высокого уровня (high).

2. SPI.setClockDivider(divider)

Используется для установки делителя (коэффициента деления) для сигнала синхронизации SPI по отношению к тактовой частоте микроконтроллера в плате Arduino. Можно использовать делители 2, 4, 8, 16, 32, 64 или 128.

• SPI_CLOCK_DIV2
• SPI_CLOCK_DIV4
• SPI_CLOCK_DIV8
• SPI_CLOCK_DIV16
• SPI_CLOCK_DIV32
• SPI_CLOCK_DIV64
• SPI_CLOCK_DIV128

3. SPI.attachInterrupt(handler)

Включает режим прерываний в ведомом (slave) устройстве. Прерывание будет возникать каждый раз, когда ведомое устройство будет принимать данные от ведущего (master) устройства.

4. SPI.transfer(val)

Эта функция используется для одновременного приема и передачи данных между ведущим и ведомым.

Необходимые компоненты

Схема проекта

Схема проекта для последовательной связи между двумя платами Arduino по протоколу SPI представлена на следующем рисунке.

что такое mosi и miso. circuit diagram for spi communication between two arduinos. что такое mosi и miso фото. что такое mosi и miso-circuit diagram for spi communication between two arduinos. картинка что такое mosi и miso. картинка circuit diagram for spi communication between two arduinos. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:Внешний вид собранной конструкции проекта на макетных платах представлен на следующем рисунке.

что такое mosi и miso. circuit hardware for spi communication between two arduinos. что такое mosi и miso фото. что такое mosi и miso-circuit hardware for spi communication between two arduinos. картинка что такое mosi и miso. картинка circuit hardware for spi communication between two arduinos. SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом. SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI. В SPI используются четыре цифровых сигнала:

Объяснение программы для Arduino

Нам будут необходимы две программы: одна – для ведущей платы Arduino, а другая – для ведомой платы Arduino. Коды обоих программ приведены в конце статьи, здесь же мы кратко рассмотрим их основные фрагменты.

Программа для ведущей (Master) платы Arduino

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *