Читаем PIC-микроконтроллеры. Все, что вам необходимо знать полностью

Это линия тактового сигнала, используемая для синхронизации передачи данных и выполняющая те же функции, что и линия SCK в протоколе SPI. Однако линия SCL является двунаправленной — это позволяет различным ведущим устройствам захватывать управление ею в разные моменты времени.

Изначально в спецификации I2С максимальная скорость передачи была ограничена на уровне 100 Кбит/с (частота сигнала SCL — 100 кГц), однако в 1993 году спецификация была дополнена высокоскоростным режимом Fast, обеспечивающим скорость передачи до 400 Кбит/с, который в настоящее время стал стандартом де-факто. В 1998 году был введен режим High-Speed, обеспечивающий скорость передачи до 3.4 Мбит/с.

∙ SDA

Это линия данных, позволяющая передавать данные в обоих направлениях — как от ведущего к ведомому (ведущий-передатчик), так и от ведомого к ведущему (ведущий-приемник). Более того, наличие двунаправленной линии позволяет приемнику отсылать свое состояние передатчику после передачи каждого байта.

Рис. 12.13. Передача данных по шине I2С

Протокол I2С достаточно сложен, и полную его спецификацию можно найти на сайте компании Philips Corporation[156]. Прежде чем перейти к изучению основ этого протокола, рассмотрим подробнее работу линий SDA и SCL. В отсутствие передаваемых данных на обеих линиях присутствует ВЫСОКИЙ уровень (состояние ожидания). Устройство, собирающееся захватить управление шиной, находящейся в состоянии ожидания, должно выставить на вывод SDA НИЗКИЙ уровень. Такое состояние шины называется состоянием СТАРТ. Чтобы любое устройство, желающее стать ведущим, могло выставить на эту линию НИЗКИЙ уровень, выводы SDA всех остальных устройств, подключенных к шине, должны быть «отключены» от линии, а сама линия шины должна быть подтянута внешним резистором до напряжения ВЫСОКОГО уровня (см. Рис. 12.14, а). Для этого выходы SDA (а также SCL) всех I2С-совместимых устройств выполняются по схеме с открытым коллектором или открытым стоком (см. Рис. 2.2, б на стр. 32). Это означает, что любое устройство, подключенное к шине, может перевести ее линию в состояние НИЗКОГО уровня, выставив на свой выход лог. 0.

Помимо формирования состояния СТАРТ, ведущий должен генерировать тактовый сигнал, а также передавать значение адреса другим устройствам на шине для установления соединения с одним или более ведущими устройствами. Один из битов в байте адреса используется для того, чтобы сообщить ведомому, какая посылка ожидается далее: от ведущего к ведомому (ведущий-передатчик) или от ведомого к ведущему (ведущий-приемник).

Каждый пакет, передаваемый по шине, состоит из девяти битов. Восемь из них представляют собой байт данных, синхронизируемый тактовым сигналом. Состояние линии SDA должно изменяться только при НИЗКОМ уровне на линии SCL. Данные считываются приемником по следующему спадающему фронту сигнала SCL. Эти байты могут являться адресом или управляющей информацией, посылаемой ведущим, или же данными, передаваемыми как ведущим, так и ведомым. В протоколе I2С предусмотрен механизм квитирования (см. Рис. 11.2 на стр. 329). Во время девятого тактового импульса передающее устройство высвобождает линию SDA, и принимающее устройство подтверждает (acknowledges) данные, посланные передатчиком. Если данные были успешно приняты, то линия SDA удерживается приемником в состоянии НИЗКОГО уровня — это состояние называется АСК (подтверждение) (см. Рис. 12.15). Если же при приеме возникли некие проблемы или приемник не хочет больше принимать данные, то он оставляет на линии ВЫСОКИЙ уровень — такое состояние называется NACK (нет подтверждения). В последнем случае передатчик, как правило, пытается повторить передачу еще несколько раз, прежде чем принять решение о завершении обмена.

В качестве менее радикального способа ведомое устройство может удерживать линию тактового сигнала в состоянии НИЗКОГО уровня. Растягивание тактового сигнала (clock stretching) полезно в тех случаях, когда ведомое устройство не может обрабатывать поступающие данные с требуемой скоростью. После высвобождения ведомым линии SCL ведущий продолжит формирование тактовых импульсов.

Перейти на страницу:

Все книги серии Программируемые системы

PIC-микроконтроллеры. Все, что вам необходимо знать
PIC-микроконтроллеры. Все, что вам необходимо знать

Данная книга представляет собой исчерпывающее руководство по микроконтроллерам семейства PIC компании Microchip, являющегося промышленным стандартом в области встраиваемых цифровых устройств. В книге подробно описывается архитектура и система команд 8-битных микроконтроллеров PIC, на конкретных примерах изучается работа их периферийных модулей.В первой части излагаются основы цифровой схемотехники, математической логики и архитектуры вычислительных систем. Вторая часть посвящена различным аспектам программирования PIC-микроконтроллеров среднего уровня: описывается набор команд, рассматривается написание программ на ассемблере и языке высокого уровня (Си), а также поддержка подпрограмм и прерываний. В третьей части изучаются аппаратные аспекты взаимодействия микроконтроллера с окружающим миром и обработки прерываний. Рассматриваются такие вопросы, как параллельный и последовательный ввод/вывод данных, временные соотношения, обработка аналоговых сигналов и использование EEPROM. В заключение приводится пример разработки реального устройства. На этом примере также демонстрируются простейшие методики отладки и тестирования, применяемые при разработке реальных устройств.Книга рассчитана на самый широкий круг читателей — от любителей до инженеров, при этом для понимания содержащегося в ней материала вовсе не требуется каких-то специальных знаний в области программирования, электроники или цифровой схемотехники. Эта книга будет также полезна студентам, обучающимся по специальностям «Радиоэлектроника» и «Вычислительная техника», которые смогут использовать ее в качестве учебного пособия при прослушивании соответствующих курсов или выполнении курсовых проектов.

Сид Катцен

Радиоэлектроника

Похожие книги

Электроника для начинающих
Электроника для начинающих

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию для защиты от проникновения в дом, елочные огни, электронные украшения для одежды, устройство преобразования звука, кодовый замок, автономную роботизированную тележку и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий.Для начинающих радиолюбителей

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки