Математически процесс описывается формулой:
xkG(x)=Q(x)P(x)ÅR(x), где
Q(x) - частное; R(x) - остаток; P(x) -порождающий полином степени k, а G(x) - информационный полином, соответствующий входной двоичной последовательности x.
При прохождении последовательности xчерез сдвиговый регистр R(x) изменяется до тех пор, пока не закончится вся последовательность x. Конечное выражение R(x) является сигнатурой [11].
Для проектируемого устройства алгоритм работы заключается в подаче на вход устройства входной последовательности, считывании выходной последовательности с его выхода и ее сложении по модулю 2 с контрольной последовательностью.
В случае, если результат сложения не равен логическому “0” (выходная и контрольная последовательности не равны друг другу), для ускорения выдачи результатов процесс тестирования прерывается с возвратом ошибки. Если же в результате сложения всех входных и контрольных последовательностей по модулю 2 получили логический “0” - микросхема исправна.
6.2. Описание алгоритма функционирования системы.
Общая структурная схема работысистемы в целом представлена на рис.17.
Рис.17. Алгоритм функционирования системы.
Комментарии к рис.17 изложены в табл.12.
Таблица 12
Блок | Наименование | Комментарии |
2 | Инициализация устройства | Установка начальных значений регистров, снятие напряжения питания с панели для ИМС. |
3 | Ввод режима работы устройства | Выбор меню “Тестирование” или “Определение типа”. |
4 | Режим работы | В зависимости от п.3переход на исполнение выбранной части программы. |
5 | Ввод напряжения питания ИМС и выбор выводов для его подачи | Ввод с клавиатуры напряжения питания ИМС и выбор выводов для его подачи из числа доступных в меню |
6 | Вызов подпрограммы определения типа микросхемы | Определение типа ИМС, возврат из п/п результата определения типа |
7 | Ввод типа микросхемы | Выбор в меню типа микросхемы |
8 | Вызов подпрограммы тестирования микросхемы | Тестирование микросхемы, возврат из п/п результата тестирования |
9 | Вывод результатов на экран | Вывод на экран результатов тестирования или определения типа |
10 | Инициализация устройства | См. п.2. |
11 | Завершить работу с устройством ? | В зависимости от выбора продолжить работу программы с п.3, либо завершить выполнение программы |
6.3. Распределение адресного пространства LPT-порта.
Весь обмен данными осуществляется через стандартные адреса LPT-порта (см. приложение 4). За базовый принят стандартный адрес порта LPT1 - 378H.Рассмотрим назначение портов применительно к разрабатываемому устройству:
Порт 378H. Через него осуществляется запись информации во входные регистры, регистры управления напряжением и током (биты 0-7), а также для управления считыванием данных из “половинок” выходных мультиплексоров (бит 0).
Порт 379H. Используется для чтения данных из выходных мультиплексоров (биты 4-7), а также для контроля наличия напряжения питания на испытуемой микросхеме (бит 3).
Порт 37AH. Используется для дополнительной дешифрации регистров и мультиплексоров (биты 0-2), а также для стробирования записи во входные регистры (бит 3). Дополнительная дешифрация осуществляется следующим образом (табл.13):
Таблица 13
2 бит | 1 бит | 0 бит | Назначение |
0 | 0 | 0 | Запись во входной регистр DD2, чтение из выходного мультиплексора DD13 |
0 | 0 | 1 | Запись во входной регистр DD3, чтение из выходного мультиплексора DD14 |
0 | 1 | 0 | Запись во входной регистр DD4, чтение из выходного мультиплексора DD15 |
0 | 1 | 1 | Запись во входной регистр DD5, чтение из выходного мультиплексора DD16 |
1 | 0 | 0 | Не используется |
1 | 0 | 1 | Запись в регистр регулировки напряжения питания DD7 |
1 | 1 | 0 | Запись в регистррегулировки макс. потр. тока DD8 |
1 | 1 | 1 | Запись в регистр управления коммутацией питания, выбора типа МС и включения напряжения питания DD6 |
Запись 8-ми бит данныхв соответствующий регистр производится из порта 378H (биты 0-7) при перепаде стробирующего сигнала 0Þ1 (бит 3, порт 37AH). Чтение 4-х бит данных из соответствующего мультиплексора производится из порта 379H (биты 0-3). Входы данного мультиплексора переключаются при помощи бита 0 порта 378H. Далее два считанных ниббла (по 4 бита) программно собираются в 1 байт (8 бит).
Значение, записываемое в регистр коммутации питания, зависит от типа микросхемы. Биты 0-2 регистра отвечают за коммутацию “+”питания микросхемы (табл.14), биты 3-5 - за коммутацию GND(табл.15), бит 6 отвечает за тип микросхемы (табл.16), бит 7 - за включение напряжения питания (табл.17):
Таблица 14
0 бит | 1 бит | 2 бит | Коммутируемый вывод разъема X3 |
0 | 0 | 0 | 13 |
0 | 0 | 1 | 14 |
0 | 1 | 0 | 23 |
0 | 1 | 1 | 24 |
1 | 0 | 0 | 26 |
1 | 0 | 1 | 28 |
Таблица 15
3 бит | 4 бит | 5 бит | Коммутируемый вывод разъема X3 |
0 | 0 | 0 | 16 |
0 | 0 | 1 | 19 |
0 | 1 | 0 | 20 |
Таблица 16
6 бит | Тип микросхемы |
0 | ТТЛ |
1 | КМОП |
Таблица 17
7 бит | Напряжение питания испытуемой микросхемы |
0 | Неизменно |
1 | Включено |
6.4. Описание подпрограмм.
1) Подпрограмма инициализации устройства.
После включения питания устройства в регистрах находится случайная информация. Для того, чтобы привести его в исходное состояние, необходимо записать начальные значения в управляющие регистры. Для этого нужно записать в порты следующие значения (значениеÞпорт):7FHÞ378H, 07HÞ37AH, 0FHÞ37AH(запись 7FH в регистр управлениякоммутацией питания - отключение напряжения питания и коммутаторов), затем 0Þ378H, 05HÞ37AH, 0DHÞ37AH (запись 0 в регистр регулировки напряжения), и затем 06HÞ37AH, 0EÞ37AH (запись 0 в регистр регулировки тока). Эти же действия необходимо будет выполнять после каждого цикла тестирования, чтобы избежать выхода из строя испытуемой микросхемы при ее смене. Блок-схема подпрограммы инициализации приведена на рис.18. Подпрограмма инициализации, написанная на языке Ассемблер, приведена в приложении 4.
Рис.18. Блок-схема подпрограммы инициализации устройства.
2) Подпрограмма тестирования микросхем.
Блок-схема подпрограммы тестирования представлена на рис.19.
При помощи интерфейса пользователь выбирает тип микросхемы. Программа находит в базе данных значения, соответствующие выбранной микросхеме и считывает их. Данные для каждой микросхемы представляют собой следующую структуру:
1 байт - данные по коммутации напряжения питания (значение записывается в регистр DD6, 7-й бит не используется).
1 байт - данные по максимально потребляемому микросхемой току (в мА), значение записывается в регистр DD8.
2 байта - количество 8-байтовых данных в повторяющейся последовательности записи-сверки (см. ниже). Фактически представляет собой количество циклов записи-сверки.
Далее идет периодически повторяющаяся последовательность, длина которой зависит от конкретной микросхемы:
4 байта - данные, записываемые во входные регистры (входная последовательность).
4 байта - данные, сверяемые со считанными с выходов испытуемой микросхемы (контрольная последовательность).
При программировании учтены следующие особенности:
· инверсия данных, записываемых во входные регистры, в устройстве согласования повходу;
· инверсия данных, считываемых из выходных мультиплексоров, в устройстве согласования по выходу;
· дополнительное потребление по току в устройстве коммутации, равное 7мА.
Рис.19. Блок-схема подпрограммы тестирования.
Рассмотрим процесс тестирования на примере микросхемы К555ЛА3:
1) Значение, записываемое в регистр DD6. Для подачи питания на данную микросхему используются выводы 7 (GND) и 14 (+5в). Им соответствуют контакты 16 и 23 разъема X3. Для коммутации +Uпит.мс. необходимо в разряды 0-2 регистра DD6 записать значение 010B. Для коммутации GND необходимо в разряды 3-5 регистра DD6 записать значение 000B. Поскольку тип микросхемы ТТЛ, необходимо в разряд 6 регистра DD6 записать значение 0B. Просуммировав, получим значение, которое необходимо записать в регистр DD6: 0000010B=2H.
2) Значение потребляемого микросхемой тока - 4.4мА. Округляем до целого в большую сторону - 5H.
3) Число циклов тестирования. Зависит от микросхемы. Для тестирования микросхемы К555ЛА3 (с 2-мя входами у каждого элемента) достаточно 22=4 цикла тестирования.
4) Периодически повторяющаяся последовательность. Представляет собой 4 записываемых байта и 4 байта, с которыми производится сверка считанных значений. Для неиспользуемых разрядов записываемое и считываемое значения должны соответствовать друг другу, для выводов “+” питания микросхемы будет считываться логическая “1”, для GND - логический “0”. Для данной выбранной микросхемы тестирование будет заключаться в переборе комбинаций по 2-м ее входам (т.е. 00, 01, 10 и 11) и сравнении выходных сигналов с заведомо верными.