I2C vs UART

Сравнение I2C и UART: синхронная и асинхронная передача, адресация, число устройств, провода, скорость и применение.

I2C

  • SDA и SCL
  • Адресная шина
  • Несколько устройств

UART

  • TX и RX
  • Асинхронный обмен
  • Точка-точка

Таблица сравнения

ХарактеристикаI2CUART
СинхронизацияОтдельная линия SCLОбщая согласованная скорость без линии такта
ЛинииSDA и SCL плюс земляTX и RX плюс земля
УстройстваНесколько адресных targetsОбычно два устройства
НаправлениеОбщая двунаправленная SDAРаздельные TX и RX, full-duplex
ЭлектрикаOpen-drain и подтяжкиОбычно push-pull логические уровни
ФорматСтарт, адрес, ACK и данные определены I2CСтартовый бит, данные, parity и стоп, смысл пакетов задает приложение
ПрименениеДатчики и микросхемы на платеКонсоль, GPS, модем и другой контроллер

Что выбрать

Выбирайте I2C, если

  • На плате несколько адресных датчиков.
  • Нужно экономить выводы.
  • Подтяжки и емкость шины рассчитаны.

Выбирайте UART, если

  • Соединяются два устройства.
  • Нужен full-duplex.
  • Обе стороны поддерживают одинаковый baud rate и формат.

I2C удобен как общая шина периферии. UART проще для прямого асинхронного канала между двумя устройствами.