Понимание коммуникационного протокола SPI во встроенных

Попробуйте наш инструмент устранения неполадок





Связь играет важную роль при проектировании встроенных систем. Без использования протоколов периферийное расширение очень сложное и требует больших затрат энергии. В Встроенная система в основном использует последовательную связь для связи с периферийными устройствами.
Существует множество протоколов последовательной связи, таких как UART, CAN, USB, I2C и SPI. Сериал протокол связи характеристики включают высокую скорость и низкую потерю данных. Это упрощает проектирование на уровне системы и обеспечивает надежную передачу данных.

Последовательная передача данных

Электрически закодированная информация называется последовательными данными, которые бит за битом передаются от одного устройства к другому через набор протоколов. Во встроенной системе данные датчиков управления и исполнительных механизмов принимаются или передаются на устройства управления, такие как микроконтроллеры, так что данные дополнительно анализируются и обрабатываются. Поскольку микроконтроллеры работают с цифровыми данными, информация из аналоговые датчики , исполнительные механизмы и другие периферийные устройства преобразуются в однобайтовое (8-битное) двоичное слово перед передачей в микроконтроллер.




Последовательная передача данных

Последовательная передача данных

Эти последовательные данные передаются относительно определенного тактового импульса. Скорость передачи данных называется скоростью передачи данных. Количество битов данных, которые могут быть переданы в секунду, называется скоростью передачи. Предположим, что данные состоят из 12 байтов, затем каждый байт преобразуется в 8 бит, так что общий размер передаваемых данных составляет около 96 бит в секунду (12 байт * 8 бит на байт). Если данные могут передаваться один раз в секунду, скорость передачи составляет около 96 бит / сек или 96 бод. Экран дисплея обновляет значение данных раз в секунду.



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

Связь SPI означает последовательный периферийный интерфейс. протокол связи , который был разработан Motorola в 1972 году. Интерфейс SPI доступен на популярных контроллерах связи, таких как PIC, AVR и ARM контроллер и т.д. Он имеет синхронный последовательный канал передачи данных, который работает в дуплексном режиме, что означает, что сигналы данных передаются в обоих направлениях одновременно.

Протокол SPI состоит из четырех проводов, таких как MISO, MOSI, CLK, SS, используемых для связи ведущий / ведомый. Мастер - это микроконтроллер, а подчиненные устройства - это другие периферийные устройства, такие как датчики, GSM модем модем GPS и т. д. Несколько подчиненных устройств связаны с главным устройством через последовательную шину SPI. Протокол SPI не поддерживает связь с несколькими мастерами и используется на небольшом расстоянии внутри печатной платы.

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

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

Линии SPI

MISO (Главный в подчиненном вне) : Линия MISO сконфигурирована как вход в главном устройстве и как выход в подчиненном устройстве.


MOSI (главный выход, подчиненный вход) : MOSI - это линия, настроенная как выход в главном устройстве и как вход в подчиненное устройство, где она используется для синхронизации движения данных.

SCK (последовательные часы) : Этот сигнал всегда управляется ведущим устройством для синхронной передачи данных между ведущим и ведомым. Он используется для синхронизации движения данных как по линиям MOSI, так и по MISO.

SS (выбор ведомого) и CS (выбор микросхемы) : Этот сигнал запускается ведущим устройством для выбора отдельных ведомых / периферийных устройств. Это строка ввода, используемая для выбора ведомых устройств.

Связь главного подчиненного устройства с последовательной шиной SPI

Реализация SPI с одним ведущим и одним ведомым

Здесь коммуникация всегда инициируется мастером. Главное устройство сначала настраивает тактовую частоту, которая меньше или равна максимальной частоте, которую поддерживает подчиненное устройство. Затем мастер выбирает желаемое подчиненное устройство для связи, перетаскивая линию выбора микросхемы (SS) этого конкретного подчиненного устройства, чтобы перейти в низкое состояние и стать активным. Мастер генерирует информацию в строке MOSI, по которой данные передаются от мастера к подчиненному.

