Приборный интерфейс I2C

January 14, 2011 by admin Комментировать »

Разработанный фирмой Philips интерфейс I2C ("Inter-Integrated Circuit"), – это двунаправленная шина с последовательным форматом данных и возможностью адресации и параллельного подключения к шине до 128 устройств. Шина I2C содержит две сигнальные линии, одна из которых (SCL) предназначена для передачи тактового сигнала, другая (SDA) – для передачи данных (рис. 2.18).

Формирование сигналов производится выходными каскадами с открытым коллектором, поэтому линии шины должны быть подключены к источнику питания +5 В через резисторы сопротивлением 1…10 кОм, в зависимости от физической длины линий и скорости передачи данных. Параллельное подключение выходных каскадов всех узлов позволяет им всем влиять на передаваемые сигналы и участвовать в управлении обменом данными. Топология "общая шина" обеспечивает только полудуплексный обмен данными: в любом цикле обмена одно устройство передает данные, все остальные – только их принимают.

Рис. 2.18. Интерфейс I2C

Длина соединительных линий в стандартном режиме может достигать 2-х метров, скорость передачи – до 100 кбит/с, существует и расширенный вариант стандарта со скоростью до 400 кбит/с. Суммарная емкость линий должна быть не больше 400 пФ, входная емкость на каждую ИС – в пределах 5…10 пФ. Реальная скорость обмена данными жестко не регламентируется, хотя все устройства по стандарту должны поддерживать скорость 100 кбит/с. Управление обменом данными производится по тем же сигнальным шинам и, следовательно, предполагает передачу управляющих сообщений вместе с основными данными.

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

Возможен и так называемый режим "Multi-Master", когда на шине установлено несколько устройств I2C-Master. Они либо совместно разделяют общие узлы I2C-Slave, либо попеременно являются то I2C-Master, управляя обменом информацией, то I2C-Slave, когда находятся в режиме ожидания команд от другого I2C-Master. Режим "Multi-Master" требует арбитража и распознавания конфликтов.

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

Синхронизация циклов обмена шины требует формирования сигналов "Старт" и "Стоп", ограничивающих начало и конец информационного пакета. Для кодирования этих сигналов используется изменение состояния линии SDA при единичном состоянии линии SCL, что недопустимо при передаче данных (рис. 2.19). "Старт"-условие соответствует отрицательному перепаду (падающий фронт) SDA, когда SCL находится в единичном состоянии, а ‘Стоп"-условие -положительному перепаду (нарастающий фронт) линии SDA при единичном состоянии линии SCL.

Рис. 2.19. Сигналы "Старт" и "Стоп" I2C

При передаче всех остальных сигналов (рис. 2.20) каждый бит по SDA стробируется положительным импульсом (нарастающим фронтом) SCL. Изменение состояния линии SDA производится только при нулевом состоянии линии SCL. При этом I2C-Slave может "придерживать" линию SCL в нулевом 62

состоянии и соответственно снижать скорость обмена данными, например, на время обработки очередного сигнала, а I2C-Master обязан дождаться освобождения линии SCL прежде, чем продолжится передача информации.

Data Change

Рис. 2.20. Информационные сигналы I2C

 

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

Любой узел шины, как "Master", так и "Slave" может в разные моменты времени быть как передатчиком, так и получателем и в соответствии с режимом обязан либо принимать, либо выдавать сигнал ACK. Отсутствие сигнал ACK (единица на SDA в такте подтверждения) интерпретируется как ошибка.

Процедура адресации на шине I2C заключается в том, что первый байт после сигнала "Старт" – это всегда байт адреса и определяет, какой ведомый выбирается ведущим для работы. После 7 бит адреса следует бит направления данных (R/W), "ноль" означает передачу в I2C-Slave (запись), а "единица" – прием из I2C-Slave (чтение). В 9 такте I2C-Slave сигналом ACK подтверждает прием своего адреса и бита направления обмена данными. Далее цикл обмена переходит в фазу передачи данных, I2C-Master передает последовательности сигналов SCL, по которым узел-передатчик формирует последовательности битовых сигналов, а узел-приемник на каждом 9 такте передает сигнал ACK, подтверждающий прием очередного байта. Количество байт, передаваемых за один цикл обмена, не регламентируется, но не должно быть слишком большим, иначе обмен данными для других узлов шины будет блокироваться.

