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


Схема организации операции ввода/вывода с проверкой готовности представлена на рис. 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 R1, #read ;проверка корректности кода операции

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

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

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

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

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

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

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

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

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

;ошибке (М7)

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

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

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

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

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

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

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

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

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

END START

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

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

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

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

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

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

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

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

 



Дата добавления: 2021-01-26; просмотров: 568;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.01 сек.