Протокол передачи данных I2C
Общие сведения
Схема подключения
Обмен данными
SDA
SCL
Подтягивающие резисторы
Ограничение на емкость шины
Электрическая спецификация шины I2C
Особенности I2C
Использование I2C
Спасибо за внимание!
1.04M
Категория: ЭлектроникаЭлектроника

Протокол передачи данных I2C

1. Протокол передачи данных I2C

ПОДГОТОВИЛ СИДОРОВ ДЕНИС ЕВГЕНЬЕВИЧ,
ЛИЦЕЙ №1511, 10 Г КЛАСС

2. Общие сведения

I²C, Inter-Integrated Circuit - последовательная шина обмена данными
между интегральными схемами. Изобретена в начале 80-х, передача
данных осуществляется по двум проводам в обе стороны. Ведущее и
ведомое устройства могут выполнять роль как приёмника, так и
передатчика. Для возможности соединения более двух устройств
используется адресация.
Шина состоит из двух проводов: SDA и SCL.
SDA – для передачи данных,
SCL – для их синхронизации.

3. Схема подключения

Каждое из устройств подключается к SDA
и SCL, которые через подтягивающие
резисторы подключаются к источнику
питания (VCC).
Ведущее устройство называют Master, а
ведомое Slave.

4. Обмен данными

Данные между устройствами передаются в виде сообщений сразу по двум проводам(SDA и SCL).
Сообщения имеют следующую структуру:
Start и Stop - это команды начала и конца сообщения, являются комбинацией сигналов на SDA и
SCL.
Адрес передается по SDA и указывает на то, какому устройству нужно принимать это
сообщение.
Read/Write bit – указывает на то следует передавать или считывать сигнал. Передается по SDA.
ASK/NASK bit – передается по SCL, говорит о том принял или не принял адресат сообщение.
8 Bits – кадр данных, передается по SDA

5. SDA

SDA - Serial Data, линия по которой устройства обмениваются данными и адресами
Ключевые особенности линии SDA:
Двунаправленность: По этому проводу информация передается как от ведущего
устройства (Master, например, микроконтроллер) к ведомому (Slave), так и обратно.
Побитовая передача: Информация передается по 1 биту за один такт синхронизации,
определенный линией SCL.
Управление служебными сигналами: На линии SDA формируются специальные команды
«Старт» и «Стоп». Они определяют начало и конец передачи данных (например, команда
«Старт» — это падение напряжения на линии SDA с высокого уровня на низкий, в то время
как линия SCL остается на высоком уровне).
Передача подтверждения (ASK): На каждый принятый байт ведомое устройство отвечает
на линии SCL сигналом подтверждения, чтобы ведущий знал — данные получены успешно

6. SCL

SCL – Serial Clock, линия по которой главное устройство может узнать получило ли сигнал
ведомое и можно ли продолжать передачу данных по SDA
За что отвечает SCL:
Генерация тактовых импульсов: Устройство-ведущий (Master, например,
микроконтроллер) генерирует на линии SCL последовательность электрических
импульсов
Четкое считывание данных: Каждый импульс на линии SCL соответствует передаче
одного бита информации по второй линии — SDA (Serial Data, линия данных).
Устройства считывают или изменяют данные строго в определенные моменты
(например, по фронту или спаду тактового импульса).
Управление скоростью: Благодаря SCL определяется скорость обмена (например,
стандартный режим 100 кбит/с, быстрый 400 кбит/с или скоростной 3,4 Мбит/с).

7. Подтягивающие резисторы

Они необходимы для выполнения следующих задач:
Формирование логической единицы: Резистор
«подтягивает»
линию
к
источнику
питания,
возвращая её в состояние высокого уровня, когда
ни одно из устройств не передаёт данные (ноль).
Без резисторов напряжение на линии «зависнет» в
неопределённом состоянии.
Заряд паразитной емкости: Провода и дорожки
на
плате
обладают
емкостью.
Резистор
обеспечивает необходимый ток для быстрого
заряда этой емкости, позволяя сигналу нарастать
достаточно быстро для корректного чтения данных.
Защита от короткого замыкания: Если два
устройства попытаются одновременно выдать
разный логический уровень, резистор ограничит
ток до безопасного предела, предотвращая
повреждение портов.

8. Ограничение на емкость шины

Ограничение в 400 пФ связано со скоростью передачи данных. В I2C
сигнал передается по проводам, которые работают как маленькие
конденсаторы. Чем длиннее провод и чем больше устройств к нему
подключено, тем дольше напряжение переключается между нулем и
единицей.
Если емкость превысит 400 пФ, линия будет заряжаться слишком долго.
Фронт сигнала станет «заваленным», и микросхемы перестанут
понимать, где заканчивается ноль и начинается единица.
При превышении емкости приходится сильно снижать скорость работы
шины, иначе данные начнут искажаться, а устройства начнут выдавать
ошибки.

9. Электрическая спецификация шины I2C

Согласно стандарту I2C, на данный момент существует пять режимов
работы шины. Различаются они по максимально возможной скорости
передачи данных, то есть по максимальной частоте тактовых импульсов
SCL.
Режим работы
Максимальная скорость
Standard-Mode (SM)
100кГц
Fast-Mode (FM)
400кГц
Fast-Mode Plus (FM+)
1000кГц
High-Speed-Mode (HsM)
3400кГц
Ultra-Fast-Mode (UFM)
5000кГц

10. Особенности I2C

Плюсы
Минусы
• поддержка сравнительного большого количества
устройств (до 112 единиц)
• сложная прошивка или усложнение аппаратной
части
• даже при большом количестве устройств на
шине для ее реализации достаточно всего двух
линий – SDA и SCL
наличие
битов
подтверждения
снижает
максимальную пропускную способность шины
• на шину легко «повесить» ведомые устройства
разного типа
• одновременная поддержка несколько мастеров
на одной шине
• наличие бита подтверждения
облегчающего обработку ошибок.
(ACK/NACK),
• для нормальной работы шины требуются
подтягивающие резисторы, которые ограничивают
тактовую частоту и занимают место на печатной
плате (что особенно критично в системах с
ограниченным свободным пространством).
• ограничение на ёмкость линии — 400 пФ
• трудность локализации неисправности, если
одно из подключенных устройств ошибочно
устанавливает на шине состояние низкого уровня.

11. Использование I2C

Интерфейс I2C (Inter-Integrated Circuit) используется для связи между микросхемами на
небольшом расстоянии внутри одного устройства. Он позволяет подключить до 112 (реже до
1008) устройств всего по двум проводам: SDA и SCL.
Область применения I2C:
Дисплеи и экраны: Подключение символьных и графических OLED/LCD-экранов, а также
матричных сенсорных панелей.
Материнские платы: Интерфейс I2C используется для считывания параметров
мониторинга (температура, кулеры), управления питанием и модулей памяти SPD на
планках ОЗУ.
Аудиосистемы: Настройка
телевизорах и магнитолах.
В робототехнике, системах Умного дома и IoT (например, в платах Arduino и Raspberry Pi)
I2C служит для подключения гироскопов, акселерометров, датчиков давления, влажности и
освещенности.
Подключение аналого-цифровых (АЦП) и цифро-аналоговых преобразователей (ЦАП).
параметров
звуковых
процессоров
и
эквалайзеров
в

12. Спасибо за внимание!

English     Русский Правила