Связь главного и подчиненного устройства

Связь главного и подчиненного устройства

Реализации с одним ведущим и несколькими ведомыми

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

Один мастер и несколько подчиненных

Один мастер и несколько подчиненных

В этом процессе управление каждым подчиненным устройством осуществляется линией выбора кристалла (SS). На выводе выбора микросхемы устанавливается низкий уровень, чтобы активировать подчиненное устройство, и высокий уровень, чтобы отключить подчиненное устройство.

Передача данных организована с использованием регистров сдвига как на главном, так и на подчиненном устройстве с заданным размером слова около 8 и 16 бит соответственно. Оба устройства соединены в виде кольца, так что значение мазерного регистра сдвига передается по линии MOSI, а затем ведомое устройство сдвигает данные в своем регистре сдвига. Данные обычно сдвигаются сначала с помощью MSB, а новый LSB сдвигается в тот же регистр.

Передача данных между ведущим и ведомым

Передача данных между ведущим и ведомым

Значение полярности и фазы часов

Обычно передача и прием данных выполняется относительно тактовых импульсов на передних и задних фронтах. Микроконтроллеры Advanced имеют две частоты: внутреннюю частоту и внешнюю частоту. Периферийные устройства SPI могут быть добавлены путем совместного использования линий MISO, MOSI и SCLK. Периферийные устройства бывают разных типов или скоростей, такие как АЦП, ЦАП и т. Д. Поэтому нам нужно изменить настройки SPCR между передачами на разные периферийные устройства.

Регистр SPCR

Регистр SPCR

Шина SPI работает в одном из 4 различных режимов передачи с полярностью тактового сигнала (CPOL) и фазой тактового сигнала (CPHA), которые определяют используемый формат тактового сигнала. Полярность тактовых импульсов и тактовые частоты фазы зависят от того, с каким периферийным устройством вы пытаетесь связаться с мастером.
CPHA = 0, CPOL = 0: первый бит начинается как нижний сигнал - данные выбираются по переднему фронту, а данные изменяются по заднему фронту.

CPHA = 0, CPOL = 1: первый бит начинается с более низкого тактового сигнала - данные выбираются по заднему фронту, а данные изменяются по переднему фронту.

CPHA = 1, CPOL = 0: первый бит начинается с более высокой тактовой частоты - данные выбираются по заднему фронту, а данные изменяются по переднему фронту.

CPHA = 1, CPOL = 1: первый бит начинается с более высокой тактовой частоты - данные выбираются по переднему фронту, а данные изменяются по заднему фронту.

Расписание автобусов SPI

Расписание автобусов SPI

Протокол связи SPI

Многие микроконтроллеры имеют встроенные протоколы SPI, которые обрабатывают все отправляемые и получаемые данные. Любая из операций режима данных (R / W) управляется регистрами управления и состояния протокола SPI. Здесь вы можете наблюдать интерфейс EEPROM с микроконтроллером PIC16f877a через протокол SPI.

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

Связь между ведущим и ведомым через последовательную шину SPI

Связь между ведущим и ведомым через последовательную шину SPI

#включают
Сбит SS = RC ^ 2
Сбит SCK = RC ^ 3
Sbit SDI=RC^4
Sbit SDO=RC^5
Пустота инициализировать EEROM ()
Пустая функция()
{
SSPSPAT = 0x00
SSPCON = 0x31
SMP = 0
SCK = 0
SDO = 0
СС = 1
EE_adress = 0x00
SPI_write (0x80)
SPI_write (1234)
SS = 0
}

Преимущества протокола SPI

  • Это полнодуплексная связь.
  • Это высокоскоростная шина данных 10 МГц.
  • Он не ограничен 8 битами при передаче
  • Аппаратное взаимодействие осуществляется через SPI просто.
  • Slave использует главные часы и не требует драгоценных генераторов.

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

Фото: