Основы связи SPI
SPI — английское сокращение от Serial Peripheral Interface. Первоначально это была полнодуплексная синхронная последовательная шина, разработанная Motorola. Она используется для синхронной последовательной связи между микроконтроллерами (MCU) и внешними устройствами. В основном она используется во Flash, цифро-аналоговых преобразователях, процессорах сигналов, контроллерах, в периферийные устройства, такие как память EEPROM.
Шина SPI представляет собой интерфейс «главный-много подчиненных». В отличие от I2C, SPI использует выбор микросхемы CS для управления связью между хостом и подчиненным устройством. Почти все современные микроконтроллеры поддерживают шину SPI, которая стала высокоскоростным, синхронным и дуплексным универсальным стандартом и широко используется в продуктах IoT.
SPI обычно имеет 4 провода (четырехпроводная система), что позволяет обеспечить полнодуплексную связь.
【SCK】: Последовательные часы.
[MOSI]: главный выход, подчиненный вход)
[MISO]: Ведущий принимает и отправляет сигналы от ведомого (главный вход, ведомый выход).
[CS/CS]: сигнал выбора чипа (выбор подчиненного устройства)
Приложения SPI также имеют 3 провода (трехпроводная система) для достижения полудуплексной связи.
Принцип связи SPI
Чтобы обмениваться данными с периферийными устройствами, модуль SPI может настраивать полярность и фазу своих выходных последовательных синхронных часов в соответствии с рабочими требованиями периферийных устройств и управлять режимом связи устройства через CPHA (фаза тактового сигнала) и CPOL (тактовый сигнал). полярность).
Полярность тактового сигнала CPOL используется для настройки состояния, в котором уровень SCK действителен или неактивен. Фаза тактового сигнала CPHA используется для настройки того, какая выборка данных по фронту включена:
CPHA=0, выборка данных осуществляется по 1-му фронту, данные отправляются по 2-му фронту
CPHA=1, выборка данных осуществляется по 2-му фронту, данные отправляются по 1-му фронту
CPOL=0, когда SCLK=0, он находится в состоянии ожидания.Эффективным состоянием является состояние, когда SCLK находится на высоком уровне.
CPOL=1, когда SCLK=1, он находится в состоянии ожидания, а эффективное состояние — когда SCLK находится на низком уровне.
CPHA=0, CPOL=0: в это время в состоянии ожидания SCK находится на низком уровне, а выборка данных происходит на первом фронте, что является переходом SCK с низкого уровня на высокий уровень, поэтому выборка данных по нарастающему фронту (Подготовка данных), (Отправка данных) Данные отправляются по заднему фронту.
CPHA=0, CPOL=1: В состоянии ожидания в это время SCK находится на высоком уровне, а сбор данных происходит на первом фронте, то есть SCK переходит с высокого уровня на низкий уровень, поэтому сбор данных идет на спад. Edge., данные передаются по нарастающему фронту.
CPHA=1, CPOL=0: в это время в состоянии ожидания SCK находится на низком уровне, и данные передаются по первому фронту, то есть SCK переходит с низкого уровня на высокий уровень, поэтому выборка данных находится на падающем уровне. Edge., данные передаются по нарастающему фронту.
CPHA=1, CPOL=1: в это время в состоянии ожидания SCK находится на высоком уровне, и данные отправляются по первому фронту, то есть SCK переходит с высокого уровня на низкий уровень, поэтому сбор данных идет нарастающим образом. Edge., данные отправляются по заднему фронту.
Кроме того, поделитесь методом идентификации диаграмм временных рядов. Перечеркнутые линии: данные разрешено изменять, но не обязательно. Параллельные линии: данные не могут изменяться и должны отправляться стабильно.
Поговорим о сроках передачи подробнее. Внутреннее оборудование интерфейса SPI на самом деле представляет собой два простых регистра сдвига. Передаваемые данные имеют размер 8 бит. Под сигналом включения ведомого устройства и импульсом сдвига, генерируемым ведущим устройством, он передается побитно, со старшим битом впереди и нижняя часть сзади. . Как показано на рисунке ниже, данные изменяются по заднему фронту сигнала SCLK, а один бит данных сохраняется в сдвиговом регистре по нарастающему фронту. Интерфейс SPI не имеет определенного управления потоком и механизма ответа для подтверждения получения данных.
Передача данных SPI:
SPI использует байты для передачи данных.Обычно стандартными являются 8-битные байты, но количество битов можно регулировать по мере необходимости.
Данные передаются одновременно по линиям MOSI и MISO, а ведущее устройство отправляет данные в MOSI и получает ответ от ведомого устройства от MISO.
Передача данных синхронизируется тактовым сигналом SCLK, обычно по нарастающему или спадающему фронту тактового сигнала.
Режим SPI:
Существует четыре режима связи SPI, которые определяют комбинацию полярности и фазы тактового сигнала для обеспечения правильной синхронизации данных.
Эти режимы обозначаются цифрами от 0 до 3 и часто описываются буквами «CPOL» и «CPHA», которые обозначают полярность и фазу тактового сигнала соответственно.
Для правильной связи главное и подчиненное устройства должны быть настроены в одном и том же режиме.
Сравнение SPI с другими протоколами связи:
SPI обычно быстрее, чем другие протоколы последовательной связи, такие как I2C и UART, но также требует больше контактов.
SPI больше подходит для высокоскоростной связи на коротких расстояниях, а I2C и UART подходят для различных сценариев применения.
Благодаря приведенному выше простому описанию здравого смысла шины SPI мы можем примерно понять, что SPI имеет преимущества высокой скорости, синхронизации, полного дуплекса, структуры шины, режима связи «главный-подчиненный» и т. д., но у него также есть недостатки, такие как отсутствие назначенное управление потоком и отсутствие подтверждения механизма ответа.
Ebyte специализируется на индустрии беспроводной связи IoT, всегда уделяет внимание развитию технологий и отрасли связи IoT и находится в авангарде технологий беспроводной связи IoT. Ebyte разработала простые в использовании, высококачественные и доступные модули беспроводной связи, включая модули Wi-Fi, модули Bluetooth, модули Zigbee, модули NB, модули 4G, частные беспроводные модули, LoRa и LoRaWAN. Подождите, пока появится модуль.
Для получения более подробной информации о продукции и информации посетите наш официальный сайт: