Проектирование микропроцессорного модуля автоматизированной информационной системы

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

?росхеме, а потому логично производить проверку ПЗУ, сверяя считываемые из нее значения с заранее известными. Для ускорения работы процедуры тестирования будем производить проверку не всех значений ПЗУ, а лишь финальной контрольной суммы этих значений после полного обхода всех ячеек.

В момент начала работы ОЗУ не может хранить какой-либо полезной информации, а потому работоспособность оперативной памяти будем проверять, выполняя последовательно запись и чтение данных, сравнивая исходное значение и результат.

Если проверка пройдена успешно, можно говорить о работоспособности всего МП-модуля (за исключением интерфейсных узлов).

Теперь необходимо подготовить МП-модуль к дальнейшей работе, проинициализировав с помощью специальных управляющих слов все нуждающиеся в этом узлы.

В разрабатываемом модуле в инициализации нуждаются 3 устройства: ПКП, ППИ и ПККИ.

Поскольку для ПКП выбран режим полного вложения и в системе отсутствуют ведомые контроллеры прерываний, настройка ПКП осуществляется единственным словом инициализации ICW1. Оно имеет следующий вид:

 

ААА1хВСх,

 

где ААА - старшие разряды номеров векторов прерываний, вызываемых при поступлении запросов от устройств, В - признак способа адресации векторов прерываний (В=1 для 4-байтных векторов), С - признак наличия каскадирования (С=1 для одиночного ПКП). Байт адреса вектора прерывания, выдаваемые ПКП в ответ на второй сигнал INTA МП, будет иметь вид

 

YYYXXX00,

 

где YYY - биты ААА из слова инициализации, ХХХ - приоритет текущего устройства, запросившего прерывание, назначаемый ПКП согласно номеру входа, к которому это устройство подключено. Примем ААА=000, назначив тем самым для внешних устройств номера векторов прерываний, совпадающие с номерами входов, к которым они подключены.

ППИ необходимо настроить на синхронный режим обмена, причем порт А и младшая половина порта С должны осуществлять вывод данных, а порт В - ввод. Направление работы старшей половины порта С не важно и может быть любым. Такая настройка ППИ производится путем загрузки управляющего слова следующего формата:

 

S RR A C r B c,

 

где S - признак управляющего слова, 1; RR - выбор режима для порта А и старшей половины порта С, 00 - синхронный режим 0; А - направление передачи для порта А, 0 - вывод; C - то же для старшей половины порта С (С7-С4), 0 - вывод, 1 - ввод; r - режим работы портов В и младшей части С, 0 - режим 0; B - направление передачи для порта В, 1 - ввод; c - то же для младшей половины порта С, 0 - вывод. Будем использовать управляющее слово 10000010.

 

Блок интерфейса клавиатуры ПККИ должен работать в режиме последовательного опроса клавиш с дешифрированием состояния счетчика сканирования и запрещением одновременного нажатия нескольких клавиш - в режиме 1. Этот режим устанавливается путем загрузки управляющего слова вида 000хх001, где хх - слово состояния блока индикации. Так как в МП-модуле не предусмотрено наличие индикации, эти разряды управляющего слова не важны и могут принимать любые значения.

После окончания инициализации узлов МП-модуль переходит в нормальный режим функционирования. Однако, согласно заданию, ввод и вывод информации осуществляются по запросу на прерывание, то есть, на данном этапе МП бездействует, ожидая поступления запроса на прерывание от внешних устройств. Процессор переводится в состояние останов.

Из этого состояния МП-модуль выходит при поступлении запроса на прерывание, сформированного контроллером клавиатуры. В таком случае, МП переходит к обработке программы ввода данных. Считанный из ПККИ номер нажатой клавиши анализируется. Два номера закреплены за программами обработки и печати введенных данных. Пусть это будут номера 64 и 63.

 

Рисунок 4.2 Алгоритм программы ввода данных

Рисунок 4.7 Алгоритм процедуры тестирования ПЗУ

 

.2 Описание программы

 

Известно, что первую команду МП К1810ВМ86 считывает из ячейки адреса с номеров FFFF0h. Однако до верхнего предела ПЗУ в таком случае остается лишь 16 адресов. Этого недостаточно для размещения ПО модуля, а потому разместим в памяти по адресу FFFF0h команду безусловного перехода на начало программы, составляющей ПО МП-модуля.

Первой вызывается процедура инициализации и тестирования МП-модуля. В ней можно выделить несколько подпрограмм: тест АЛУ, тест ПЗУ, тест ОЗУ и собственно начальная инициализация МП-модуля.

Сумматор АЛУ проверяется путем сравнения результата выполнения сложения загруженных констант с известным результатом. При этом константы поочередно загружаются во все РОН, где над ними и выполняются операции сложения и сравнения.

Программа тестирования ПЗУ вычисляет контрольную сумму значений всех его ячеек и сравнивает ее с заранее известным значением.

Так как размер ОЗУ выходит за пределы одного логического сегмента, для полного прохода всех ячеек недостаточно изменять только 16-рязрядное смещение. Условно разобьем ОЗУ на два банка - младший (00000h - 0FFFFh) и старший (10000h - 1FFFFh) и будем проводить процедуру тестирования для каждого из барков. Тестирование представляет собой последовательную запись и контрольное считывание из ячеек памяти двух констант - 055h и 0AAh (0101b и 1010b).

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

При удачном завершении тестирования МП-модуль переходит к программе начальной инициализации.

Для корректной работы