Почему следует программировать устройства при внутрисхемном тестировании?


PDF версия

В статье рассмотрены преимущества и недостатки программирования устройств на различных этапах производственного процесса изготовления платы с точки зрения требуемого времени, дополнительных затрат и надежности. В результате анализа сделан вывод о том, что с внедрением новой технологии запоминающих устройств — памяти на фазовых переходах, оптимальным выбором момента программирования таких устройств мог бы стать этап внутрисхемного тестирования после завершения сборки платы. Статья представляет собой перевод [1].

Разработчики часто проектируют одну плату, которая может быть сконфигурирована с помощью встроенного программного обеспечения так, чтобы ее можно было применять во многих конечных приложениях. Такой подход позволяет компаниям повторно использовать критичные IP-блоки и эффективно использовать результаты исследовательских работ для максимального увеличения прибыли и ускорения времени вывода продукта на рынок. Этот метод также упрощает разработчикам внесение изменений в функциональные свойства продукта и реализацию дополнительных возможностей без необходимости модификации печатной платы, как на начальных этапах проектирования, так и при дальнейшей модернизации изделия.
Создание различной функциональности на основе одной конструкции платы может быть выполнено с помощью технологии программируемых логических устройств (ПЛУ), которые содержат переконфигурируемые схемы. Функциональные свойства ПЛУ зависят от встроенного программного обеспечения, которое может быть загружено в устройство. Платы, содержащие высокопроизводительные процессоры, могут изменять свою функциональность за счет обновления флэш-памяти, связанной со встроенным в плату процессором. Флэш-память представляет собой энергонезависимое устройство хранения, содержимое которого может быть множество раз перепрограммировано электрическим способом, и которая широко используется в устройствах памяти типа USB.
Производители имеют возможность выбора, на каких этапах и каким образом загружать встроенное программное обеспечение в ПЛУ или данные во флэш-память. Некоторые устройства можно перепрограммировать в условиях эксплуатации, и в них предусмотрены средства внутрисхемного программирования (In-System Programming — ISP), встроенные непосредственно в печатную плату. Внутрисхемное программирование может быть реализовано с помощью процессора, расположенного на плате, с помощью последовательных протоколов, таких как периферийное сканирование, или путем комбинации различных аппаратных средств — как расположенных на плате, так и встроенных в чип (см. рис. 1).

 

Рис. 1. Конфигурации способов внутрисхемного программирования (ISP)

Программирование компонентов может быть реализовано на различных этапах.
– Перед сборкой печатной платы поставщиком компонента.
– С помощью автономных программаторов ПЛУ на участке производства печатных плат или в специализированных компаниях.
– С помощью программирующих устройств, встроенных в производственное перегрузочное оборудование.
– На этапе внутрисхемного тестирования (ICT) после сборки платы с помощью оборудования для функционального или системного тестирования.
– Удаленно у конечного пользователя, используя каналы беспроводного Ethernet, если в платах предусмотрена возможность внутри­схемного программирования (ISP).

Программирование перед пайкой компонентов

Сегодня около 50% конфигурируемых устройств программируется перед их размещением на плате. Это обычно происходит при крупносерийном производстве изделия, функциональные возможности которого менять не нужно после завершения его разработки.

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

Программирование перед сборкой платы представляет собой наиболее эффективный с точки зрения затрат способ, который позволяет отделить процесс программирования от технологического процесса производства платы. Процесс программирования может замедлять работу технологической линии в случае, когда его длительность превышает время любого из этапов технологического процесса.
Устройства, которые программируются перед процессом сборки, могут быть довольно дорогими. Изменения, которые требуются вносить во встроенное программное обеспечение ПЛУ после того, как устройства были запрограммированы, могут быть связаны с дополнительными затратами и временными задержками в производственном процессе, поскольку компоненты должны быть заменены или перепрограммированы.
Как правило, запрограммированные устройства не могут содержать специальной информации о плате перед тем, как их на ней размещают. В результате требуется дополнительный этап для введения в устройство таких данных, как серийные номера или MAC-адреса, которые используются в платах с возможностью подключения по Ethernet.

Программирование в автоматах установки компонентов

Программирование исходных устройств в подающем устройстве автомата установки чипов позволяет записывать встроенное программное обеспечение сразу перед тем, как ПЛУ размещается на плате. При таком методе можно изменять данные и добавлять специальную информацию, например, серийный номер и MAC-адрес.
Ограничениями такого метода являются стоимость, потери времени, которое требуется для программирования, и надежность процесса. Большинство программируемых устройств смонтировано в корпусе с мелким шагом выводов или в корпусе типа BGA, которые извлекаются из бобины и помещаются в разъем для программирования перед их подачей в автомат установки компонентов. Проблемой в данном случае является надежность разъема и вероятность повреждения контактов устройства, которое размещается на плате.
Необходимо использовать дорогие и высоконадежные разъемы, которые требуют регулярного технического ухода для исключения вероятности повреждения устройств. Для минимизации потерь времени, программаторы автоматов установки компонентов должны быть сконфигурированы так, чтобы можно было программировать множество ПЛУ одновременно, не задерживая весь производственный процесс.

