Программирование в системе (ISP).
Введение.
Интегральные
микросхемы MAX – это
программируемые логические устройства (PLD), основанные
на архитектуре Altera Multiple Array MatriX (MAX), которая
поддерживает IEEE Std. 1149.1 Joint Test Action Group (JTAG)
интерфейс. Кроме этого, в ПЛИС MAX реализован
режим программирования в системе. Этот режим значительно упрощает разработку,
изготовление и эксплуатацию устройств на основе ПЛИС. Данное руководство
пользователя содержит фундаментальные сведенья о режиме “программирование в
системе” и интерфейсе IEEE Std. 1149.1 JTAG.
Особенности и
преимущества.
Режим
программирование в системе упрощает процесс проектирования и изготовления
устройств, снижает стоимость разработки и уменьшает время внедрения и отладки
изделия. Кроме этого, у разработчика появляются дополнительные возможности по
сравнению с использованием стандартных методов программирования устройств.
Применяя ISP, Вы можете:
·
Программировать и перепрограммировать устройство после установки
ПЛИС на печатную плату (PCB printed circuit board), это сводит к минимуму
вероятность механического и электрического повреждения ПЛИС.
·
Изготовить устройство еще до завершения разработки “прошивки”
·
Выполнять процедуру периферийного сканирования (BST)
и программировать ПЛИС, используя встроенные тесты.
·
Производить upgrade системы
“в полевых” условиях.
Основные
преимущества применения ПЛИС,
поддерживающих режим ISP. Табл.1
|
Фаза
использования ПЛИС
|
Особенности
|
Выгоды
|
|
Процесс
разработки
|
Уровень
напряжения программирования Vcc.
|
Нет необходимости использовать
напряжение программирования 12В, что приводит к снижению электропотребления и
исключает возможность повреждения низковольтных элементов.
|
|
ПЛИС
может быть “прошита” на плате устройства
|
Снижается риск электрического
или механического повреждения.
|
|
Устройство
может быть изготовлено до завершения работы над “прошивкой”
|
Сокращается время на
разработку устройства.
|
|
Процесс
производства
|
Т.к.
программировать можно непосредственно на плате, ПЛИС превращается в оду из
многих микросхем, не требующих особого внимания.
|
Упрощается производство,
экономится время. Повышается уровень защиты ПЛИС от повреждений
|
|
Режим
ISP выполнен с использованием
интерфейса IEEE Std. 1149.1 (JTAG). Тем не менее,
тестирование и программирования устройства может быть выделено в отдельный
этап производства.
|
|
“Прошивка”
может быть загружена в ПЛИС из другого устройства на плате (in-circuit testers),
ПК или во время производства печатной платы
|
|
ПЛИС
может быть “прошита” тестовой конфигурацией
|
Увеличиваются возможности
тестирования и отладки устройства
|
|
Эксплуатация
|
ПЛИС
может быть перепрограммирована в “полевых” условиях.
|
Повышается функциональность
устройства, снижается цена. Устройство становится более привлекательным для
потребителя.
|
Программирование уровнем Vcc (напряжение питания).
Напряжение
программирования ПЛИС равно напряжению питания. Необходимое для
программирования, стирания и проверки ячеек EEPROM напряжение создается внутри микросхемы. Таким образом,
исчезает необходимость в использовании традиционного высокого значения 12В. Altera гарантирует, что число циклов программирования не
меньше 100.
Системы
программирования.
Для
программирование ПЛИС, поддерживающих режим ISP,
применяются следующие системы программирования:
·
САПР MAX+PLUS II
·
In-circuit testers
·
Embedded processors (Встроенные
процессоры)
САПР
MAX+PLUS II
Для
программирования вам нужен ПК (персональный компьютер) с ОС Windows или Unix. На ПК должно быть
установлено программное обеспечение САПР Altera MAX+PLUS II. При помощи загрузочного кабеля BitBlaster (последовательный
интерфейс) или ByteBlasterMV (параллельный интерфейс) в
ПЛИС загружается Programmer Object File
(.pof), Jam File (.jam) или Byte-Code File (.jbc). Этот метод программирования очень удобен. Для написания
прошивки и эмуляции ее работы, Вы можете использовать этот же ПК.
Вы можете
бесплатно загрузить САПР MAX+PLUS II с сервера
Altera.
Адрес ftp.altera.com каталог \pub\misc.
На рис.1
показан разъем загрузочного кабеля BitBlaster или ByteBlaster.

