Skip to main content

Что такое протокол I2C?

Введение в шину I2C (Апрель 2025)

Введение в шину I2C (Апрель 2025)
Anonim

Разработанный Philips в 1980-х годах, I2C стал одним из самых распространенных протоколов последовательной связи в электронике. I2C обеспечивает связь между электронными компонентами или IC-IC, независимо от того, находятся ли компоненты на одной плате или подключены через кабель. Ключевой особенностью I2C является возможность иметь огромное количество компонентов на одной шине связи только с двумя проводами, что делает I2C идеальным для приложений, требующих простоты и низкой стоимости по скорости.

Протокол I2C

I2C - это протокол последовательной связи, который требует только двух сигнальных линий. Он был разработан для связи между микросхемами на печатной плате. Первоначально I2C был разработан для связи 100 Кбит / с, но более быстрые режимы передачи данных были разработаны на протяжении многих лет для достижения скорости до 3,4 Мбит. Протокол I2C был установлен в качестве официального стандарта, который обеспечивает хорошую совместимость между реализациями I2C и хорошую обратную совместимость.

Сигналы I2C

Протокол I2C использует только две двунаправленные сигнальные линии для связи со всеми устройствами на шине I2C. Два используемых сигнала:

  • Линия последовательных данных (SDL)
  • Часы с последовательными данными (SDC)

Причина, по которой I2C может использовать только два сигнала для связи с несколькими периферийными устройствами, заключается в том, как обрабатывается связь по шине. Каждое сообщение I2C начинается с 7-битного (или 10-битного) адреса, который вызывает адрес периферийного устройства, остальное сообщение предназначено для приема связи. Это позволяет нескольким устройствам на шине I2C играть роль ведущего устройства в соответствии с потребностями системы. Чтобы предотвратить конфликты связи, протокол I2C включает в себя возможности обнаружения арбитража и обнаружения конфликтов, которые обеспечивают плавное взаимодействие по шине.

Преимущества и ограничения

Как протокол связи, I2C имеет много преимуществ, которые делают хорошим выбором для многих встроенных приложений проектирования. I2C обладает следующими преимуществами:

  • I2C требует только двух сигнальных линий
  • Гибкие скорости передачи данных
  • Каждое устройство на шине независимо адресуется
  • У устройств есть простые отношения Ведущий / Невольник
  • I2C способен обрабатывать несколько основных сообщений, обеспечивая обнаружение конфликтов и конфликтов
  • Связь на большие расстояния, чем SPI

Со всеми этими преимуществами, I2C также имеет несколько ограничений, которые, возможно, необходимо разрабатывать. Наиболее важные ограничения I2C включают:

  • Поскольку для адресации устройства доступны только 7 бит (или 10 бит), устройства на одной шине могут совместно использовать один и тот же адрес. Некоторые устройства могут конфигурировать последние несколько бит адреса, но это все еще налагает ограничение устройств на одной и той же шине.
  • Доступны только несколько ограниченных скоростей связи, и многие устройства не поддерживают передачу на более высоких скоростях. Частичная поддержка каждой скорости на шине требуется для предотвращения медленных устройств от частичной передачи, что приведет к операционным сбоям.
  • Общий характер шины I2C может привести к тому, что вся шина висит, когда одно устройство на шине перестает работать. Использование шины для шины можно использовать для перезапуска шины и восстановления правильной работы.
  • Поскольку устройства могут устанавливать свою скорость связи, более медленные операционные устройства могут задерживать работу устройств с более высокой скоростью.
  • I2C потребляет больше энергии, чем другие шины последовательной связи из-за топологии открытого стока линий связи.
  • Ограничения шины I2C обычно ограничивают количество устройств на шине примерно до десятка устройств.

Приложения

Шина I2C является отличным вариантом для приложений, для которых требуется низкая стоимость и простая реализация, а не высокая скорость. Например, чтение ICM памяти, доступ к ЦАП и АЦП, считывание датчиков, передача и управление пользовательскими действиями, считывание аппаратных датчиков и связь с несколькими микроконтроллерами являются общими применениями протокола связи I2C.