Программирование после процесса пайки компонентов

Если 50% устройств программируют перед пайкой, то оставшиеся 50% приборов необходимо программировать после пайки. Вероятнее всего, такое процентное соотношение претерпит изменение в течение следующих нескольких лет в связи с внедрением новой технологии запоминающих устройств — памяти на фазовых переходах.
Еще в 1968 году было замечено, что в некотрых типах стекол наблюдаются обратимые изменения проводимости при изменении фазового состояния материала. В 2003 году компании Intel, Ovonyx и STMicroelectronics объединили свои усилия по ускорению разработки такой технологии.
Память на фазовых переходах и подобные виды энергонезависимой памяти обладают большим быстродействием, более высокой емкостью и более длительным сроком службы, чем современные технологии памяти. Однако эти устройства чувствительны к изменениям температуры, так что данные, записанные в них, могут быть потеряны в процессе пайки компонентов во время технологического процесса производства плат (см. рис. 2). Данные в памяти на фазовых переходах будут стерты (все ячейки памяти вернуться в состояние высокого уровня), если их подвергнуть воздействию температуры, превышающей 225°C, в течение времени более 10 мкс. Даже при воздействии меньших температур — например, 165°C, данные в таких устройствах теряются в течение 10 с. Обычно температура пайки составляет от 210 до 235°C, что означает, что все устройства памяти на фазовых переходах должны быть запрограммированы после окончания процесса пайки с помощью специальных программаторов при внутрисхемном тестировании (ICT) платы или при проведении функциональных или системных тестов.

 

Рис. 2. Время хранения данных при разных температурах для памяти на фазовых переходах

 

Специализированные программаторы

Специализированные программаторы, как правило, используют на отдельном этапе производственного процесса до или после контроля электрических параметров. Программирование перед тестированием позволяет на этапе контроля параметров определить, правильно ли запрограммированы устройства.
Специализированные блоки программирования обычно работают с платами, которые обладают возможностью внутрисхемного программирования (ISP) и используют контроллер стандарта JTAG IEEE 1149, который подсоединяется к плате с помощью кабеля для программирования. Если плата не приспособлена для ISP, то системы программирования должен эмулировать программаторы, используемые перед сборкой платы, и обеспечивать соединение с платой с помощью разъема или интерфейса на базе игольчатых контактов.
Следует предусмотреть, чтобы такой вид программирующих устройств можно было интегрировать в производственную линию. Часто их конфигурация является уникальной и специально разработанной для применения с конкретной платой, что может увеличить стоимость производственного процесса, снизить скорость работы технологической линии для устройств большой емкости и сократить полезную площадь на производственном участке.

Внутрисхемное тестирование

Внутрисхемное тестирование является идеальным местом для программирования устройств, поскольку в данном случае не имеет значения, спроектирована ли печатная плата для внутрисхемного программирования или нет. Доступ с устройству с помощью игольчатых контактов позволяет программировать компоненты, используя любой последовательный коммуникационный протокол и существующее цифровое измерительное оборудование. Система для внутрисхемного тестирование должна обеспечивать корректные уровни напряжения и гарантировать, что эти уровни находятся в пределах спецификации производителя устройства.
Некоторые последовательные коммуникационные интерфейсы используют 400-мВ семейства логических схем, в которых напряжения высокого и низкого уровня различаются всего на 100 мВ. Эффективная система внутрисхемного тестирования должна обладать способностью надежно и точно формировать и измерять уровни цифровых сигналов.
Игольчатые контакты обеспечивают непосредственный доступ к устройству для проведения процесса программирования так же, как если бы это было реализовано в программаторе (см. рис. 3). Проблему помех, связанных с оснасткой для внутрисхемного тестирования из-за влияния межсоединений, можно довольно легко решить, используя, где это необходимо, специальную конструкцию оснастки и благодаря применению программных методов для блокировки соединенных устройств. Эти методы дают возможность системе внутрисхемного тестирования контролировать соединенные устройства так, чтобы они не мешали работе алгоритма внутрисхемного программирования.

 

Рис. 3. Программирование устройства с помощью системы внутрисхемного тестирования

