Серийный и SPI

В чем разница между SPI и serial? Читая статью о межпроцессорной связи, говорится, что последовательные интерфейсы заменяются SPI для лучшего/более быстрого обмена сообщениями? В чем же разница?

Ответ 1

Слово "серийный" мало значит. Но я предполагаю, что вы говорите о традиционных стандартах последовательной связи. Что принципиально отличается от SPI, так это то, что оно синхронно. В отличие от, скажем, RS-232, стандарта асинхронной сигнализации.

Важным свойством асинхронной сигнализации является скорость передачи, частота, с которой отправляются биты в байте. Ресивер должен выполнить дополнительную работу, чтобы восстановить часы, которые были использованы передатчиком. Типичный UART делает это путем субсэмплирования сигнала со скоростью в 16 раз по скорости. Начальный бит важен, что синхронизирует часы субсэмплирования. Задержки между байтами могут быть произвольными, приемник повторно синхронизируется для каждого отдельного байта. Проблемы с этой схемой - несоответствие между передатчиком и частотами приемника и джиттером синхронизации, эффективно ограничивая скорость передачи.

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

enter image description here

SCLK - это тактовый сигнал. MOSI и MISO несут данные, SS - сигнал выбора микросхемы. Предполагается общая предпосылка. Подробнее об этом в Статья в Википедии. electronics.stackexchange.com - хороший сайт, чтобы задать больше вопросов.

Ответ 2

SPI - это протокол двунаправленных данных. Разница заключается в том, что SPI использует обмен двоичными данными. И UART использует ASCII, что значительно замедляет передачу данных.

Ответ 3

предыдущий ответ несколько вводит в заблуждение.

SPI и UART передают двоичные данные в виде байтов и/или слов в зависимости от аппаратного обеспечения. Как объяснялось выше, одно синхронно, а одно - асинхронно. Оба требуют, чтобы дополнительная строка данных была двунаправленной. ASCII - это согласованная интерпретация двоичных данных и на самом деле не является фактором.