I2C - двунаправленная двупроводная шина для соединения микросхем. Шина I2C разработана фирмой Philips и получила широкое распространение. Используется для соединения микросхем, например, микроконтроллерами. Скорость передачи данных - 10-400кбит/с. Для обмена данными требуется лишь 2 провода, при этом используется 7-битное адресное пространство (реже - 10-битное). Учитывая достоинства данной шины, имеет смысл применять в разработке АСУ ТП для подключения разного рода микросхем к управляющим узлам.
К недостаткам I2C можно отнести небольшие расстояния, на которых возможна ее работа. Но данный недостаток устраняется применением специальных микросхем, обеспечивающих возможность обмена данными на расстояниях свыше 1км.
В I2C для обмена данными используются 2 провода - SDA и SCL. SDA - для данных, SCL - для задания тактового сигнала. Линии надо подтягивать резисторами к питанию. Передача данными происходит при низком логическом уровне на шине SCL.
При передаче данных разделяются СТАРТ и СТОП биты. Старт бит соответствует переходу SDA из "1" в "0" при "1" на SCL, а СТОП-бит - при переходе SDA из "0" в "1" при "1" на SCL. Генерация синхросингала на линии SCL является задачей ведущего устройства. Устройства не имеют монопольного права на перевод линии SCL из "0" в "1", таким образом, слейв может удерживать линию в низком уровне до готовности к выполнению необходимых действий. При обмене данными обычно используется 7-битная адресация, то есть из 8 бит первые 7 - адрес устройства, а последний бит - направления посылки, 1 - запись, 0 - чтение.