Системы внутрисхемного тестирования также имеют средства установки нужных уровней логических состояний на выводах устройства независимо от уровней, задаваемых на плате. Чтобы не создавать перегрузки из-за переключения уровней на выводах устройства во время длительного внутрисхемного программирования, в таких системах предусматривают возможность контроля тока, что помогает снизить опасные уровни тока и исключить условия превышения допустимого напряжения.
Новейшие системы внутрисхемного тестирования способны обеспечить передачу гигабайтов информации в ПЛУ и формирование управляющих сигналов с такой же скоростью, которую обеспечивают автономные программаторы. Некоторые системы для внутрисхемного тестирования хранят данные, предназначенные для программирования, в специализированных контроллерах памяти с тем, чтобы сократить время загрузки данных и обеспечить возможность изменения данных встроенного программного обеспечения в процессе работы без модификации программы внутрисхемного тестирования.
Хотя имеется множество преимуществ выполнения внутрисхемного программирования на этапе внутрисхемного тестирования, емкость некоторых устройств бывает весьма велика и может потребоваться более длительное время для их программирования, так что производители предпочитают не объединять системы для внутрисхемного тестирования при выполнении таких длительных процедур. В такой ситуации производители могут программировать устройства перед внутрисхемным тестированием с помощью простого программатора, а затем дополнять информацию уникальными данными о плате, такими как серийный номер, MAC-адрес и другими сведениями об изготовлении платы, на этапе внутрисхемного тестирования.
Современные системы внутрисхемного тестирования не следует путать с тестовыми системами анализа производственных дефектов (Manufacturing Defect Analysis — MDA) или устаревшими системами для внутрисхемного тестирования. Эти менее эффективные системы не имеют цифровых систем контроля и могут вызвать повреждения дорогих программируемых устройств из-за некорректно заданных уровней напряжения и тока. Они также требуют применения дополнительного оборудования для программирования устройств после завершения тестирования.
MDA-системы обеспечивают лишь подачу на плату питания и реализуют некоторые простые функции управления модулей программирования. Но поскольку модуль программирования обычно находится вне системы, он увеличивает стоимость технологического процесса. Как правило, недорогие программаторы заменяют на другие блоки программирования при переходе на иной тип устройств, то есть, по сути, они должны быть приспособлены для конкретного вида плат.

Функциональный или системный тест

Функциональные и системные тесты — еще два возможных этапа в технологическом процессе, на которых устройства могут быть запрограммированы, если только в платах предусмотрена такая возможность. Как правило, для плат, оборудованных возможностью внутрисхемного программирования, не возникает каких-либо проблем, но для остальных плат могут потребоваться дополнительные средства доступа. В отличие от внутрисхемного тестирования, они могут не иметь полного доступа, который обеспечивают игольчатые контакты или сложные цифровые драйверы/датчики, которые позволяют системе внутрисхемного тестирования задавать логические уровни в соответствии с режимами программирования платы. Иначе такие системы электрического тестирования должны были бы выполнять тесты таким же образом, как и системы внутрисхемного тестирования.
Платы с возможностью внутрисхемного программирования проще конфигурировать и обычно их можно контролировать с помощью тестовой системы. Если плата имеет встроенные процессоры, то тестовая система может только обеспечивать подачу питания и простых команд на процессор, который управляет программированием встроенного программного обеспечения. Платы соединяются с источником данных либо с помощью разъемов, либо по беспроводному каналу связи, после чего эти данные загружаются в плату и выполняется программирование устройства.
И в этом случае, ограничениями могут стать длительное время программирования и необходимость использования нескольких тестовых станций. Требуемое время программирования может также возрасти, если доступ к устройству возможен только с помощью программных драйверов, таких как драйвер USB в среде Windows или UNIX, когда непроизводительные издержки могут существенно снизить скорость программирования.

Заключение

В связи с внедрением новых технологий запоминающих устройств, таких как, память на фазовых переходах и возможными потерями данных в процессе пайки, программирование устройств следует выполнять после пайки компонентов в процессе изготовления платы. Для программирования устройств можно использовать этапы функционального и системного тестирования, но не всегда имеется достаточно ресурсов для выполнения этой задачи.
Исторически сложилось так, что внутрисхемное тестирование (ICT) стало идеальным этапом в производственном процессе для программирования устройств. Это объясняется возможностями цифровой тестовой подсистемы, организацией доступа к устройству с помощью игольчатых контактов для программирования плат с возможностью внутрисхемного программирования или без такой возможности и исключением каких-либо дополнительных затрат на оборудование, если система способна обеспечить контролируемые и безопасные логические сигналы. При загрузке большого объема данных, что может снижать скорость технологического процесса, возможно использование специализированного программатора после пайки компонентов для записи в устройство изменяемых данных.

Литература
1. Michael J. Smith. Why Program Devices at In-Circuit Test? // www.teradyne.com.

Оставьте отзыв

Ваш емейл адрес не будет опубликован. Обязательные поля отмечены *