Автор: Каршов Р.С. Источник: http://scientificmagazine.ru/images/PDF/2017/19/interfejsnaya-shina-i2c.pdf
Каршов Р.С. Интерфейсная шина I2C
Шина I2C очень популярна среди протоколов обмена данных. Используется для обмена информацией между ведущим и ведомым. Процесс обмена информацией осуществляется по двум линиям: данных и синхронизации, что является одним из самых больших преимуществ данного интерфейса.
шина I2C, SDA, SCL, управляющий байт, ведущий, ведомый.
Шина I2C представляет собой стандартный двунаправленный интерфейс, который использует контроллер, известный как ведущий, для связи с ведомыми устройствами. Ведомый может не передавать данные, если он не был адресован мастером. Каждое устройство на шине I2C имеет конкретный адрес устройства для отличия от других устройств, которые находятся на одной шине.
Физический интерфейс I2C состоит из последовательных тактовых импульсов (SCL) и последовательных данных (SDA). Линии SDA и SCL должны быть подключены к VCC через нагрузочный резистор [1]. Размер подтягивающего резистора определяется величиной емкости на линиях I2C. Передача данных может быть инициирована только тогда, когда шина находится в режиме ожидания. Шина считается бездействующей, если обе линии SDA и SCL находятся в состоянии высокого после состояния STOP.
Связь I2C с устройством инициируется ведущим, отправляющим условие START и завершающим условием STOP, представленная на рисунке 1. Переход с высокого уровня на низкий по линии SDA в то время как SCL высокий, определяется как условие START. Переход от низкого к высокому по линии SDA при высоком уровне SCL определяется как STOP [2].
Повторное условие START похоже на состояние START и используется вместо промежуточного STOP. Он выглядит идентично, но отличается от условия START, потому что это происходит до состояния STOP. Это удобно, когда мастер передает новое сообщение, но не хочет, чтобы шина простаивала в состоянии STOP. В этом случае есть шанс того, что мастер потеряет управление шиной.
Управляющий байт – это первый байт, полученный от ведущего устройства следом за условием START, состоящий из 4-битного управляющего кода [3]. Далее идут биты выбора микросхемы, к которой необходимо получить доступ. Завершающий бит управляющего кода определяет, какая операция будет выполнена. Если 1, то операция чтения, если 0 – операция записи. На рисунке 2 показана полная адресация устройства.