Способы работы с внешними устройствами

2.3. Работа с внешними устройствами

Работа с внешними устройствами (ВУ) имеет отчетливый аппаратно-программный характер. С одной стороны, каждое внешнее устройство — это аппаратура для преобразования сигналов и ввода их в ЭВМ (или вывода из нее); вместе с этим, работа этого устройства должна управляться программой. Для решения этой проблемы для каждого ВУ изготавливают аппаратное устройство сопряжения, называемое контроллером, а для взаимодействия с программой в этом контроллере выделяют (по крайней мере, одну) пару регистров, адреса которых фиксируются в общем адресном пространстве, и таким образом становятся доступны программе. Для архитектуры DEC соответствующий пример приведен на рис. 2.6.

Рис. 2.6. Векторы прерывания и регистры ВУ

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

Для электромеханических устройств печати, с которыми работала аппаратура фирмы DEC, вывод одного символа на печать занимал до 0,1 секунды, и все это время программа должна была опрашивать регистр состояния, дожидаясь готовности ВУ. При скорости работы процессора в сотни тысяч операций в секунду такой период фактического простоя очень расточителен, поэтому более рациональным режимом является работа по прерываниям. Суть этого процесса сводится к следующему.

Когда программа отдает в регистр данных код очередного символа для вывода на ВУ, она может начать заниматься «другими делами», а внешнее устройство, отработав вывод, не только взводит бит готовности в контроллере, но и присылает микропроцессору специальный сигнал (требование) прерывания. Процессор, закончив каждую очередную операцию, обязательно анализирует возникшие требования, и если сигнал прерывания появился, аппаратура выполняет определенную последовательность действий, подключая при необходимости специальную программу для обработки возникших прерываний. Логика работы здесь усложняется тем, что прерывания возникают спонтанно, непредсказуемо для программы, занимающей процессор в этот момент. Для разрешения коллизии аппаратура автоматически сохраняет в стек минимально необходимые сведения о работающей программе (состояние регистров счетчика команд PC и состояния процессора PS) и подменяет их на новые значения, соответствующие программе обработки требуемого прерывания. Остается определить, где взять соответствующие коды? Для их размещения в архитектуре процессора предусмотрена специальная область в ОЗУ, где для каждого устройства закреплены адреса для размещения вектора прерывания (двух кодов, определяющих адрес обслуживания прерывания и начальное слово состояния процессора).

Когда аппаратура отреагирует на прерывание указанным образом, продолжающий работу процессор обратится уже по новому адресу и начнет выполнять не только что работавшую программу, а программу обработки прерывания. Эта программа после своего завершения должна будет вернуть управление прерванной программе, но для своей работы ей могут потребоваться регистры общего назначения, поэтому для начала все РОНы (уже программным путем) сохраняются в стек, а перед выходом из прерывания восстанавливаются. В рассматриваемом случае работы с печатью программа обработки прерывания сама обращается за очередным кодом к определенной области памяти, согласованной с основной программой, пересылает этот код в регистр данных ВУ и выполняет (после восстановления состояния РОНов) команду выхода из прерывания. По этой команде аппаратура извлекает из стека сохраненные там ранее коды PS и PC и возвращает их в соответствующие регистры. После этого процессор, получив управление, возобновляет работу прерванной программы «как ни в чем не бывало».

Читайте также:  По глубже каким способом образовано

Обычно программы, обслуживающие прерывания и работу с ВУ, являются частью операционной системы, и для каждого ВУ такая программа называется драйвером (от англ. drive — привод). Для каждого контроллера адрес вектора прерывания соответствующего ВУ обычно «зашит» в аппаратуре контроллера. Обобщенная схема взаимодействия ВУ — контроллер — драйвер — микропроцессор представлена на рис. 2.7.

В архитектуре DEC, где регламентированы определенные ступени наращивания мощности аппаратных средств, регистры ВУ всегда располагаются в самых старших адресах доступного адресного пространства, а вектора прерывания — в самых младших. В архитектуре Intel регистры состояния и регистры данных для каждого устройства объединяют в понятие «порт» (данные туда «приплывают» и оттуда «уплывают», в иностранных языках port означает «носить», «приносить»); 256 векторов прерывания и адресов портов ВУ занимают в адресном пространстве младшие 64 Кбайт (рис. 2.8).

Источник

Лекция № 5 Способы организации связИ с внешними устройствами.

Каждый элемент в системе функционирует в соответствии со своей природой и в зависимости от других элементов, то есть имеет некоторую последовательность своих действий по обработке информации и обмену ею с другими элементами (ВУ). Эту последовательность действий можно описать с помощью некоторого языка.

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

Программой называется описание последовательности действий конкретного элемента системы на его языке. Поскольку в МПС чаще всего один активный по поведению элемент – микропроцессор, обычно разрабатывается только программа его работы.

Под протоколом обмена будем понимать последовательность взаимных действий двух элементов системы по организации обмена информацией между собой.

В настоящее время разработано три способа организации связи между элементами МПС:

Обмен по прерываниям;

Прямой доступ к памяти.

Перечисленные способы отличаются степенью «демократичности» взаимодействия элементов между собой, поэтому каждый из них имеет определенные достоинства и недостатки, связанные с этим фактом. Рассмотрим каждый из этих способов по-раздельно.

Основная идея способа заключается в том, что все процессы обработки и обмена информации в системе определяются микропроцессором (его поведением), реализующем протокол обмена с внешними устройствами, а внешние устройства обеспечивают адекватную реакцию на этот протокол. То есть внешние устройства не могут предпринять никаких самостоятельных действий («диктатура» МП). Для такого способа достаточно разработать единственную программу – программу работы МП.

Что бы реализовать взаимодействие между МП и любым ВУ во времени, достаточно двух управляющих шин (когда и кому). Возможно два варианта их реализации, показанные на рисунке 5-1. В случае «а» шина «Запись» (ЗП) определяет интервал времени обмена и направление обмена от МП к ВУ, а шина «Чтение» (ЧТ) – интервал времени обмена и направление передачи от ВУ к МП. В случае «б» шина «Направление» (НАПР) задает направление обмена: либо от МП к ВУ, либо от ВУ к МП; шина «Синхронизация» (СИН) фиксирует временной интервал, в течение которого происходит обмен. Обе реализации равноправны, поэтому в дальнейших лекциях мы будем для конкретности использовать вариант «а».

Протокол программно-управляемого обмена представлен на рисунке 5-2. При передаче информации от МП к ВУ данные на ШД выставляет МП, а ВУ должно их принять по переднему фронту сигнала «Запись». Когда же информация передается в обратную сторону, сначала появляется сигнал «Чтение» от МП, а потом уже ВУ выставляет ее на ШД. МП принимает информацию с шин данных по заднему фронту сигнала «Чтение».

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

Читайте также:  Способы завязать вязаного шарфа

Организация статической индикации.

Пример подключения нескольких светодиодов к МПС (или знакосинтезирующего индикатора из нескольких сегментов) приведен на рисунке 5-3. Отметим, что в этом случае использован магистральный тип межмодульной связи.

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

Организация статической клавиатуры.

Пример статического подключения нескольких кнопок к МПС приведен на рисунке 5-4. Схема аналогична предыдущей. Обращение направления передачи информации вызвало замену последовательного подключения резисторов на параллельное для обеспечения помехоустойчивости приема информации по входу и замену +Еп на 0В для прямой логики (логическая «1» — +Еп, логический «0» – 0В).

Организация динамической индикации.

В этом случае применяется каскадно-магистральный тип межмодульной связи (почему?). Соответствующая схема подключения дана на рисунке 5-5, где через «К» обозначены силовые коммутаторы (электронные ключи), разрешающие подачу питания на знакосинтезирующие индикаторы по сигналам с выхода управляющего порта 1. Чисто схемотехнически они могут быть реализованы как эмиттерные повторители. В порт 1 записывается управляющая информацию включения только одного из индикаторов, а в порт 2 – данные, которые должны отображаться на нем. В результате достигается простая реализация блока сопряжения по аппаратным затратам. Однако, так как индикаторы относятся к ВУ для общения с человеком, поочередный вывод информации на них должен базироваться на его психофизиологических особенностях, в-частности, опираться на инерцию зрения (пример работы телевизора, монитора), чтобы человек видел одновременно данные на всех индикаторах..

Организация динамической клавиатуры.

На рис.5-6 представлена схема подключения динамической клавиатуры к МПС.

Опрос линий кнопок через порт 2 ведется логическим «0» (низким уровнем потенциала при прямой логике). В одно и тоже время опрашиваться может только одна линия кнопок. Тогда любую нажатую кнопку можно однозначно идентифицировать, приняв реакцию клавиатуры через порт 1.

Табличные методы преобразования кодов.

При передаче (приеме) информации к (из) ВУ необходимо ее преобразовывать, так как МП и ВУ «говорят на разных языках», то есть имеют различную интерпретацию одному и тому же коду. Для упрощения процедуры трансляции и увеличения скорости преобразования используют табличные методы. Суть табличного метода заключается в том, что исходному коду, подлежащему преобразованию, ставится в соответствие адрес строки таблицы, а результирующий код представляет собой содержание этой строки. Метод проиллюстрирован рисунком 5-7.

Часто трудность заключается в том, что непонятно, какой код ВУ должен соответствовать «визуальному образу», который порождается при взаимодействии с пользователем (человеком). Пример формирования требуемого кода знакосинтезирующего индикатора приведен на рисунке 5-8.

На данном примере, если известно каким логическим сигналом зажигается сегмент, видно, что при заданном распределении сегментов индикатора по разрядам порта 2 (см. рис.5-5) можно сформировать требуемый код. Если предположить, что сегменты на рис.5-8 засвечиваются логическим «0», то визуальной цифре «5» будет соответствовать шестнадцатиричный код «A4».

Дребезг контактов клавиатуры.

У кнопок клавиатуры есть большой недостаток. За счет упругих свойств материала кнопка при нажатии замыкается не сразу, а многократно случайным образом «замыкается-размыкается». Это явление называется дребезгом контактов. Так как МП во много раз быстрее обрабатывает информацию, чем происходит этот процесс, он может быть интерпретирован программой работы МП как многократное нажатие кнопки. Чтобы устранить это негативное явление применяют либо аппаратные средства устранения дребезга, либо программные. При аппаратном решении этого вопроса используется эффект R-S-триггера. При программном – эффект рефрактерности (неспособности проводить сигнал некоторое время) в аксоне нейрона.

Читайте также:  Способы создания страховых фондов

Идея устранения дребезга заключается в многократном считывании состояния кнопки до тех пор, пока ее фиксируемое состояние не станет устойчивым за заданный промежуток времени, характерный для окончания процессов дребезга. Пример функционального алгоритма устранения дребезга контактов приведен на рис.5-9, где В – предыдущее состояние кнопки; С – счетчик характерного времени дребезга; А – текущее состояние кнопки.

До сих пор речь шла о синхронном обмене, когда ВУ успевало реагировать на команды МП. Если же внешнее устройство достаточно медленное, МП должен дождаться его реакции, иначе обмен будет сорван. Такой обмен с ожиданием реакции ВУ называется асинхронным. Для организации асинхронного обмена необходимо еще две управляющие шины (помимо «Запись» и «Чтение»): «Готовность» – ВУ сигнализирует МП, что оно готово (или не готово) к обмену; «Ожидание» – МП оповещает ВУ о том, что он его ждет. При этом взаимодействие МП и ВУ выглядит так, как показано на рисунке 5-10. На рисунке 5-11 приведен протокол обмена для асинхронного режима. Если ВУ не отвечает, то время ожидания может быть сколь угодно большим. Говорят, что МП «зависает». Такая ситуация недопустима при функционировании МПС и необходимо предусматривать меры для ее предотвращения.

Подводя итог рассмотрению программно-управляемого обмена, можно констатировать, что для его организации необходимо всего четыре управляющие шины: «Запись», «Чтение», «Готовность» и «Ожидание». Его особенностями (достоинствами и недостатками) являются:

минимизация аппаратные затраты на создание блока сопряжения;

значительные затраты времени работы МП по организации обмена с ВУ, особенно в режиме ожидания;

увеличение программных затрат, связанных с взаимодействием с ВУ;

ВУ пассивны и не могут инициировать обмен.

Таким образом этот способ целесообразно использовать в тех случаях, когда быстродействие ВУ сравнимо с быстродействием МП, а управление обменом реализуется программно предельно просто.

Что называется алгоритмом?

Чем алгоритм отличается от программы?

Протокол обмена – это …?

Перечислите способы организации связи с ВУ.

В чем заключается «диктатура» МП при программно-управляемом обмене?

Какие варианты управляющих шин возможны для организации программного обмена?

Почему в протоколе программного обмена сигнал «Чтение» опережает появление данных на ШД?

Какое внешнее устройство называется статическим?

Какие проблемы порождает использование динамических ВУ?

Для чего используются резисторы при подключении светодиодов к выходам порта на рисунке 5-3?

Чем отличается подключение статической клавиатуры от статической индикации?

Для чего при организации подключения статической клавиатуры к МПС используются параллельно подсоединенные резисторы?

Какой тип межмодульных связей используется при организации подключения динамической индикации и клавиатуры к МПС?

Какой недостаток человека позволяет применять динамическую индикацию?

В чем заключается табличный метод преобразования кодов?

Какое свойства кнопок порождают явление дребезга контактов?

Почему при передаче информации между МП и ВУ необходимо преобразование кодов?

Какая идея лежит в основе программного метода устранения дребезга контактов?

Сколько управляющих шин необходимо для организации программно-управляемого обмена с любыми ВУ?

В чем опасность применения асинхронного режима?

В чем отличие синхронного обмена от асинхронного?

Что необходимо знать при составлении кодов отображения различных цифр (символов) на знакосинтезирующих индикаторах?

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Источник

Оцените статью
Разные способы