Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


С помощью сигнатур




В данном разделе более детально рассматривается реализация метода блокового контроля с помощью сигнатур. В качестве конкретного микропроцессора выбран микроконтроллер 1816ВЕ51. Рассматриваемый метод блокового контроля правильности хода выполнения программы (функциональной модели МП системы) основан на сравнении в конце вы­деленного блока команд эталонной сигнатуры с вычисляемой сигнатурой. Сигнатура в нашем случае – результат поразрядного сложения по модулю два байтов команд на шине данных, выполняемых по разомкнутому пути программы (блоку программы). Программа должна быть написана так, чтобы в конце оцениваемого пути сигнатура равнялась нулю. СВК фикси­рует сигнал конца блока и сравнивает накопленную сигнатуру с нулем. Сигнал конца блока формируется СВК при выполнении команды

 

LCALL AC,

 

т.е. вызов подпрограммы по адресу, указанному во втором и третьем бай­тах команды, где АC – выделенные для СВК адреса из адресного простран­ства ПЗУ. СВК выделяет момент появления АC на адресной шине и стро­бирует сигнатуратор. По адресу АC в ПЗУ хранится команда RET (возврат из подпрограммы).

Рассмотрим пример. На рис. 4.45 приведена граф-схема фрагмента программы, где вершины соответствуют линейным участкам программы (в частном случае – одной команде), а на рис. 4.46 показана граф-схема этой программы с дополнительными командами, обеспечивающими равенство сигнатуры нулю в точках сравнения или требуемые значения в точках схождения и замыкания контуров (S 4,5,6; S 14,15; S 3).

 

  Рис.4.45.Граф-схема фрагмента программы  

 

 

Выравнивание сигнатур выполняется при помощи команды

 

MOV direct,# data

 

Поле direct фиксировано и определяет адрес ячейки внутреннего ОЗУ, не используемой в рабочей программе. Меняя поле # data, можно до­биться требуемого значения сигнатуры. Если значение поля direct принять равным коду команды, то сумма по модулю два кода команды и поля direct равна нулю. В этом случае, чтобы после выполнения выравнивающей ко­манды сигнатура стала равной нулю, поле # data должно принять значение эталонной сигнатуры, полученное до выполнения этой команды.

Рассмотрим выделенный окружностью участок программы на рис. 4.46 (см. ниже). Пусть S 4, S 5, S 6 – сигнатуры, вычисленные к моменту выполнения команд выравнивания по соответствующим путям. Пусть к моменту выполнения фазы 7 сигнатура S 4,5,6 должна равняться нулю, неза­висимо от того, по какому пути выполнился переход к 7.

Определим data 1, data 2, data 3:

 

S 4 + data 3 = 0, отсюда data 3 = S 4;

S 6 + data 2 + data 3 = 0, отсюда data 2 = S 6 + S 4;

S 5 + data 1 + data 2 + data 3 = 0, отсюда data 1 = S 5 + S 6.

 

В случае прерывания программ необходимо запомнить сформиро­ванную сигнатуру в стеке, а после завершения подпрограммы обработки прерывания – восстановить ее в сигнатураторе. Предлагается организовать стек в ОЗУ ЦП. Первые команды подпрограммы обработки прерывания должны обеспечить ввод в стек текущей сигнатуры с учетом сигнатуры команд, выполняющих ввод в стек.

Оценим объем дополнительной памяти (М) для команд, обеспечи­вающих реализацию рассматриваемого метода контроля. Пусть D – число команд, на которые выполняется переход больше чем из одного места про­граммы (узловые команды), Si – число переходов к i -й узловой команде, С – число циклов в программе. Все команды, используемые для модифи­кации программы, трехбайтные.

 

  Рис. 4.46. Граф-схема программы с дополнительными командами

 

 

Каждое сравнение сигнатуры с 0 требует выполнения трех команд:

MOV direct, # data – обеспечивает нулевую сигнатуру;

LCALL AC – инициирует момент сравнения;

LJMP – обеспечивает продолжение рабочей программы.

Таким образом,

.

На рис. 4.47 приведена функциональная схема СВК, реализующая рассматриваемый блоковый метод контроля правильности хода выполне­ния программы для однокристального микроконтроллера 1816ВЕ51 как объекта контроля. Сигналы с шины данных ЦП поступают на первый вход, а сигналы из регистра сигнатуры (РгС) – на второй вход сумматора по mod2 (СМ). Результат сложения фиксируется по фронту сигнала РМЕ ЦП в РС. Содержимое РС может быть записано в ЦП через буфер Б или загру­жено из ЦП при выполнении команды MOV X. Для этого РС присваива­ется адрес Арс из адресного пространства внешнего ОЗУ. При загрузке РС переводится в третье состояние, это обеспечивает на втором входе сумма­тора все единицы и РгС < – D + 1...1.

 

Рис. 4.47. Функциональная СВК, реализующая блоковый метод контроля

Обращение к ПЗУ по адресу Ас вызывает стробирование схемы сравнения содержимого РгС с О (ССО), и триггер ошибки (Тош) форми­рует сигнал ошибки (Ош) в виде короткого импульса, если результат не равен нулю. Селектор адреса (СА) распознает адреса Ас и Арс. В микро­контроллере 1816ВЕ51 в машинном цикле всегда происходит два обраще­ния к ПЗУ программ. Для однобайтной команды, например, при втором обращении к ПЗУ будет выбран следующий байт, но на выполнение теку­щей команды он не повлияет. Этот байт будет выбран снова при выборке следующей команды. Таким образом, возможна ситуация выборки из ПЗУ дважды подряд по одному и тому же адресу. Предположим, что из-за де­фекта в некоторой ячейке ПЗУ произошло изменение содержимого. Обра­щение два раза подряд к одной и той же ячейке ПЗУ добавляет к сигнатуре 0. Нуль получается как в случае исправности, так и в случае неисправно­сти, т.е. СП не обнаруживает большую часть дефектов ПЗУ, нарушающих механизмы хранения и выборки. Для исключения этой ситуации СП не должен добавлять к сигнатуре код, полученный при повторном обращении к ячейке ПЗУ. Это достигается следующим образом. Вводится регистр ад­реса РА, фиксирующий по фронту сигнала РМЕ состояние адресной шины. Схема совпадения (СС) определяет, является ли текущий адрес таким же, как при предыдущем обращении к ПЗУ, сравнением состояний РА и шины А. Результат сравнения фиксируется в триггере ТС по срезу сигнала РМЕ. В случае совпадения ТС блокирует прохождение сигнала РМЕ на синхров­ход РгС.

 





Поделиться с друзьями:


Дата добавления: 2015-05-08; Мы поможем в написании ваших работ!; просмотров: 1178 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

В моем словаре нет слова «невозможно». © Наполеон Бонапарт
==> читать все изречения...

2217 - | 2180 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.