Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по интерфейсам ИС 2.doc
Скачиваний:
27
Добавлен:
20.11.2019
Размер:
2.33 Mб
Скачать

Концепция шины i2c

Шина I2C поддерживает любую технологию изготовления микросхем (НМОП, КМОП, биполярную). Две линии, данных (SDA) и синхронизации (SCL) служат для переноса информации. Каждое устройство распознается по уникальному адресу - будь то микроконтроллер, ЖКИ буфер, память или интерфейс клавиатуры - и может работать как передатчик или приёмник, в зависимости от назначения устройства. Обычно ЖКИ буфер - только приёмник, а память может как принимать, так и передавать данные. Кроме того, устройства могут быть классифицированы как ведущие и ведомые при передаче данных. Ведущий - это устройство, которое инициирует передачу данных и вырабатывает сигналы синхронизации. При этом любое адресуемое устройство считается ведомым по отношению к ведущему.

Термин (англ)

Термин (рус)

Описание

Transmitter

Передатчик

Устройство, посылающее данные в шину

Receiver

Приемник

Устройство, принимающее с шины

Master

Ведущий

Начинает пересылку данных, вырабатывает синхроимпульсы, заканчивает пересылку данных

Slave

Ведомый

Устройство, адресуемое ведущим

Multi-master

-

Несколько ведущих могут пытаться захватить шину одновременно, без нарушения передаваемой информации

Arbitration

Арбитраж

Процедура, обеспечивающая Multi-master

Synchronization

Синхр.

Процедура синхронизации двух устройств

Рисунок 1. Пример конфигурации шины I2C с двумя микроконтроллерами

Микроконтроллер А

Массив

ЖКИ драйвер

АЦП

Статическая ОЗУ или ППЗУ

Микроконтроллер B

Шина I2C допускает несколько ведущих. Это означает, что более чем одно устройство, способное управлять шиной, может быть подключено к ней. Поскольку в качестве ведущих обычно выступают микроконтроллеры, давайте рассмотрим пример пересылки данных между двумя микроконтроллерами, подключенными к шине (рис 1). Пример покажет взаимоотношения передатчик-приемник и ведущий-ведомый, существующие в шине I2C. Необходимо заметить, что эти отношения не постоянны, а зависят только от направления пересылки данных в данный момент времени. Пересылка данных будет происходить следующим образом:

Пусть микроконтроллер А желает послать информацию в микроконтроллер В:

микроконтроллер А (ведущий) адресует микроконтроллер В (ведомый)

микроконтроллер А (ведущий-передатчик) посылает данные микроконтроллеру В (ведомый-приёмник)

микроконтроллер А заканчивает пересылку

Пусть микроконтроллер А желает принять информацию от микроконтроллера В:

микроконтроллер А (ведущий) адресует микроконтроллер В (ведомый)

микроконтроллер А (ведущий-приемник) принимает данные от микроконтроллера В (ведомый-передатчик)

микроконтроллер А заканчивает пересылку

В обоих случаях ведущий (микроконтроллер А) генерирует синхроимпульсы и заканчивает пересылку.

Возможность подключения более одного микроконтроллера к шине означает, что более чем один ведущий может попытаться начать пересылку в один и тот же момент времени. Для устранения хаоса, который может возникнуть в данном случае, разработана процедура арбитража. Эта процедура основана на том, что все I2C-устройства подключаются к шине по правилу монтажного И.

Генерация синхросигнала - это всегда обязанность ведущего; каждый ведущий генерирует свой собственный сигнал синхронизации при пересылке данных по шине. Сигнал синхронизации может быть изменен только если он “вытягивается” медленным ведомым устройством (путем удержания линии в низком состоянии), или другим ведущим, если происходит столкновение.

Как SDA, так и SCL являются двунаправленными линиями, подсоединенными к положительному источнику питания через подтягивающий резистор (см. Рис 2). Когда шина свободна, обе линии находятся в ВЫСОКОМ положении. Выходные каскады устройств, подключенных к шине, должны иметь открытый сток или открытый коллектор для обеспечения функции монтажного И. Данные по шине I2C могут передаваться со скоростю до 100 кбит/с в стандартном режиме, и до 400 кбит/с в “быстром” режиме. Количество устройств, подключенных к шине, определяется единственным параметром - емкостью линии (до 400 пф).

Рисунок 2. Подключение I2C-устройств к шине

SDA (линия данных)

SCL (линия синхронизации)

Выход синхронизации

Вход синхронизации

Выход данных

Вход данных

Подтягивающие резисторы

Напряжение питания