КОМПЬЮТЕРНОЕ ЖЕЛЕЗО
HARDWARE FOR PC

Вспомогательные последовательные интерфейсы и шины

В обменах участвуют два устройства — ведущее (master) и ведомое (slave). Ведущее и ведомое устройства могут выступать в роли и передатчика, и приемника данных. Протокол допускает наличие на шине не¬скольких ведущих устройств и имеет простой механизм арбитража (разрешения коллизий).
Протокол обмена для обычных устройств F/S иллюстрирует рис. 11.1. Обе сиг¬нальные линии имеют нагрузочные резисторы, «подтягивающие» их уровень к напряжению питания. На устройстве к каждой линии подключен приемник и пе¬редатчик типа «открытый коллектор» («открытый сток»), у ведомого устройства передатчик на линии SCL не обязателен. Все одноименные передатчики соединя¬ются по схеме «Монтажное И»: уровень в линии будет высоким, если все передат¬чики пассивны, и низким, если хоть у одного передатчика выходной транзистор открыт. В покое (Idle, исходное состояние шины) все передатчики пассивны. Син¬хронизацию задает ведущее устройство, но ведомое, если оно не имеет достаточ¬ного быстродействия, может замедлять обмен данными.


Рис. 11.1. Протокол передачи данных I2C
Начало любой передачи — условие Start — инициируется ведущим устройством, убедившимся в том, что шина свободна (высокий уровень сигналов SCL и SDA). Условие Start (на диаграммах обозначается как S)— перевод сигнала SDA из вы¬сокого в низкий при высоком уровне SCL Завершается операция переводом сиг¬нала SDA из низкого уровня в высокий при высоком уровне SCL — условие Stop (обозначается как Р), также вводящееся ведущим устройством. При передаче дан¬ных состояние линии SDA может изменяться только при низком уровне SCL, биты данных считаются действительными во время высокого уровня SCL Ведущее устройство может начать очередную передачу вслед за текущей, не вводя условие

11.1. Последовательные шины на базе I2C
423
Stop, — это называется repeated Start (повторный старт, обозначающийся S г). В про¬токоле условия S и Sr почти равнозначны. Каждая посылка данных состоит из 8 бит данных, формируемых передатчиком (старший бит — MSB — передается первым), после чего передатчик на один такт освобождает линию данных для получения подтверждения.

Hosted by uCoz