Реклама:

I юдробно описывать в этой книге все особенности протокола I2C вряд ли целесообразно, так как техническая документация на него открыта, распространяется бесплатно и легко доступна. Однако некоторые комментарии будут полезны для успешной работы с чип-картами, микросхемы памяти которых используют этот протокол.

Шина состоит из двух линий (без учета общего провода и пита ния): SCL и SDA. Элементы, подключенные к этой шине, должны постоянно отслеживать состояние обенх линий, никак на них не влияя, а при необходимости иметь возможность перевести их в состояние лог. 0. Следовательно, выходные каскады всех подключаемых к этой шине устройств должны быть либо с "открытым коллектором", либо с "открытым стоком".

Принято именовать "передатчиком" все устройства, которые передают данные по шине, а "приемником" - все устройства, которые принимают данные. Элемент, который инициирует обмен данными, называется "хозяином" или "мастером" (master), а все остальные -арабами" (slave); используются также термины ведущий/ведомый.

В рассматриваемом случае чип-карта (то есть память) обязательш будет "рабом", а блок чтения-записи - "хозяином*.

Начальное состояние шины - неактивное (линии SCL и SDA на ходятся в "третьем" - высокоймпедансном - состоянии). Обмеь данными начинается с появление*! условия START, формируемом "мастером*. При этом линия SDA переходит из высокого в низки логический уровень, а на линии SCL сохраняется высокий уровень И наоборот, всякий обмен данными заканчивается при появлении условия STOP - перехода из низкого в высокий логический уровень на линии SDA при высоком уровне на линии SCL. В конце операции считывания данных с чип-карты I2C условие STOP вызывает ее возврат в состояние ожидания. И наоборот, в конце one рации записи это условие запускает внутренний цикл программирования в EEPROM.

Сигнал АСК (подтверждение или квитирование) информирует о нормальном завершении каждого обмена данными. Передатчик, как "мастер", так и "раб*, освобождает линию SDA после передачи восьмого бита данных. Во время девятого тактового импульса приемник переводит линию SDA в низкий логический уровень, подтверждая прием переданного ему байта, а передатчик проверяет состояние шины и в зависимости от результата либо повторяет баш. либо готовит передачу следующего. Действительно, в чип-картах с шиной I2C данные считываются и записываются целыми байтами, а не отдельными битами

На рис. 2.15 приведены временные диаграммы работы шины, где видно, как передается каждый бит: приемник фиксирует состояние линии SDA по переднему фронту на линии SCL, а все изменения состояния на линии SDA должны происходить только тогда, когда на линии SCL низкий логический уровень.

Вместе с данными по шине передаются и адреса. Каждое устройство, подключенное к шине I2C, имеет свой собственный адрес, пер вые четыре разряда которого предназначены для обозначения функционального семейства, к которому данное устройство относится В общем случае для памяти этот код всегда равен 1010. Последний бит адреса (то есть самый младший разряд) определяет режим ра боты: 1 - для чтения данных, 0 - для их записи.

Три оставшихся разряда позвотяют выбрать нужное устройство h:j ряда одинаковых, подключенных к этой же шине, или же блок объемом 256 байт (страницу) при постраничной организации памяти

Протокол 12С

Рис. 2.15. Протокол І2С в очной микросхеме. Если чип-карта имеет память объемом 256 байт и работает только с блоком чтения-записи, то эти три бита можно установить нулевыми. При этом адрес для чтения будет 10100001, а для записи - 10100000.

Большинство микросхем ЭСППЗУ для шины 12С имеет несколько различных режимов записи и чтения. На рис. 2.16 приведены циклограммы всех возможных режимов записи и чтения для микросхемы БТ 14С02 компании БСБ-ТЬотзоп - варианта классической микросхемы 24С02, емкость которой составляет ровно 256 байт, в исполнении для монтажа в чип-карты.

"Родственные" интегральные микросхемы || Оглавление || Микромодули