ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.03.2025
Просмотров: 1897
Скачиваний: 1
СОДЕРЖАНИЕ
Лекция № 1 Введение в проблемы построения автоматизированных систем.
1.1. Функциональные компоненты, необходимые для построения автоматизированного комплекса.
1.3. Принципы построения автоматизированных систем.
Лекция №2 Средства управления объектами автоматизации.
2.1. Архитектурные возможности эвм.
Основные регистры процессора эвм семейства Macintosh.
Основные регистры процессора эвм семейства ibm pc.
Форматы представления чисел в озу.
2.3. Каналы ввода-вывода информации.
Общая структура магистрали эвм
Передача информации по системной магистрали
Лекция №3 Принципы организации обмена данными между эвм и внешними устройствами.
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 Алгоритм обслуживания ву с прерыванием.
3. Комбинированный способ идентификации ву.
6.3 Блок-схема алгоритма обслуживания ву с прерыванием.
6.4 Механизм приоритетов. Вложенные прерывания.
6.5 Принципы построения интерфейса обмена данных с прерыванием программы.
6.6 Техническая реализация интерфейса обмена данными с прерыванием программы.
2. Реализация многоуровневых вп в эвм семейства ibm.
Технические характеристики бис Intel 8259a.
6.7 Программируемые режимы обслуживания ву.
6.8 Схема включения пкп к системной шине ву.
6.9 Аппаратные прерывания в порядке их приоритетов и назначения.
6.12 Схема каскадирования контроллеров прерывания.
Методика программирования контроллера прерываний.
6.13 Программирование пкп в процессе обслуживания ву и работы системы.
6.14 Методика программирования обмена данными с прерыванием программы.
6.16 Техническая реализация обмена данными с прерыванием программы.
6.17 Категории прерываний эвм семейства ibmpc.
Основные черты программных прерываний.
Лекция №7. Программируемые интервальные таймеры-счетчики (пит).
7.1 Схема включения пит к автоматизированной системе (ас).
Карта программно доступных регистров пит
7.2 Состав и назначение регистров каналов.
7.4 Методика программирования таймера.
2. Чтение текущего содержимого ce.
7.5 Синхронизация операций реального времени. Системный таймер эвм семейства ibmpcIntel8254.
7.6 Реализация методики программирования таймера в среде BorlandPascal.
7.7 Пит Intel 8253 на интерфейсной плате l-154.
7.8 Многоканальное измерение сигналов.
Лекция №8 Автоматизированные системы на основе стандартных магистрально-модульных интерфейсов.
Лекция №9 Интерфейс камак (camac).
9.1 Конструктивная совместимость элементов системы.
9.3 Пространственно-временные диаграммы на магистрали крейта.
9.4 Виды и назначение адресных операций на магистрали крейта.
Лекция №10 Технические средства на основе интерфейса камак. Модули интерфейса камак.
10.1 Схемы формирования статусных сигналов.
10.2 Управляющие модули камак.
10.3 Программная модель кк типа ккп3 для эвм семейства ibmpc.
10.4 Методика управления контроллером крейта и модулями камак.
Лекция №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.3 Каскадирование контроллеров пдп.
Лекция №16 Методика программирования контроллера пдп.
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, присваивается низший приоритет.
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. Сохранение регистров процессора, которые будут модифицированы.
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. Внутренние прерывания возникают, когда ЦП наталкивается на абсолютно бессмысленные команды.
Пример: по особой ситуации.
IntNo=0 – деление на 0.
IntNo=1 – в регистре флаговIF=1.
IntNo=2 –NMI–NoneMaskedInterrupt, немаскируемые прерывания.
3. Программные прерывания – не возникают неожиданно - возникают, если какая-то программа вызывает это прерывание, служит для вызова других программ, которые находятся в: ПЗУ – BIOS, ОЗУ –DOS.
Основные черты программных прерываний.
Программные прерывания функционируют так же, как и аппаратные прерывания. Программные прерывания не разделены по приоритетам, могут вызываться друг из друга. Аппаратное прерывание тоже может получить прерывание при выполнении программного прерывания.
Ассемблерная команда INT<номер типа прерывания>.
Реакции ЦП на эту команду:
Сохраняет свое состояние.
Определяет адрес ВП.
Загружает в СК содержимое ВП.
Приступает к выполнению соответствующей процедуры.
В языках высокого уровня также можно использовать программные прерывания. Они становятся доступны при объявлении в программе модуля 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 |
Управление мышкой |