Файл: Микропроцессорные устройства систем управления (Ю.И. Иванов, 2005).pdf

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

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

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

Добавлен: 16.06.2025

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

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

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Выполнение команды т2 приостанавливает дальнейшую работу програм­ мы, при изменении содержимого программного счетчика начинает рабо­ тать подпрограмма с команды AsbL Завершение подпрограммы командой ret восстанавливает адрес команды тЗ в программном счетчике и обеспе­ чивает продолэюение работы основной программы. В приведенном примере предполагается использование в подпрограмме текста программы из пре­ дыдущего примера, которая в процессе работы изменяет данные в акку­ муляторе, регистре флагов и регистровых парах ВС, HL.

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

1.5. Алгоритмы ввода-вывода данных

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

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

Первая особенность этих процедур - устройства ввода-вывода образуют самостоятельное адресное пространство с собственными сигналами управ­ ления, независимыми адресами и командами микропроцессора для доступа к данным. В рассматриваемой микропроцессорной системе (рис. 2) адреса­ ция производится только младшим байтом ША, по ШУ предусмотрена пе­ редача независимых от управления доступом к памяти сигналов ввода и вывода данных. Однобайтовый адрес (А8) и сигналы управления вводом32


выводом передаются микропроцессором при выполнении команд следую­ щего формата: "in А8" - ввода байта данных из устройства с адресом А8 в микропроцессор, "out A8" - вывод байта данных из микропроцессора в устройство с адресом А8.

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

Однако скорость работы периферийных устройств не всегда однозначно известна и зачастую изменяется в довольно широких пределах. Если уст­ ройство не готово к обмену данными, возможно формирование специаль­ ного сигнала ШУ, который переведет микропроцессор в состояние ожида­ ния. Такой способ согласования весьма неэффективен, так как период ожи­ дания может привести к недопустимо большой задержке выполнения дру­ гих требуемых функций. Возможен и другой вариант организации взаимо­ действия: перед обменом данными микропроцессор предварительно вы­ полняет программный контроль готовности, при готовности производит программный обмен данными, а при отсутствии готовности переходит к выполнению других функций программы с повторением контроля готовно­ сти устройства через определенный интервал времени. В любом из этих ва­ риантов взаимодействия процедуры программного ввода-вывода заметно увеличивают объем функций рабочей программы микропроцессора, замед­ ляют выполнение требуемых функций, не всегда обеспечивают своевре­ менный обмен данными с периферийными устройствами и, следовательно, могут отрицательно повлиять на эффективность работы микропроцессор­ ной системы.

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

33


микропроцессора; подпрограмма обработки прерывания вызывается для работы только тогда, когда возникает необходимость.

Для реализации процедуры прерывания в ШУ микропроцессорной сис­ темы предусмотрены специальные сигналы: запрос прерывания INT, по­ ступающий в микропроцессор от устройств ввода-вывода, подтверждение прерывания INTA, формируемый микропроцессором при переходе в режим обработки прерывания. В ряде случаев остановка рабочей программы для обслуживания прерываний недопустима, поэтому в системе команд микро­ процессора обычно содержатся команды запрета ("di") и разрешения ("ei") прерываний. Если командой "di" прерывания запрещены, поступающие за­ просы INT игнорируются и работа основной программы продолжается.

После команды разрешения прерываний "ei" в основной программе каж­ дый запрос INT будет обрабатываться микропроцессором. Завершив рабо­ чий цикл очередной команды, выполнявшейся в момент поступления за­ проса INT, микропроцессор приостанавливает дальнейшую работу основ­ ной программы, переходит в режим обработки прерывания и выдает в ШУ сигнал подтверждения INTA. Обработка прерывания производится по стандартной процедуре вызова подпрограммы, рассмотренной в предыду­ щем разделе.

Для обработки прерывания устройство ввода-вывода должны передать по ШД код команды "call А16", где А16 - начальный адрес подпрограммы обслуживания прерывания, и прекратить передачу запроса прерывания INT. Организация работы подпрограммы прерывания, выполняющей все необходимые операции взаимодействия с периферийным устройством, практически ничем не отличается от стандартной процедуры вызова под­ программы. Завершается работа подпрограммы прерывания стандартной командой возврата "ret", которая обеспечивает продолжение приостанов­ ленной работы основной программы. Следует помнить, что работа подпро­ граммы прерывания ничем не отличается от работы основной программы и поступлением нового запроса прерывания может быть приостановлена. Для управления процедурами вызова прерываний в этих подпрограммах также необходимо использовать команды управления "ei" и "di".

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

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

34


щего сигнала запроса INT и команды вызова индивидуальной для каждого запроса подпрограммы прерывания. Индивидуальные адреса подпрограмм прерываний могут указываться программно в процедурах инициализации [1], а при другой организации микропроцессорных систем могут задаваться фиксировано в виде специальных таблиц векторов прерываний. Контрол­ лер прерываний, не являясь самостоятельным устройством и выполняя ука­ занные выше вспомогательные функции, практически всегда необходим для эффективной организации процедур ввода-вывода.

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

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

В режиме DMA управление процедурой с формированием управляющих сигналов и адресов производится контроллером DMA [1], который реали­ зует необходимые функции не программно, как микропроцессор, а аппаратно. Контроллер DMA, следовательно, является специализированным устройством с ограниченным набором аппаратно реализуемых функций. Благодаря этой особенности передача данных в режиме DMA выполняется в несколько раз быстрее, чем микропроцессором.

Перед запуском процедура DMA требует инициализации: необходимо указать начальный адрес памяти для обмена данными, количество циклов обмена и направление передачи данных. Кроме того, контроллер DMA мо­ жет использовать для обмена данными только те сигналы, которые в ос­ новных режимах работы формирует микропроцессор. Поэтому на период выполнения процедуры DMA необходимо работу микропроцессора приос­ тановить и передать функции формирования требуемых сигналов контрол­ леру DMA. Для остановки микропроцессора при запуске режима DMA в ШУ предусмотрены специальные сигналы. Эти сигналы, поступающие че-

35


рез контроллер DMA, обрабатываются микропроцессором по алгоритмам, аналогичным алгоритмам обработки запросов прерываний.

Передача данных в режиме DMA выполняется следующим образом:

запрос от периферийных устройств поступает через контроллер DMA в микропроцессор;

если прерывание разрешено, микропроцессор приостанавливает работу и подтверждает право на управление работой ШД, ША и ШУ контрол­ леру DMA передачей специальных сигналов разрешения;

контроллер, принимая управление работой системы, производит уско­ ренный обмен данными между памятью и периферийным устройством по параметрам, которые были заданы микропроцессором программно перед запуском процедуры;

после завершения обмена данными контроллер DMA возвращает управление микропроцессору, который продолжает выполнение приос­ тановленной программы.

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

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

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

36