Обзор и преимущества шины I2C

Разработанный 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 требует только две сигнальные линии
  • Гибкие скорости передачи данных
  • Каждое устройство в шине является независимо адресуемым
  • Устройства имеют простое отношение Master / Slave
  • I2C способен обрабатывать несколько основных коммуникаций, обеспечивая арбитраж и обнаружение коллизий связи
  • Более дальняя связь, чем у SPI

Ограничения

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

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

    Приложения

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

    Ссылка на основную публикацию