Обучающая система методам компактной диагностики. Введение. Неуклонный рост сложности приборов обуславливает повышенный интерес к вопросам диагностирования их технического состояния. Одной из разновидностей методов технического диагностирования аппаратуры является тестовая диагностика, позволяющая на этапе проектирования и изготовления решать основные задачи: определять правильность функционирования, осуществлять поиск неисправностей и определять тип неисправности. Для реализации этих задач требуется интенсификация подготовки специалистов по вычислительной технике и технической диагностике, владеющих методикой исследования и проектирования сложных цифровых систем с использованием современных методов технической диагностики. Основной задачей дипломной работы является разработка автоматизированной системы обучения диагностике сложных цифровых схем, позволяющей детально знакомить студентов с практическими возможностями использования современных методов компактного тестирования. Она должна представлять собой программу, включающую в себя: Модуль, реализующий графический интерфейс. Обмен графической информацией между пользователем и ЭВМ должно осуществляться в форме диалога; модуль, реализующий логическое моделирование цифровых схем; модуль, моделирующий работу генераторов тестовых последовательностей; блок, моделирующий процесс диагностики. В него входит: блок моделирующий работу многоканального сигнатурного анализатора, блок отображения и обработки полученных данных, блок поиска неисправностей; блок, реализующий алгоритм определения оценки эффективности диагностики при использовании компактных методов диагностики. Глава1. Обзор методов компактного тестирования и типы неисправностей цифровых схем. 1.1 Классификация методов сжатия выходных реакций схем. Классическая стратегия тестирования цифровых схем основана на формировании тестовых последовательностей, позволяющих обнаруживать заданные множества их неисправностей. При этом для проведения процедуры тестирования, как правило, хранятся как сами последовательности, так и эталонные выходные реакции схем на их воздействие. В процессе самой процедуры тестирования на основании сравнения выходных реакций с эталонными принимается решение о состоянии проверяемой схемы. Для ряда выпускаемых в настоящее время схем классический подход требует временных затрат как на формирование тестовых последовательностей, так и на процедуру тестирования. Кроме того на проведение тестового эксперимента требуется наличие сложного оборудования. В связи с этим стоимость и время, необходимые для реализации классического подхода, растут быстрее, чем сложность цифровых схем, для которых он используется. Поэтому новые решения, позволяющие значительно упростить как процедуру построения генераторов тестовых последовательностей, так и проведение тестового эксперимента. Для реализации генератора тестовой последовательности используются алгоритмы, позволяющие избежать сложности их синтеза: Формирование всевозможных тестовых наборов, т.е. полного перебора двоичных комбинаций. В результате генерируется так называемая счётчиковая последовательность. Формирование случайных тестовых наборов с требуемыми вероятностями появления единичного и нулевого символов по каждому входу цифровой схемы. Формирование псевдослучайной тестовой последовательности. Основным свойством рассмотренных алгоритмов формирования тестовых последовательностей является то, что в результате их применения воспроизводятся последовательности очень большой длины. Поэтому на выходах проверяемой цифровой схемы формируются её реакции, имеющие такую же длину. Естественно возникает проблема их запоминания, хранения и затрата на обработку этих последовательностей. Простейшим решением, позволяющим значительно сократить объём хранимой информации об эталонных выходных реакциях является получение интегральных оценок, имеющих меньшую размерность. Для этого используются алгоритмы сжатия информации. В результате их применения формируются компактные оценки сжимаемой информации. Рассмотрим алгоритмы сжатия данных для случая бинарной последовательности {y(k)}, состоящей из l последовательно формируемых двоичных переменных. Псевдослучайное тестирование. Наиболее часто при формировании псевдослучайных последовательностей используются два метода. Первый из них лежащий в основе большинства программных датчиков псевдослучайных чисел, использует рекуррентные соотношения. Этот метод обладает рядом недостатков, в частности, малой периодичностью. Применительно к проблеме тестирования цифровых схем периодичность может заметно снизить полноту контроля. Кроме того, он отличается сложностью практической реализации. Поэтому наиболее широко применяется второй метод, основанный на использовании соотношения К – номер такта; - символы последовательности; - постоянные коэффициенты; - операция суммирования по модулю два m логических переменных. При соответствующем выборе коэффициентов на основании характеристического полинома , который должен быть примитивным, последовательность имеет максимальную длину, равную 2м-1. Такая последовательность называется М-последовательностью. Использование таких последовательностей предполагает применение сигнатурного анализа как метода сжатия реакций цифровой схемы. Типовая структурная схема сигнатурного анализатора состоитиз регистра сдвига и сумматора по модулю два, на входы которого подключены выходы разрядов регистра в соответствии с порождающим полиномом(рис.1.1). Управляющими сигналами сигнатурного анализатора являются СТАРТ, СТОП и СДВИГ. Сигналы СТАРТ и СТОП формируют временной интервал, в течение которого осуществляется процедура сжатия информации на анализаторе. Под действием сигнала СТАРТ элементы памяти регистра сдвига устанавливаются в исходное состояние, как правило нулевое, а сам регистр сдвига начинает выполнять функцию сдвига на один разряд в право под действием синхронизирующих импульсов СДВИГ. По приходу каждого синхронизирующего импульса в первый разряд регистра сдвига записывается информация, соответствующая выражению: где y(K){0,1} –к-й символ сжимаемой последовательности {y(K)}, К=; - коэффициенты порождающего полинома; - содержимое i-того элемента памяти регистра сдвига 1 в (к-1) такт. Процедура сдвига информации в регистре описывается соотношением Таким образом, полное математическое описание функционирования сигнатурного анализатора имеет следующий вид: аi(0)=0, i=, a1(k)=y(k) (1.3) k=, причём l, как правило, принимается равным или меньше величины (2м-1), и соответственно является длиной сжимаемой последовательности. По истечении l тактов функционирования сигнатурного анализатора на его элементах памяти фиксируется двоичный код, который представляет собой сигнатуру, отображенную в виде 16-ричного кода. Синдромное тестирование. Синдромом (контрольной суммой) некоторой булевой функции n переменных является соотношение S=R5/2n, Где R5 равно числу единичных значений функции согласно таблице истинности для l=2n. Определение понятия синдрома однозначно предполагает использование генератора счетчиковых последовательностей для формирования всевозможных двоичных комбинаций из n входных переменных при тестировании схемы, реализующей заданную функцию. Дальнейшим развитием синдромного тестирования является спектральный метод оценки выходных реакций цифровых схем и корреляционный метод. Типы неисправностей цифровых схем. Проблема тестового диагностирования цифровых схем возникает на различных этапах их производства и эксплуатации и включает взаимосвязанные задачи. Первая из них заключается в определении, в каком состоянии находится исследуемая схема. Основным состоянием цифровой схемы является исправное – такое состояние схемы, при котором она удовлетворяет всем требованиям технической документации. В противном случае схема находится в одном их неисправных состояний. Если установлено, что схема неисправна, то решается вторая задача: осуществляется поиск неисправной схемы, цель которого- определение места и вида неисправности. Неисправности ЦС появляются в результате применения неисправных компонентов, таких, как логические элементы, реализующие простейшие логические функции, элементы памяти и др. кроме того, причиной неисправностей могут быть возникновения разрывов или коротких замыканий в межкомпонентных соединениях, нарушение условий эксплуатации схемы, наличие ошибок при проектировании и производстве и ряд других факторов. Из множества различных видов неисправностей выделяется класс логических неисправностей, которые изменяют функции элементов ЦС указанный тип неисправностей занимает доминирующее место среди неисправностей ЦС. Для их описания в большинстве случаев используют следующие математические модели: Константные неисправности; Неисправности типа “Короткое замыкание”; Инверсные неисправности; Наиболее общей и часто применяемой моделью логических неисправностей являются константные неисправности: константный нуль и константная единица, что означает наличие постоянного уровня логического нуля или логической единицы на одном из полюсов логического элемента. Такая модель неисправностей часто называется классической и широко используется для описания других типов неисправностей. Неисправности типа “Короткое замыкание” появляются при коротком замыкании входов и выходов логических элементов. Инверсные неисправности описывают физические дефекты ЦС, приводящие к появлению фиктивного инвертора по входу или по выходу логического элемента. Инверсные неисправности в совокупности с константными, в ряде случаев используются для построения полной модели неисправной цифровой схемы. 1.3 Генераторы тестовых последовательностей. Классическая стратегия тестирования цифровых схем основана на формировании тестовых последовательностей, позволяющих обнаруживать заданные множества их неисправностей. Для реализации генератора тестовой последовательности желательно использовать простейшие методы, позволяющие избежать сложной процедуры их синтеза. К ним относятся следующие алгоритмы: формирование всевозможных тестовых наборов, то есть полного перебора двоичных комбинаций. В результате применения подобного алгоритма генерируются счётчиковые последовательности; формирование псевдослучайных тестовых последовательностей; формирование случайных тестовых наборов, с требуемыми вероятностями единичного и нулевого символов по каждому входу цифровой схемы. Основным свойством вышеперечисленных алгоритмов является то, что в результате их применения воспроизводятся последовательности очень большой длины. Для процесса обучения были выбраны два первых алгоритма построения генераторов тестовых последовательностей. И разработаны два модуля для эмуляции работы генераторов: модуль эмуляция генератора счетчиковой последовательности; модуль эмуляции работы многоканального генератора М-последовательности, позволяющий генерировать псевдослучайную последовательность и сравнительно просто регулировать ее максимальную длину и число каналов в зависимости от числа входов цифровой схемы. Генератор М-последовательности. В аппаратурных псевдослучайных датчиках и узлах ЭВМ при генерировании ПСЧП с равномерным распределением наиболее часто используется метод, который заключается в получении линейной двоичной последовательности по рекуррентному выражению: где i - номер такта; символы выходной последовательности; постоянные коэффициенты. При соответствующем выборе коэффициентов {aк} генерируемая числовая последовательность имеет максимальную (для данного m) величину периода и называется М-последовательностью. Одним из главных преимуществ метода генерирования ПС – последовательностей максимальной длины является простота его реализации. Генератор М-последовательности может быть построен двумя методами, отличающимися способом включения сумматоров по модулю два:они могут включаться как в цепь обратной связи генератора, так и в меж разрядные связи элементов памяти регистров сдвига. Структурная схема генератора М – последовательности, построенного по способу включения сумматоров в цепь обратной связи представлена на рис.1.1 Генератор М-последовательности с сумматорами по модулю два, стоящими в цепи обратной связи: аi,ai-1,ai-2,…ai-m – символы последовательности; ai – коэффициенты, определяющие вид обратной связи. Алгоритм размножения М-последовательности. Для того, чтобы обеспечить различные режимы испытаний, генераторы испытуемых сигналов должны удовлетворять ряду требований (многоканальность, быстродействие, достаточная длина периода и т.д.). В основе наиболее перспективного метода построения быстродействующего параллельного генератора псевдослучайных последовательностей испытательных сигналов лежит идея использования ( в качестве независимых последовательностей для формирования разрядов очередного кода) участков одной и той же последовательности. В данном случае генерирование различных участков осуществляется с помощью h-входовых сумматоров по модулю два, т.е. hÎ{2,m}, где m- разрядность регистра сдвига. Соединения сумматоров по модулю два с разрядами регистра сдвига определяются набором коэффициентов di(1)Î{0,1}(i=1,2,3,..m), значения которых зависят от величины сдвига l(l=1,2,3,…) и вида порождающего полинома. Методика выбора коэффициентов di(1), однозначно определяющих связи многовходового сумматора по модулю два, описывается на итерационном подходе, когда на основании di(h), по расчётным соединениям находятся di(1)(h=1,2,….h Предположим, что коэффициенты di(1) и di(S), позволяющие получить сдвинутые копии М-последовательности на 1 и S тактов, известны; тогда содержимое a1(k+1) первого разряда регистра сдвига в (к+1)-м такте работы определяется следующим образом: (1.3.1) где аi(к) содержимое i-того разряда регистра сдвига в к-м такте его работы, а символ означает операцию суммирования по модулю два. Содержимое первого разряда регистра сдвига в (k+s)-м такте работы имеет вид (1.3.2) для определения содержимого первого разряда регистра сдвига в (k+1+s)-м такте, аналогично как и для (1.3.1) и (1.3.2), необходимо предварительно выбрать численное значение коэффициентов . С другой стороны, a1(k+1+s) можно найти на основании (1.3.1) следующим образом: гдес учётом (1.3.1) принимает вид значения вычисляются по формуле , где -постоянные коэффициенты, определяемые как: Окончательно для получаем: Глава2. Практическая реализация системы обучения методам компактного тестирования. 2.1 Реализация графического интерфейса. Программа написана под операционную систему Windows 95. Так как сама операционная система Windows 95 является графической, то интерфейсы программ написанных под эту систему похожи друг на друга. Вследствие этого обучение работе с данной программой облегчается. Графический интерфейс построен таким образом, чтобы пользователю было, как можно удобнее и понятней работать с программой. Все необходимые команды доступны через главное меню. Главное меню — это специальная панель инструментов, расположенная в верхней части экрана, которая содержит такие меню, как: Файл, Редактировать, Полином, Состояние, Диагностика, Анализ, Стоп. Через эти меню становятся доступны основные функции программы. На главной форме расположены кнопки логических элементов, генераторов, индикаторов. Интерфейс программы состоит из трёх форм: Главной формы, на которой расположены меню и все элементы необходимые для работы цифровых схем. Форма свойств элементов. Отображает свойства элемента при его выделении. Форма “Конструктор” - на ней строятся цифровые схемы. 2.2 Разработка и реализация алгоритма моделирования цифровых схем. Разработанная система обучения может быть представлена в виде системы, основными функциональными узлами которой являются генераторы тестовых последовательностей, блок моделирования исследуемых схем, блок отображения и обработки выходных реакций и сжатия информации, блок ошибок, блок определения вероятностей не обнаружения ошибок: Для моделирования цифровых схем, прежде всего, необходимо описать схему, для этого была смоделирована математическая модель описывающая цифровые схемы под данную систему. Каждый элемент схемы это объект, который имеет порядковый номер на схеме, тип, списки входов и выходов. Каждый вход элемента хранит информацию о предыдущем элементе. Вследствие этого каждый элемент может определить логическое состояние предыдущего, его тип, порядковый номер на схеме, выход с которым он соединён. Линии, соединяющие входы и выходы элементов являются такими же объектами, как и элементы цифровой схемы, за исключением того, что линия имеет только один вход и один выход, и не выполняет логических функций. В программе реализованы все типы логических элементов, вследствие этого можно построить большое количество разнообразных цифровых схем. Программа была написана при помощи объектно-ориентированного языка Паскаль в среде Delphi 3. Объектно-ориентированный язык программирования характеризуется тремя основными свойствами: Инкапсуляция - это объединение записей с процедурами и функциями, работающими с полями