Аппаратная реализация I2C. Часть 2 Принципы работы шины

Обратим внимание на рис. 1.5.

clip_image002

Рис. 1.5. Аппаратная реализация шины I2C в режимах low-speed и fast-speed

Интерфейс любого устройства, подключенного к шине I2C, как видно из рисунка, отличается предельной простотой. Он состоит из двух транзисторов с открытым стоком (коллектором) и двух буфер­ных элементов с высоким входным сопротивлением. Один из выво­дов назван SDA (Serial Data Line), предназначается для связи с ли­нией последовательных данных. Второй вывод имеет сокращенное название SCL (Serial Clock Line), предусмотрен для связи с линией синхронизации.

Как известно, по любым цифровым шинам передаются сигналы, характеризуемые только двумя электрическими состояниями — «О» и «1» («низкий уровень» и «высокий уровень»). Состояние, когда обе линии (SDA и SCL) установлены в состояние «1», считается свобод­ным шинным состоянием. Шина в этот момент не занята и готова к трансляции данных (иначе говорят, что шина находится в состоянии ожидания). Но каким образом обеспечить это состояние, если интер­фейсные элементы не имеют активных выходов, если наружу выведе­ны открытые выводы элементов? Для обеспечения логических со­стояний к шине подключаются два внешних резистора R^u (pull-up resistors), «подтягивающие» линии к напряжению питания UnHT. Ти­пичная величина этих резисторов колеблется в пределах 1...10 кОм. На рис. 1.5 эти резисторы показаны внешними, и такая ситуация про­слеживается часто. Но иногда они имеются в составе master-абонен­та. Вообще интерфейс master-абонента желательно изучить доско­нально, поскольку его выходы могут быть активными (иметь вместо pull-up резисторов транзисторные ключи) и тогда на шине возникнет конфликт.

Здесь мы можем четко сказать, в чем главное отличие master-або­нента от slave-абонента. Это очень просто: только master-абонент может генерировать сигнал SCL.

Важнейшим критерием, определяющим возможность использо­вания той или иной шины, является ее спектр технических характе­ристик. Шина I2C относится к классу двунаправленных асинхрон­ных шин с последовательной передачей данных и, как следствие, обладает достаточно низкой пропускной способностью. Поэтому ее почти не используют в составе персональных компьютеров, разве что как вспомогательную для идентификации установленных устройств [1]. А вот для согласования работы устройств, наполняю­щих изделия бытовой техники, она вполне годится.

Основные технические характеристики шины I2C по специфика­ции 1.0 приведены в табл. 1.1.

Таблица 1.1. Основные технические характеристики шины I2C (спецификация 1.0)

Наименование параметра

Значение параметра

Скорость обмена low-speed

не более 100 кбит/с

Скорость обмена fast-speed

не более 400 кбит/с

Число адресуемых устройств (7 бит)

до 128

Суммарная длина линий SCL и SDA

не более 4 м

Суммарная паразитная емкость относительно общего провода

не более 400 пФ

Входная емкость на каждый вывод абонента

не более 10 пФ

Изучая данные табл. 1.1, можно сделать заключение, что шина I2C совершенно не подходит для связи между удаленными абонента­ми, а значит, может быть использована только в составе одного при­бора. Главным образом этот вывод исходит из малой протяженности линий SDA и SCL. Собственно говоря, в интернете автором была найдена страница, на которой ее создатель сообщил о том, что его конструкции без проблем работают при суммарной длине шины око­ло 100 метров (естественно, с понижением скорости обмена данны­ми). Но этот режим уже не нормируется оригинальной специфика­цией, а значит, и надежная работа устройств не гарантируется.

Пропускная способность шины определяется как параметрами интерфейсов, так и паразитными параметрами линий SDA и SCL. На рис. 1.6 показаны эти паразитные параметры:

• Спр — распределенная емкость линии относительно общего провода;

• Свх — входная емкость интерфейса;

• Z,np — индуктивность проводника линии.

clip_image004

В протоколе обмена по шине используются не только статиче­ские состояния линий («О» и «1»), но и перепады уровней («О» —> «1» и «1» -> «О») и наличие паразитных параметров выражается в «затя­гивании» фронтов, а также спадов импульсов, как показано на рис. 1.7, что может нарушить нормальный обмен данными.

