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

Последовательный периферийный интерфейс SPI (Serial Peripheral Interface) предназначен для связи МК с периферийными устройствами МП- системы, основой которой он является. Часто эти устройства расположены на одной плате с МК, реже – это вынесенные пульты управления, индикаторные панели и т.п. В качестве периферийных устройств могут использоваться сложные периферийные ИС со встроенными контроллерами управления, такие, как ЦАП, АЦП с цифровой фильтрацией, последовательные запоминающие устройства типа FLASH или EEPROM, энергонезависимые ОЗУ и т.д. Рынок периферийных компонентов с интерфейсом, поддерживающим один из протоколов обмена SPI, очень широк.

Рис. Структурная схема сопряжения МК и двух периферийных устройств.

 

В рассматриваемом примере МК является ведущим устройством, он инициирует обмен при передаче информации между МК и одной из периферийных ИС. Каждая из периферийных ИС является ведомым устройством. SPI-шина представлена тремя общими линиями связи (MISO, MOSI, SCK) и двумя линиями выбора ведомого устройства (SS1, SS2), которые индивидуальны для каждой периферийной ИС:

MOSI – линия передачи данных от ведущего к ведомому (Master Output Slave Input).

MISO – линия передачи данных от ведомого к ведущему (Master Input Slave Output).

SCK – линия сигнала стробирования данных.

SS1 и SS2 – линии сигналов выбора ведомого устройства.

 

Из структурной схемы видно, что минисеть на основе интерфейса SPI относится к классу магистрально - радиальных. Линии передачи данных и линия синхронизации являются примером магистральной организации, а линии выбора ведомого устройства – элементом системы радиального типа. Перед началом обмена ведущее устройство отмечает одно ведомое устройство, с которым будет производиться обмен. Для этого на линии выбора устройства SSi устанавливается низкий активный уровень сигнала. Затем ведущее устройство последовательно выставляет на линию MOSI восемь бит информации, сопровождая каждый бит сигналом синхронизации SCK. Ведомое устройство дешифрирует переданный байт информации и определяет, в каком направлении будет производиться дальнейший обмен. Если ведомое устройство должно принимать информацию, то ведущее устройство, не снимая сигнала выбора ведомого SSi, продолжит передачу по линии MOSI. Если ведомое устройство должно передавать информацию, то оно активизирует линию MISO и в ответ на каждый импульс синхронизации от ведущего будет выставлять один бит информации. Длина посылки обмена в общем случае не ограничена и может составлять даже не целое число байтов. Завершение обмена также инициируется ведущим МК установкой в неактивное состояние сигнала выбора ведомого SSi.

Рис. –Схема связи двух МК по интерфейсу SPI

 

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

Скорость обмена устанавливается программно. Максимальная скорость обмена в ведущем режиме не может превышать Fтакт/2, в ведомом – Fтакт.

2.5.3 Синхронный последовательный интерфейс I2C

Приборная двунаправленная двухпроводная асинхронная шина I2C (читается "ай ту си" – Inter Integrated Circuit – между интегральными схемами) разработана для соединения функциональных узлов внутри одного прибора без гальванической развязки. Шина I2C обеспечивает обмен каждого с каждым, с автоматической синхронизацией и выравниваем скоростей обмена по самому медленному устройству, участвующему в обмене. Интерфейс I2C используется также и в ПК как внутренняя вспомогательная шина. Для реализации шины требуется всего два провода:

линия синхронизации – SCL

линия данных – SDA

 

Активный уровень сигнала – низкий. Все устройства образуют на этих линиях схему "монтажного И", могут как читать, так и генерировать сигналы. Необходимый электрический режим линий обеспечивается их подключением через "подтягивающие" резисторы к цепи питания +5 В. Возможно использование ТТЛ, КМОП, или n-МОП цифровых ИС. Допускается суммарная емкость нагрузки линий шины до 400 пФ.

Рис.Электрическое подключение абонентов к шине I2C

Каждое из устройств подключенное к шине I2C может быть запрограммировано для режима работы Master – ведущий или Slave – ведомый. Обычно для управления адаптером шины I2C служит статусный регистр. Используется флаг SI этого регистра. Пока этот флаг находится в состоянии "1", все устройства на шине блокированы, т.к. Master- устройство поддерживает на шине SCL логический "0". В это время Master- устройствоможет быть занято обработкой информации и подготовкой ее для передачи. Затем флаг SI сбрасывается и тем самым запускается в действие операция обмена информацией.