ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 19.03.2025

Просмотров: 1897

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Оглавление

Лекция № 1 Введение в проблемы построения автоматизированных систем.

Основные вопросы курса:

1.1. Функциональные компоненты, необходимые для построения автоматизированного комплекса.

1.2. Особенности проектирования и основные требования к автоматизированным системам для научных исследований (асни).

1.3. Принципы построения автоматизированных систем.

Лекция №2 Средства управления объектами автоматизации.

2.1. Архитектурные возможности эвм.

Основные регистры процессора эвм семейства Macintosh.

Основные регистры процессора эвм семейства ibm pc.

2.2. Основная память.

Форматы представления чисел в озу.

2.3. Каналы ввода-вывода информации.

Общая структура магистрали эвм

Передача информации по системной магистрали

Вывод данных Ввод данных

Лекция №3 Принципы организации обмена данными между эвм и внешними устройствами.

3.1 Режимы обмена данными

3.2 Безусловная передача данных.

Лекция №4 Техническая реализация усо в эвм семейства ibm и методика управления обменом.

Карта регистров усо

4.1. Программные средства реализации безусловного обмена данными в среде BorlandPascal

4.2. Обмен данными между эвм и ву по готовности ву

4.2.1. Функциональная схема интерфейса ввода данных в эвм по готовности ву.

Лекция №5 Технические характеристики ацп, усилитель, мультиплексор.

5.1 Программная модель интерфейса

5.2 Алгоритм одноканальных измерений входного сигнала

5.3. Методика управления и оценки состояния внешних устройств

5.4. Проверка, установка, сброс отдельных разрядов регистра ву

Лекция №6 Обмен данными между эвм и внешними устройствами с прерыванием текущей программы.

6.1 Принцип организации обмена данными

6.2 Алгоритм обслуживания ву с прерыванием.

1. Опрос ву.

3. Комбинированный способ идентификации ву.

6.3 Блок-схема алгоритма обслуживания ву с прерыванием.

6.4 Механизм приоритетов. Вложенные прерывания.

6.5 Принципы построения интерфейса обмена данных с прерыванием программы.

6.6 Техническая реализация интерфейса обмена данными с прерыванием программы.

1. Приоритетная цепочка:

2. Реализация многоуровневых вп в эвм семейства ibm.

Технические характеристики бис Intel 8259a.

6.7 Программируемые режимы обслуживания ву.

6.8 Схема включения пкп к системной шине ву.

6.9 Аппаратные прерывания в порядке их приоритетов и назначения.

6.12 Схема каскадирования контроллеров прерывания.

Методика программирования контроллера прерываний.

6.13 Программирование пкп в процессе обслуживания ву и работы системы.

6.14 Методика программирования обмена данными с прерыванием программы.

6.15 Реализация методики обмена данными с прерыванием программы между в эвм в автоматизированных системах на основе эвм семейства ibm pc в средеBorland Pascal. Установка вп.

6.16 Техническая реализация обмена данными с прерыванием программы.

6.17 Категории прерываний эвм семейства ibmpc.

Основные черты программных прерываний.

Краткий обзор функций bios.

Лекция №7. Программируемые интервальные таймеры-счетчики (пит).

7.1 Схема включения пит к автоматизированной системе (ас).

Карта программно доступных регистров пит

7.2 Состав и назначение регистров каналов.

7.3 Формат регистров таймера.

7.3 Режимы работы таймера.

1 Группа.

2 Группа.

3 Группа.

7.4 Методика программирования таймера.

1. Инициализация пит.

2. Чтение текущего содержимого ce.

7.5 Синхронизация операций реального времени. Системный таймер эвм семейства ibmpcIntel8254.

7.6 Реализация методики программирования таймера в среде BorlandPascal.

7.7 Пит Intel 8253 на интерфейсной плате l-154.

7.8 Многоканальное измерение сигналов.

Лекция №8 Автоматизированные системы на основе стандартных магистрально-модульных интерфейсов.

Лекция №9 Интерфейс камак (camac).

9.1 Конструктивная совместимость элементов системы.

