Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

4 семестр / ППЭВС. 4 семестр. Лекция 9

.pdf
Скачиваний:
16
Добавлен:
26.04.2020
Размер:
276.68 Кб
Скачать

Лекция 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);

-минимальный набор средств тестирования, встраиваемых в БИС

(средства поддержки метода граничного сканирования). В основу стандарта положена идея внедрения в компоненты цифрового устройства средств, обеспечивающих унифицированный подход к решению следующих задач:

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

наблюдение за работой компонент без вмешательства в их нормальную работу, или непосредственное управление одним или более компонентом;

обеспечение стандартизованного доступа к произвольным средствам самотестирования, встраиваемым в БИС.

Тестируемая плата с расположенными на ней БИС подключается через последовательный канал передачи данных (JTAG интерфейс) к некоторому ведущему устройству. Ведущее устройство, используя возможности, предоставляемые JTAG, решает задачи связанные с диагностикой тестируемого устройства, локализации неисправностей, загрузкой конфигураций PLD и т. п.

PC

 

TAP

 

ПЛАТА

 

 

 

 

 

Как правило, ведущим устройством является персональный компьютер, оснащенный соответствующим программным обеспечением. Подключение к ведомому устройству осуществляется через параллельный или последовательный порт, или через плату расширения.

Структура TAP представлена контроллером, расположенным, как правило, на отдельной микросхеме и регистрами, построенными на основе ячеек граничного сканирования. Ячейки граничного сканирования находятся на внешней части тестируемого кристалла возле контактных площадок выводов микросхемы.

TAP требует 4-х внешних контактов:

-TDI (Test Data Input) – контакт для получения последовательных данных. На этот контакт последовательно, бит за битом подаются данные, которые затем интерпретируются схемой управления;

-TDO (Test Data Output) – контакт вывода последовательных данных. С этого контакта ведущее устройство последовательно считывает данные из БИС (например, результат тестовых операций);

-TCK (Test Clock Input) – контакт сигнала синхронизации обмена;

-TMS (Test Mode Select) – этот контакт управляет состоянием внутреннего автомата TAP. В частности, с помощью этого контакта определяется, что

загружается: команда или данные, а также определяется начало и конец загрузки;

- TRST (Test ReSeT) – сброс в начальное состояние контроллера внутреннего автомата TAP (контакт не является обязательным для реализации).

Структура ТАР

В процессе обмена информацией через TAP ведущее устройство воспринимает БИС как сдвиговый регистр, при этом

-TDI – вход сдвигового регистра;

-TDO – выход сдвигового регистра;

-TCK – сигнал сдвига;

TAP-контроллер имеет граф из 16 состояний. Переход из одного состояния в другое зависит от сигнала TMS. В зависимости от состояния автомата TAP-контроллера в канал может быть включен либо регистр данных, либо регистр команды.

Регистр команды в JTAG-контроллере всегда один.

Регистров данных в JTAG-контроллере может быть сколько угодно. Какой именно регистр данных будет выбран для подключения, как правило, определяется загруженной командой.

Каждая ячейка граничного сканирования, расположенная во внешней части кристалла между контактной площадкой и внутренней частью, состоит из двух триггеров. Один из этих триггеров составляет регистр сдвига, а второй входит в структуру внутреннего параллельного буфера обмена.

Вариант схемы отдельной ячейки для тестирования схемы, расположенной в кристалле

Можно выделить несколько режимов в работе ячейки:

- режим сдвига, когда в триггере Т1 по сигналу «захват» сохраняется состояние аналогичного триггера предыдущей ячейки. В этом режиме ведущее устройство последовательно выдвигает текущее состояние ячеек и вдвигает новое;

-режим наблюдения («Sample»). В этом режиме по импульсу текущее состояние вывода фиксируется в триггере и может быть потом считано ведущим устройством. При этом в процессе обмена данные, получаемые от ведущего устройства, фиксируются в триггере. При необходимости, в режиме тестирования (EXTEST) эти данные могут быть выведены на внешний вывод;

-режим тестирования ( EXTEST, – Executing Test ). В этом режиме на выход подается логическое значение, которое находится в триггере T2.

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

Возможны следующие режимы работы BSC:

-загрузка программ или чтение внутрисистемных ЗУ. В этом случае отключается контактная площадка, и вся информация поступает из BSC во внутреннюю часть кристалла или из кристалла в BSC;

-тестирование соединений БИС в плате или нескольких БИС между собой. Отключена внутренняя часть, остается соединение BSC с контактной площадкой;

- тестирование штатной работы. Все соединения сохраняются. Вся цепочка связей передается программе-обработчику.