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

Вторая фаза протокола I2C
Мунук / CC BY 2.0 / Wikimedia Commons

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

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

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

Сигналы I2C

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

  • Последовательная линия передачи данных (SDL)
  • Тактовая частота последовательных данных (SDC)

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

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

Преимущества I2C

Как протокол связи I2C имеет следующие преимущества:

  • Гибкие скорости передачи данных.
  • Более дальнее общение, чем SPI.
  • Каждое устройство на шине адресуется независимо.
  • Устройства имеют простую взаимосвязь «первичный / вторичный».
  • Для этого нужны только две сигнальные линии.
  • Он способен обрабатывать несколько первичных коммуникаций, обеспечивая арбитраж и обнаружение конфликтов связи.

Ограничения I2C

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

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

Приложения I2C

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

  • Чтение некоторых микросхем памяти.
  • Доступ к ЦАП и АЦП.
  • Передача и управление действиями, направленными пользователем.
  • Считывание аппаратных датчиков.
  • Связь с несколькими микроконтроллерами.