Проектирование микропроцессорного модуля автоматизированной информационной системы
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
?росхеме, а потому логично производить проверку ПЗУ, сверяя считываемые из нее значения с заранее известными. Для ускорения работы процедуры тестирования будем производить проверку не всех значений ПЗУ, а лишь финальной контрольной суммы этих значений после полного обхода всех ячеек.
В момент начала работы ОЗУ не может хранить какой-либо полезной информации, а потому работоспособность оперативной памяти будем проверять, выполняя последовательно запись и чтение данных, сравнивая исходное значение и результат.
Если проверка пройдена успешно, можно говорить о работоспособности всего МП-модуля (за исключением интерфейсных узлов).
Теперь необходимо подготовить МП-модуль к дальнейшей работе, проинициализировав с помощью специальных управляющих слов все нуждающиеся в этом узлы.
В разрабатываемом модуле в инициализации нуждаются 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).
В качестве обработчиков ошибок тестирования выступают подпрограммы вывода на печать условного кода произошедшей ошибки.
При удачном завершении тестирования МП-модуль переходит к программе начальной инициализации.
Для корректной работы