clip_image006

Еще одна опасность, скрытая в слишком длинных проводниках, связана с перенапряжениями, которые могут возникнуть на интер­фейсных элементах при значительных величинах паразитной индук­тивности проводов (L ). Эта ситуация отражена на рис. 1.8.

clip_image008

Как показано в [3], резкое закрытие транзистора VT характеризу­ется индуктивным выбросом на его стоке. Это явление используется в так называемых бустерных схемах источников питания, но здесь оно крайне вредно. И хотя в подавляющем большинстве случаев внутри микросхем предусматривается защита входных цепей, напри­мер, по варианту рис. 1.9, я, позволяющая «сбросить» энергию импу­льса в источник питания, все же лучше дополнительно ввести защиту по варианту рис. 1.9, б. Когда может потребоваться такая защита?

clip_image010

В процессе экспериментов и отладки схемы, когда обычно микро­контроллер и slave-устройства устанавливаются на отдельных платах и связи между ними не удается сделать короткими. Напряжение про­боя стабилитрона VD следует выбирать па 0,5... 1 В больше уровня «1» на линиях SDA и SCL. И хотя в документации [4] такой способ защиты не встречается по вполне понятной причине — профессиона­льные разработчики обладают гораздо более солидными возможно­стями по выполнению макетных работ, — радиолюбителю лучше обезопасить себя от возможных путей выхода микросхем из строя. Поиск причины пробоя — долгое и мучительное занятие, связанное к тому же с дополнительными финансовыми расходами, так что осто­рожность не помешает! Стабилитрон можно не устанавливать на пе­чатной плате в законченной и отлаженной конструкции.

Рассмотрим теперь способ защиты от высоковольтных наводок, приведенный в фирменной документации [4] и отраженный на рис. 1.10. Важно отметить, что данный способ предпочтительнее ис­пользовать в режиме Hs-mode. Согласно рекомендациям, в схему вводятся защитные резисторы Rs. Чтобы сократить время нарастания сигнала синхронизации, в интерфейс master-устройства вводится ис­точник тока MCS. Сами же сигналы SDA и SCL здесь именуются SDAH и SCLH соответственно (индекс «Н» — это сокращение от слова high — высокий).

clip_image012

Каким способом можно определить величину резисторов RpU и Rs? В фирменной документации [4] есть ответ на этот вопрос. Там приводятся графики, оптимизирующие способ выбора резисторов. Графики отнормированы относительно разных напряжений питания, но поскольку наиболее вероятным видится вариант использования микросхем при VDD = 5 В, то сведения ограничены только этим на­пряжением.

Вначале производится выбор резистора Rpu по рис. 1.11. Рассмат­ривая этот рисунок, можно сделать попутный вывод о том, что пара­зитная емкость практически не оказывает влияния на методику выбо­ра резистора Rs. Читатель также вправе задать следующий вопрос: Как определить величину паразитной емкости? Действительно, сде­лать это не так-то просто. Современные пакеты компьютерного схе­мотехнического моделирования при «разводке» печатных плат по­зволяют отмоделировать паразитные элементы, определить их вели­чину. Однако такие программы доступны далеко не всем и далеко не все умеют ими правильно пользоваться, поэтому при разработке ра­диолюбительских конструкций можно придерживаться «золотой се­редины», приняв значение паразитной емкости не более 100...200 пФ.

Итак, после определения Rpu по рис. 1.13 определяем номинал ре­зистора Rs (если, конечно, его предполагается ввести в схему). В за­ключение проверяем по рис. 1.12 номинал резистора Rpu. К примеру,

clip_image014

clip_image016

для напряжения питания 5 В оно должно быть не менее 1,5...2 кОм. Выполнение требований графиков позволит получить в режиме Hs-mode максимальную скорость передачи.

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

SDA

V

v DD

Общий SCL

Хорошо использовать печатные платы с отдельными слоями, спе­циально выделенными под общий провод и провод VDD, что, конеч­но, в радиолюбительских условиях едва ли осуществимо. Удачным также является использование экранированных кабелей, экранная жила которых соединена с общим проводом схемы. Возможно также применить скрученные попарно проводники.

