Файл: 3 Модуль ввода вывода. Параллельный и последовательный ввод вывод информации в микропроцессорной системе (2 часа).docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.01.2024

Просмотров: 64

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
, а связь с устройствами ввода/вывода может осуществляться по-разному в зависимости от специфики этих устройств. Поэтому при передаче информации по шинам между основной памятью или процессором и устройствами ввода/вывода должно осуществляться ее преобразование.

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

Функции управления вводом/выводом могут быть:

− общими, не зависящими от типа устройств ввода/вывода;

− специфичными для каждого типа устройств ввода/вывода.

Выполнение общих функций возлагают на общие для групп устройств ввода/вывода унифицированные устройства – контроллеры ПДП, , а специфических – на специализированные для каждого типа устройств ввода/вывода устройства управления – контроллеры устройств ввода/вывода.

Между микропроцессором и периферийными устройствами происходит обмен информацией двух типов:

− служебной;

− собственно данными.

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

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

Подключение любого периферийного устройства к магистрали микропроцессорной системы осуществляется через контроллер ПУ. Рассмотрим организацию контроллера ПУ (рисунок 3.7.2).



Рисунок 3.7.2 – Организация контроллера ПУ
Основу контроллера составляют регистры, которые служат для хранения передаваемой информации. Взаимодействие микропроцессора с этими регистрами осуществляется через порты ввода/вывода из пространства доступа к ПУ. Каждый регистр имеет свой адрес. Под адресом регистра понимается адрес порта, через который осуществляется доступ к этому регистру.


В контроллере ПУ используются регистры четырех типов в зависимости от типа информации, для хранения которой они предназначены:

  1. регистр входных данных или входной регистр (доступен микропроцессору только по чтению);

  2. регистр выходных данных или выходной регистр (доступен микропроцессору только по записи);

  3. регистр состояния (доступен микропроцессору только по чтению). Содержит информацию о текущем состоянии ПУ (включено/выключено, готово/не готово к обмену данными, ошибка и т. п.);

  4. регистр управления (доступен микропроцессору только по записи). Служит для приема из МП команд для ПУ.

В контроллерах сложных ПУ регистров каждого типа может быть несколько. В контроллерах, предназначенных для подключения простых ПУ, удается совместить регистры состояния и управления, что позволяет сократить количество используемых в контроллере портов ввода/вывода, а следовательно, и адресов, выделенных для данного ПУ.

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

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

Организация контроллера зависит также от способа (вида) обмена данными. Различают параллельный и последовательный ввод/вывод.

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

В случае программно-управляемого асинхронного обмена данными по параллельному каналу производится проверка готовности периферийного устройства к обмену. Партнеры обмена при этом могут иметь различные внутренние темпы обработки данных, но общий темп обмена данными выравнивается сигналами по самому медленному партнеру. Отсюда название – асинхронный обмен.



Программно-управляемый обмен данными по прерываниям характеризуется аппаратной проверкой готовности периферийного устройства. Это позволяет устранить основной недостаток асинхронного способа обмена – непроизводительные потери времени процессора в циклах ожидания. Режим прерываний может быть применим как к параллельному, так и последовательному каналам.

Обмен данными с аппаратным управлением носит название “прямой доступ к памяти” (ПДП) или Direct Memory Access (DMA). Аппаратное управление обменом данных осуществляет специальный контроллер ПДП. Микропроцессор в обмене не участвует и отключается от системного интерфейса. Данные передаются от одного устройства к другому через системный интерфейс, минуя микропроцессор. Одним из партнеров обмена чаще всего выступает основная память микропроцессорной системы. Отсюда название – ПДП. Возможны два вида ПДП – с блочными или одиночными передачами. В первом работа процессора останавливается на все время передачи блока данных, во втором передачи слов в режиме ПДП перемежаются с выполнением программы, и для передач ПДП выделяются отдельные такты машинных циклов, в которых процессор не использует системный интерфейс. Производительность системы может возрасти из-за параллелизма процессов обмена и обработки данных, благодаря тому, что ПДП будет для процессора “невидимым”. При непрерывной передаче блока данных скорость обмена ограничивается лишь длительностью циклов ЗУ, быстродействием самого контроллера и скоростью выдачи/приема данных внешним устройством. В отличие от процессов прерывания, при ПДП обмен выполняется без участия программы, поэтому содержимое рабочих регистров процессора не изменяется и на вхождение в режим ПДП не требуется затрат времени. ПДП предоставляется по завершении текущего машинного цикла.

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

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

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

На практике часто используют программируемые контроллеры, режимы работы которых устанавливаются специальными командами МП. Программируемый контроллер необходимо настраивать на конкретный режим обмена данными, присущий ПУ:

  • синхронный или асинхронный,

  • с использованием сигналов прерывания или без их использования,

  • на заданную скорость обмена и т. д.

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

В микропроцессорных системах используются два основных способа организации передачи данных между системой и устройствами ввода/вывода: − программно-управляемый обмен; − прямой доступ к памяти (ПДП).

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


С точки зрения аппаратных затрат программно-управляемый обмен является наиболее эффективным типом обмена, поэтому он находит самое широкое применение в различных микропроцессорных системах.