Пересылка данных всегда заканчивается сигналом "Стоп", генерируемым ведущим I2C-Master. Если I2C-Master будет использовать шину дальше, он может без сигнала "Стоп" выдать повторный "Старт" и затем адрес устройства для следующего цикла интерфейса. При таком алгоритме управления обменом возможны различные комбинации чтения/записи. Например, в первом цикле обмена "запись" I2C-Master может передать для I2C-Slave в поле данных байт – идентификатор запрашиваемых данных, а во втором цикле обмена "чтение" получить от I2C-Slave требуемые данные.

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

Ведущий I2C-Master может начинать пересылку данных, только если шина свободна. Два и более ведущих могут генерировать сигнал "Старт" за время минимального удерживания (Thd,sta). Арбитраж производится по шине SDA в периоды, когда шина SCL находится в единичном состоянии. Если один ведущий передает на линию данных НИЗКИИ уровень, в то время как другой – ВЫСОКИЙ, то последний отключается от линии, так как состояние SDL не соответствует состоянию его внутренней линии данных. Таким образом, арбитраж при одновременной передаче обеспечивает более высокий приоритет не узлу интерфейса, а сообщению с большим числом нулевых бит в передаваемой последовательности.

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

Преимущества шины I2C очевидны – малое количество соединительных линий и высокая скорость обмена, простота аппаратной реализации интерфейса. Наиболее широко поддерживает шину I2C фирма Philips, производящая множество ИС различной сложности с управлением по I2C. В первую очередь, можно выделить микросхемы энергонезависимой памяти (EEPROM) серии 24Схх в 8-ми выводных корпусах, фактически ставшие промышленным стандартом. Из широко распространенных ИС можно выделить: микросхемы часов PCF8583, параллельный порт PCF8574, 4-х канальный 8 разрядный АЦП PCF8591.

Существует множество модификаций этих ИС и более специализированных контроллеров. I2C стала де-факто стандартом последовательной шины для управления, обслуживания и настройки электронного оборудования. Важные свойства интерфейса I2C: простота 2-проводной шины, действительный режим Plug&Play и низкая стоимость реализации благодаря большому количеству уже имеющихся компонентов с этой шиной. Типовая конфигурация системы контроля и управления на основе шин I2C, содержащая различные устройства с применением интегральных микросхем фирмы Philips, показана на рис. 2.21.

Фирма Philips также предложила для интерфейса I2C первый в мире контроллер PCA9564, который преобразует параллельный код в последовательный и работает на частотах до 400 кГц при весьма низких напряжениях питания (2,5-3,3В). Интегральная схема PCA9564 оптимизирована для подключения микропроцессоров, микроконтроллеров и сигнальных процессоров к нескольким устройствам I2C или компонентам SMBus. Эта интегральная схема дает возможность использования I2C в качестве обслуживающей и управляющей шины в вычислительных, сетевых и телекоммуникационных системах, предлагая разработчикам более высокие скорости работы при низком напряжении питания и позволяя создавать более гибкие и производительные I2C системы.

PCA9564 может работать в качестве ведомого и ведущего на шине I2C, передатчика и приемника, самостоятельно управлять специальными последовательностями, протоколом, арбитражем и промежутками времени без внешней тактовой частоты. Эта ИС позволяет микропроцессорам и микроконтроллерам без встроенных средств интерфейса обмениваться данными с устройствами по шине I2C или SMBus, а также обеспечивать дополнительный порт, когда нужно несколько портов I2C. Новый контроллер PCA9564 выпускается в 3-х видах корпусов: 20-выводные SO, TSSOP и HVQFN.

