English version

Домой   Новости   Радио   Карточки   Кодграберы   Мобилки   Телефония   АТС   Пейджинг   Транки   Жучки   Форум


Google

3.0 Концепция шины I2C

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

Термин (англ) Термин (рус) Описание
Transmitter Передатчик Устройство, посылающее данные в шину
Receiver Приемник Устройство, принимающее с шины
Master Ведущий Начинает пересылку данных, вырабатывает синхроимпульсы, заканчивает пересылку данных
Slave Ведомый Устройство, адресуемое ведущим
Multi-master - Несколько ведущих могут пытаться захватить шину одновременно, без нарушения передаваемой информации
Arbitration Арбитраж Процедура, обеспечивающая Multi-master
Synchronization Синхр. Процедура синхронизации двух устройств

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

  1. Микроконтроллер А
  2. Массив
  3. ЖКИ драйвер
  4. АЦП
  5. Статическая ОЗУ или ППЗУ
  6. Микроконтроллер B

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

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

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

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

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


« Предыдущая страница  |  Оглавление  |  Следующая страница »