Это линия тактового сигнала, используемая для синхронизации передачи данных и выполняющая те же функции, что и линия SCK в протоколе SPI. Однако линия SCL является двунаправленной — это позволяет различным ведущим устройствам захватывать управление ею в разные моменты времени.
Изначально в спецификации I2С максимальная скорость передачи была ограничена на уровне 100 Кбит/с (частота сигнала SCL — 100 кГц), однако в 1993 году спецификация была дополнена высокоскоростным режимом Fast, обеспечивающим скорость передачи до 400 Кбит/с, который в настоящее время стал стандартом де-факто. В 1998 году был введен режим High-Speed, обеспечивающий скорость передачи до 3.4 Мбит/с.
∙ SDA
Это линия данных, позволяющая передавать данные в обоих направлениях — как от ведущего к ведомому (ведущий-передатчик), так и от ведомого к ведущему (ведущий-приемник). Более того, наличие двунаправленной линии позволяет приемнику отсылать свое состояние передатчику после передачи каждого байта.
Рис. 12.13.
Протокол I2С достаточно сложен, и полную его спецификацию можно найти на сайте компании Philips Corporation[156]. Прежде чем перейти к изучению основ этого протокола, рассмотрим подробнее работу линий SDA и SCL. В отсутствие передаваемых данных на обеих линиях присутствует ВЫСОКИЙ уровень (состояние ожидания). Устройство, собирающееся захватить управление шиной, находящейся в состоянии ожидания, должно выставить на вывод SDA НИЗКИЙ уровень. Такое состояние шины называется состоянием СТАРТ. Чтобы любое устройство, желающее стать ведущим, могло выставить на эту линию НИЗКИЙ уровень, выводы SDA всех остальных устройств, подключенных к шине, должны быть «отключены» от линии, а сама линия шины должна быть подтянута внешним резистором до напряжения ВЫСОКОГО уровня (см. Рис. 12.14,
Помимо формирования состояния СТАРТ, ведущий должен генерировать тактовый сигнал, а также передавать значение адреса другим устройствам на шине для установления соединения с одним или более ведущими устройствами. Один из битов в байте адреса используется для того, чтобы сообщить ведомому, какая посылка ожидается далее: от ведущего к ведомому (ведущий-передатчик) или от ведомого к ведущему (ведущий-приемник).
Каждый пакет, передаваемый по шине, состоит из девяти битов. Восемь из них представляют собой байт данных, синхронизируемый тактовым сигналом. Состояние линии SDA должно изменяться только при НИЗКОМ уровне на линии SCL. Данные считываются приемником по следующему спадающему фронту сигнала SCL. Эти байты могут являться адресом или управляющей информацией, посылаемой ведущим, или же данными, передаваемыми как ведущим, так и ведомым. В протоколе I2С предусмотрен механизм
В качестве менее радикального способа ведомое устройство может удерживать линию тактового сигнала в состоянии НИЗКОГО уровня.