Структурная схема PCA9564 приведена на рис. 2.22. Доступ к интерфейсу I2C производится через средства реализации протокола (SDA CONTROL и SCL CONTROL, рис. 2.22), а прием байтов управления и обмен данными – через стандартный параллельный интерфейс. Адресация параллельного интерфейса (А0 и А1, рис. 2.22) необходима для выбора регистров ИС при обмене данными. Для управления взаимодействием в параллельном интерфейсе также предусмотрено формирование сигнала прерывания (INTERRUPT CONTROL, рис. 2.22).

On On

Рис. 2.21. Конфигурации систем контроля и управления на основе шин I2C

Новый 16-разрядный расширитель портов PCA9535 от Philips с управлением по шине I2C отличается повышенной нагрузочной способностью и широкими возможностями конфигурирования (рис. 2.23). Микросхема, предлагаемая в трех вариантах исполнения корпусов (SO24, TSSOP24 и HVQFN24), обеспечивает 16-разрядный параллельный интерфейс ввода/вывода общего назначения с управлением по шине I2C / SMBus.

По сравнению с предыдущими поколениями аналогичных устройств PCA9535 обладает значительно лучшими характеристиками. Улучшения состоят в большей нагрузочной способности выходов, совместимости с входными уровнями напряжением 5 В, меньшем потребляемом токе, индивидуальном конфигурировании портов и более миниатюрных корпусах. Расширители портов обеспечивают простое подключение к основному процессору/контроллеру дополнительной периферии, такой как переключатели питания системы ASPI, различные датчики, кнопки управления, светодиоды, вентиляторы и т.п.

PCA9535 содержит два 8-битных регистра конфигурации (выбор входа или выхода) и регистры инверсии полярности (активный низкий или активный высокий уровень). Управляющее устройство может определять порты как входы или как выходы, записывая управляющие биты в регистры конфигурации. Данные для каждого входы или выхода содержатся в соответствующих входных или выходных регистрах. Информация в регистре чтения может быть инвертирована регистром инверсии полярности. Данные всех регистров могут быть прочитаны управляющим устройством.

PCA9535 идентична PCA9555, но отсутствие на ее портах подтягивающих резисторов существенно снижает энергопотребление, когда на выходе присутствует низкий уровень.

PCA9535 имеет выход сигнала прерывания с открытым стоком (INT, рис. 2.23). Прерывание формируется, когда на каком-либо из входов уровень сигнала меняется на противоположный. Запрос прерывания является сигналом управляющему устройству, что на входных линиях произошло какое-либо событие, например, нажата кнопка. Сброс по включению питания записывает во внутренние регистры ИС значения по умолчанию и инициализирует схему фиксации состояния устройства.

Три вывода аппаратного адреса (A0, A1, A2) могут изменять встроенный LZC-адрес устройства, что разрешает одновременную работу на одной шине до 8 однотипных ИС. Фиксированная часть LZC-адреса PCA9535 такая же, как и у PCA9554, что позволяет 8 подобным устройствам в любой комбинации работать на одной шине I2C.

Общий перечень микросхем с интерфейсом Е2С фирмы Philips содержит несколько десятков микросхем, его можно найти на [www.semiconductors.philips.com]. Учитывая эффективность и популярность Г2С, и другие фирмы изготавливают ИС с этим интерфейсом, примеры таких ИС различных производителей приведены в табл. 2.4.

Таблица 2.4

Тип микросхемы

Основные параметры

Тип корпуса

Производитель

ADC

ADS1100

16-Bit, Delta-Sigma, 128 бит/сек

SOT23-6

www.ti.com

ADS7823

12-Bit, SAR, 50000 бит/сек

MSOP-8

www.ti.com

ADS7829

12-Bit, SAR, 125000 бит/сек

S-PDSO-N8

www.ti.com

AD7994

12-Bit, SAR, 188000 бит/сек, 4-канала

TSSOP-16

www.analog.com

AD7998

12-Bit, SAR, 188000 бит/сек, 8-каналов

TSSOP-20

www.analog.com

DAC

DAC7571

12-Bit, 10 мксек, 1-канал

SOT23-6

www.ti.com

DAC7574

12-Bit, 10 мксек, 4-канала

