Обзор SPI


PHPoC предоставляет Serial Peripheral Interface (SPI) как один из методов связи с другим последовательным устройством.

Соединение SPI

SPI треюуется 4 сигнальные линии между ведущим (master) и ведомым (slave).

Сигнальные линии SPI

Ярлык Имя Описание
SCK Serial Clock часы для синхронизации
MOSI Master Output, Slave Input линия передачи ведущего устройства
MISO Master Input, Slave Output линия передачи ведомого устройства
SS Slave Select линия выбора ведомого устройства

Соединение SPI

spi_overview_01

Выбор ведомого устройства

Три линии ведущего устройства (за исключением SS) обычно подключаются ко всем подчиненным устройствам, в то время как SS отдельно подключается к индивидуальному ведущему. Следовательно мастер, который имеет 3 ведомых устройства, должен иметь по меньшей мере 3 порта SS. Для выбора ведомого устройства, ведущий выводит LOW на линию, которая подключена к ведомому устройству и выведет HIGH на другие линии. Это означает, что одновременно мастер может связываться с одним ведомым. После завершения связи ведущий выдает HIGH на линию.

Передача данных

Режимы SPI

С соответствии с примерами, имеются 4 режима SPI (0 ~ 3).

spi_overview_02

Команда передачи битов

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

Последовательность передачи

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

spi_overview_03