Рис.1 Разъем
загрузочного кабеля (размеры в дюймах).
Контакты разъема загрузочного кабеля Табл.2
|
Контакт
|
JTAG-режим
|
PS-режим
|
|
1
|
TCK
|
Тактовый
сигнал
|
DCLK
|
Тактовый
сигнал
|
|
2
|
GND
|
Земля
|
GND
|
Земля
|
|
3
|
TDO
|
Данные
с ПЛИС
|
CONFIG_DONE
|
Контроль
завершения конфигурации
|
|
4
|
Vcc
|
Напряжение
питания
|
Vcc
|
Напряжение
питания
|
|
5
|
TMS
|
Контроль
автомата JTAG
|
nCONFIG
|
Контроль
конфигурации
|
|
6
|
-
|
Не
используется
|
-
|
Не
используется
|
|
7
|
-
|
Не
используется
|
nSTATUS
|
Состояние
конфигурации
|
|
8
|
-
|
Не
используется
|
-
|
Не
используется
|
|
9
|
TDI
|
Данные
в ПЛИС
|
DATA0
|
Данные
в ПЛИС
|
|
10
|
GND
|
Земля
|
GND
|
Земля
|
На рис.2
показано как подключить BitBlaster или
ByteBlaster к ПЛИС через
интерфейс JTAG. Во время программирования все не
используемые при программировании выводы переводятся в третье состояние.

Рис.2
Включение ПЛИС семейств MAX3000, MAX7000,
MAX9000 в режиме программирования через интерфейс JTAG.
Программирование In-circuit test.
Вы можете
программировать ПЛИС во время окончательного тестирования печатной платы,
используя In-circuit test и
интерфейс IEEE Std. 1149.1 (JTAG).
(Примечание.
Я не знаю, как в русскоязычной литературе переводится термин “In-circuit test”. Для избежания путаницы, я оставил оригинал. Дословно “In-circuit test” можно перевести как “внутрисхемный тест”).
Программирование
производится следующим образом.
В MAX+PLUSE II создается Jam или SVF файл.
Полученный файл загружается в ПЛИС.
Более подробную
информацию об этом способе можно найти в “Jam Programming and Test
Language Overview” и “Jam Programming and Test Language
Specification”.
Применение встроенного процессора (Embedded Processor).
Вы можете
выполнить программирование в системе, используя встроенный процессор. Например,
прошивка хранится в EPROM и передается на JTAG выводы ПЛИС через четырехвыводной интерфейс. Этот метод
может применяться в полевых условиях.
Прошивка (Jam файл) создается в САПР MAX+PLUSE II.
Интерфейс IEEE Std. 1149.1.
Назначение
выводов ПЛИС интерфейса JTAG. Табл.3
|
Вывод
|
Название
|
Выполняемая
функция
|
|
TDI
|
Прием
данных
|
Последовательный прием данных
и команд, данные сдвигаются по фронту TCK. Вывод
этого сигнала должен быть “подтянут” к напряжению питания.
|
|
TD0
|
Передача
данных
|
Последовательная передача
данных и команд, данные сдвигаются по срезу TCK.
Когда данные не передаются, вывод этого сигнала находится в третьем
состоянии.
|
|
TMS
|
Выбор
режима
|
Входной сигнал управления
состоянием JTAG, данные считываются по фронту TCK. Вывод этого сигнала должен быть “подтянут” к
напряжению питания.
|
|
TCK
|
Тактовый
сигнал
|
Максимальная частота 10 МГц.
Вывод этого сигнала должен
быть “подтянут” к земле.
|
В течение
процесса программирования, стирания и проверки все выводы I/O находятся в третьем состоянии. Процесс прошивки происходит
следующим. На входы TMS и TCK подаются необходимые сигналы, и данные сдвигаются в ПЛИС
или из ПЛИС по выводам TDI и TD0 соответственно. После программирования имеет место режим Reset (сброс), который удерживается
внешним “подтягивающими” резисторами на выводах TCK, TMS, TDI.