9.2 Магистраль крейта камак.

9.3 Пространственно-временные диаграммы на магистрали крейта.

9.4 Виды и назначение адресных операций на магистрали крейта.

Операции интерфейса камак

Лекция №10 Технические средства на основе интерфейса камак. Модули интерфейса камак.

10.1 Схемы формирования статусных сигналов.

10.2 Управляющие модули камак.

Управляющая часть кк.

10.3 Программная модель кк типа ккп3 для эвм семейства ibmpc.

10.4 Методика управления контроллером крейта и модулями камак.

10.5 Методика построения программного обеспечения в ас на основе унифицированных магистрально-модульных интерфейсных систем.

Лекция №11 Разработка интерфейсно-ориентированной библиотеки процедур для управления крейтом камак.

Лекция №12 Методика контроля состояния модулей в интерфейсе камак.

Лекция№13 Компоненты ас на основе интерфейса камак.

13.1 Разработка схемы прибора генератора с заданными амплитудно-частотными характеристиками.

13.2 Измерение временных параметров импульсных сигналов.

13.3 Схема соединения модулей.

Программная реализация алгоритма измерения частоты fвх или периода Tвх.

Программная реализация алгоритма измерения длительности одиночного импульса.

13.4 Реализация прерываний от модуля камак в автоматизированных системах.

Лекция №14 Обмен данными между эвм и ву в режиме пдп.

14.1 Алгоритм обмена в режиме пдп.

14.2 Программная модель интерфейса ву и кпдп (минимальная конфигурация).

Программная модель кпдп.

Методика запуска обмена данными по каналу пдп.

14.3 Реализация пдп в эвм на основе единого магистрального канала.

14.4 Реализация пдп в эвм на основе изолированного магистрального канала.

14.5 Назначение каналов контроллера пдп и адреса регистров страниц.

Лекция №15 Функциональный состав и программная модель кпдп.

15.1 Блок управления.

15.2 Каналы контроллера пдп.

15.3 Каскадирование контроллеров пдп.

Лекция №16 Методика программирования контроллера пдп.

Лекция№17 Реализация пдп в ас на основе камак.

17.1 Алгоритм выполнения кк операции пдп.

2. OCW2используется при завершении процедуры обработки прерывания или смены текущего режима работы ПКП.

Формат OCW2:

7

6

5

4

3

2

1

0

OCW2 подается по четному адресу, для первого контроллера = 20h.

MODE

0

0

L2

L1

L0

OCW2

Если MODE=00100000 =20h, устанавливается режим вложенных прерываний и сбрасывается бит вISR, в соответствии с последним обслуживаемым запросом.

Пример: поступил ЗП на вход IR5. ЦП начал обслуживание, битIS5=1, затем пришел ЗП на входIR4, устанавливаетсяIS4=1. Режим вложенных прерываний сохраняется. Пришел ЗП наIR3, устанавливаетсяIS3=1.

Если поступает команда Port[$20]:=$20;, битIS3сбросится в 0, если еще раз поступает эта же команда, то сбросится битIS4=0, следующая аналогичная команда сбросит битIS5=0.

Если установить режим MODE=10100000 = A0h, устанавливается режим циклических приоритетов, сбрасывается бит с максимальным приоритетом, входу присваивается самый низкий приоритет.

Если установить MODE = 11000L2L1L0режим адресуемых приоритетов, номеру входа, определяемого полемL2L1L0, присваивается низший приоритет.

  1. OCW3 используется для установки дополнительных режимов работы или опроса состояния ПКП.

Формат OCW3:

7

6

5

4

3

2

1

0

OCW2подается по четному адресу, для первого контроллера = 20h.

0

SMM

0

1

p

RRC

Признак OSW3


SMMможет принять только 2 значения (остальные не действуют).

SMM = 01101000 = 68h– незамаскированные запросы обслуживаются в порядке их поступления.

SMM = 01001000 = 48h– восстанавливается приоритет упорядоченных запросов.

RRC = 00001010 = Ah– разрешение чтения регистраIRR.

RRC = 00001011 = Bh– разрешение чтения регистраISR.

