Вход

Системный тамер,управление приоритетными направлениями

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 334606
Дата создания 07 июля 2013
Страниц 25
Мы сможем обработать ваш заказ (!) 23 декабря в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
1 310руб.
КУПИТЬ

Содержание

Содержание

1. Системный таймер ……………………………………………………………………3
1.1 Организация системы синхронизации процессов ……………………….3
1.2 Точные временные задержки………………………………………………6
1.3 Архитектура программируемого системного таймера………………….8
1.4 Программная модель ПСТ и приемы программирования………………10
2. Управление приоритетными прерываниями …………………………………….16
2.1 Организация системы прерываний с несколькими контроллерами……16
2.2 Программирование вложенных приоритетов…………………………..20
Список литературы…………………………………….……………………………..25
?

Введение

Системный тамер,управление приоритетными направлениями

Фрагмент работы для ознакомления

Это можно сделать, например, так: mov al, 20hout 20h, al Приведенный ниже рисунок иллюстрирует механизм обработки прерывания таймера:Рисунок 1.2 – Механизм обработки прерывания таймера1.3 Архитектура программируемого системного таймераТаймер обычно реализуется на микросхеме Intel 8253 (для компьютеров IBM PC и IBM XT) или 8254 (для компьютеров IBM AT и IBM PS/2). Рассмотрим микросхему 8254 [4] (рисунок 1.3). Таймеры 8253 и 8254 состоят из трех независимых каналов, или счетчиков. Каждый канал содержит регистры: состояния канала RS (8 разрядов); управляющего слова RSW (8 разрядов); буферный регистр OL (16 разрядов); регистр счетчика CE (16 разрядов); регистр констант пересчета CR (16 разрядов). Каналы таймера подключаются к внешним устройствам при помощи трех линий: GATE - управляющий вход; CLOCK - вход тактовой частоты; OUT - выход таймера. Рисунок 1.3 – Cхема таймера intel 8254 Регистр счетчика CE работает в режиме вычитания. Его содержимое уменьшается по заднему фронту сигнала CLOCK при условии, что на вход GATE установлен уровень логической 1. В зависимости от режима работы таймера при достижении счетчиком CE нуля тем или иным образом изменяется выходной сигнал OUT. Буферный регистр OL предназначен для запоминания текущего содержимого регистра счетчика CE без остановки процесса счета. После запоминания буферный регистр доступен программе для чтения. Регистр констант пересчета CR может загружаться в регистр счетчика, если это требуется в текущем режиме работы таймера. Регистры состояния канала и управляющего слова предназначены, соответственно, для определения текущего состояния канала и для задания режима работы таймера. Упрощенная схема взаимодействия регистров канала приведена на рисунке: Рисунок 1.4 – Схема взаимодействия регистров каналаВозможны шесть режимов работы таймера. Они разделяются на три типа: Режимы 0, 4 - однократное выполнение функций. Режимы 1, 5 - работа с перезапуском. Режимы 2, 3 - работа с автозагрузкой. В режиме однократного выполнения функций перед началом счета содержимое регистра констант пересчета CR переписывается в регистр счетчика CE по сигналу CLOCK, если сигнал GATE установлен в 1. В дальнейшем содержимое регистра CE уменьшается по мере прихода импульсов CLOCK. Процесс счета можно приостановить, если подать на вход GATE уровень логического 0. Если затем на вход GATE подать 1, счет будет продолжен дальше. Для повторения выполнения функции необходима новая загрузка регистра CR, т.е. повторное программирование таймера. При работе с перезапуском не требуется повторного программирования таймера для выполнения той же функции. По фронту сигнала GATE значение константы из регистра CR вновь переписывается в регистр CE, даже если текущая операция не была завершена. В режиме автозагрузки регистр CR автоматически переписывается в регистр CE после завершения счета. Сигнал на выходе OUT появляется только при наличии на входе GATE уровня логической 1. Этот режим используется для создания программируемых импульсных генераторов и генераторов прямоугольных импульсов (меандра). В компьютере IBM PC/XT/AT/PS2 задействованы все три канала таймера. Канал 0 используется в системных часах времени суток (не следует путать с часами реального времени, реализованными на другой микросхеме). Этот канал работает в режиме 3 и используется как генератор импульсов с частотой примерно 18.2 Гц. Именно эти импульсы вызывают аппаратное прерывание INT 8h. Канал 1 используется для регенерации содержимого динамической памяти компьютера. Выход канала OUT используется для запроса к каналу прямого доступа DMA, который и выполняет обновление содержимого памяти. Вам не следует перепрограммировать этот канал, так как это может привести к нарушениям в работе основной оперативной памяти компьютера. Канал 2 подключен к громкоговорителю компьютера и может быть использован для генерации различных звуков или музыки, либо как генератор случайных чисел. Канал использует режим 3 таймера 8253/8254. 1.4 Программная модель ПСТ и приемы программированияРассмотрим некоторые приемы программирования микросхемы Intel 8254Таймеру соответствуют четыре порта ввода/вывода со следующими адресами: 40h - канал 0; 41h - канал 1; 42h - канал 2; 43h - управляющий регистр. Приведем формат управляющего регистра:Рисунок 1.5 – Формат управляющего регистраПоле BCD определяет формат константы, использующейся для счета - двоичный или двоично-десятичный. В двоично-десятичном режиме константа задается в диапазоне 1-9999. Поле M определяет режимы работы микросхемы 8254: 0 - прерывание от таймера; 1 - программируемый ждущий мультивибратор; 2 - программируемый генераор импульсов; 3 - генератор меандра; 4 - программно-запускаемый одновибратор; 5 - аппаратно-запускаемый одновибратор. Мы будем рассматривать только режим 3, так как именно он используется в каналах 0 и 2. Поле RW определяет способ загрузки констант через однобайтовый порт. Если в этом поле задано значение 00, это управляющее слово будет использоваться для фиксации текущего содержимого регистров счетчика CE в буферном регистре OL с целью чтения программой. Это код команды CLC - фиксация регистров. Код канала, для которого будет выполняться фиксация, должен быть указан в поле SC. Поля M и BCD при этом не используются. Поле SC определяет номер канала, для которого предназначено управляющее слово. Если в этом поле задано значение 11, будет выполняться чтение состояния канала. Приведем формат команды RBC чтения слова состояния канала (рисунок 1.6).С помощью этой команды вы можете выполнять операции чтения состояния каналов либо запоминание регистра счетчика CE каналов. Можно выполнять эти операции как для отдельных каналов, так и для всех каналов одновременно, если установить соответствующие биты (1, 2, 3) в 1. Рисунок 1.6 - Формат команды RBC чтения слова состояния каналаФормат слова состояния канала напоминает формат регистра управляющего слова, за исключением двух старших разрядов 7 и 6:Рисунок 1.7 - Формат слова состояния каналаРазряд FN используется, в основном, в режимах 1 и 5 для определения, произошла ли загрузка константы из регистра CR в регистр счетчика CE. Разряд OUT позволяет определить состояние выходной линии канала OUT в момент выполнения команды RBC. Для программирования канала таймера необходимо выполнить следующую последовательность действий: вывести в порт управляющего регистра с адресом 43h управляющее слово; требуемое значение счетчика посылается в порт канала (адреса 40h...42h), причем вначале выводится младший, а затем старший байты значения счетчика. Сразу после этого канал таймера начнет выполнять требуемую функцию. Для чтения текущего содержимого счетчика CE необходимо выполнить следующее: вывести в порт управляющего регистра код команды CLC (команда запоминания содержимого регистра CE); вывести в порт управляющего регистра код команды запроса на чтение/запись в регистры канала (поле RW должно содержать 11); двумя последовательными командами ввода из порта нужного канала ввести младший и старший байты текущего состояния счетчика CE. Для чего может понадобиться перепрограммирование каналов таймера? Если надо повысить точность измерения времени, выполняемого с помощью канала 0 таймера, вы можете увеличить частоту генерируемых этим каналом импульсов (стандартно 18,2 Гц). По окончании измерений режим работы канала необходимо восстановить для правильного функционирования системы. Канал 2, подключенный к громкоговорителю, можно использовать для генерации различных звуков или музыки. Этот же канал может быть использован для генерации случайных чисел. Приведем пример программы, отображающей слово состояния и содержимое счетчика для всех трех каналов таймера:#include <stdio.h>#include <conio.h>main() { unsigned i; printf("\n\nКанал 0" "\n-------" "\n");// Читаем слово состояния канала,// команда 0xe2 = 11100010B outp(0x43, 0xe2); printf("\nСлово состояния канала: %02.2X", inp(0x40));// Читаем текущее состояние регистра счетчика// канала. Для этого вначале выдаем команду CLC// для канала 0. Код этой команды - 0x00 outp(0x43, 0x00);// Вводим младший и старший байты счетчика// и отображаем его. i = inp(0x40); i = (inp(0x40) << 8) + i; printf("\nРегистр счетчика: %04.4X",i);// Повторяем те же действия для 1 и 2 каналов. printf("\n\nКанал 1" "\n-------" "\n"); outp(0x43, 0xe4); printf("\nСлово состояния канала: %02.2X",inp(0x41)); outp(0x43, 0x40); i = inp(0x41); i = (inp(0x41) << 8) + i; printf("\nРегистр счетчика: %04.4X",i); printf("\n\nКанал 2" "\n-------"); outp(0x43, 0xe8); printf("\nСлово состояния канала: %02.2X",inp(0x42)); outp(0x43, 0x80); i = inp(0x42); i = (inp(0x42) << 8) + i; printf("\nРегистр счетчика: %04.4X",i); exit(0);}2. Управление приоритетными прерываниями2.1 Организация системы прерываний с несколькими контроллерамиДля обработки событий, происходящих асинхронно по отношению к выполнению программы, лучше всего подходит механизм прерываний [5]. Прерывание можно рассматривать как некоторое особое событие в системе, требующее моментальной реакции. Например, хорошо спроектированные системы повышенной надежности используют прерывание по аварии в питающей сети для выполнения процедур записи содержимого регистров и оперативной памяти на магнитный носитель, с тем чтобы после восстановления питания можно было продолжить работу с того же места. Если нами проектируется (программируется) сложная система, то использование нескольких контроллеров является достаточно вероятным, а иногда и необходимым. Однако, реализация функционала создаваемой микропроцессорной схемы в данном случае не будет отличаться от программирования обработчика прерываний только одного контроллера. В рассматриваемом случае логика обработки прерываний будет реализована путем перехода от схемы к схеме в соответствии с кодом. По указанной причине рассмотрим организацию обработки прерывания только одного контроллера, остановив внимание на отдельных особенных моментах обработки прерываний при использовании нескольких контроллеров. Кажется очевидным, что возможны самые разнообразные прерывания по самым различным причинам. Поэтому прерывание рассматривается не просто как таковое, с ним связывают число, называемое номером типа прерывания или просто номером прерывания. С каждым номером прерывания связывается то или иное событие. Система умеет распознавать, какое прерывание, с каким номером произошло и запускает соответствующую этому номеру процедуру. Программы могут сами вызывать прерывания с заданным номером. Для этого они используют команду INT. Это так называемые программные прерывания. Программные прерывания не являются асинхронными, так как вызываются из программы. Программные прерывания удобно использовать для организации доступа к отдельным, общим для всех программ модулям. Например, программные модули операционной системы доступны прикладным программам именно через прерывания, и нет необходимости при вызове этих модулей знать их текущий адрес в памяти. Прикладные программы могут сами устанавливать свои обработчики прерываний для их последующего использования другими программами. Для этого встраиваемые обработчики прерываний должны быть резидентными в памяти. Аппаратные прерывания вызываются физическими устройствами и приходят асинхронно. Эти прерывания информируют систему о событиях, связанных с работой устройств, например о том, что наконец-то завершилась печать символа на принтере и неплохо было бы выдать следующий символ, или о том, что требуемый сектор диска уже прочитан его содержимое доступно программе. Использование прерываний при работе с медленными внешними устройствами позволяют совместить ввод/вывод с обработкой данных в центральном процессоре и в результате повышает общую производительность системы. Некоторые прерывания (первые пять в порядке номеров) зарезервированы для использования самим центральным процессором на случай каких-либо особых событий вроде попытки деления на ноль, переполнения и т.п. Иногда желательно сделать систему нечувствительной ко всем или отдельным прерываниям. Для этого используют так называемое маскирование прерываний. Но некоторые прерывания замаскировать нельзя, это немаскируемые прерывания. Составление собственных программ обработки прерываний и замена стандартных обработчиков DOS и BIOS является ответственной и сложной работой. Необходимо учитывать все тонкости работы аппаратуры и взаимодействия программного и аппаратного обеспечения. При отладке возможно разрушение операционной системы с непредсказуемыми последствиями, поэтому надо очень внимательно следить за тем, что делает создаваемая программа.Программируемый контроллер прерываний 8259 (отечественный аналог - КР1810ВН59А) предназначен для обработки до восьми приоритетных уровней прерываний [6, 7]. Возможно каскадирование микросхем, при этом общее число уровней прерываний будет достигать 64. Схема рассматриваемого контроллера прерываний приведена на рисунке 2.1.Рисунок 2.1 - Описание выводов микросхемы 82591. CS - Chip Select, Выбор микросхемы, Инверсный2. WR - Write, Запись, Инверсный3. RD - Read, Чтение, Инверсный4 - 11. D7 - D0 соответственно, входы/выходы данных12 / 13 /15.

Список литературы

Список литературы

1. Процессы и потоки, диспетчер задач windows, синхронизация потоков. http://more-it.ru/view_post.php?id=63.
2.Системный таймер. http://www.studfiles.ru/dir/cat32/subj79/file1801.html.
3. Часы реального времени. http://www.studfiles.ru/dir/cat32/subj79/file1801.html.
4. Аппаратное обеспечение персонального компьютера. Александр Фролов, Григорий Фролов. Том 33, М.: Диалог-МИФИ, 1997, 304 стр.
5. Контроллер прерываний. http://www.studfiles.ru/dir/cat32/subj79/file1801.html.
6. Система прерываний. http://elancev.narod.ru/texno/raznoe/prer.htm.
7. Контроллер прерываний 82(C)59. http://embedded.ifmo.ru/embedded_old/ETC/REFERAT/8259/8259.htm/
8. Assembler.Учебный курс.Юров В., Хорошенко С. Питер, 1 издание, 2005 год, 672 стр.
Очень похожие работы
Найти ещё больше
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00498
© Рефератбанк, 2002 - 2024