Рис. 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 определяется устройством с самым коротким полупериодом высокого уровня.
Читайте также
Проектирование системы автоматического управления очистки стекла спортивного самолета
Задачи
по управлению тем или иным явлением или процессом, возникающие в повседневной
практической деятельности человека обширны и многообразны.
Управление
можно определить как совоку ...
Проект внутризоновой ВОЛП на участке Новосибирск—Карасук
Научно-технический
прогресс во многом определяется скоростью передачи информации и ее объемом.
Возможность резкого увеличения объемов передаваемой информации наиболее полно
реализуется ...
Передаточная функция разомкнутой системы
1. Определить
передаточную функцию разомкнутой системы рис.1, представить её в канонической
.форме. Построить её логарифмические частотные характеристики.
2. Оценить
показатели к ...