Главная > Микропроцессорные автоматические системы регулирования. Основы теории и элементы
НАПИШУ ВСЁ ЧТО ЗАДАЛИ
СЕКРЕТНЫЙ БОТ В ТЕЛЕГЕ
<< Предыдущий параграф Следующий параграф >>
Пред.
След.
Макеты страниц

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

Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике

ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO

12.3. ОБМЕН ИНФОРМАЦИЕЙ МЕЖДУ МИКРОПРОЦЕССОРОМ 44 ВНЕШНЕЙ СРЕДОЙ

Различают три типа обмена между МПС и ВУ:

1) программно-управляемая передача данных, когда момент времени, в который должен начаться обмен данными, определяется ходом выполнения рабочей программы (команды «ввод», «вывод»);

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

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

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

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

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

Передача данных с прерыванием программы — это способность МП прерывать рабочую программу (РП) в ответ на внешнее событие и выполнять другую программу, специально предназначенную для обработки этого события, — программу обработки прерывания (ПРОП). Такие ситуации являются обычными для МПАС, работающих в реальном времени, с реальными объектами и процессами, каналами связи, ВУ с различным быстродействием и т. д.

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

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

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

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

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

1. Прерывание с программным опросом; имеется основная ПРОП, которая при поступлении запроса опрашивает состояние каждого ВУ и находит то, которое требует обслуживания; далее осуществляется переход на соответствующую ПРОП, которая и выполняет обмен данными.

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

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

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

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

Обслуживание прерываний может осуществляться с помощью стека.

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

При прерывании программы реализуется следующая последовательность шагов:

ВУ запрашивает прерывание;

процессор выдает сигнал подтверждения готовности к прерыванию по завершении выполнения текущей команды;

содержимое ПС запоминается и осуществляется переход по адресу ПРОП;

Рис. 12.4

содержимое внутренних РГ (рабочих РГ и РГ состояния) запоминается и выполняется передача данных;

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

Рассмотрим в качестве примера (рис. 12.4) выполнение трех прерываний с различными приоритетами (с использованием стека) [21].

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

Таким образом, наиболее длительное первое прерывание, имеющее младший приоритет, выполнялось «по кусочкам» в интервалах

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

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

Рис. 12.5

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

Такая возможность обеспечивается специальным устройством — контроллером прямого доступа к памяти (КПДП), который может быть реализован как в том же кристалле, что и МП, так и вне МП с помощью добавочных ИС, ряда специальных команд и небольшого количества дополнительных ячеек ОЗУ. Принцип ПДП поясняется на рис. 12.5 [21].

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

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

Рис. 12.6

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

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

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

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

Для сигналов, идущих на большие расстояния или работающих на большие нагрузки, требуются усилители.

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

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

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

Более того, шины могут соединять МП как с памятью, так и с ИУ. Одна линия управления может определять назначение блоков. Некоторые МЭВМ полностью совмещают по адресному полю память и ИУ, они обращаются к ИУ (к портам ввода-вывода) так же, как и к ячейкам памяти.

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

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

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

БИС программируемого интерфейса позволяет организовать последовательный и несколько параллельных каналов ввода-вывода.

1
Оглавление
email@scask.ru