- •Основы микропроцессорной техники и прикладное программирование Лабораторная работа 4. Изучение принципов ввода информации в управляющую микроЭвм сканирующего типа
- •Теоретическая часть
- •Принцип сканирования в современных управляющих системах
- •Методы ввода информации в микроЭвм
- •2. Порядок выполнения работы.
- •2.1. Программа In_Scan. Структура и принцип работы. Внесение изменений
- •Компилирование и линкирование исходного файла программы In_Par
- •2.3. Подготовка файла входных переменных
- •Подготовка командных файлов управления
- •0800H (изменить расположение сегмента данных ds)
- •3. Отладка программы с помощью симулятора avsim85
- •Часть 4. Анализ полученных результатов и оформление
- •Система команд мп кр1821вм85а
- •Продолжение таблицы
Методы ввода информации в микроЭвм
Ввод информации в микроЭВМ от внешних устройств (I/O) осуществляется через специальные устройства, которые в зависимости от их функциональных возможностей подразделяются на три вида: простейшие порты (регистры) ввода/вывода, программируемые адаптеры и сопроцессоры ввода/вывода.
Они в свою очередь могут обеспечить один из следующих методов ввода-вывода: программный ввод-вывод, ввод-вывод по прерываниям и ввод-вывод по прямому доступу к памяти. Наиболее простой метод – безусловный программный ввод-вывод, который предусматривает безусловный обмен данными между процессором и внешним устройствами непосредственно командами IN port и OUT port. Такой метод обмена называется программный ввод-вывод без квитирования Для выполнения этих команд затрачивается 10 тактов (2 мкс при частоте 5 МГц). Устройствами, через которые осуществляется обмен данными, обычно являются регистры памяти, выполненные на отдельных схемах средней степени интеграции. В этом случае, такие порты должны быть готовы к немедленной выдаче данных в процессор по команде IN port и приему данных от процессора и их ”ретрансляции” к внешнему устройству по команде OUT port.
Таким образом, каждое внешнее устройство адресуется через собственный порт и должны быть соблюдены жесткие требования по динамическим характеристикам обмена. Обмен синхронизируется низкими уровнями сигналов I/OR и I/OW процессора и инициируется в независимости от готовности внешнего устройства к приему и выдаче данных. Более сложный способ обмена – программный ввод-вывод с квитированием. Сигналы квитирования это флаги IBF (Input Buffer Full– входной буфер заполнен) и OBF (Output Buffer Full– выходной буфер заполнен).
Типовая последовательность действий системы при обмене с квитированием следующая. Внешнее устройство, формируя нижний уровень сигнала STB (Strobe– строб) загружает байт данных в регистр ввода и устанавливает флаг IBF=1. Значение сигнала ACK=0 (Acknowledge--– квитировать) подтверждает прием данных внешним устройством при выводе данных и устанавливает флаг OBF=1. Флаги OBF и IBF принимаются в МП программным путем по шинам данных, а сигналы STB, ACK, OBF, IBF поступают из/на внешнее устройство аппаратно (по проводам). В зависимости от состояния флагов OBF и IBF, процессор может реализовать прием/выдачу данных, пропустить цикл ввода/вывода или перейти в режим ожидания.
Квитирование позволяет согласовать во времени работу асинхронно работающих МП и внешних устройств – быстродействие процессора может быть и больше и меньше быстродействия внешних устройств.
Согласовать быстродействие медленнодействующих устройств ввода/вывода и “быстрого” можно также, используя сигнал READY (готовность) от внешнего устройства.
Еще более эффективный способ обмена, обмен с использованием запросов прерывания от внешнего устройства при готовности данных и (или) прерываний от МП. Однако такие способы более сложны в реализации и не всегда оправданы практически.
В лабораторной работе №4 исследуется наиболее простой способ организации безусловного программного ввода данных в микроЭВМ.
На рисунке 2 приведен вариант структурной организации регистров ввода/ вывода, обеспечивающих прием/выдачу восьмиразрядных данных двоичных данных. Исследуемая с помощью программного имитатора AVSIM85 микроЭВМ (конфигурации А), имеет четыре таких двунаправленных регистра (порта) ввода/вывода, которые могут обеспечить по командам IN port и OUT port безусловный программный ввод/вывод восьмиразрядных двоичных данных от/на четыре внешних устройств ввода/вывода. В этом режиме МикроЭВМ может обеспечить в режиме сканирования прием и фиксацию (до цикла обработки) чисел со знаком (отсчетов) от четырех датчиков (внешних устройств), измеряющих параметры четырех непрерывных процессов.
Отсчеты образуют потоки входных данных, которые должны быть зафиксированы в оперативной памяти микроЭВМ до цикла их обработки.
Сканированию в рабочем цикле подвергаются цифровые входы микроЭВМ, на которые поступают цифровые отсчеты Xij параметров трех непрерывных процессов Process0, Process1, Process2, полученные, например, после аналого–цифрового преобразования.
Цифровые коды отсчетов принимаются портами 00h÷ 02h. Коды отсчетов представляют собой восьмиразрядные числа со знаком.
Сканируется также состояние одного бинарного входа. В этом случае, отсчеты с двухпозиционного устройства, например, кнопки фиксируются в младшем разряде D0 порта 03h. Для простоты предполагается, что остальные входы порта не задействованы, т.е. на них .формируются постоянные логические нули. В этом случае, нулевому значению на входе D0 порта 03h (кнопка разомкнута), соответствует отсчет 00h, а единичному (кнопка замкнута) – отсчет 01h. Рисунок 3 иллюстрирует процедуру образования отсчетов процессов Process0, Process1, Process2, Process3.
Математически
эта процедура соответствует формированию
двумерной (4х8)-матрицы X
= ||xij||
(i
=0÷3; j
=0÷7).
Рисунок 4 поясняет информационный обмен
между внешними устройствами и портами
00–03h исследуемой системы.
Полученные
через порты 00h÷ 03h, данные необходимо
сохранить в оперативной памяти системы
до цикла их обработки (принцип
сканирования). Матричные структуры
данных
(матрицы Xn,m=
||xij||
(i
=0÷n-1;
j
=0÷m-1))
хранятся в ОЗУ в следующем виде (Рисунок
5).
Для
хранения каждой i-ой строки выделяется
i-массив,
состоящий из m
ячеек. Начальный адрес i-массива
называется базовым
адресом
строки – bazei.
Элементы в строке адресуются относительно
базового адреса смещением j
(offset).
Исполнительный адрес j-го элемента i-ой
строки (i=0÷n-1;
j=0÷m-1)
формируется путем сложения базового
адреса bazei
строки со смещением j
(offset)
элемента в строке, т.е. bazi+j. Такая адресация
ячеек памяти наз. относительной
адресацией со смещением. Она
является эффективной и широко применяется
при программировании, в том числе и при
ассемблировании.
Рисунок 6. поясняет организацию массива 4x8, ячеек, содержащих отсчеты параметров исследуемых процессов, введенные в микроЭВМ через порты ввода/вывода 00h ÷03h.
.
