Рис. 2.9 - Последовательность передачи данных ведущим и ведомым
Когда ведущий не желает освобождать шину (выставив STOP), он должен выставить повторный старт, который идентичен START (переход SDA из из высокого уровня в низкий при высоком уровне SCL), но выдается вслед за подтверждением, т.е. шина не освобождена. Это позволяет ведущему посылать команды ведомому и затем принимать запрошенную информацию или адресовать различные ведомые устройства. Подобный механизм показан на рисунке 2.10.
Рис. 2.10 - Работа при конкуренции
Протокол I2C допускает наличие больше одного ведущего в системе. Это называется конкуренцией. Когда два или больше ведущих пытаются передать данные одновременно, необходимы арбитраж и синхронизация.
Арбитраж. Арбитраж осуществляется на шине данных SDA, пока на SCL высокий уровень. Ведущий, который выдает высокий уровень, когда другой ведущий выдает низкий уровень, теряет арбитраж и отключает свою линию данных, но может продолжать выдавать тактовый сигнал до конца байта, при попытке передачи которого ведущий потерял арбитраж. Когда несколько ведущих обращаются к одному ведомому, арбитраж происходит при передачи данных.
Ведущие, которые включают функции ведомых и потеряли арбитраж, должны сразу же переключиться в режим ведомого, поскольку выигравший арбитраж ведущий может обратиться к одному из них.
Арбитраж не допускается между повторными START-ми, STOP и битом данных и повторным START и STOP. Ведущий должен обеспечить невозможность возникновения приведенных условий.
Синхронизация тактовых сигналов.
Синхронизация тактовых сигналов начинается, когда устройства начинают арбитраж, и реализуется благодаря использованию "монтажного И" соединения с SCL.
Переход SCL из высокого уровня в низкий заставляет все устройства, вовлеченные в арбитраж, начинать отсчет длительности низкого уровня. После того, как тактовый сигнал устройства перешел в низкий уровень, оно будет удерживать этот уровень на SCL до тех пор, пока тактовый сигнал не перейдет в высокий уровень, но при этом на SCL может по прежнему сохраняться низкий уровень, если уровень тактового сигнала другого устройства все еще низкий. Низкий уровень на SCL удерживается устройством с самым длинным полупериодом низкого уровня.
Устройство с более коротким полупериодом выдают высокий уровень на SCL и переходят в состояние ожидания до тех пор, пока на SCL не появится высокий уровень. После этого все устройства начинают отсчет длительности высокого уровня. Устройства с самым коротким полупериодом высокого уровня по завершении его переведет SCL в низкий уровень. Длительность высокого уровня на SCL определяется устройством с самым коротким полупериодом высокого уровня.
Читайте также
Проект участка сети доступа по технологии PON г. Новосибирска
Современное
общество - информационное общество. Жизнь и деятельность человека неразрывно
связана с информацией, ее хранением, передачей и обработкой, Объем данных
передаваемых по канала ...
Проектирование сетевого оборудования NGN
В настоящее время всё чаще встречаются публикации, посвящённые коренному
преобразованию ТфОП и переходу к сети следующего поколения (NGN). Она позиционируется как
универсальная сеть, спо ...
Проектирование РЭА
При конструкторском проектировании РЭА (радиоэлектронной
аппаратуры) решаются задачи, связанные с поиском наилучшего варианта
конструкции, удовлетворяющего требованиям технического задан ...