Последовательные передача и прием 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Последовательные передача и прием



Интерфейс JTAG использует полнодуплексную передачу данных. Одновременно с вводом данных сдвигом с линии TDI, выполняется вывод данных сдвигом на линию TDO. В свою очередь, интерфейс PDI использует полудуплексную передачу данных. Таким образом, работая совместно с контроллером PDI, трансивер JTAG работает либо в режиме передачи (TX), либо в режиме приема (RX).

Программатор и интерфейс JTAG работают синхронно с сигналом TCK, который генерируется программатором. Зависимость между фронтами синхронизации и выборкой или изменением данных фиксированная. На рисунке 29.10 показано, что изменение уровней на линиях TDI и TDO всегда происходит по падающему фронту TCK, а выборка данных - по нарастающему фронту TCK.

Рисунок 29.12. Изменение и выборка данных

Последовательная передача

После инициации передачи данных, в сдвиговый регистр в параллельном формате помещается байт данных, после чего он последовательно передается сдвигом по линии TDO. Сгенерированный бит паритета передается сразу за битами данных. Скорость передачи зависит от сигнала TCK.

Сигнализация статуса

Если PDI перешел в режим передачи (как отклик на инструкцию LD) и во время ввода TAP-контроллером состояния ЗАХВАТ_РД контроллер PDI отправил запрос на передачу, выполняется загрузка действительных данных в параллельном формате в сдвиговый регистр и генерация бита паритета, который в дальнейшем будет передан в состоянии СДВИГ_РД вместе с байтом данных. Если PDI находится в режиме приема и TAP-контроллер вводит состояние ЗАХВАТ_РД, в сдвиговый регистр помещается байт EMPTY (0xEB) в параллельном формате, а бит паритета устанавливается равным единице (чтобы вызвать ошибку паритета) и передается в дальнейшем вместе с байтом данных в состоянии СДВИГ_РД. Такая ситуация возникает в ходе приема нормальной команды PDI и операнда.

Если PDI перешел в режим передачи (как отклик на инструкцию LD), но от контроллера PDI запрос на передачу еще не отправлен, TAP-контроллер вводит состояние ЗАХВАТ_РД, байт DELAY (0xDB) загружается в сдвиговый регистр, а бит паритета устанавливается равным единице (чтобы вызвать ошибку паритета) и передается вместе с байтом данных в состоянии СДВИГ_РД. Данная ситуация возникает в ходе передачи данных, когда еще нет доступных данных для передачи.

На рисунке 29.13 показан непрерывный поток посылок данных из PDI (МК), которые являются результатом повторяющегося выполнения инструкций LD. В данном примере МК не может возвращать данные быстрее одного байта за две переданных посылки, т.к. между посылками вставляются промежуточные символы DELAY.

Рисунок 29.13. Маркировка неготовности данных

Если посылка данных DELAY передается в отклик на инструкцию LD, программатор должен интерпретировать это так, как будто интерфейс JTAG еще не имел данных для передачи во время предыдущего состояния ЗАХВАТ_РД. Адекватной реакцией программатора в таком случае является инициация повторяющихся передач вплоть до приема действительного байта данных. Выполнение инструкции LD подразумевает возврат определенного количества действительных посылок, а не просто количества посылок. Таким образом, если программатор после передачи инструкции LD обнаруживает символ DELAY, инструкцию LD нельзя передавать повторно, т.к. еще должен быть отправлен отклик на первую инструкцию LD.

Последовательный прием

Во время приема, приемник заполняет сдвиговый регистр с входа TDI восемью битами данных и битом паритета. При каждом приеме действительной посылки происходит фиксация данных в параллельном формате в состоянии МОДИФ_РД.

Проверка паритета

Блок проверки паритета вычисляет паритет (используется четный режим) бит данных принятой посылки и сравнивает его с принятым в последовательной посылке битом паритета. Если обнаруживается ошибка паритета, об этом сигнализируется контроллер PDI.

Обнаружение символа BREAK

Блок проверки паритета активен как в режиме передачи, так и в режиме приема. Если обнаруживается ошибка паритета, принятый байт данных сравнивается с кодом символа BREAK (при передаче которого искусственно вводится ошибка паритета). При обнаружении символа BREAK, об этом сигнализируется контроллер PDI.

Контроллер PDI

Контроллер PDI отвечает за передачу/прием данных на байтном уровне, дешифрацию команд, управление направлением передачи, обработку исключительных ситуаций, доступ к регистрам управления и статуса и переключение синхронизации (PDI_CLK или TCK). Взаимодействие между программатором и контроллером PDI происходит по следующей схеме. Программатор передает различные типы запросов в контроллер PDI, который в зависимости от типа запроса соответствующим образом реагирует на него. Запрос программатора поступает в виде инструкции, за которой могут следовать один или несколько байт операндов. Реакцией контроллера PDI на запрос может быть молчание (например, когда требуется сохранение принятых данных по назначению) или передача данных программатору (например, когда выполняется чтение данных по заданному адресу).



Поделиться:


Последнее изменение этой страницы: 2016-12-30; просмотров: 232; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.17.150.163 (0.004 с.)