Как уже было сказано ранее, скорость передачи по шине I2C огра­ничена не только внешними факторами, но и внутренними парамет­рами интерфейсов, их схемотехникой. Едва ли разработчик принци­пиальных схем сможет исправить интерфейс, заставить его работать быстрее — эта задача под силу только разработчику интегральной

схемы. Но узнать, почему это ограничение наложено, полезно будет даже радиолюбителю. Итак, взглянем на рис. 1.14 и рис. 1.15.

clip_image018

В обоих схемах очень важно сделать так, чтобы транзистор VT открывался и закрывался как можно быстрее. Казалось бы, нет ника­ких препятствий, чтобы его открывание происходило мгновенно. Од­нако (и это показано в [3]) из-за наличия так называемой емкости Миллера Cmil образуется местная отрицательная обратная связь, ко­торая не дает транзистору быстро войти в состояние насыщения. Чи­татель может возразить, обратив внимание на величину резистора R, и предложить уменьшить его номинал. Но тогда мы столкнемся со значительным увеличением тока потребления микросхем, что, ко­нечно, тоже нехорошо.

Ограничения, накладываемые на минимальную величину рези­стора RpU, связаны с тем, что через него в состоянии линии «О» дол­жен протекать ток не более 3 мА. Легко заметить, что для напряже­ния питания VDD = 5 В величина Rpu ограничена номиналом 1,7 кОм. Соответственно емкость линии не должна превышать 200 пФ. Но ес­ли линия имеет большее значение паразитной емкости? Тогда можно использовать схему, изображенную на рис. 1.16. В течение времени нарастания или спада сигнала линии микросхема НСТ4066 подклю­чает в промежутке между 0,8 и 2,0 В форсирующий резистор R^,,.

Еще одной важной технической характеристикой шины является ее совместимость. Ранее разработанные элементы, обладающие только возможностями низкоскоростного обмена, должны без про­блем связываться с высокоскоростными, и наоборот. Дакайте сейчас рассмотрим поподробнее вопрос совместимости устройств, подклю­чаемых к шине, тем более что мы не вернемся к нему в рамках этой книги.

Итак, к шине I2C могут быть подключены интерфейсы трех ти­пов: low-speed, fast-speed, Hs-mode. Понятно, что обмен данными мо­жет быть осуществлен со скоростью, доступной самому медленному интерфейсу. В табл. 1.2 приведены возможные предельные скорости обмена по совмещенной шине.

Таблица 1.2. Скорость обмена данными в совмещенных шинах

Направление передачи

Конфигурация шины i2C

Hs + fast + low

Hs + fast

Hs+ low

fast + low

Hs-Hs

0...3.4 Мбит/с

0—3,4 Мбит/с

0...3,4 Мбит/с

-

Hs - fast

0... 100 кбит/с

0...400 кбит/с

-

-

Hs- low

0... 100 кбит/с

-

0... 100 кбит/с

-

fast - low

0...100 кбит/с

-

-

0... 100 кбит/с

fast - fast

0... 100 кбит/с

0...400 кбит/с

-

0... 100 кбит/с

low-low

0...100 кбит/с

-

0... 100 кбит/с

0... 100 кбит/с

clip_image020

Если соединить устройства разных типов по классической схеме, то разные скорости обмена могут быть и не реализованы. Поэтому приходится группировать эти устройства, как показано на рис. 1.17, и вводить между группами мосты (bridge). Назначение моста — от­соединить более медленные элементы в моменты обмена между бо­лее быстрыми.

Дополнительное удобство, обеспечиваемое мостом, — возмож­ность использования для питания шины двух напряжений (VDD1 и VDD2). Мост включается как master/slave-устройство Hs-режима и управляется сигналами SDAH, SCLH, SDA, SCL. Он может также присутствовать в составе отдельных микросхем (например, микро­контроллеров) как самостоятельное устройство.

Отметим также, что шина I2C позволяет совмещать устройства с разными напряжениями питания. Pull-up резисторы желательно под­ключать к питающему напряжению 5 В, как показано на рис. 1.18.

Литература:


Б. Ю. Семенов, «ШИНА 12С В РАДИОТЕХНИЧЕСКИХ КОНСТРУКЦИЯХ» ,Москва СОЛОН-Р 2002

Предлагаю ознакомиться с аналогичными статьями: