Выпуск #5/2013
Н.Клюквин
Введение в технологию периферийного сканирования. Описание и рекомендации для разработчиков
Введение в технологию периферийного сканирования. Описание и рекомендации для разработчиков
Просмотры: 2782
Для того чтобы в полной мере воспользоваться возможностями периферийного сканирования, при разработке принципиальной схемы устройства и проектировании печатной платы, необходимо обеспечивать максимально возможное тестовое покрытие схемы. Для проведения тестов и некоторых других процедур при отладке и производстве изделий применяется специализированное ПО – как платное, так и бесплатное.
Несколько десятилетий назад микросхемы выпускались в корпусах относительно большого размера с (опять же, относительно) небольшим числом выводов. При монтаже таких микросхем на одно- или двухслойные печатные платы проблем с доступом к их выводам для тестирования не было. Однако с появлением технологий поверхностного монтажа количество выводов у компонентов и их плотность стали увеличиваться – встречаются микросхемы с 1000 и даже с 2000 выводами, при этом доступ к выводам крайне затруднен. Используемые ранее методики тестирования, как, например, автоматы с "ложем гвоздей" (рис.1), становятся неэффективными, а порой они вообще неприменимы для многослойных плат с BGA-компонентами. Для проведения тестов необходимо обеспечить физический доступ либо к выводам компонентов, либо к отдельным контактным площадкам. Но на многослойной печатной плате с множеством связей очень сложно обеспечить доступ ко всем узлам и компонентам (в частности, для ВЧ-цепей вообще нежелательно наличие каких-либо дополнительных отводов). Поэтому сегодня единственным методом определения и локализации дефектов на таких платах является периферийное сканирование.
Эта проблема стала актуальной еще в 80-х годах прошлого века. Для ее решения фирма Philips организовала специальное подразделение, которое занялось разработкой методов и технологий доступа к таким компонентам. Стандарт периферийного сканирования IEEE 1149.1 был утвержден в 1990 году. Свое второе, более распространенное имя JTAG он получил от названия рабочей группы по разработке этого стандарта – Joint Testing Action Group.
Что такое периферийное сканирование
Принцип периферийного сканирования достаточно прост. В каждой цифровой микросхеме, совместимой c JTAG, имеются специальные блоки, отключающие ядро микросхемы и обеспечивающие прямой доступ к выводам компонента. Это позволяет выставлять на выводах микросхемы произвольные значения или считывать сигналы на выводах, управляя процессом с помощью специального интерфейса. Таким образом, наличие на плате одного компонента, поддерживающего JTAG, дает возможность проводить внутрисхемное тестирование платы, задействовав всего лишь несколько выводов интерфейсного разъема.
Инфраструктура JTAG включает в себя несколько общих для всех поддерживающих периферийное сканирование микросхем элементов. На кристалле микросхемы реализованы контроллер тестового доступа и регистры периферийного сканирования. Несколько дополнительных выводов микросхемы, имеющих общее название TAP (Test Access Port, порт тестового доступа), предназначено для управления периферийным сканированием. Иногда (довольно редко) эти выводы совмещаются со стандартными выводами микросхемы. Синхронизация и управление микросхемами осуществляется сигналами TCK и TMS (рис.2). Информация с внешнего источника загружается через вход TDI и считывается с выхода TDO. Регистры периферийного сканирования управляют передачей данных и выводами микросхемы, устанавливая или считывая с них данные, превращая таким образом каждый вывод в точку тестирования. Несколько поддерживающих JTAG микросхем можно объединить в так называемую цепочку периферийного сканирования (boundary scan chain), последовательно соединяя выходы TDO микросхем со входами TDI. При этом управляющие сигналы TCK и TMS подаются параллельно на все микросхемы (рис.3).
Периферийное сканирование на практике
В 1990-х годах, когда стандарт JTAG только появился, применять на практике периферийное сканирование было довольно сложно. Микросхем, поддерживающих его, было мало, а существующие программные средства позволяли работать с JTAG только на низком уровне. Инженеру приходилось самостоятельно создавать алгоритмы тестирования, работая непосредственно с регистрами и контроллером JTAG, что отнимало очень много сил и времени. С тех пор сложность электронных изделий возросла на несколько порядков, и ручное создание тестовых последовательностей, учитывающих каждую цепь в схеме и каждый возможный дефект, стало невозможным не только для одного инженера, но и для целой группы. Поэтому сегодня периферийное сканирование неразрывно связано с понятием ATPG (Automatic test pattern generation) – автоматическое создание тестовых последовательностей. Создание и выполнение тестов перепоручается компьютеру со специальным программным обеспечением. Один из примеров такого ПО – пакет JTAG ProVision. Он позволяет в автоматическом режиме создавать и запускать тесты и анализировать их результаты, причем для этого программе требуется не так много данных, а именно:
список соединений компонентов схемы (netlist) – создается в любой САПР печатных плат;
BDSL-файлы для каждого поддерживающего периферийное сканирование компонента – доступны на интернет-сайтах производителей компонентов;
тестовые модели компонентов, не поддерживающих JTAG.
В BDSL-файле содержится информация о структуре системы периферийного сканирования компонента. В нем описаны выводы, которые могут работать как проверочные входы и выходы, инструкции JTAG-контроллера и т.д. (см. врезку).
Модели компонентов, не поддерживающих JTAG, в большинстве случаев можно найти в библиотеке, входящей в состав ПО. Для простых компонентов модель представляет собой обычную таблицу истинности. Для более сложных компонентов применяются функциональные модели, учитывающие, в частности, тип корпуса изделия. Поддерживается также импорт моделей компонентов различных форматов (в том числе IBIS). Если найти подходящую модель не удалось, ее можно запросить у производителя компонента или же создать самостоятельно. Перед непосредственным созданием тестов программа проводит анализ тестового покрытия (рис.4). Полученная информация может служить руководством для разработчика по улучшению тестируемости схемы.
На основе всей имеющейся информации создаются тестовые векторы, т.е. цифровые данные, которые выставляются на выводах поддерживающих периферийное сканирование компонентов, и последовательность опроса этих компонентов (рис.5). Также поддерживается возможность программирования ПЛИС и флеш-памяти.
JTAG ProVision позволяет создавать различные виды тестов с помощью мастеров приложений, в которых поэтапно задаются все параметры тестовой программы. При необходимости (например, для улучшения тестового покрытия) в проект можно внести изменения – добавить или убрать цепи, компоненты и т.д. Если предполагается тестировать несколько плат одновременно, редактор межсоединений позволяет легко и просто описать связи между этими платами. Также есть возможность задействовать несколько TAP-портов или же, наоборот, объединить их, если на станции периферийного сканирования портов меньше, чем на изделии. И, конечно же, ПО позволяет запускать созданные приложения.
Во время выполнения тестов проверяется соответствие информации на входах и выходах тестируемых цепей. Информация о найденных дефектах представляется с точностью до цепи, и последующая локализация дефектов не представляет труда (рис.6). Средства визуализации позволяют наложить полученную информацию на топологию печатной платы или принципиальную схему (рис.7).
Рассмотренные выше автоматизированные программные средства крайне эффективны и удобны в работе. Однако в ряде случаев применение столь сложного и, что немаловажно, дорогого ПО не оправдано. При работе с относительно несложными изделиями разработчик может воспользоваться бесплатными приложениями из пакета JTAG Live (www.jtaglive.ru). "Прозвонщик" JTAG Buzz не поддерживает автоматическую генерацию тестовых программ, но позволяет задействовать JTAG совместимые компоненты и проверять с их помощью цепи изделия в ручном режиме (так же, как это делают с помощью тестера, рис.8). Для работы с Buzz так же, как и для работы с ProVision необходимы BDSL-файлы применяемых в изделии микросхем.
Еще одно приложение из пакета JTAG Live – AutoBuzz – позволяет тестировать изделия в автоматическом режиме, сравнивая результаты тестов с эталонными, полученными при проверке заведомо исправного изделия (рис.9). Приложение Clip (рис.10) дает возможность создавать тестовые векторы и проверять с их помощью логику работы микросхем.
Таким образом, инженер, заинтересовавшийся возможностями периферийного сканирования, может опробовать эту технологию на практике, не приобретая дорогостоящего ПО.
Что можно тестировать с помощью периферийного сканирования
Ясно, что возможность тестирования платы с помощью цепочки периферийного сканирования зависит от ее целостности. Поэтому в первую очередь должна быть проверена сама инфраструктура периферийного сканирования. Убедившись в ее работоспособности, можно переходить к первому этапу внутрисхемного тестирования – проверке межсоединений. Проверяются не только прямые цепи, но и те, в которых есть резисторы (при этом номинал резисторов проверить возможности нет). При наличии на плате каких-либо интерфейсных разъемов проводится проверка интерфейсов. В этом случае тестовое оборудование подключается к разъемам на плате и проводится проверка целостности цепей интерфейсов.
Далее выполняются тесты кластеров. Под кластерами здесь имеются в виду компоненты, не поддерживающие периферийное сканирование, – это могут быть и цифровые, и гибридные микросхемы. Тесты проверяют функционирование кластера. Например, для проверки интерфейса RS-232 достаточно соединить его вход с выходом и "прогнать" через него тестовые данные. Если кластеры имеют связь с интерфейсными разъемами на плате, то проверку кластеров можно выполнить и с их помощью.
Следующий этап тестирования – проверка микросхем памяти, которые почти всегда присутствуют в цифровых устройствах. Несмотря на то, что микросхемы памяти обычно не поддерживают периферийное сканирование, их проверку можно осуществить, если к шинам данных и адреса есть доступ с компонентов, поддерживающих эту технологию. С помощью периферийного сканирования можно проверить на целостность и правильность работы все шины, связывающие память с остальными узлами схемы, и на ошибки саму память. Интерфейс JTAG позволяет также программировать ПЛИС и флеш-память; интересно, что многие инженеры применяют его именно для этих целей, попросту не зная о его изначальном предназначении и возможностях. В итоге даже для платы, на которой имеется лишь один компонент, поддерживающий периферийное сканирование, с его помощью можно обеспечить до 90% тестового покрытия этого изделия.
Аппаратные контроллеры JTAG
Так как большая часть работы по тестированию выполняется ПО, можно сказать, что аппаратные средства тестирования – это всего лишь интерфейс между компьютером и изделием. Он позволяет управлять периферийным сканированием, выдавая и принимая тестовые последовательности для их дальнейшего анализа.
Контроллеры периферийного сканирования можно классифицировать по количеству TAP-портов, максимальной частоте работы, различным функциям и т.д. (см. таблицу). Они производятся как JTAG Technologies, там и многочисленными сторонними фирмами. При выборе контроллера разумней всего ориентироваться на изделия, с которыми предстоит работать, – в частности, какие компоненты в нем применяются, нужно ли будет программировать флеш-память и т.д. Контроллер JTAG может быть реализован в виде отдельного модуля с подключаемыми TAP-портами (для удобства сопряжения портов с тестируемой платой) либо в корпусе для установки в стандартную 19-дюймовую стойку (рис.11).
Он может быть выполнен также в виде отдельного модуля (DIOS – digital I/O scan module), который применяется для тестирования стандартных интерфейсов PCI и DIMM. Модуль DIOS может быть выполнен в виде платы, которая вставляется в разъем тестируемого устройства или же, наоборот, иметь разъемы для установки в них проверяемых модулей памяти и PCI-карт (рис.12).
Отдельно стоит сказать о методах дистанционного тестирования. Нередко изделия работают в "полевых" условиях либо просто очень далеко от изготовителя (например, в космосе). С помощью специальных средств есть возможность выполнить все тесты дистанционно, так же, как если бы эти изделия находились на столе рядом с компьютером. Для этого, конечно, необходим устойчивый и надежный канал передачи данных (рис.13). Модуль JTAG может быть реализован и непосредственно в самом изделии.
Периферийное сканирование на производстве
Рассматривая применение JTAG в жизненном цикле изделия, можно выявить его определенные достоинства и особенности. Прежде всего, эту методику можно применять еще на стадии разработки печатной платы, изменяя схему изделия так, чтобы периферийное сканирование покрывало как можно большую часть схемы. Для серийного производства изделия вместе с ним передаются и все тестовые программы и методики, которые были созданы и применялись на этапе разработки. Таким образом, для тестирования готовых изделий нет необходимости создавать какие-либо новые технологические оснастки и методы. Иными словами, и при разработке, и при производстве, и даже во время эксплуатации изделия для диагностики, обслуживания (например, перепрограммирования) и ремонта изделия применяются одни и те же средства – как программные, так и аппаратные.
Многообразие аппаратных средств периферийного сканирования позволяет создавать систему практически любой гибкости. Понятно, что при производстве серийных изделий необязательно иметь комплекс средств, позволяющий разрабатывать тесты, – ведь этот этап уже выполнен при опытно-конструкторских работах, и при массовом выпуске достаточно лишь запускать эти тесты и анализировать результаты. Поэтому в данном случае можно обойтись оборудованием именно с такими возможностями. Можно также интегрировать тестовые приложения и в другие системы. Например, на базе функциональных тестеров National Instruments можно создать как специальные программные средства, так и аппаратные (адаптеры), позволяющие проводить JTAG-тестирование в составе одного комплекса. Автоматы внутрисхемного контроля (например, SPEA 3030) позволяют подключать JTAG-модуль, в результате автомат выполняет полную проверку изделия – как его аналоговой части, так и цифровой.
В общем, такая интеграция позволяет оператору работать в одной, привычной для него, программной оболочке при выполнении всех тестов. Это позволяет сэкономить некоторые ресурсы, так как один оператор может выполнять все этапы проверки изделия. Однако создание и отладка такой системы могут потребовать привлечения инженеров высокой квалификации и занять довольно много времени. Поэтому если на предприятии еще нет опыта разработки и эксплуатации комплексных тестовых систем, поначалу наиболее рационально создать отдельные рабочие места для проведения периферийного сканирования, функционального контроля и т.д. Такой подход увеличивает количество рабочих мест, но квалификация работающих на них специалистов необязательно должна быть столь высокой.
Улучшаем тестируемость изделия
Начиная проектировать изделие, поддерживающее периферийное сканирование, нужно понимать, что уровень тестового покрытия (а, следовательно, и эффективность тестирования) напрямую зависит от того, насколько глубоко разработчик продумал эти возможности.
В англоязычной технической литературе встречается понятие Design Pro Test Ability. Его можно перевести как "проверка тестируемости изделия", которую нужно проводить на стадии разработки изделия, естественно, стремясь к повышению тестируемости. К сожалению, российские разработчики часто бывают мало знакомы с этими технологиями либо по каким-то причинам не желают их применять. Такая ситуация может возникнуть из-за "порванной" связи между разработчиками и производством: разработчики не знакомы со спецификой и возможностями производства, на котором, в свою очередь, не знают, кто именно разработал изделие. При производстве сложных изделий закономерно обнаруживаются дефекты. Если эти изделия сложны и содержат компоненты в корпусах BGA и им подобные, поиск и локализация дефектов вызывают серьезные трудности. Но их можно избежать, изначально заложив в изделие возможности тестирования, что позволит сократить затраты на ремонт и диагностику готовых изделий. Для этого разработчик должен придерживаться определенных правил проектирования изделия.
Прежде всего, необходимо выбирать компоненты, поддерживающие периферийное сканирование по стандарту IEEE 1149.1. Различные микросхемы, выполняющие одну и ту же функцию, могут иметь или не иметь такую поддержку, на что стоит обращать внимание при выборе элементной базы изделия. Поддержка IEEE 1149.1 заявлена в документации на компоненты (обычно указано на первом листе). Бывает так, что компонент имеет JTAG-порт, но поддержка этого стандарта не заявлена – скорее всего, это означает, что порт применяется для отладки и программирования, но периферийное сканирование с этим компонентом невозможно.
Информация о возможностях компонента с точки зрения периферийного сканирования указана в BDSL-файле. Нужно обратить внимание на наличие обязательных для периферийного сканирования команд BYPASS (сквозной режим работы, когда микросхема становится "прозрачной" в цепи периферийного сканирования), EXTEST (переход в рабочий режим периферийного сканирования) и SAMPLE/PRELOAD (режим загрузки регистров JTAG, при котором микросхема функционирует в обычном режиме). Могут быть полезны и необязательные команды, такие как HIGHZ и CLAMP.
При разработке принципиальной схемы необходимо также стараться обеспечить максимальный тестовый доступ к как можно большему количеству цепей. Хорошим показателем считается ~90%-ное тестовое покрытие, но в большинстве случаев это значение меньше, так как в реальном изделии существуют аналоговые цепи, проверить которые с помощью периферийного сканирования невозможно. Компоненты, не поддерживающие периферийное сканирование, могут тестироваться косвенно, с применением, например, их таблицы истинности.
Увеличить тестовое покрытие можно, задействовав выводы компонентов, не использующихся в схеме. Например, применять их для управления компонентами, которые не поддерживают периферийное сканирование и, следовательно, не могут самостоятельно прекратить работу, искажая результаты тестов (это могут быть и кварцевые генераторы, и микроконтроллеры без JTAG). При разработке схемы изделия важно позаботиться о возможности отключения таких компонентов. Это можно сделать либо с помощью входа OE (разрешение выхода), либо переводя их выводы в третье состояние иными управляющими сигналами, либо же предусмотреть в схеме специальные ключи.
Рекомендации по разводке плат изделий с поддержкой периферийного сканирования
Одно из важнейших правил разработчика электронных изделий – соблюдение существующих стандартов. При проектировании печатной платы устройства с поддержкой периферийного сканирования разводку разъема JTAG желательно выполнять в соответствии с рекомендациями фирмы JTAG Technologies (рис.14).
Очень важно сделать доступными TAP-порты компонентов. Ни в коем случае не стоит замыкать их на землю, так как в этом случае использовать компонент при периферийном сканировании будет невозможно. TAP-порт должен быть выведен либо на отдельный разъем, либо на контактные площадки.
Если на одной плате монтируются несколько модификаций изделий (т.е. на плату с одной и той же топологией устанавливаются разные компоненты), желательно обеспечить возможность обхода компонентов в зависимости от каждой конкретной модификации, особенностей тестирования и т.д. Например, при отладке устройства может требоваться наличие в цепи периферийного сканирования одной микросхемы, а при тестировании на производстве – нужно проверять все компоненты (рис.15).
Несмотря на то, что стандарт IEEE 1149.1 не регламентирует количество каналов периферийного сканирования и микросхем в цепочке, при проектировании изделия следует обратить внимание на эти моменты. Дело в том, что при большом количестве микросхем подаваемые на них сигналы управления, в первую очередь TCK и TMS, подвержены искажениям и наводкам, которые особенно заметны с повышением частоты до 40 МГц. Этого можно избежать, следуя нескольким простым правилам и рекомендациям:
пути сигналов должны быть как можно короче и не иметь взаимного влияния с соседними сигналами;
сигналы JTAG должны быть "подтянуты" к шине питания (рис.16);
рекомендуется буферизовать сигналы JTAG, в первую очередь TCK и TMS, при количестве микросхем в цепочке >5;
в сигнальных цепях должны быть согласующие фильтры, гасящие отражения сигналов (рис.17);
в некоторых случаях имеет смысл применять несколько цепочек периферийного сканирования.
Разбивка цепочки периферийного сканирования на несколько каналов имеет смысл не только при большом количестве микросхем, но и в зависимости от их специфики. Например, на плате могут быть установлены микросхемы с различными логическими уровнями, и, соответственно, TAP-порты этих микросхем оказываются несовместимыми. Длина цепочки может сказываться на скорости информационного обмена, это особенно заметно при программировании микросхем памяти. Если на плате имеются микросхемы нескольких классов (процессоры, память, ЦСП и т.д.), можно сформировать несколько цепочек по их функциям – например, для программирования памяти, тестирования ЦСП и т.д. Работать с несколькими цепочками периферийного сканирования можно и при наличии на плате всего одного TAP-порта, применив коммутационную микросхему (STA112 или др.), которая переключает сигналы JTAG на различные микросхемы или их группы (рис.18).
* * *
Технология периферийного сканирования имеет очень широкие возможности. Следуя изложенным в этой статье рекомендациям, разработчик обеспечит высокую тестируемость изделия, что в итоге положительно скажется на его технологичности и надежности. ●
Эта проблема стала актуальной еще в 80-х годах прошлого века. Для ее решения фирма Philips организовала специальное подразделение, которое занялось разработкой методов и технологий доступа к таким компонентам. Стандарт периферийного сканирования IEEE 1149.1 был утвержден в 1990 году. Свое второе, более распространенное имя JTAG он получил от названия рабочей группы по разработке этого стандарта – Joint Testing Action Group.
Что такое периферийное сканирование
Принцип периферийного сканирования достаточно прост. В каждой цифровой микросхеме, совместимой c JTAG, имеются специальные блоки, отключающие ядро микросхемы и обеспечивающие прямой доступ к выводам компонента. Это позволяет выставлять на выводах микросхемы произвольные значения или считывать сигналы на выводах, управляя процессом с помощью специального интерфейса. Таким образом, наличие на плате одного компонента, поддерживающего JTAG, дает возможность проводить внутрисхемное тестирование платы, задействовав всего лишь несколько выводов интерфейсного разъема.
Инфраструктура JTAG включает в себя несколько общих для всех поддерживающих периферийное сканирование микросхем элементов. На кристалле микросхемы реализованы контроллер тестового доступа и регистры периферийного сканирования. Несколько дополнительных выводов микросхемы, имеющих общее название TAP (Test Access Port, порт тестового доступа), предназначено для управления периферийным сканированием. Иногда (довольно редко) эти выводы совмещаются со стандартными выводами микросхемы. Синхронизация и управление микросхемами осуществляется сигналами TCK и TMS (рис.2). Информация с внешнего источника загружается через вход TDI и считывается с выхода TDO. Регистры периферийного сканирования управляют передачей данных и выводами микросхемы, устанавливая или считывая с них данные, превращая таким образом каждый вывод в точку тестирования. Несколько поддерживающих JTAG микросхем можно объединить в так называемую цепочку периферийного сканирования (boundary scan chain), последовательно соединяя выходы TDO микросхем со входами TDI. При этом управляющие сигналы TCK и TMS подаются параллельно на все микросхемы (рис.3).
Периферийное сканирование на практике
В 1990-х годах, когда стандарт JTAG только появился, применять на практике периферийное сканирование было довольно сложно. Микросхем, поддерживающих его, было мало, а существующие программные средства позволяли работать с JTAG только на низком уровне. Инженеру приходилось самостоятельно создавать алгоритмы тестирования, работая непосредственно с регистрами и контроллером JTAG, что отнимало очень много сил и времени. С тех пор сложность электронных изделий возросла на несколько порядков, и ручное создание тестовых последовательностей, учитывающих каждую цепь в схеме и каждый возможный дефект, стало невозможным не только для одного инженера, но и для целой группы. Поэтому сегодня периферийное сканирование неразрывно связано с понятием ATPG (Automatic test pattern generation) – автоматическое создание тестовых последовательностей. Создание и выполнение тестов перепоручается компьютеру со специальным программным обеспечением. Один из примеров такого ПО – пакет JTAG ProVision. Он позволяет в автоматическом режиме создавать и запускать тесты и анализировать их результаты, причем для этого программе требуется не так много данных, а именно:
список соединений компонентов схемы (netlist) – создается в любой САПР печатных плат;
BDSL-файлы для каждого поддерживающего периферийное сканирование компонента – доступны на интернет-сайтах производителей компонентов;
тестовые модели компонентов, не поддерживающих JTAG.
В BDSL-файле содержится информация о структуре системы периферийного сканирования компонента. В нем описаны выводы, которые могут работать как проверочные входы и выходы, инструкции JTAG-контроллера и т.д. (см. врезку).
Модели компонентов, не поддерживающих JTAG, в большинстве случаев можно найти в библиотеке, входящей в состав ПО. Для простых компонентов модель представляет собой обычную таблицу истинности. Для более сложных компонентов применяются функциональные модели, учитывающие, в частности, тип корпуса изделия. Поддерживается также импорт моделей компонентов различных форматов (в том числе IBIS). Если найти подходящую модель не удалось, ее можно запросить у производителя компонента или же создать самостоятельно. Перед непосредственным созданием тестов программа проводит анализ тестового покрытия (рис.4). Полученная информация может служить руководством для разработчика по улучшению тестируемости схемы.
На основе всей имеющейся информации создаются тестовые векторы, т.е. цифровые данные, которые выставляются на выводах поддерживающих периферийное сканирование компонентов, и последовательность опроса этих компонентов (рис.5). Также поддерживается возможность программирования ПЛИС и флеш-памяти.
JTAG ProVision позволяет создавать различные виды тестов с помощью мастеров приложений, в которых поэтапно задаются все параметры тестовой программы. При необходимости (например, для улучшения тестового покрытия) в проект можно внести изменения – добавить или убрать цепи, компоненты и т.д. Если предполагается тестировать несколько плат одновременно, редактор межсоединений позволяет легко и просто описать связи между этими платами. Также есть возможность задействовать несколько TAP-портов или же, наоборот, объединить их, если на станции периферийного сканирования портов меньше, чем на изделии. И, конечно же, ПО позволяет запускать созданные приложения.
Во время выполнения тестов проверяется соответствие информации на входах и выходах тестируемых цепей. Информация о найденных дефектах представляется с точностью до цепи, и последующая локализация дефектов не представляет труда (рис.6). Средства визуализации позволяют наложить полученную информацию на топологию печатной платы или принципиальную схему (рис.7).
Рассмотренные выше автоматизированные программные средства крайне эффективны и удобны в работе. Однако в ряде случаев применение столь сложного и, что немаловажно, дорогого ПО не оправдано. При работе с относительно несложными изделиями разработчик может воспользоваться бесплатными приложениями из пакета JTAG Live (www.jtaglive.ru). "Прозвонщик" JTAG Buzz не поддерживает автоматическую генерацию тестовых программ, но позволяет задействовать JTAG совместимые компоненты и проверять с их помощью цепи изделия в ручном режиме (так же, как это делают с помощью тестера, рис.8). Для работы с Buzz так же, как и для работы с ProVision необходимы BDSL-файлы применяемых в изделии микросхем.
Еще одно приложение из пакета JTAG Live – AutoBuzz – позволяет тестировать изделия в автоматическом режиме, сравнивая результаты тестов с эталонными, полученными при проверке заведомо исправного изделия (рис.9). Приложение Clip (рис.10) дает возможность создавать тестовые векторы и проверять с их помощью логику работы микросхем.
Таким образом, инженер, заинтересовавшийся возможностями периферийного сканирования, может опробовать эту технологию на практике, не приобретая дорогостоящего ПО.
Что можно тестировать с помощью периферийного сканирования
Ясно, что возможность тестирования платы с помощью цепочки периферийного сканирования зависит от ее целостности. Поэтому в первую очередь должна быть проверена сама инфраструктура периферийного сканирования. Убедившись в ее работоспособности, можно переходить к первому этапу внутрисхемного тестирования – проверке межсоединений. Проверяются не только прямые цепи, но и те, в которых есть резисторы (при этом номинал резисторов проверить возможности нет). При наличии на плате каких-либо интерфейсных разъемов проводится проверка интерфейсов. В этом случае тестовое оборудование подключается к разъемам на плате и проводится проверка целостности цепей интерфейсов.
Далее выполняются тесты кластеров. Под кластерами здесь имеются в виду компоненты, не поддерживающие периферийное сканирование, – это могут быть и цифровые, и гибридные микросхемы. Тесты проверяют функционирование кластера. Например, для проверки интерфейса RS-232 достаточно соединить его вход с выходом и "прогнать" через него тестовые данные. Если кластеры имеют связь с интерфейсными разъемами на плате, то проверку кластеров можно выполнить и с их помощью.
Следующий этап тестирования – проверка микросхем памяти, которые почти всегда присутствуют в цифровых устройствах. Несмотря на то, что микросхемы памяти обычно не поддерживают периферийное сканирование, их проверку можно осуществить, если к шинам данных и адреса есть доступ с компонентов, поддерживающих эту технологию. С помощью периферийного сканирования можно проверить на целостность и правильность работы все шины, связывающие память с остальными узлами схемы, и на ошибки саму память. Интерфейс JTAG позволяет также программировать ПЛИС и флеш-память; интересно, что многие инженеры применяют его именно для этих целей, попросту не зная о его изначальном предназначении и возможностях. В итоге даже для платы, на которой имеется лишь один компонент, поддерживающий периферийное сканирование, с его помощью можно обеспечить до 90% тестового покрытия этого изделия.
Аппаратные контроллеры JTAG
Так как большая часть работы по тестированию выполняется ПО, можно сказать, что аппаратные средства тестирования – это всего лишь интерфейс между компьютером и изделием. Он позволяет управлять периферийным сканированием, выдавая и принимая тестовые последовательности для их дальнейшего анализа.
Контроллеры периферийного сканирования можно классифицировать по количеству TAP-портов, максимальной частоте работы, различным функциям и т.д. (см. таблицу). Они производятся как JTAG Technologies, там и многочисленными сторонними фирмами. При выборе контроллера разумней всего ориентироваться на изделия, с которыми предстоит работать, – в частности, какие компоненты в нем применяются, нужно ли будет программировать флеш-память и т.д. Контроллер JTAG может быть реализован в виде отдельного модуля с подключаемыми TAP-портами (для удобства сопряжения портов с тестируемой платой) либо в корпусе для установки в стандартную 19-дюймовую стойку (рис.11).
Он может быть выполнен также в виде отдельного модуля (DIOS – digital I/O scan module), который применяется для тестирования стандартных интерфейсов PCI и DIMM. Модуль DIOS может быть выполнен в виде платы, которая вставляется в разъем тестируемого устройства или же, наоборот, иметь разъемы для установки в них проверяемых модулей памяти и PCI-карт (рис.12).
Отдельно стоит сказать о методах дистанционного тестирования. Нередко изделия работают в "полевых" условиях либо просто очень далеко от изготовителя (например, в космосе). С помощью специальных средств есть возможность выполнить все тесты дистанционно, так же, как если бы эти изделия находились на столе рядом с компьютером. Для этого, конечно, необходим устойчивый и надежный канал передачи данных (рис.13). Модуль JTAG может быть реализован и непосредственно в самом изделии.
Периферийное сканирование на производстве
Рассматривая применение JTAG в жизненном цикле изделия, можно выявить его определенные достоинства и особенности. Прежде всего, эту методику можно применять еще на стадии разработки печатной платы, изменяя схему изделия так, чтобы периферийное сканирование покрывало как можно большую часть схемы. Для серийного производства изделия вместе с ним передаются и все тестовые программы и методики, которые были созданы и применялись на этапе разработки. Таким образом, для тестирования готовых изделий нет необходимости создавать какие-либо новые технологические оснастки и методы. Иными словами, и при разработке, и при производстве, и даже во время эксплуатации изделия для диагностики, обслуживания (например, перепрограммирования) и ремонта изделия применяются одни и те же средства – как программные, так и аппаратные.
Многообразие аппаратных средств периферийного сканирования позволяет создавать систему практически любой гибкости. Понятно, что при производстве серийных изделий необязательно иметь комплекс средств, позволяющий разрабатывать тесты, – ведь этот этап уже выполнен при опытно-конструкторских работах, и при массовом выпуске достаточно лишь запускать эти тесты и анализировать результаты. Поэтому в данном случае можно обойтись оборудованием именно с такими возможностями. Можно также интегрировать тестовые приложения и в другие системы. Например, на базе функциональных тестеров National Instruments можно создать как специальные программные средства, так и аппаратные (адаптеры), позволяющие проводить JTAG-тестирование в составе одного комплекса. Автоматы внутрисхемного контроля (например, SPEA 3030) позволяют подключать JTAG-модуль, в результате автомат выполняет полную проверку изделия – как его аналоговой части, так и цифровой.
В общем, такая интеграция позволяет оператору работать в одной, привычной для него, программной оболочке при выполнении всех тестов. Это позволяет сэкономить некоторые ресурсы, так как один оператор может выполнять все этапы проверки изделия. Однако создание и отладка такой системы могут потребовать привлечения инженеров высокой квалификации и занять довольно много времени. Поэтому если на предприятии еще нет опыта разработки и эксплуатации комплексных тестовых систем, поначалу наиболее рационально создать отдельные рабочие места для проведения периферийного сканирования, функционального контроля и т.д. Такой подход увеличивает количество рабочих мест, но квалификация работающих на них специалистов необязательно должна быть столь высокой.
Улучшаем тестируемость изделия
Начиная проектировать изделие, поддерживающее периферийное сканирование, нужно понимать, что уровень тестового покрытия (а, следовательно, и эффективность тестирования) напрямую зависит от того, насколько глубоко разработчик продумал эти возможности.
В англоязычной технической литературе встречается понятие Design Pro Test Ability. Его можно перевести как "проверка тестируемости изделия", которую нужно проводить на стадии разработки изделия, естественно, стремясь к повышению тестируемости. К сожалению, российские разработчики часто бывают мало знакомы с этими технологиями либо по каким-то причинам не желают их применять. Такая ситуация может возникнуть из-за "порванной" связи между разработчиками и производством: разработчики не знакомы со спецификой и возможностями производства, на котором, в свою очередь, не знают, кто именно разработал изделие. При производстве сложных изделий закономерно обнаруживаются дефекты. Если эти изделия сложны и содержат компоненты в корпусах BGA и им подобные, поиск и локализация дефектов вызывают серьезные трудности. Но их можно избежать, изначально заложив в изделие возможности тестирования, что позволит сократить затраты на ремонт и диагностику готовых изделий. Для этого разработчик должен придерживаться определенных правил проектирования изделия.
Прежде всего, необходимо выбирать компоненты, поддерживающие периферийное сканирование по стандарту IEEE 1149.1. Различные микросхемы, выполняющие одну и ту же функцию, могут иметь или не иметь такую поддержку, на что стоит обращать внимание при выборе элементной базы изделия. Поддержка IEEE 1149.1 заявлена в документации на компоненты (обычно указано на первом листе). Бывает так, что компонент имеет JTAG-порт, но поддержка этого стандарта не заявлена – скорее всего, это означает, что порт применяется для отладки и программирования, но периферийное сканирование с этим компонентом невозможно.
Информация о возможностях компонента с точки зрения периферийного сканирования указана в BDSL-файле. Нужно обратить внимание на наличие обязательных для периферийного сканирования команд BYPASS (сквозной режим работы, когда микросхема становится "прозрачной" в цепи периферийного сканирования), EXTEST (переход в рабочий режим периферийного сканирования) и SAMPLE/PRELOAD (режим загрузки регистров JTAG, при котором микросхема функционирует в обычном режиме). Могут быть полезны и необязательные команды, такие как HIGHZ и CLAMP.
При разработке принципиальной схемы необходимо также стараться обеспечить максимальный тестовый доступ к как можно большему количеству цепей. Хорошим показателем считается ~90%-ное тестовое покрытие, но в большинстве случаев это значение меньше, так как в реальном изделии существуют аналоговые цепи, проверить которые с помощью периферийного сканирования невозможно. Компоненты, не поддерживающие периферийное сканирование, могут тестироваться косвенно, с применением, например, их таблицы истинности.
Увеличить тестовое покрытие можно, задействовав выводы компонентов, не использующихся в схеме. Например, применять их для управления компонентами, которые не поддерживают периферийное сканирование и, следовательно, не могут самостоятельно прекратить работу, искажая результаты тестов (это могут быть и кварцевые генераторы, и микроконтроллеры без JTAG). При разработке схемы изделия важно позаботиться о возможности отключения таких компонентов. Это можно сделать либо с помощью входа OE (разрешение выхода), либо переводя их выводы в третье состояние иными управляющими сигналами, либо же предусмотреть в схеме специальные ключи.
Рекомендации по разводке плат изделий с поддержкой периферийного сканирования
Одно из важнейших правил разработчика электронных изделий – соблюдение существующих стандартов. При проектировании печатной платы устройства с поддержкой периферийного сканирования разводку разъема JTAG желательно выполнять в соответствии с рекомендациями фирмы JTAG Technologies (рис.14).
Очень важно сделать доступными TAP-порты компонентов. Ни в коем случае не стоит замыкать их на землю, так как в этом случае использовать компонент при периферийном сканировании будет невозможно. TAP-порт должен быть выведен либо на отдельный разъем, либо на контактные площадки.
Если на одной плате монтируются несколько модификаций изделий (т.е. на плату с одной и той же топологией устанавливаются разные компоненты), желательно обеспечить возможность обхода компонентов в зависимости от каждой конкретной модификации, особенностей тестирования и т.д. Например, при отладке устройства может требоваться наличие в цепи периферийного сканирования одной микросхемы, а при тестировании на производстве – нужно проверять все компоненты (рис.15).
Несмотря на то, что стандарт IEEE 1149.1 не регламентирует количество каналов периферийного сканирования и микросхем в цепочке, при проектировании изделия следует обратить внимание на эти моменты. Дело в том, что при большом количестве микросхем подаваемые на них сигналы управления, в первую очередь TCK и TMS, подвержены искажениям и наводкам, которые особенно заметны с повышением частоты до 40 МГц. Этого можно избежать, следуя нескольким простым правилам и рекомендациям:
пути сигналов должны быть как можно короче и не иметь взаимного влияния с соседними сигналами;
сигналы JTAG должны быть "подтянуты" к шине питания (рис.16);
рекомендуется буферизовать сигналы JTAG, в первую очередь TCK и TMS, при количестве микросхем в цепочке >5;
в сигнальных цепях должны быть согласующие фильтры, гасящие отражения сигналов (рис.17);
в некоторых случаях имеет смысл применять несколько цепочек периферийного сканирования.
Разбивка цепочки периферийного сканирования на несколько каналов имеет смысл не только при большом количестве микросхем, но и в зависимости от их специфики. Например, на плате могут быть установлены микросхемы с различными логическими уровнями, и, соответственно, TAP-порты этих микросхем оказываются несовместимыми. Длина цепочки может сказываться на скорости информационного обмена, это особенно заметно при программировании микросхем памяти. Если на плате имеются микросхемы нескольких классов (процессоры, память, ЦСП и т.д.), можно сформировать несколько цепочек по их функциям – например, для программирования памяти, тестирования ЦСП и т.д. Работать с несколькими цепочками периферийного сканирования можно и при наличии на плате всего одного TAP-порта, применив коммутационную микросхему (STA112 или др.), которая переключает сигналы JTAG на различные микросхемы или их группы (рис.18).
* * *
Технология периферийного сканирования имеет очень широкие возможности. Следуя изложенным в этой статье рекомендациям, разработчик обеспечит высокую тестируемость изделия, что в итоге положительно скажется на его технологичности и надежности. ●
Отзывы читателей