Выбор контроллера

скорость обмена - до 100 кбит/сек для стандартного режима и до 400 кбит/сек для усовершенствованного быстрого режима;

максимальная длина линий - не более 2-х метро;

суммарная емкость линий - не более 400 пф;

входная емкость на каждую ИС - не более 10 пф;

величина подтягивающих резисторов 1 .10 кОм;

Шина - это двунаправленная асинхронная шина с последовательной передачей данных и возможностью адресации до 128 устройств. Физически шина содержит две сигнальные линии, одна из которых (SCL) предназначена для передачи тактового сигнала, а вторая (SDA) для обмена данными. Для управления линиями применяются выходные каскады с открытым стоком или открытым коллектором, чтобы устройства можно было соединять по схеме "Монтажное ИЛИ". Для обеспечения высокого уровня при отсутствии на шине активного устройства используются внешние подтягивающие резисторы к источнику питания +5 В сопротивлением 1 .10 кОм, в зависимости от физической длины линии и скорости передачи данных. На одной шине могут работать устройства нормального и быстрого режима.

Все абоненты шины делятся на два класса - "Master" (ведущий) и "Slave" (ведомый). Устройство "Master" генерирует тактовый сигнал (SCL) и, как следствие, является ведущим. Оно может самостоятельно выходить на шину и адресовать любое ведомое устройство с целью передачи или приема информации. Когда ведущий хочет инициализировать передачу данных, он сначала передает адрес устройства, к которому он хочет обратиться. Все устройства на шине следят за выдаваемым адресом и сравнивают его с собственным. Вместе с адресом передается бит, определяющий, хочет ли ведущий читать из ведомого, или писать в него. Во время передачи всегда один из абонентов передатчик, а другой - приемник. Ведущий и ведомый могут работать в одном из двух режимов:

ведущий передает, а ведомый принимает;

ведущий принимает, а ведомый передает.

Кроме того, возможен, так называемый, "Multi Master" режим, когда на шине установлено несколько ведущих абонентов, которые либо совместно разделяют общие ведомые устройства, либо попеременно являются то ведущими устройствами, то ведомыми. Такой режим требует арбитража и распознавания конфликтов. Естественно, он сложнее в реализации и, как следствие, реже используется в реальных изделиях.

Инициализация и прекращение передачи данных

В начальный момент времени - в режиме ожидания, обе линии SCL И SDA находятся в состоянии лог. "1", так как притянуты подтягивающими резисторами (транзистор выходного каскада с открытым стоком или открытым коллектором закрыт). Начало и конец передачи данных определяют условия START и STOP. Условие START определяется как переход SDA из высокого уровня в низкий при высоком уровне SCL, а условие STOP - как переход SDA из низкого уровня в высокий при высоком уровне SCL (см. ниже рисунок 3.4.1). Ведущий генерирует эти условия в начале и конце передачи данных. Ввиду такого способа определения START и STOP при передачи данных линия SDA может изменять свое состояние только при низком уровне SCL.

Рис. 2.8 - Инициализация и прекращение передачи данных

Адресация на шине I2C

Существуют два формата адреса. Простейший 7-битный формат с битом R/-W . Адрес - это 7 старших битов байта. Например, при указании адреса для PIC17C756 при записи в SSPADD младший бит не важен. Более сложным является 10-битный формат с битом R/-W, где первые пять битов определяют, что это 10-битный адрес.

Подтверждение передачи

Данные должны передаваться побайтно, без ограничения количества байтов за сеанс. После каждого байта ведомый выдает бит подтверждения ACK. Когда ведомый не подтверждает получение адреса или данных, ведущий должен прервать передачу. Ведомый оставляет на SDA высокий уровень, чтобы ведущий выставил STOP.

Если данные получает ведущий, он выдает подтверждение для каждого принятого байта данных, кроме последнего. Чтобы завершить ведомому о завершении приема данных, ведущий не посылает подтверждения. После этого ведомый освобождает SDA, чтобы ведущий выставил STOP.

При необходимости, ведомый может задержать передачу следующего байта, удерживая низкий уровень на SCL, что заставит ведущий перейти в состояние ожидания. Когда ведомый отпустит SCL, передача данных продолжится. Это позволяет ведомому отложить прием данных, либо выбрать данные для передачи до того, как продолжат поступать тактовые импульсы. На рисунке 2.9 показана последовательность передачи данных ведущим и ведомым.

Перейти на страницу: 1 2 3 4

Читайте также

Проектирование дискретного устройства
На современном этапе развития транспорта наблюдается бурный рост темпов и объемов перевозок, особенно на железнодорожном транспорте в силу высокой скорости и невысокой стоимости грузопер ...

Проект оконечной ОС на базе системы DX200
Современное состояние и перспективные планы развития Единой Сети Электросвязи (ЕСЭ) Российской Федерации характеризуются широким внедрением цифровых технологий и оборудования цифровых си ...

Построение внутренней памяти процессорной системы, состоящей из ПЗУ и статического ОЗУ
Построить внутреннюю память процессорной системы, состоящую из ПЗУ и статического ОЗУ. Процессорная система работает в реальном режиме. Разрядность ША - 20, ШД - 8. ИСХОДНЫЕ ДАННЫЕ: ...

Основные разделы

Все права защищены! (с)2024 - www.generallytech.ru