Skip to main content

Что такое последовательный периферийный интерфейс?

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

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

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

Устройства последовательного периферийного интерфейса используют три регистра - управляющий регистр (SPCR), регистр состояния (SPSR) и регистр данных (SPDR) - при отправке данных вместе с четырьмя различными сигналами. Первый сигнал называется последовательным тактовым сигналом (SCLK), который генерирует только ведущее устройство. За этим следует подчиненный вход master-out (MOSI), slave-выход master-in (MISO) и выбор подчиненного устройства (SSn), где «n» - число подчиненных устройств, к которым подключено ведущее устройство.

В типичной конфигурации с одним подчиненным, инженер, желающий использовать последовательный периферийный интерфейс, подключает SCLK к входу подчиненного устройства. MOSI затем переносит данные с ведущего устройства на подчиненное устройство, в то время как MISO передает данные с подчиненного устройства на ведущее. Чтобы определить, какое устройство является ведущим, а какое - подчиненным, первое подключает ведущее SSn к ведомому SSn и генерирует дискретный входной / выходной сигнал общего назначения для второго.

Чтобы подключить несколько ведомых устройств к одному ведущему устройству в последовательном периферийном интерфейсе, отдельные сигналы SSn подключаются от ведущего устройства к отдельным ведомым устройствам. Например, SS1 подключен к подчиненному устройству 1, SS2 подключен к подчиненному устройству 2 и т. Д. Подобно конфигурации с одним подчиненным, SCLK подключается от главного устройства к нескольким подчиненным. MOSI от мастера к рабам связаны, а также MISO от рабов к хозяину.