Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
133.doc
Скачиваний:
12
Добавлен:
30.04.2022
Размер:
970.75 Кб
Скачать

7.7. Литература

  1. Нортон П. Программно-аппаратная организация IBM PC: Пер. с англ. –М.: Радио и связь, 1991.- 368с.

  2. Гук М. Процессоры Pentium II, Pentium Pro и просто Pentium – СПб: ЗАО “Издательство ”Питер”, 1999.-288 с.

  3. Абель П. Язык Ассемблера ддля IBM PC и программирования / Пер. с англ.- М.: Высш. Шк., 1992.- 447 с.

  4. Джордейн Р. Справочник программиста персональных компьютеров типа IBM XT и AT: Пер с англ. – М.: Финансы и статистика, 1992 – 544 с.

8. Лабораторная работа № 7 работа intel 286 в реальном масштабе времени

Цель работы: применение прерываний от таймера для дискретного управления в реальном масштабе времени.

Оборудование – Компьютер Intel_*86, лабораторный стенд, другие дискретные объекты управления по предложению преподавателя.

8.1. Прерывания в эвм

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

Для работы ЭВМ в режиме отсчета реального времени в можно использовать прерывания от таймеров внешних или внутренних. Входы внешних запросов прерывания IRQN (N- номер запроса) поступают на контроллер прерываний, который осуществляет арбитраж запросов в соответствии с их приоритетом и указаниями пользователя. Максимальный приоритет имеет прерывание IRQ0. Запросы на прерывания IRQ0 – IRQ7 соответствуют векторам прерывания8H-0FH, а запросы прерывания IRQ8 – IRQ15 соответствуют векторам 70H – 77H. Прерывание 8H осуществляется от внутренних часов реального времени ЭВМ. Некоторые прерывания переопределяются BIOS.

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

  1. Вектора прерывания микропроцессора (0H-7H).

  2. Вектора прерывания контроллера прерывания (8H-0FH, 70H-77H).

  3. Входные точки процедур системы BIOS (10H-1AH, 40H).

  4. Вызовы процедур пользователя (1BH-1CH).

  5. Указатели системных таблиц (1DH, 1EH, 1FH, 41H).

Для реализации работы в реальном масштабе времени при управлении медленными процессами можно использовать прерывание от таймера (внутренних часов реального времени ЭВМ). Это прерывание с вектором 8H выполняется с частотой 18.2 гц. При обработке этого прерывания выполняется обращение к программе обработки прерывания TIMER_INT. Эта программа обработки увеличивает содержимое 32-разрядного счетчика регистрирующего время дня. Счетчик располагается в двух смежных ячейках памяти TIMER_LOW (0040:006C) и TIMER_HIGH (0040:006E). Затем программа обработки прерывания TIMER_INT вызывает прерывание с вектором 1CH. Таким образом, с частотой 18.2 гц вызывается прерывание 1CH. Система BIOS имеет в программе обработки прерывания с вектором 1CH одну команду IRET (возврат из прерывания). Это прерывание ничего не выполняет и предназначено для пользователей, которые могут занести в этот вектор указатель на свою программу обработки. Поэтому вектор 1CH можно использовать в пользовательских программах для отсчета реального времени. Для этого в этот вектор необходимо поместить адрес программы обработки прерывания пользователя, тем самым подменить программу операционной системы обработки этого прерывания программой пользователя. Программа обработки прерывания должна заканчиваться командой возврата из прерывания. Если требуется прерывание с другой частотой при использовании прерывания 1CH, то необходимо перепрограммировать таймер ЭВМ. Однако, такая операция приведет к искажению показаний часов реального времени и может привести к нарушению в работе дисководов, т.к. в них предусмотрено формирование временных задержек при выполнении операций. При замене программы обработки прерывания пользователь должен обеспечить при завершении работы корректный возврат системного вектора прерывания.

Для использования новой программы обработки прерывания 1CH выполняют следующую последовательность действий:

    1. Присвоить переменной типа указатель (pointer) значение адреса новой программы обработки прерывания

    2. Запретить маскируемые прерывания,

    3. Запомнить старый вектор прерывания в переменной типа указатель,

    4. Занести с вектор прерывания значение адреса новой программы обработки.

    5. Разрешить прерывание,

    6. При завершении работы основной программы запретить прерывание

    7. Восстановить старый вектор, записав в него старое запомненное значение.

В языках программирования высокого уровня (например, языке Паскаль) существуют операторы и команды, облегчающие работу с прерываниями. При их использовании часть необходимых операций выполняется автоматически.

В работе предлагается использовать язык программирования Паскаль.

В работе используется стенд описанный в разделе 1.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]