Последовательный двухпроводной интерфейс TWI

Двухпроводной последовательной интерфейс (TWI) совместим с протоколом I2C компании Philips [17]. Разработанная фирмой Philips шина I2C («Inter-Integrated Circuit»), - это двунаправленная асинхронная шина с последовательной передачей данных и возможностью адресации до 128 устройств. Физически шина I2C содержит две сигнальные линии, одна из которых (SCL) предназначена для передачи тактового сигнала, вторая (SDA) для обмена данными. Для управления линиями применяются выходные каскады с открытым коллектором, поэтому линии шины должны быть подтянуты к источнику питания Vcc=+5В через резисторы сопротивлением 1...10 кОм, в зависимости от физической длины линий и скорости передачи данных. Длина соединительных линий в стандартном режиме может достигать 2-х метров, скорость передачи - до 100 кбит/с.

Все абоненты шины делятся на два класса - «Master» и «Slave». Устройство «Master» генерирует тактовый сигнал (SCL) и, как следствие, является ведущим. Оно может самостоятельно выходить на шину и адресовать любое «Slave» - устройство с целью передачи или приема информации. Все «Slave»-устройства «слушают» шину на предмет обнаружения собственного адреса и, распознав его, выполняют предписываемую операцию. Кроме того, возможен так называемый «Multi Master» - режим когда на шине установлено несколько «Master»-абонентов, которые либо совместно разделяют общие «Slave»-устройства, либо попеременно являются то «Master»-устройствами, когда сами инициируют обмен информацией, то «Slave», когда находятся в режиме ожидания обращения от другого «Master»-устройства. Режим «Multi Master» требует арбитража и распознавания конфликтов. Естественно, он сложнее в реализации (имеется ввиду программная реализация) и, как следствие, реже используется в реальных изделиях [11-13, 17].

Рассмотрим пример. Поскольку в качестве ведущих обычно выступают микроконтроллеры, рассмотрим пример пересылки данных между двумя микроконтроллерами, подключенными к шине. Пример покажет взаимоотношения передатчик-приемник и ведущий-ведомый, существующие в шине TWI. Необходимо заметить, что эти отношения не постоянны, а зависят только от направления пересылки данных в данный момент времени. Пересылка данных будет происходить следующим образом[5]:

1. Пусть микроконтроллер А желает послать информацию в микроконтроллер В:

-микроконтроллер А (ведущий) адресует микроконтроллер В (ведомый)

-микроконтроллер А (ведущий-передатчик) посылает данные микроконтроллеру В (ведомый-приёмник)

-микроконтроллер А заканчивает пересылку

2. Пусть микроконтроллер А желает принять информацию от микроконтроллера В:

-микроконтроллер А (ведущий) адресует микроконтроллер В (ведомый)

-микроконтроллер А (ведущий-приемник) принимает данные от микроконтроллера В (ведомый-передатчик)

-микроконтроллер А заканчивает пересылку

В обоих случаях ведущий (микроконтроллер А) генерирует синхроимпульсы и заканчивает пересылку.

Отличительные особенности:

· Двунаправленный обмен по двум линиям

· Высокая скорость обмена - до 100 кбит и выше

· Возможность адресации до 128 устройств

· Простота программной реализации «Master»- абонента

Преимущества для конструктора. TWI -совместимые микросхемы позволяют ускорить процесс разработки от функциональной схемы до прототипа. Более того, поскольку такие микросхемы подключаются непосредственно к шине без каких-либо дополнительных цепей, появляется возможность модификации и модернизации системы прототипа путем подключения и отключения устройств от шины.

Вот некоторые достоинства TWI-совместимых микросхем, которые касаются конструкторов:

· Блоки на функциональной схеме соответствуют микросхемам, переход от функциональной схемы к принципиальной происходит быстро.

· Нет нужды разрабатывать шинные интерфейсы, т.к. шина уже интегрирована в микросхемы.

· Интегрированные адресация устройств и протокол передачи данных позволяют системе быть полностью программно определяемой.

· Одни и те же типы микросхем могут быть часто использованы в разных приложениях.

· Время разработки снижается, так как конструкторы быстро знакомятся с часто используемыми функциональными блоками и соответствующими микросхемами.

· Микросхемы могут быть добавлены или убраны из системы без влияния на другие микросхемы, подключенные к шине.

· Простая диагностика сбоев и отладка. Нарушения в работе могут быть немедленно отслежены.

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

Внешнее электрическое соединение. Как показано на рисунке 2.34, обе линии шины подключены к положительной шине питания через подтягивающие резисторы. Среди всех совместимых с TWI устройствами в качестве драйверов шины используются транзистор или с открытым стоком или с открытым коллектором. Этим реализована функция монтажного И, которая очень важна для двунаправленной работы интерфейса. Низкий логический уровень на линии IIC генерируется, если одно или более из IIC-устройств выводит 0. Высокий уровень на линии присутствует, если все IIC-устройства перешли в третье высокоимпедансное состояние, позволяя подтягивающим резисторам задать уровень логической единицы.

 
 

Рис. 2.34. Внешние подключения к шине TWI

 

Количество устройств, которое может быть подключено к одной шине ограничивается предельно допустимой емкостью шины (400 пФ) и 7-разрядным адресным пространством. Поддерживаются два различных набора технических требований, где один набор для шин со скоростью передачи данных ниже 100 кГц и один действителен для скоростей свыше 400 кГц.