MSOP-10

www.ti.com

DAC8751

16-Bit, 10 мксек, 1-канал

MSOP-8

www.ti.com

AD5305

8-Bit, 6 мксек, 4-канала

MSOP-10

www.analog.com

AD5339

12Bit, 8 мксек, 2-канала

MSOP-8

www.analog.com

AD5390

16-Bit, 8 мксек, 16-каналов

LQFP-52, LFCSP-64

www.analog.com

FRAM

FM24C04A

4 kbit, 1 трлн. циклов

SOIC-8

www.ramtron.com

FM24CL04

4 kbit, неогранич.

SOIC-8

www.ramtron.com

FM24CL16

16 kbit, неогранич.

SOIC-8

www.ramtron.com

FM24CL64

64 kbit, неогранич.

SOIC-8

www.ramtron.com

FM24C256

256 kbit, 10 млрд. циклов

SOP-8

www.ramtron.com

Тип микросхемы

Основные параметры

Тип корпуса

Производитель

 

SEEPROM

 

 

 

PDIP-8,

 

 

AT24CS128

16284×8, 1 млн. циклов

TSSOP-8, SOIC-8, dBGA-8

www.atmel.com

 

 

 

PDIP-8,

 

 

AT24CS256

32768×8, 1 млн. циклов

TSSOP-8, SOIC-8, dBGA-8

www.atmel.com

 

 

 

PDIP-8,

 

 

AT24C512

65536×8, 1 млн. циклов

TSSOP-8, SOIC-8, dBGA-8

www.atmel.com

 

 

131072×8, 0.1 млн.

PDIP-8, TSSOP-8, SOIC-8, dBGA-8

 

 

AT24C1024

циклов

www.atmel.com

 

M24256

256 kbit, 0.1 млн. циклов

PDIP-8, SO-8

www.st.com

 

Termosensor

 

DS1621

9 bit, -55- +125 oC

PDIP-8, SOIC-8

www.dallas.com

 

DS1624

13 bit, -55- +125 oC

PDIP-8, SOIC-8

www.dallas.com

 

MAX6635

13 bit, -55- +150 oC

uMAX-8

www.maxim- ic.com

 

MAX6692

13 bit, -55- +125 oC

SO-8

www.maxim- ic.com

 

AD7416

10 bit, -40- +125 oC

SOIC-8, MSOP-8

www.analog.com

 

Clock

 

M41T00

TIMEKEEPER

SO-8

www.st.com

 

MAX6900

TIMEKEEPER

SOT23-6

www.maxim- ic.com

 

DS1338

TIMEKEEPER plus 56 Bytes of NV SRAM

uSOP-8

www.dallas.com

 

На рис. 2.24 – 2.29 приведены структурные схемы и схемы включения различных ИС с интерфейсом I2C. В дополнение к основным функциональным компонентам эти ИС содержат средства поддержки интерфейса I2C, которые существенно облегчают реализацию процедур обмена данными.

Например, АЦП последовательных приближений ADS7829 (рис. 2.24) имеет типовую структуру и содержит входной усилитель выборки-хранения (S/H Amp), цифроаналоговый преобразователь (CDAC) с внешним опорным напряжением (Vref), регистр последовательных приближений (SAR). В АЦП дополнительно содержится интерфейсный узел (Serial Interface), позволяющий принимать управляющие данные и передавать результаты преобразования через интерфейс I2C. Как видно из схемы подключения (рис. 2.25), применение такого АЦП требует минимального количества сигнальных цепей.

Рис. 2.24. Структурная схема ИС ADS7829

Рис.2.25. Схема подключения ADS7829 к микроконтроллеру

 

Рис. 2.26. Функциональная схема 8-канального ADC AD7998

-й-

On

Часы реального времени MAX6900 фирмы MAXIM с I2C-интерфейсом выполнены в корпусе SOT23. Функциональная схема часов приведена на рис. 2.30, а на рис. 2.31 – схема включения. Отличительные особенности:

•         часы реального времени считают в секундах, минутах, часах, дате, месяце, дне, годе и учитывают високосность года до 2100 г;

•         скоростной (400кГц) EZC-интерфейс с питанием от 2.0 В до 5.5 В;

•          31 байт статического ОЗУ пользователя;

•         стандартный кварцевый резонатор 32.768 кГц;

•         очень малое потребление тока – 225 нА;

•         два режима передачи данных: одиночный (адрес+1 байт данных) и потоком (стартовый адрес + N байт данных);

•         чтение и запись информации в регистрах часов или ОЗУ;

•         6-выводной SOT23 корпус для поверхностного монтажа;

•         отсутствие внешних резисторов и конденсаторов.

Рис. 2.30. Функциональная схема часов MAX6900

Рис. 2.31. Схема подключения ИС MAX6900

Philips также производит новую серию расширителей портов ввода/вывода общего назначения для шины I2C PCA955x (PCA9550, PCA9551, PCA9552 и PCA9553), которые предназначены для управления миганием све- тодиодов в самых различных устройствах: от мобильных телефонов до крупных серверов. Новые 2-х, 4-х, 8-ми и 16-битные изделия представляют новую грань возможностей шины I2C, давая разработчику возможность применения большого количества легко управляемых светодиодов по сравнению с применением входов/выходов общего назначения или микроконтроллеров.

Новые изделия имеют встроенный генератор с 4-мя однобайтовыми внутренними регистрами, которые предназначены для программной установки частоты мерцания. Это исключает необходимость применять один из таймеров в микроконтроллере для посылки повторяющихся команд включения и выключения светодиода. Кроме того, новые ИС существенно разгружают шину I2C по сравнению со стандартными расширителями портов, использующимися в качестве «мигалок». После программирования внутренний генератор позволяет отключить шину I2C от PCA955x, при этом светодиоды продолжают мигать, что невозможно при применении стандартных расширителей портов.

Изделия PCA955x выпускаются в 8-ми, 16-ти и 24-х выводных корпусах SO, TSSOP и HVQFN. Так, например, PCA9553 является 4-разрядным расширителем (рис. 2.32), его отличительные особенности:

•                  4 порта управления светодиодами (включен, выключен, мигание с программируемой частотой);

•                  2 выбираемых, полностью программируемых режима мигания (частота и нагрузочный цикл) от 0,15625 до 40 Гц (период от 6,4 сек до 0,025 сек);

•                  входы/выходы, не задействованные для управления светодиодами, могут использоваться в качестве входов/выходов общего назначения;

•                  встроенный сброс при включении питания;

•                   фильтр шумовых помех на входах SCL/SDA;

•                  сигнал сброса низкого уровня;

•                  4 выхода с открытым стоком напрямую включают светодиоды при токе нагрузки до 25 мА;

•                  общий нагрузочный ток через микросхему до 100 мА;

•                  управляемые фронты импульсов для минимизации «плавания» общего провода;

•                  отсутствие сбоев при включении;

•                  поддержка «горячей» установки;

•                  малый потребляемый ток в дежурном режиме;

•                  диапазон питающих напряжений от 2,3 В до 5,5 В;

•                  тактовая частота шины I2C от 0 до 400 кГц;

•                  защита от статического электричества до 2000 В.

Области применения: светодиодные системы индикации в различном оборудовании, например, в мобильных телефонах; системы самодиагностики в серверах, сетевом и телекоммуникационном оборудовании.

Разряды, не используемые для управления светодиодами, могут работать независимо как порты ввода/вывода общего назначения. Вывод аппаратного сброса с активным низким уровнем (RESET) и сброс по включению питания (POR) устанавливает значения всех регистров в исходное состояние (все нули) и переключает выходы в состояние с высоким уровнем (светодиоды погашены). Из-за ограниченного числа выводов PCA9553 не имеет функции установки аппаратного адреса. Варианты исполнения этой ИС PCA9553/01 и PCA9553/02 имеют различные фиксированные HC-адреса для совместной работы на общей шине.

00 о

Рис. 2.32. Структурная схема и расположение выводов РСА9553

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты