Содержание
- 2. Последовательный периферийный интерфейс − Serial Peripheral Interface или SPI-интерфейс. Данный интерфейс используется для работы с различными
- 3. SPI представляет собой четырехпроводную синхронную шину, предназначенную для последовательного обмена данными между микросхемами. SPI представляет собой
- 4. Рисунок 2 – Временная диаграмма работы интерфейса SPI При подаче импульсов синхронизации на выход SCK, данные
- 5. Схемы соединений по SPI Типовая схема соединения устройств по SPI (рисунок 3). К ведущему все ведомые
- 6. Рисунок 4 – Каскадная схема соединения устройств по SPI-интерфейсу Как видно из рисунка 4, в каскадной
- 7. Сокращенный (однонаправленны) вариант схемы подключения устройств по SPI (рисунок 5). Рисунок 5 – Сокращенная схема соединения
- 8. Протокол обмена по SPI Протокол обмена по SPI аналогичен логике работы сдвигового регистра и заключается в
- 9. SPI mode 1 CPOL = 0, CPHA=1. Тактовый сигнал начинается с уровня логического нуля. Смена данных
- 10. SPI mode 3 CPOL = 1, CPHA=1. Тактовый сигнал начинается с уровня логической единицы. Смена данных
- 11. Цепи SPI в лабораторном стенде UNI-DS3 Рисунок 10 – Использование интерфейса SPI в лабораторном стенде UNI-DS3.
- 12. Интерфейсная шина I2C
- 13. Двухпроводный последовательный интерфейс I2C (Inter-Integrated Circuit) — последовательная шина данных для связи интегральных схем. Протокол передачи
- 14. Таблица 1 − Основные технические характеристики шины I2С (спецификация 1.0) В таблице 2 представлены основные термины,
- 15. При передаче данных одно устройство является "Ведущим" (Master), которое инициирует передачу данных и формирует сигналы синхронизации.
- 16. Физический уровень. Данные передаются по двум проводам — провод данных SDA и провод синхронизации SCL. Выходы
- 17. Совместимость является важной технической характеристикой шины. Ранее разработанные элементы, обладающие только возможностями низкоскоростного обмена, должны без
- 18. Протокол обмена данными Передача любого бита по шине происходит при условии стробирования данных SDA по линии
- 19. Рисунок 18 − Условие STOP Рисунок 17 − Условие START Состояние СТАРТ и СТОП Процедура обмена
- 20. Передача данных После отработки состояния Start передатчик последовательно выставляет на линии SDA данные, начиная со старшего
- 21. В случае неподтверждения нормального приема (сигнал АСК имеет высокий уровень) передатчику желательно выполнить условие Stop и
- 22. Формат (протокол) передачи данных — набор соглашений интерфейса логического уровня, которые определяют обмен данными между различными
- 23. Адресация устройств на шине I2С Рисунок 23 − Формат протокола шины I2C MASTER транслирует данные на
- 24. Формат кадра при 7-битной адресации, предполагает передачу SLAVE-адреса 7 битами, а восьмой бит должен содержать признак
- 25. Общий вызов может адресовать все устройства, подключенные к шине I2С. При получении общего вызова устройства должны
- 26. При использовании 10-и разрядного формата передается два байта. В первом байте передается: пять битов, определяющих, что
- 27. На рисунке 30 приведен формат передачи данных от SLAVE-абонента к MASTER-устройству. Рисунок 30 − Передача данных
- 28. Рисунок 31 − Комбинированный формат. MASTER-абонент адресует SLAVE-устройство с 10-разрядным адресом, затем передает данные и читает
- 30. Скачать презентацию
Последовательный периферийный интерфейс − Serial Peripheral Interface или SPI-интерфейс.
Данный интерфейс
Последовательный периферийный интерфейс − Serial Peripheral Interface или SPI-интерфейс.
Данный интерфейс
Последовательный периферийный интерфейс
Интерфейс был разработан компанией Motorola, но в настоящий момент используется всеми производителями. Данный интерфейс отличают простота использования и реализации, высокая скорость обмена, но малая дальность действия.
При любом обмене данными по интерфейсу SPI одно из устройств является ведущим (Master'ом), а другое ведомым (Slave'ом). Обычно (но не всегда) в роли ведущего выступает микроконтроллер.
Ведущий переводит ведомое (периферийное) устройство в активное состояние и формирует тактовый сигнал и данные. В ответ ведомое устройство передает ведущему свои данные. Передача данных в обе стороны (дуплексная) происходит синхронно с тактовым сигналом.
SPI представляет собой четырехпроводную синхронную шину, предназначенную для последовательного обмена данными
SPI представляет собой четырехпроводную синхронную шину, предназначенную для последовательного обмена данными
SPI представляет собой соединение двух (или более) синхронных сдвиговых регистров, которые являются центральным элементом любого SPI устройства. Для соединения используется конфигурацию ведущий/ведомый.
Рисунок 1 – Структурная схема интерфейса SPI
Сигналы, используемые данным интерфейсом, имеют следующее назначение:
MOSI — Master Output / Slave Input. Выход ведущего / вход ведомого. Служит для передачи данных от ведущего устройства к ведомому.
MISO – Master Input / Slave Output. Вход ведущего / выход ведомого. Служит для передачи данных от ведомого устройства к ведущему.
SLK — Serial Clock. Сигнал синхронизации. Служит для передачи тактового сигнала всем ведомым устройствам.
SS — Slave Select. Выбор ведомого. Служит для выбора ведомого устройства.
Производители микросхем часто используют другие названия для этих сигналов.
Альтернативные варианты могут быть такими:
MOSI – DO, SDO, DOUT. MISO – DI, SDI, DIN. SCK – CLK, SCLK. SS – CS, SYNC.
Рисунок 2 – Временная диаграмма работы интерфейса SPI
При подаче импульсов синхронизации
Рисунок 2 – Временная диаграмма работы интерфейса SPI
При подаче импульсов синхронизации
Таким образом, если подать количество импульсов синхронизации соответствующее разрядности сдвигового регистра, то данные в обоих регистрах обменяются местами. Отсюда следует что SPI всегда работает в полнодуплексном режиме.
Контроллер SPI, как правило, реализуется специальным периферийным блоком в микроконтроллере. В большинстве чипов он программируется и может работать как в режиме ведущего, так и в режиме ведомого.
Схемы соединений по SPI
Типовая схема соединения устройств по SPI (рисунок 3).
Схемы соединений по SPI
Типовая схема соединения устройств по SPI (рисунок 3).
К ведущему все ведомые подключаются параллельно, за исключением сигнала выбора ведомого (SSх). Для каждого ведомого необходим отдельный сигнал выбора ведомого (рисунок 3, а). Для сигналов выбора ведомого могут использоваться как специально предназначенные для этого выходы SPI-контроллера, так и порты ввода/вывода общего назначения (GPIO) микроконтроллера.
Частным случаем независимого подключения является вариант с одним единственным ведомым (рисунок 3, б). Крайне не рекомендуется подтягивать сигнал SS к земле, чтобы устройство всегда было в активном состоянии, так как ведомое устройство может использовать сигнал SS для инициализации или для других служебных целей.
Рисунок 3 – Типовая схема соединения устройств по SPI-интерфейсу
а)
б)
Рисунок 4 – Каскадная схема соединения устройств по SPI-интерфейсу
Как видно из
Рисунок 4 – Каскадная схема соединения устройств по SPI-интерфейсу
Как видно из
Основное неудобство при независимом подключении ведомых (см. рисунок 3) в том, что для каждого из ведомых необходим отдельный сигнал выбора ведомого (SS).
Каскадная схема подключения, в зарубежной литературе называемая «daisy-chain» (можно перевести как «гирлянда»), лишена такого недостатка. Каскадная схема подключения устройств по SPI (рисунок 4).
Сокращенный (однонаправленны) вариант схемы подключения устройств по SPI (рисунок 5).
Рисунок 5
Сокращенный (однонаправленны) вариант схемы подключения устройств по SPI (рисунок 5).
Рисунок 5
Сокращенный вариант схемы подключения, когда линия MOSI или MISO не используется, то есть передача данных осуществляется только в одну сторону используются, например, при подключении к микроконтроллеру внешних микросхем ЦАП и АЦП.
Протокол обмена по SPI
Протокол обмена по SPI аналогичен логике работы сдвигового
Протокол обмена по SPI
Протокол обмена по SPI аналогичен логике работы сдвигового
Установка данных и выборка осуществляется по противоположным фронтам тактового сигнала.
Спецификация SPI предусматривает 4 режима передачи данных, которые отличаются между собой соотношением фазы и полярности тактового сигнала и передаваемых данных.
Эти режимы описываются двумя параметрами:
CPOL – clock polarity. Полярность тактового сигнала — определяет исходный уровень сигнала синхронизации
CPHA – clock phase. Фаза тактового сигнала — определяет последовательность установки и выборки данных.
SPI mode 0
CPOL = 0, CPHA=0. Тактовый сигнал начинается с уровня логического нуля. Защелкивание данных выполняется по нарастающему фронту. Смена данных происходит по падающему фронту. Моменты защелкивание данных показаны на рисунках стрелочками
Рисунок 6 – Временная диаграмма работы SPI-интерфейса в режиме mode 0.
SPI mode 1
CPOL = 0, CPHA=1. Тактовый сигнал начинается с уровня
SPI mode 1
CPOL = 0, CPHA=1. Тактовый сигнал начинается с уровня
Рисунок 7 – Временная диаграмма работы SPI-интерфейса в режиме mode 1.
SPI mode 2
CPOL = 1, CPHA=0. Тактовый сигнал начинается с уровня логической единицы. Защелкивание данных выполняется по падающему фронту. Смена данных выполняется по нарастающему фронту тактового сигнала.
Рисунок 8 – Временная диаграмма работы SPI-интерфейса в режиме mode 2.
SPI mode 3
CPOL = 1, CPHA=1. Тактовый сигнал начинается с уровня
SPI mode 3
CPOL = 1, CPHA=1. Тактовый сигнал начинается с уровня
Рисунок 9 – Временная диаграмма работы SPI-интерфейса в режиме mode 3.
Современные микроконтроллеры поддерживают все четыре режима работы SPI.
Стоит отметить, что:
передача данных по SPI может происходить как старшим битом вперед, так и младшим.
количество байт передаваемых за время удержания сигнала выбора (SS) ничем не ограничено и определяется спецификацией используемого ведомого устройства.
в спецификации на ведомое устройство указываются:
поддерживаемые режимы работы SPI,
максимальная частота тактового сигнала,
содержимое передаваемых или принимаемых данных.
Цепи SPI в лабораторном стенде UNI-DS3
Рисунок 10 – Использование интерфейса SPI
Цепи SPI в лабораторном стенде UNI-DS3
Рисунок 10 – Использование интерфейса SPI
Интерфейсная шина
I2C
Интерфейсная шина
I2C
Двухпроводный последовательный интерфейс I2C (Inter-Integrated Circuit) — последовательная шина данных для
Двухпроводный последовательный интерфейс I2C (Inter-Integrated Circuit) — последовательная шина данных для
режим медленной передачи (low-speed) 100 кбит/с, режим быстрой передачи (fast-speed) со скоростью до 400 кбит/с и быстродействующий режим (Hs-mode) со скоростью передачи до 3,4 Мбит/с. Также имеются режимы 7-и и 10-и битной адресации.
По всему миру интерфейс I2С стал международным стандартом. Было разработано более 1000 интегральных схем, лицензия на официальное использование спецификации приобретена более чем 50 фирмами. Полная гамма микросхем с интерфейсом I2С, выпускаемых фирмой, насчитывает в настоящее время более 150 наименований, выполненных с применением как перспективной КМОП-технологии, так и с уже ставшей традиционной — биполярной.
Важнейшим критерием, определяющим возможность использования той или иной коммуникационной шины, является спектр её технических характеристик.
Шина I2С относится к классу двунаправленных асинхронных шин с последовательной передачей данных и, как следствие, обладает достаточно низкой пропускной способностью. Поэтому её почти не используют в составе персональных компьютеров, а только как вспомогательную для идентификации установленных устройств.
Наибольшее применение шина I2C нашла для согласования работы устройств, наполняющих изделия бытовой и встроенной техники, где она вполне годится.
Основные технические характеристики шины I2С по спецификации 1.0 приведены в таблице 1.
Двухпроводный последовательный интерфейс
Таблица 1 − Основные технические характеристики шины I2С (спецификация 1.0)
В таблице
Таблица 1 − Основные технические характеристики шины I2С (спецификация 1.0)
В таблице
Таблица 2 − Основные термины, связанные с шиной I2С
При передаче данных одно устройство является "Ведущим" (Master), которое инициирует передачу
При передаче данных одно устройство является "Ведущим" (Master), которое инициирует передачу
Рисунок 11 − Master-организация шины I2С
Рисунок 12 − Пример взаимодействия устройств на шине I2С
Рисунок 13 − Multi-master организация шины I2С
Спецификация I2C в принципе поддерживает режим multi-master (рисунок 13), когда к одной шине подключено несколько master-устройств. Но этот режим используется в аппаратуре нечасто из-за сложности доступа к шине, так как на шине может совершать операции только одно master-устройство, остальные «мастера» обязаны отключаться. В противном случае возникает ситуация, называемая шинным конфликтом. Из-за которого информация может попросту не дойти до адресата и нарушится работа устройства.
Для того чтобы исключить шинные конфликты, в режиме multi-master должны содержаться процедуры арбитража и синхронизации, устанавливающие порядок работы master-устройств.
Физический уровень.
Данные передаются по двум проводам — провод данных SDA и
Физический уровень.
Данные передаются по двум проводам — провод данных SDA и
Выходы устройства формирующего сигналы данных (SDA) и синхронизации (SCL) должны быть типа «открытый коллектор», чтобы выполнять требования "монтажного И" на шине.
Для формирования высокого уровня сигнала на линиях к ним подключаются подтягивающие резисторы.
Число устройств, которые могут быть подключены к шине I2С, ограничивается только максимальной емкостью шины (400 пФ) и способностью адресации этих устройств.
Рисунок 14 – Схема подключения устройств в шине I2C
Такты синхронизации генерирует ведущий (master), ведомый (slave) выдает сигнал подтверждения при приеме байта.
Всего на одной двухпроводной шине может быть до 127 устройств.
Совместимость является важной технической характеристикой шины. Ранее разработанные элементы, обладающие только
Совместимость является важной технической характеристикой шины. Ранее разработанные элементы, обладающие только
Таблица 3. Скорость обмена данными в совмещенных шинах
Совместимость
Шина I2С также позволяет совмещать устройства с разными напряжениями питания как показано на рисунке 15.
Рисунок 15 − Соединение элементов с разными напряжениями питания
Протокол обмена данными
Передача любого бита по шине происходит при условии стробирования
Протокол обмена данными
Передача любого бита по шине происходит при условии стробирования
Slave-устройство фиксирует этот бит только тогда, когда на линии SCL произойдет перепад сигнала из низкого уровня в высокий (так называемый положительный перепад).
Отсюда следует первое правило организации протокола шины: смена информации на линии SDA может быть произведена только при нулевом состоянии линии SCL.
В исходном состоянии оба сигнала SDA и SCL находятся в высоком состоянии.
Для распознавания начала и конца передачи в спецификацию шины были введены специальные условия СТАРТ (Start) и СТОП (Stop). В фирменной документации условие Start имеет условное сокращение «S», условие Stop — «Р».
Рисунок 16 − Передача бита по шине 12С
Рисунок 18 − Условие STOP
Рисунок 17 − Условие START
Состояние СТАРТ и
Рисунок 18 − Условие STOP
Рисунок 17 − Условие START
Состояние СТАРТ и
Процедура обмена начинается с того, что ведущий формирует состояние СТАРТ — ведущий генерирует переход сигнала линии SDA из ВЫСОКОГО состояния в НИЗКОЕ при ВЫСОКОМ уровне на линии SCL (рисунок 17). Этот переход воспринимается всеми устройствами, подключенными к шине как признак начала процедуры обмена.
Условие СТОП возникает при положительном перепаде линии SDA при единичном состоянии линии SCL (рисунок 18).
Состояния СТАРТ и СТОП всегда должны генерироваться master-устройствами.
Укрупненно информационный пакет, передаваемый по шине I2С, выглядит так, как показано на рисунок 19.
Рисунок 19 − Информационный пакет данных на шине I2С
Передача данных
После отработки состояния Start передатчик последовательно выставляет на линии SDA
Передача данных
После отработки состояния Start передатчик последовательно выставляет на линии SDA
На 9-м такте следует сигнал подтверждения (acknowledge). Сигнал подтверждения свидетельствует о том, что данные нормально приняты и обработаны (рисунок 20).
В фирменной документации состояние acknowledge условно именуется буквой «А», а в другой литературе ACK.
Рисунок 20 − Передача байта по шине I2С с приемом сигнала подтверждения
Когда ведущий шины принимает данные, то на каждый принимаемый байт формируется бит подтверждения, если принятый байт не последний.
Для сообщения ведомому о том, что ведущий прекращает принимать данные по приему последнего байта АСК не формируется. Ведомый отпускает SDA, чтобы ведущий смог передать бит STOP. Ведущий может формировать бит STOP на месте бита подтверждения.
В случае неподтверждения нормального приема (сигнал АСК имеет высокий уровень) передатчику
В случае неподтверждения нормального приема (сигнал АСК имеет высокий уровень) передатчику
Также может возникнуть ситуация связанная с задержкой обработки данных у slave-абонента при получении сигнала подтверждения (ACK), как показано на рисунок 22.
Рисунок 22 − Задержка состояния acknowledge
Задержка освобождения линии SDA не свидетельствует о неправильном обмене информацией, поэтому master-абоненту достаточно дождаться окончания АСК и продолжить передачу.
Если ведомому необходимо задержать передачу данных, то он может удерживать SCL в низком логическом уровне. Передача данных продолжится, когда ведомый отпустит SCL. Это позволяет ведомому подготовить новые данные для передачи.
Рисунок 21 − Передача байта по шине I2С с отсутствием сигнала подтверждения
Формат (протокол) передачи данных — набор соглашений интерфейса логического уровня, которые
Формат (протокол) передачи данных — набор соглашений интерфейса логического уровня, которые
Эти соглашения задают единообразный способ передачи сообщений и обработки ошибок при взаимодействии программного обеспечения разнесённой в пространстве аппаратуры, соединённой тем или иным интерфейсом.
Каждое устройство на шине I2C должно иметь свой уникальный адрес, но которому к нему можно обратиться.
Адрес устройства всегда располагается в определенном месте (в определенных ячейках внутренней памяти).
Адрес может быть назначен, а может быть жёстко определен.
На шине I2С адреса устройств, называемые SAVE-адресами, жёстко определены при изготовлении микросхем и не подлежат переназначению, то есть модификации. Иногда, для некоторых микросхем переназначить адрес можно (это делается с помощью 2—3 бит, которые нужно предварительно определить аппаратно, то есть установить перемычки на соответствующие выводы).
Значение SLAVE-адреса можно узнать из документации на соответствующую микросхему.
Так как все абоненты шины обмениваются данными только по линиям SDA и SCL, то в момент начала передачи все SLAVE-абоненты «слушают» линию на предмет опознавания своего SLAVE-адреса. Опознавший свой адрес абонент продолжает прием данных и выдачу сигналов АСК, остальные только следят за моментом выдачи состояния STOP.
Форматы передачи данных на шине I2C
Для адресации устройств на шине I2C используется два формата адреса:
7-разрядный формат с битом чтения/записи R/W;
10-разрядный формат (передаются два байта)
Адресация устройств на шине I2С
Рисунок 23 − Формат протокола шины I2C
MASTER
Адресация устройств на шине I2С
Рисунок 23 − Формат протокола шины I2C
MASTER
MASTER читает данные от SLAVE;
комбинированный формат передачи(записи)/чтения.
Возможны три формата передачи:
Формат кадра при 7-битной адресации, предполагает передачу SLAVE-адреса 7 битами, а
Формат кадра при 7-битной адресации, предполагает передачу SLAVE-адреса 7 битами, а
При 7-битной адресации на шине может присутствовать только 128 устройств с уникальными адресами. Фактически устройств меньше, так как некоторые адреса зарезервированы под некоторые служебные функции.
На рисунке 24 представлен формат передачи данных от MASTER-устройства к SLAVE-абоненту.
Рисунок 24 - MASTER транслирует данные на SLAVE
Рисунок 25 - MASTER читает данные от SLAVE
Обратите внимание: после чтения информационного байта DATA MASTER-абонент обязан подтвердить получение байта сигналом АСК.
Комбинированные форматы используются для работы с последовательной памятью (для сокращения времени доступа к данным).
7-и разрядный формат
Рисунок 26 − Комбинированный формат
Единственное новшество, введенное в комбинированный формат — повторное условие START (repeated Start condition), обозначаемое на рисунке 4 сокращением «Sr». После него можно обратиться к другому устройству не освобождая шину.
Общий вызов может адресовать все устройства, подключенные к шине I2С.
При получении
Общий вызов может адресовать все устройства, подключенные к шине I2С.
При получении
Если же устройство выполнено так, что обязательно требует данных общего вызова, оно ведет себя точно так же, как обыкновенный SLAVE-абонент. Второй байт, следующий за общим вызовом, обычно содержит информационную часть. На рисунке 6 представлен формат общего вызова.
Рисунок 27 − Структура кадра общего вызова
Обратите внимание — информационная часть содержит бит В, который в сочетании с битами 7...1 (обозначенными на рис. 6 символом «X») регламентирует назначение информации, передаваемой в данном случае. Регламентируются следующие комбинации:
0000 011 0 (06h) — аппаратный сброс. При получении этой комбинации все абоненты, реагирующие на общий вызов, производят внутренний сброс (рестарт), но аппаратный сброс этих абонентов не должен блокировать шину;
0000 010 0 (04h) — запись программируемой части адреса SLAVE-абонента с помощью аппаратных средств. Все абоненты, ответившие на этот адрес, будут блокированы и не смогут быть сброшены;
0000 000 0 (00h) — этот код запрещается использовать;
ХХХХ ХХХ 1 — используется, когда на шине присутствует много совмещенных MASTER/SLAVE-абонентов. В таких случаях часто необходимо генерировать запрос об адресе устройства, которому должна быть передана информация. К примеру, устройство «А», получив от устройства «Б» данные, обработав их, передает информацию устройству «В» вместе с собственным адресом (обычно адреса «MASTER/SLAVE» в совмещенных абонентах совпадают).
При использовании 10-и разрядного формата передается два байта.
В первом байте
При использовании 10-и разрядного формата передается два байта.
В первом байте
Рисунок 28 − 10-и битный формат протокола I2C
Рисунок 29 − Передача данных от MASTER-абонента к SALVE-устройству
Адресация с помощью 10 разрядов аналогична 7-и разрядной адресации.
Устройство, получив служебный код в первом байте и опознав возможность приема 10-разрядного адреса, подтверждает это и принимает второй байт.
При совпадении принятого адреса с содержащимся внутри устройства собственным адресом выдается подтверждение АСК и ведется прием данных в обычном режиме до появления состояния SТOP.
На рисунке 29 показан формат передачи данных от MASTER-абонента к SLAVE-устройству.
10-и разрядный формат
На рисунке 30 приведен формат передачи данных от SLAVE-абонента к MASTER-устройству.
Рисунок
На рисунке 30 приведен формат передачи данных от SLAVE-абонента к MASTER-устройству.
Рисунок
Вначале MASTER-устройство первым байтом адресует все SLAVE-абоненты соответствующим кодом, и они подтверждают его получение сигналом АСК (А1).
Затем вторым байтом адресуется конкретное устройство с выдачей сигнала АСК (А2).
После выполнения условия «повторный START» (Sr) адресованное SLAVE-устройство сохраняет возможность обращаться к нему, поэтому достаточно повторить первый байт адреса, но уже с другим значением бита R/W и получить АСК (АЗ).
Рисунок 31 − Комбинированный формат. MASTER-абонент адресует SLAVE-устройство с 10-разрядным адресом,
Рисунок 31 − Комбинированный формат. MASTER-абонент адресует SLAVE-устройство с 10-разрядным адресом,
Рисунок 32 − Комбинированный формат. MASTER-устройство передает данные двум SLAVE-абонентам с 10-разрядным адресом
Рисунок 33 − Комбинированный формат. MASTER-абонент передает данные двум SLAVE-устройствам: одному с 7-разрядиым адресом, а другому с 10-разрядным адресом
Комбинированный 10-и разрядный режим