Рис.3
Временные диаграммы программирования ПЛИС через порт JTAG
Временные параметры ПЛИС (нс) Табл.4
|
Символ
|
Параметр
|
Min
|
Max
|
|
tJCP
|
Период сигнала TCK
|
100
|
|
|
tJCH
|
Длительность высокого уровня
сигнала TCK
|
50
|
|
|
tJCL
|
Длительность низкого уровня
сигнала TCK
|
50
|
|
|
tJPSU
|
Время установки порта JTAG
|
20
|
|
|
tJPH
|
Длительность сигнала JTAG
|
45
|
|
|
tJPCO
|
Задержка распространения
сигнала относительно такта JTAG
|
|
25
|
|
tJPZX
|
Задержка перехода сигнала JTAG из третьего состояния
|
|
25
|
|
tJPXZ
|
Задержка перехода сигнала JTAG в третье состояние
|
|
25
|
|
tJSSU
|
Время установки регистра
захвата
|
20
|
|
|
tJSH
|
Длительность сигнала на выходе
регистра захвата
|
45
|
|
|
tJSCO
|
Задержка обновления сигнала в
регистре захвата относительно такта
|
|
25
|
|
tJSZX
|
Задержка перехода сигнала
регистра захвата из третьего состояния
|
|
25
|
|
tJSXZ
|
Задержка перехода сигнала
регистра захвата в третье состояние
|
|
25
|
Программирование ISP-совместимых ПЛИС.
Вы можете
использовать IEEE Std.1149.1 JTAG для
программирования как одиночных ПЛИС, так и нескольких ПЛИС, соединенных в
цепочку.
Программирование одиночных ПЛИС.
Для печатных
плат с одной ПЛИС применяется 10-выводный загрузочный кабель BitBlaster или ByteBlaster.

Рис.4
Программирование одиночных устройств.
Программирование нескольких ПЛИС, соединенных в цепочку.
Для
одновременного программирования нескольких ПЛИС применяется последовательное
подключение микросхем к одному загрузочному кабелю (рис.5). Число подключенных
ПЛИС ограничивается нагрузочной способностью загрузочного кабеля.
Если
микросхем больше трех, то рекомендуется буферизировать сигналы TD0, TCK, TDI,
TMS.

Рис.5
Программирование нескольких ПЛИС
Если надо
программировать только одну ПЛИС из цепочки, то все другие переводятся в режим BYPASS. В этом режиме микросхемы передают данные с вывода TDI на вывод TD0
через регистр bypass, передаваемые данные не воздействуют
на “транзитные” ПЛИС.
Заключение.
ПЛИС,
поддерживающие возможность ISP, предоставляют
разработчику новые возможности. ПЛИС могут быть прошиты непосредственно на
печатной плате устройства, и для этого не нужны сложные технические средства.
Процесс программирования существенно упрощается и может быть проведен в “полевых”
условиях. Для этого даже не надо извлекать микросхему ПЛИС из устройства.
Петрелевич Сергей
zalivnoy@yandex.ru
www.nsdevice.narod.ru
Источники информации:
1)
www.altera.com
2) Стешенко
В.Б. ПЛИС фирмы “Altera”: элементная база, система
проектирования и языки описания аппаратуры // М.: Москва Издательский дом “Додэка-XXI”, 2002.