Лекция 9.
Интерфейс (шина I2C - Inter-integrated circuit bus)
Сетевой последовательный интерфейс, осуществляющий связь ведущих и ведомых по 2-проводной схеме. Два провода – сигнальные, существует еще и провод подключения земли, но он считается вспомогательным, не участвующим в передаче сообщений. К шине может быть подключено до 128 устройств, каждое из которых имеет свой адрес, если это не превысит предельную емкость (400 пф).
По скорости передачи различают три режима работы шины: стандартный (S) - 100Кбит/сек, быстрый (F)– 400Кбит/сек и высокоскоростной режим (Hs) – до 3,4Мбит/сек. Первые два режима функционируют практически одинаково. Передача пакетная, объем пакета 8 информационных бит, передача в пакете ведется старшим битом вперед. Устройство, инициирующее обмен – master (ведущее), устройство, назначаемое мастером для обмена – slave (ведомое). Как master так и slave могут выступать в роли приемника или передатчика. Для режимов S и F в каждый момент времени информация передается только одним устройством и только в одну сторону.
Электрическое подключение к проводам.
Устройства, подключаемые на шину I2C, имеют выход с открытым коллектором на линии данных и синхронизации. Изначально транзисторы заперты, и провода данных и синхронизации подтянуты к «1» через резисторы. Открытый транзистор подтягивает линию к земле, на линии устанавливается низкий уровень. Сопротивление подтягивающих резисторов будет зависеть от скорости работы устройств на линии. Для
низких частот – несколько десятков кОм, для высоких – несколько кОм. Входы реагируют на состояние подключенных линий, но не вносят изменение в их состояние.
Ведущее устройство, master, первым выставившее на линию данных «0» при неактивной линии синхронизации может начинать обмен.
Синхронизацию всегда генерирует ведущее устройство. При низком уровне SCL происходит выбор данных и их передача, при высоком – считывание приемником. Каждый бит информации передается за один такт. Уровень бита данных формируется при низком уровне на линии синхронизации, а считывается при высоком уровне синхроимпульса. Изменение уровня на линии данных при высоком уровне синхронизации недопустимо, потому что это будет воспринято как прекращение сеанса обмена. Перепад в «1» будет воспринят как прекращение всех обменов (Stop-условие мастера), перепад в «0» будет воспринят как начало нового обращения ведущего к одному из ведомых без закрытия предыдущего сеанса.
Первая посылка всегда идет от ведущих и содержит адреса ведомых, при этом определяется и направление передачи. Далее следует пересылка пакетов информации. По окончании передачи ведомый должен передать в позиции подтверждения «1», после чего ведущий отпускает линию.
Адресация устройств на шине.
Ведущее устройство выставляет адрес ведомого и ждет подтверждения. Адрес ведомого устройства занимает 7 бит, 8-ой бит указывает дальнейшее направление передачи информации. Далее следует подтверждение. Все устройства системы сравнивают 7 бит после старта со своими адресами, устройство, адрес которого был набран, становится ведомым и выдает сигнал подтверждения. После получения сигнала подтверждения ведущее устройство должно придержать линию синхронизации на низком уровне, пока ведомое ее не отпустит. Иначе синхронизация оборвется.
Арбитраж.
Ведущим становится устройство, выставившее низкий уровень на провод данных первым перед появлением низкого уровня на проводе синхронизации.
Синхронизацию задает ведущее устройство, но ведомое, если оно не имеет достаточного быстродействия, может замедлять обмен данными. Таким образом, низкий уровень на проводе синхронизации появляется от устройства с самой высокой частотой, а высокий уровень появляется, когда его сформирует устройство с самой низкой частотой обмена.
Протокол JTAG.
Протокол JTAG создавался для тестирования, так как с ростом степени интеграции БИС, плотности монтажа и появлением многослойных печатных плат, методы диагностики, основанные на подключении к контрольным точкам платы и выводам микросхем, становились все более сложными в использовании и неэффективными. Программирование явилось частным случаем тестирования схемы внутри кристалла. Приведем краткую справку об используемом протоколе.
В начале 1985 года объединенными усилиями нескольких европейских компаний была создана группа для разработки решения проблем тестирования интегральных схем, цифровых устройств и систем. Эта группа получила имя: Joint European Test Action Group (JETAG). Позднее, в 1988 году к ней присоединились представители североамериканских компаний, и название было изменено на Joint Test Action Group (JTAG).
Результатом работы этой группы явился принятый в 1990 году стандарт IEEE Std.1149.1 и его усовершенствованная версия: стандарт
IEEE Std.1149.1a (1993). Cтандарт JTAG определяет:
-интерфейс, через который осуществляется обмен тестовыми инструкциями и данными между ведущим устройством и встроенными средствами тестирования (TAP – Test Access Port);
-минимальный набор средств тестирования, встраиваемых в БИС
(средства поддержки метода граничного сканирования). В основу стандарта положена идея внедрения в компоненты цифрового устройства средств, обеспечивающих унифицированный подход к решению следующих задач:
тестирование связей между интегральными схемами после того, как они были смонтированы на печатной плате или другой основе;
наблюдение за работой компонент без вмешательства в их нормальную работу, или непосредственное управление одним или более компонентом;
обеспечение стандартизованного доступа к произвольным средствам самотестирования, встраиваемым в БИС.