УДК 681.518.5
РАЗРАБОТКА КЛАСТЕРНОГО ТЕСТА ДЛЯ ЭЛЕКТРОННОГО МОДУЛЯ С JTAG ИНТЕРФЕЙСОМ
© 2015 В.М. Гречишников, А. Д. Бутько, А. Ю. Лавров
Самарский государственный аэрокосмический университет им. академика С. П. Королёва (национальный исследовательский университет)
Статья поступила в редакцию 23.11.2015
В работе рассмотрена возможность повышения тестового покрытия электронных модулей за счёт использования программных моделей, написанных на языке Python. Приведен пример реализации кластерного теста для диагностики электронного модуля ввода-вывода данных самолета. Ключевые слова: метод граничного сканирования, JTAG-интерфейс, кластер.
Увеличение функциональной сложности и плотности монтажа современных электронных плат, требует совершенствования методов контроля качества их сборки. Вследствие быстро растущей сложности интегральных микросхем (ИС) стандартная реализация известных методов тестирования электронных изделий наталкивается на ряд трудностей, таких как техническая и технологическая сложность тестов и, соответственно, значительное время их подготовки и выполнения. Проблемы диагностики особенно актуальны при контроле сложных многослойных печатных плат с корпусами микросхем, не имеющих физического доступа к контактам. Существенно повысить эффективность тестирования электронных плат позволяет хорошо зарекомендовавший себя метод граничного сканирования (Boundary Scan).
Метод граничного сканирования описывается в стандарте IEEE 1149.1 и определяет размещение распределенных между выводами функционального ядра микросхемы и выводами её корпуса специальных внутренних ячеек граничного сканирования (Boundary Scan Cell), образующих регистр последовательного сдвига. Соответствующий интерфейс, предназначен для подключения электронных модулей к системам тестирования и диагностики, известен как JTAG-интерфейс. Для доступа к тестируемым ИС используется специальный порт TAP (Test Access Port), представляющий собой: регистр входа последовательных данных периферийного сканирования TDI (test data input), регистр выхода последовательных данных TDO (test data output), регистр тестовой синхронизации TCK (test clock),
Гречишников Владимир Михаилович, доктор технических наук, профессор, заведующий кафедрой электротехники. E-mail: [email protected].
Бутько Алексей Дмитриевич, инженер, аспирант кафедры электротехники. E-mail: [email protected] Лавров Андрей Юрьевич, кандидат технических наук, доцент кафедры электротехники. E-mail: [email protected]
регистр выбора режима тестирования TMS (test mode select). Инициализация TAP-порта может осуществляться через регистр TRST (ри. 1). Все 5 выводов подключаются к специальному внешнему разъему JTAG на печатной плате.
Использование технологии граничного сканирования позволяет разрабатывать тесто-пригодные изделия с большим коэффициентом тестового покрытия, повышающим потребительские свойства и надёжность изделий.
ПРОГРАММНАЯ РЕАЛИЗАЦИЯ МЕТОДА ГРАНИЧНОГО ТЕСТИРОВАНИЯ В ПАКЕТЕ JTAG PROVISION
Эффективность технологии граничного сканирования определило широкое распространение рекомендаций по тестопригодному проектированию электронных схем, обеспечивающих надёжность создаваемых устройств [1, 2]. Существенным достоинством метода выступает реализуемость алгоритмов тестирования. Хорошо известен многофункциональный программный продукт JTAG Provision компании JTAG Tecnologies [3]. JTAG Provision позволяет не только проводить тестирование уже готовых электронных плат, но и разрабатывать тесты еще на стадии их проектирования.
При высокой плотности монтажа компонентов сложных многослойных электронных плат часто бывает невозможно обеспечить прямой доступ к тестируемым ИС и тестовый сигнал вынужден проходить через электронные компоненты не имеющие JTAG-интерфейса. В терминах технологии граничного сканирования подобные компоненты называют кластерами, а их последовательность - кластерной цепочкой. Кластер может быть любая цепочка, состоящая из одного или более цифровых, аналоговых или пассивных элементов, не имеющих JTAG - интерфейс, если обеспечены два непременных схемных условия: JTAG-управляемость входов этой структуры и JTAG-наблюдаемость ее выходов [4].
BSC
Функциональное ядро микросхемы
РЕГИСТРЫ
ТАР -к онтр о ллер
IJTAG)
TDO (Data Out)
TDI I (Data In)
TCK (Clock), TMS I (Contlol) I TR5T (Reset)
Рис. 1. BS-микросхема с элементами граничного сканирования
Как показывает практика, включение тестов для кластеров позволяет повысить тестовое покрытие изделия. Даже если на тестируемой плате всего один компонент, поддерживающий периферийное сканирование, он может быть окружен всевозможными кластерами, которые легко можно продиагностировать.
ПРОБЛЕМЫ, ВОЗНИКАЮЩИЕ ПРИ ТЕСТИРОВАНИИ ЭЛЕКТРОННЫХ ПЛАТ С КЛАСТЕРАМИ
Программный пакет JTAG Provision позволяет построить и реализовать тест даже в том случае, когда отсутствует прямой доступ к JTAG-компонентам. В работе описан классический подход на основе генерации модели компонента и функциональный подход, заключающийся в разработке собственного тестового модуля, написанного на языке Python.
Широкие возможности программного пакета JTAG Provision позволяет использовать оба принципа тестирования при диагностике электронного модуля ввода-вывода данных самолета. Модуль предназначен для обеспечения достоверности выдаваемых данных за счет сравнения данных, подготовленных различными вычислительными устройствами и способен принимать и выдавать информацию по линиям связи.
В состав электронной платы включены три ПЛИС Altera Cyclone III, имеющие JTAG-интерфейс и выводы, позволяющие подключить TAP-контроллер, связанный с компьютером. Используя встроенные возможности JTAG Provision, были разработаны тесты для диагностируемой платы, однако вследствие наличия в схеме
кластерных цепочек ряд тестов выполнить не удалось. В процессе разработки тестов было установлено, что цифровые сигналы, формируемые микросхемой 05, невозможно напрямую подать на 02, так как 02 связана с 05 только выходами. Чтобы послать на неё тестовый вектор, были использованы буферные микросхемы 017-021, соединённые с входом микросхемы 05 и внешними выводами электронного модуля на разъеме Х1(рис. 2). Соединением определённых выводов разъёма Х1 можно подать сигналы на вход 02 по пяти каналам из буферных микросхем. С выхода 02 сигнал напрямую возвращается на микросхему 05, где и происходит сравнение его с исходным тестовым вектором.
Рис. 2. Связь микросхемы D2 по пяти каналам через разъем Х1
В качестве примера рассмотрим передачу сигнала по второму каналу. Из микросхемы D5 сигнал поступает на вторую буферную микросхему D18. Выходы D18 имеют внешние выводы на разъёме X1 (№52 и 114). На этот же разъём выведены входные контакты микросхемы D2 (№223 и 161). Таким образом, соединив выходные контакты D18 с соответствующими им входными с микросхемы D2, как показано на рис. 3, можно передать тестовый вектор с D5 на D2.
ПРИМЕР ПОСТРОЕНИЯ КЛАСТЕРНОГО ТЕСТА
Программное обеспечение JTAG Provision позволяет включать в тесты внешние модули представляющие собой программы написанные на языке высокого уровня Python 3. Для этого в состав пакета включен специальный модуль JFT, реализующий программный интерфейс доступа к контролируемым компонентам. Модуль импортируется стандартной командой Python 3,
Рис. 3. Схема тестирования кластера по второму каналу
import JFT, после чего все его возможности доступны из программного пакета. Предустановленные библиотеки с функциями позволяют использовать названия или номера выводов JTAG компонентов и устанавливать или считывать с них значения, записывая их при необходимости в переменные, а также оперировать сразу группами выводов.
Разработанный модуль представляет собой функциональное описание кластера. Алгоритм цифровой обработки входного и выходного сигналов программируется для каждого канала в отдельности, а затем объединяется между собой в последовательность тестов. Ниже показан фрагмент модуля, содержащий функцию обработки сигналов по второму каналу.
На вход подается исходный тестовый вектор, а с выхода считывается результирующий вектор. Идентичность результирующего и исходного векторов указывает на отсутствие дефектов кластера. Различие векторов указывает на дефект в линии связи кластера и JTAG-микросхемы, тип которого позже может быть идентифицирован. Текст программного модуля для второго канала приведен ниже.
# Подпрограмма, для передачи и приёма тестового вектора def Test(vector):
# обнуление счётчика ошибочно принятых символов тестового вектора
err = 0
# цикл для последовательной передачи символов тестового вектора
for x in range (0, len(vector)):
# разбивка тестового вектора на отдельные символы
v=int(vector[x])
# передача конкретной логической последовательности из таблицы истинности микросхем D18 и D2 в зависимости от введённого в подпрограмму символа
if v==0: jft.DriveGroup(«Input», 0b001)
# передача «NULL»
elif v==1: jft.DriveGroup(«Input», 0b011)
# передача «ZERO»
elif v==2: jft.DriveGroup(«Input», 0b101)
# передача «ONE»
# приём сигналов, прошедших через кластер и вернувшихся в микросхему D5
y=jft.GetGroup("Output") # проверка совпадения отправленного и принятого символа тестового вектора if y != v:
# при ошибке передачи инкрементируется счётчик ошибок
err += 1
# вывод сообщения об ошибке или об удачной передаче символа
print («Error in transmitting symbol», x, «of the test vector»)
eise: print (y, «- Symbol», x, «transmitted correctly»)
# подпрограмма возвращает в основную программу число ошибок при передаче символа
return err
Аналогично диагностируются остальные четыре канала.
Основное принципиальное отличие JFT от классического подхода — это то, что алгоритм автоматической генерации заменяется в данном случае на самостоятельно написанный программистом скрипт.
В результате использования JFT - модуля при построении кластерного теста для всех пяти каналов реальное покрытие печатной платы увеличилось на 3%. На рис. 4 показан отчёт, формируемый JTAG Provision по завершении тестов. Слева изображено покрытие платы без разработанного Python-модуля тестового приложения, а справа с его использованием.
ВЫВОДЫ
Необходимость качественной и полной диагностики электронных плат ставит перед специалистами сложные задачи разработки
Met Statistics Testability % Coverage % Net Statistics Testability % Coverage | % |
Total nunberof nets caJeJaied 1079 100V. 1079 1004 Total number of nets calculated 1079 100% 1079 100%
Wets in Nefet 269 269 Mets in Net list 269 269
Nets added for not connected pins (+) BIO 310 Mets added for not connected p*is (+) 310 810
Nets ignored by user (-} 0 0 Mets Ignored by user (-) 0 0
Sensed and driven nets 885 82*4 855 79% Sensed and driven nets 885 8 2% 881 82%
Sensed by ESCAN device (direct) BJ7 826 Sensed by 8SCAN device [direct) 847 828
Sensed through transp. device indirect) 21 12 Sensed through transp device {indirect) 21 2
Sensed Pwr / Gnd nets 4 4 Sensed Pwr / Gnd nets 4 A
implicitly tested nets 13 13 ImplicitJy tested nets 13 13
Nets Covered 1007. by user 0 Mets Covered 1 (X)-/. by user 0
Nets Covered by JFT 0 Mets Covered by JFT 34
Nets Covered by Imported CSV F0e 0 Mets Covered by Imported CSV Rle 0
Nets not tested by BSCAN 194 184 224 21% Nets not tested by BSCAN 134 18% 198 18%
Рис. 4. Сравнение реального покрытия до и после применения кластерного тестирования
тестов. Программные продукты и аппаратные комплексы, реализующие технологию граничного сканирования, охватывают широкий спектр вопросов диагностики. Однако компактность размещения компонентов на плате и отсутствие прямого доступа к контролируемым точкам может вызвать существенные затруднения. В этом случае может оказать помощь дополнительные программные модули, разрабатываемые под конкретные кластерные цепочки. Создавая подобные модули для неизвестных программе участков платы, можно существенно увеличить её тестовое покрытие.
СПИСОК ЛИТЕРАТУРЫ
1. Иванов, А В. Ключевые моменты тестопригодной разработки / А.В. Иванов // Электронные компоненты. - 2010. - № 18. С. 4-8.
2. Городецкий А. А. 1ТЛО тестирование кластеров /. А. А. Городецкий // Компоненты и технологии. - 2010. -№1. С. 38-39.
3. Гречишников В. М. Многофункциональные пакеты программ граничного сканирования / А. Д. Бутько // XII королевские чтения -2013. - Том 2. С. 116-117.
4. Иванов, А В. Два подхода к тестированию кластеров в технологии периферийного сканирования / А.В. Иванов // Компоненты и технологии. - 2011. - №10. С. 203-206.
CLUSTER DEVELOPMENT TEST FOR ELECTRONIC MODULE WITH JTAG PORT
©2015 V.M. Grechishnikov, A. D. Butko, A. Yu. Lavrov
Samara State Aerospace University named after Academician S.P. Korolyov (National Research University)
The paper considers the possibility of increasing the test coverage of the electronic circuit boards through the use of modules written in Python. Example of realization of the functional test for the diagnosis of the electronic module I / o data of the aircraft «SuperJet 100». Keywords: boundary scan, cluster, JTAG-interface.
Vladimir Grechishnikov, Doctor of Technics, Professor, Head at the Electrical Engineering Department. E-mail: [email protected] Alexey Butko, Engineer, Graduate Student of the Electrical Engineering Department. E-mail: [email protected] Andrey Lavrov, Candidate of Technics, Associate Professor at the of Electrical Engineering Department. E-mail: [email protected]