
- •1 Цель работы
- •2 Теоретическое введение
- •2.1 Программируемый таймер.
- •2.1.1 Режим 0 - программируемая задержка
- •2.1.2 Режим 1 - программируемый одновибратор
- •2.1.3 Режим 2 - программируемый делитель (генератор) частоты
- •2.1.4 Режим 3 - программируемый генератор меандра
- •2.1.5 Режим 4 - генератор одиночного импульса (счетчик событий)
- •2.1.6 Режим 5 - генератор одиночного импульса (счетчик событий) с аппаратным перезапуском
- •2.2 Обработка прерываний.
- •2.2.1 Определение сигнала
- •2.2.2 Имена сигналов
- •2.2.3 Нормальное и аварийное завершение программ
- •2.2.4 Обработка сигналов
- •2.2.5 Генерация сигнала
- •2.2.6 Передача сигналов самому процессу: вызовы raise и alarm
- •2.2.7 Приостановка работы программы. Системный вызов pause
- •Задание на курсовую работу
- •Требование к оформлению курсовой работы
- •5 Теоретические вопросы
Курсовая работа
Таймер. Система прерываний. Сигналы и их
обработка.
Кафедра ТС и ВС
СибГУТИ
2011 г.
Содержание
1 Цель работы
2 Теоретическое введение
2.1 Программируемый таймер
2.1.1 Режим 0 - программируемая задержка
2.1.2 Режим 1 - программируемый одновибратор
2.1.3 Режим 2 - программируемый делитель (генератор) частоты
2.1.4 Режим 3 - программируемый генератор меандра
2.1.5 Режим 4 - генератор одиночного импульса (счетчик событий)
2.1.6 Режим 5 - генератор одиночного импульса (счетчик событий) с аппаратным перезапуском
2.2 Обработка прерываний.
2.2.1 Определение сигнала
2.2.2 Имена сигналов
2.2.3 Нормальное и аварийное завершение программ
2.2.4 Обработка сигналов
2.2.5 Генерация сигнала
2.2.6 Передача сигналов самому процессу: вызовы raise и alarm
2.2.7 Приостановка работы программы. Системный вызов pause
3 Задание на курсовую работу
4 Требование к оформлению курсовой работы
Пример программы
Список иллюстраций
1 Схема подключения микросхемы памяти
2 Формат настроечного слова
3 Настроечное слово для "чтения на лету"
4 Пример использования команды kill для завершения программы
Рис. 1: Схема подключения микросхемы памяти
1 Цель работы
Изучить принципы работы таймера и систему прерываний персонального компьютера.
Дать определение термину "сигнал". Научиться генерировать и перехватывать сигналы,
2 Теоретическое введение
2.1 Программируемый таймер.
Таймер содержит три независимых канала, соответственно канал 0, канал 1 и канал 2, Внутри каждого канала стоит шестнадцатиразрядный счетчик, работающий на вычитание. Счетчик можно программным образом настроить на счет в двоичной или двоично-десятичной системе счисления. Любой канал таймера можно запрограммировать на работу в одном из шести режимов, соответственно режим 0, режим 1, ... , режим 5. При программировании канала в его регистр управляющего слова (РУС) передается настроечное слово (байт). Хотя у каждого канала свой РУС, все они имеют один системный адрес и поэтому, с точки зрения программиста, внутри таймера один РУС, Таймер определяет, какому каналу предназначено настроечное слово по внутреннему содержимому этого слова. Схема подключения таймера, к системной шине приведена на рис. 1, Информация на линиях А1 и АО задает одно из четырех адресуемых устройства внутри таймера: А1=0, А0=0 - канал 0; Al=0, A0=1 - канал 1; А1=1, А0=0 - канал 2; А1=1, А0=1-РУС.
CLK - вход синхроимпульсов. На этот вход поступают импульсы, которые считает канал. Декремент счетчика происходит по заднему фронту импульсов на входе CLK,
GATE -управляющий вход. Если на этом входе единица, счетчик канала считает импульсы, приходящие на CLK, если ноль - не считает, В некоторых режимах снятие и подача единицы на входе GATE инициирует перезапуск счетчика,
OUT - выход канала. Вид сигнала на этом выходе зависит от режима, на который
Рис. 3: Настроечное слово для "чтения на лету"
настроен канал.
Формат настроечного слова канала приведен на рис. 2,
Разряды D7t D6 задают номер канала, в который передается настроечное слово:
D7=0, D6=0 - канал 0;
D7=0, D6=l - канал 1;
D7=l, D6=0 - канал 2;
D7=l, D6=1 - специальная команда (на практике используется редко).
Как видно из рис. 2, таймер связан с СШ восьмиразрядной шиной данных. В то же время формат счетчика канала - два байта. Поэтому имеются различные варианты загрузки счетчика и чтения его содержимого. Эти варианты задают разряды D5 и D4 настроечного слова:
D5=0, D4=0 - специальный режим "чтение на лету";
D5=0, D4=1 - передается только старший байт;
D5=l, D4=0 - передается только младший байт;
D5=l, D4=l - передаются оба байта (за две передачи, сначала младший, а потом старший.
Прочитать содержимое счетчика канала можно двумя способами. Первый способ требует остановки счета, для чего надо либо прекратить подачу импульсов на вход CLK, либо снять единицу с входа GATE. Второй способ не требует остановки счета и называется "чтение на лету". В этом случае в настроенный, работающий канал надо передать еще одно настроечное слово (его формат смотри на рис, 3),
Здесь, как и ранее, D7 и D6 задают номер канала, а звездочки означают безразличное значение. Получив такой приказ, канал автоматически фиксирует текущее значение счетчика в буфере, откуда его затем можно считать за одну или две передачи.
Разряды D3 - D1 (рис, 3) задают режим, в котором будет работать канал (соответственно 000- режим 0, ,„ , 101 - режим 5). Разряд D0 задает систему счисления, в которой будет работать канал. При D0 — 0 задается двоичная, а при D0—1 - десятичная система счисления.