После выполнения команды разрешения чтения регистра, чтение указанных регистров можно выполнять произвольное число раз до момента изменения OCW3. Чтение выполняется из того же адреса.

P=1→00001100 = Ch– разрешение чтения незамаскированного запроса с максимальным приоритетом.

Следующая операция чтения из регистра с четным адресом приводит к установке бита ISkс максимальным приоритетом, как будто получен сигналINTAи передача ЦП в байта следующего форматаI0000W2W1W0, гдеIпоказывает наличие ЗП (I=1, есть ЗП), аW2W1W0показывают номер входа с наивысшим приоритетом.

Пример №1.

Port[$21]: = Port[$21] or 2;

OCW1, адрес нечетный.IMi=1– запрет клавиатуры.

Port[$21]: = Port[$21] and not 2;

IMi =0 – разрешение работы клавиатуры.

Пример №2.

Port[$20]: = Port[$20] ;

Сброс бита с самым высоким приоритетом ISi. Завершение обслуживания прерывания, соответствующего последнему запросу.

Пример №3.

Port[$20]:=$A;

Разрешение чтения регистра IRR.

Writeln( ‘содержимое регистра IRR=’), port[$20];

Чтение регистра IRR


6.14 Методика программирования обмена данными с прерыванием программы.

Содержит две части:

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

  • Обслуживание ВУ в режиме прерывания фоновой программы.

Подготовка к обмену с прерываниями включает:

  1. Резервирование памяти для совместного использования фоновой и оперативной программ:

  • Память для хранения данных. Оперативная программа использует её для ввода данных в ВУ или вывода данных из ВУ. Фоновая программа – для подготовки данных ВУ или обработки данных.

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

  • Указатель длины массива данных. Оперативная программа в этой переменной указывает общее количество слов, предназначенных для передачи. Фоновая программа должна запретить прерывание при передаче установленного объема данных.

  1. Установка ВП на оперативную программу. В

  2. Разрешение прерывания ВУ. Определяет момент начала совместной работы фоновой и оперативной программ.

Обслуживание ВУ в режиме прерываний (вторая часть) выполняется оперативной программой, она в каждом цикле обмена данными должна выполнять следующие действия:

1. Сохранение регистров процессора, которые будут модифицированы.

2. Инкремент (декремент) программного счетчика.

3. Обмен данными с памятью.

4. Сброс ЗП в интерфейсе ВУ, если он не сбрасывается аппаратными средствами.

5. Восстановление регистров ЦП: СК, РСП.

6. При передаче установленного фоновой программой обмена данных оперативная программа должна запретить прерывание ВУ.

Для ЭВМ семейства IBM PC:

В регистре флагов IF=1, чтобы восстановить режим вложенных прерываний и разрешить прерывание от устройств с большими приоритетами. Оперативная программа должна сбрасывать битISi=0, чтобы разрешить прерывание от данного устройства и устройств с меньшими приоритетами.

6.15 Реализация методики обмена данными с прерыванием программы между в эвм в автоматизированных системах на основе эвм семейства ibm pc в средеBorland Pascal. Установка вп.

Выполняется с помощью процедуры Borland Pascalиз модуляDOS.*(* - т.к. могут быть различные режимы памяти; дляWindows WinDOS.*).Для установки ВП в модулях имеется следующая процедура:


ProcedureSetIntVec(IntNo:byte; IntProcAddr: pointer);

Как только установили новый ВП, старый будет утерян, используем следующую процедуру, чтобы сохранить его: ProcedureGetIntVec(IntNo:byte; var OldIntProcAddr: pointer);

Процедура обслуживания прерываний: Сохранение регистров ЦП, которые будут модифицированы оперативной программой.

Procedure IntDC; interrupt;

IRET.

IRET восстанавливает СК, Flags.

6.16 Техническая реализация обмена данными с прерыванием программы.

Рис. 6.10 Схема реализации обмена данными с прерыванием программы.

За время Tдолжна завершить работу оперативная программа. Программа, обслуживающая ЗП может закончиться раньше, но не позже. Сигнал ЗП устанавливается фронтом.

Пример. Обмен с прерыванием от таймера, ввод в ОЗУ 100 точек.

Канал 32, диапазон ±5 В; режим подключения сигналов с общей землей.

Program Demo_interrupt;

Uses Dos, timer154;

Const BA=$300; {базовый адрес}

Nmas=100; {длина массива}

count: word = 0;{программный счетчик}

var U: array [0..Nmas] of integer; T: word; OldIntVec: pointer; T: word; i: integer;

Procedure IntADC; interrupt;

Begin asm sti end; {IF=1}

Inc(count);

Port[BA+4]:=$FF; {запуск АЦП на измерение}

Asm nop end;

While (port[BA+2] and 8) <> 0 do;

U[count]:=PortW[BA];

Port[$20]:=$20; {OCW2, сброс битаIR3, разрешение прерываний от этого входа и входов с высшим приоритетом}

If count=Nmas then port [$21]:=port[$21] or 8;

End;

Begin

Port[BA+$F]:=0; {ФРП=0}

Port[$21]:=Port[$21] or 8; {запрет прерывания ПКП}

Port[BA+2]:=$FF; {режим}

Wait ({задержка ≈4мкс});

GetIntVec($B, OldIntVec);

SetIntVec($B, IntADC);

Writeln(‘Укажите интервал дискретизации сигнала’); readln(T);

Set_Time(T);

Port[BA+$F]:=1; {ФРП=1}

Port[$21]:=Port[$21] and NOT 8; {IM3=0}

{Фоновая программа}

Port[BA+$F]:=0; {}

SetIntVec($B,OldIntVec);

{ Вывод данных и обработка данных }

End.


6.17 Категории прерываний эвм семейства ibmpc.

Все прерывания делятся на 3 категории:

  1. Внешние или аппаратные прерывания.

  2. Прерывания по особой ситуации или внутренние прерывания.

  3. Программные прерывания.

1. Внешние или аппаратные прерывания генерируются ВУ в ответ на некоторые события, требующие внимания ЦП.

2. Внутренние прерывания возникают, когда ЦП наталкивается на абсолютно бессмысленные команды.

Пример: по особой ситуации.

IntNo=0 – деление на 0.

IntNo=1 – в регистре флаговIF=1.

IntNo=2 –NMINoneMaskedInterrupt, немаскируемые прерывания.

3. Программные прерывания – не возникают неожиданно - возникают, если какая-то программа вызывает это прерывание, служит для вызова других программ, которые находятся в: ПЗУ – BIOS, ОЗУ –DOS.

Основные черты программных прерываний.

Программные прерывания функционируют так же, как и аппаратные прерывания. Программные прерывания не разделены по приоритетам, могут вызываться друг из друга. Аппаратное прерывание тоже может получить прерывание при выполнении программного прерывания.

Ассемблерная команда INT<номер типа прерывания>.

Реакции ЦП на эту команду:

  1. Сохраняет свое состояние.

  2. Определяет адрес ВП.

  3. Загружает в СК содержимое ВП.

  4. Приступает к выполнению соответствующей процедуры.

В языках высокого уровня также можно использовать программные прерывания. Они становятся доступны при объявлении в программе модуля DOS.* (WinDOS.*).

Procedure Intr(IntNo:byte; var Regs: registers); (если вызываем из Windows: var Regs:TRegisters).

Тип Registersопределяют таким образом (дляDOS):

Type Registers=record case integer of

0: (AX, BX, CX, DX,BP, SI, DI, DS, ES, Flags: word);

1: (AL, AH, BL, BH, CL, CH, DL, DH: byte) end;

Для Windows: Type TRegisters вместо Type Registers.

Один и тот же номер типа может содержать несколько функций: AH– номер функции,AL– номер подфункции.

Краткий обзор функций bios.

№ Типа прерывания

Функция или группа функций

5

Печать графической копии экрана

11h

Оборудование RAM

12h

Объем памяти

13h

Управление НТМД

14h

Управление последним портом

16h

Управление клавиатурой

19h

Перезапуск системы

33h

Управление мышкой