Ввод/вывод с проверкой готовности 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Ввод/вывод с проверкой готовности



Схема организации операции ввода/вывода с проверкой готовности представлена на рис. 5.2. Основными блоками схемы являются процессор, оперативная память и периферийное устройство. Для простоты рассматривается только операция ввода – передача данных от периферийного устройства (например, датчика температуры) в оперативную память. В схеме периферийного устройства выделены два регистра: данных (RD) и управления (RU).

Регистр RD используется в качествепочтового ящика для промежуточной фиксации текущего значения температуры.

Регистр RUиспользуется в качестве регистра управления. В этом регистре используется только 3 разряда для фиксации сигналов управления:

·  «Ошибка» Ош – 15-й разряд,

· «Готовность» Гот – 7-й разряд,

· «Пуск» П – 0-й разряд.

 

Рис. 5.2. Схема организации ввода (вывода) с проверкой готовности

 

Стратегия метода передачи данных с проверкой готовности заключается в следующем.

Устройство может иметь два состояния: включенное и выключенное, в зависимости от значения бита "Пуск" регистра управления. Включение и выключение устройства производится командой программы (драйвера) процессора занесением в младший разряд регистра RD единицы или нуля.

Сигнал «Готовность» является сигналом (светофором) разделения доступности регистра данных RD со стороны процессора и периферийного устройства.

Эта стратегия разделения доступности (метод стробирования и квитирования) в ЭВМ является одним из основных методов согласования работы как программ, так и аппаратуры в разных сочетаниях.

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

Входными параметрами программы ввода/вывода являются:

· Код операции (прочитать/записать) Для рассматриваемого случая (датчик температуры) корректной является операция чтения.

· Начальный адрес массива чтения. Для передачи данных с единственного датчика этот адрес не используется.

· Начальный адрес области ввода в оперативной памяти.

· Количество передаваемых данных, например, в байтах.

Блок схема программы представлена на рис. 5.3.

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

В данном примере рассматриваются три таких функции:

· обработки непредусмотренного кода, например команд записи устройству чтения,

· обработки сообщений о сбоях от периферийного устройства, например, при выявлении бита "Ошибка" в регистре управления (15-й бит в регистре RU).

· обработки ошибки тайм-аута.

Ошибка тайм-аута – это превышение максимального периода ожидания установки периферийным устройством бита готовности (7-й бит регистра управления RU).

В качестве средства программирования выберем ассемблер семейства PDP-11.

Для передачи входных параметров определим четыре РОНа: R1 – код операции W/R, R2 – начальный адрес (Аm) массива данных в ОП, R3 – количество слов в массиве, R4 – значение тайм-аута.

 

Рис.5.3. Блок схема программы ввода данных с проверкой готовности.

 

 

Содержание программы:

START

СМ P R 1, # read;проверка корректности кода операции

JNQ M 4           ;В случае несовпадения кодов – переход на программу

                              ;сообщения об ошибке и выход из программы

МО: MOV R 4, R 1   ;копирование значения тайм-аута в освободившийся РОН

MOV #1, @# RU;включение устройства в работу занесением единицы в

                              ;младший разряд RU

M1: TSTB @#RU   ;проверка бита готовности в регистре RU

JPL M 2           ;данные не готовы, переход на продвижение счетчика (М2).

TST @# RU      ; проверка бита сбоя (7 "знаковый" бит в регистре RU )

JPL M 7           ;бит сбоя определен, переход на блок сообщения об

                              ;ошибке (М7)

M 2: DEC R 1          ;модификация регистра тайм-аута (R1=R1-1)

JNE M 1           ;пока счетчик тайм-аута не нулевой, передача на повтор;проверки готовности

JMP M 6          ;переход на обработку ошибки тайм-аута

М3: MOV @# RD, (R 2)+;пересылка данных из RD в ОП по адресу, заданному

                              ;содержимым регистра R1, модификация адреса.

MOV #1, @# RU;сброс бита готовности в регистре RU

DEC R 3,         ;продвижение счетчика слов (R3)

JNQ M 0           ;пока содержимое не равно нулю – повтор цикла передачи

CLR @#RU     ;выключение устройства

END START

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

Вопросы для самопроверки:

1. Назначение регистров RD и RU.

2. Назначение и источник бита "Ошибка" в регистре RU.

3. Назначение и источник бита "Готовность" в регистре RU.

4. Входные параметры программы ввода/вывода с проверкой готовности.

5. Стратегия разделения доступности (метод стробирования и квитирования).

6. Ситуация ошибки тайм-аута.

 



Поделиться:


Последнее изменение этой страницы: 2021-04-04; просмотров: 73; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.237.255 (0.008 с.)