/
Текст
Киев "Твхиlка" 1082
д. зиссос
Перевод с aнrnнiicкoro А. И. Петренко,
В. Ю. Лапин, В. Г. Артюхова, С. М. М опявко
под редакцнеи проф. А. И. Петренко
ББК 32.973.2
6Ф7.3
3-64.
Зиссос Д.
3-64 Проектирование систем на микропроцессорах/
Пер. с англ. под ред. А. И. Петренко.- К.: Технiка,
1982.- 176 с., ил.
Впер.:1р. 10к. 10ОООэкз.
Изложены методы проектирования устройств и систем с примене•
нием микропроцессоров (МП). Материал представлен на новеilше!!
серии микропроцессоров. Приведено большое количество схем, справоч
ных таблиц и примеров, иллюстрирующих описанные алгоритмы проек
тирования систем на МП.
Рассчитана на ннженерно-техническнх работников, sаннмающихся
разработкой н эксплуатацией систем на микропроцессорах, а также
может быть полезной студентам вузов соответствующих спецнальностеil,
30502-004
ББК 32.973.2
6Ф7.3
3 м202 (О4 )_82 78.82 2405000000
Редакция литературы по •энергетике, электронике, кибернетике и свяаи
Зав. редакцией 3. В. Божко
System design with microprocessors
D. Zissos
Department of Computer Science, University of Calgary, Cafgary,
Canada with contributions Ьу J. С. Вathory, Research Assistant,
Unlversity of Calgary
1978
АР
Academi~ Press
London New Уоrк San Francisco
А Subsidlary of Harcourt Brace Jovanovich, PuЫishers
© Перевод на русский язык, «Технiка::., 1982
Copyright @ 1978 Ьу Acadernic Press lnc, (London) .LTD
Наиболее значительным событием последних лет
в области цифровой электроники является разработка
микропроцессорных БИС. Объединение микросхем
микропроцессора, памяти и устройств ввода/вывода
позволяет построить микропроцессорную систему
(например, микро-ЭВМ), которая способна заменить не
только мини-ЭВМ, но в целом ряде новых областей
и большую ЭВМ. Уже сейчас микропроцессорные
системы применяются в периферийном оборудовании,
бытовой технике, торговых терминалах, обучающих
устройствах, медицинском оборудовании, автомобилях и
др. По мере расширения сферы использования
микропроцессоров возникает необходимость
ознакомления большого контингента лиц -
неспециалистов в данной области - с основными
принципами организации и проектирования
микропроцессорных систем. Применение
микропроцессорных систем требует знания не только их
технических средств, но и программного обеспечения
(ПО).
Книга профессора Д. Зиссоса университета г. Калгари
(Канада) «Проектирование систем на
микропроцессорах», изданная в 1978 г. издательством
Академии Прэсс, предназначена для всех, кто связан с
разработкой, использованием и эксплуатацией систем на
микропроцессорах. Она доступна лицам, не имеющим
большого опыта работы в данной области.
В отличие от имеющихся отечественных и переводных
книг по микропроцессорам и микро-ЭВМ (например,
Д. Хилбурна, П. Джулича «Микро-ЭВМ и
микропроцессоры», «Мир», 1979; Б. Соучека
«Микропроцессоры и микро-ЭВМ», «Сов. радио», 1980
и др.), содержащих, как правило, базовые сведения о
структурах, командах и параметрах отдельных
конкретных микропроцессоров и микро-ЭВМ, книга
Д. Зиссоса посвящена вопросам проектирования
интерфейсов различных типов микропроцессорных
систем, например, систем типа ожидания/счета,
3
синхронизирующих машинный цикл микропроцессора
с реакцией внешнего устройства. В книге Д. Зиссоса
рассмотрены процедуры проектирования на конкретных
примерах логических схем для микропроцессоров lntel
8080 и Motorola 6800 (например, в задачах обеспечения
стартстопного режима фотосчитывателя и печатающего
устройства).
Далее описаны системы типа проверки и пропуска,
также синхронизирующие циклы микропроцессора
и внешнего устройства программными средствами. На
примерах организации передачи данных (например, от
ОЗУ к печатающему устройству, от фотосчитывателя
через память на печать и др.) показаны процедуры
проектирования технических средств и программного
обеспечения систем рассматриваемого типа.
Следующие главы посвящены изложению методики
проектирования систем прерывания в микропроцессорных
системах на базе lntel 8080 и Motorola 6800 (на
примерах формирования восьмибитовой печатной
строки и связи ОЗУ с печатающим устройством), а также
систем прямого доступа в память (ПДП) с
соответствующими интерфейсами и логическими
схемами «захвата» цикла (на примерах организации
передачи данных между памятью микропроцессора
и внешними устройствами).
В книге рассмотрены системы прямой передачи данных
(ППД), позволяющие осуществить передачу данных
непосредственно между внешними устройствами (на
примерах организации копирования перфоленты,
копирования ленты с устранением ошибок), и системы
типа состояние и действие, которые позволяют
управлять внешними устройствами с гораздо меньшим
числом сигналов управления.
Настоящая книга, в которой последовательно,
методически четко и доступно излагаются методы
проектирования интерфейсов наиболее распространенных
типов для микропроцессорных систем, принесет
несомненную пользу советским читателям. Однако книга
Д. Зиссоса не исчерпывает многообразие острых и
важных вопросов, стоящих перед разработчиками
современных микропроцессорных систем. Ее материал
хорошо сочетается с ранее изданными книгами по
программированию микропроцессоров и общим
вопросам микропроцессорных систем.
Перевод книги выполнен проф. А. И. Петренко,
докт. техн. наук В. Ю. Лапием, канд. техн. наук
В. Г. Артюховым и С. М. Молявко.
Проф. А. И. Петренко
4
Возможности микропроцессоров в настоящее время
широко известны. Однако не всегда подчеркивается, что
эти приборы, объединяющие в себе простоту и
универсальность, могут использоваться лицами, не
знакомыми с электроникой, для построения своих систем.
Такие пользователи, однако, должны располагать
формальными процедурами поэтапного прое.ктирования,
и данная книга как раз и предназначена для тех, кто
желает создавать микропроцессорные системы. Цель
книги - уберечь микропроцессоры от судьбы больших
ЭВМ 50-.60-х годов, когда основное внимание
уделялось разработке программ для ЭВМ и
формализованные процедуры аппаратурных реализаций
оставались в стороне. В результате возникла отрасль,
влияющая на судьбу миллионов людей, но доступная
лишь немногим. Компьютеры представляют собой тайну,
покрытую мраком, и этот мрак сгущается.
Первая часть книги вводит читателя в базовую
методику проектирования логических схем, необходимую
для разработки и построения микропроцессорных
систем. Во второй части описывается микропроцессорный
(МП) кристалл, выделяются общие для различных МЛ
систем характеристики, а также формулируется
методика проектирования, развиваемая в этой книге.
В дальнейшем описываются различные МЛ системы,
с помощью которых решаются различные задачи.
Среднее время разработки малой МЛ системы в
настоящее время составляет около 50 мин. Нет
необходимости выделять время на отладку системы, так
как система, спроектированная по изложенной методике,
всегда работает.
Желающие получить более подробную информацию о
программировании МП систем могут обратиться .к
последней книге Ф. Дункана «Программирование МП и
конструирование программ», изданной издательством
Прентис-Холл в 1979 г. Исследования, на результатах
которых базируется данная книга, проводились при
финансировании Национального исследовательского
совета Канады.
К:алгари, август, 1978, Д. Зиссос
5
Вnиs1ние новой техноnоrии на ЭВМ
Не может быть двух мнений о том, что современное
развитие микроэлектроники, обсуждаемое в данной
книге, оказывает сильное влияние на ЭВМ, но до сих
пор нет мнения о характере этого влияния. Группа по
ЭВМ университетских и исследовательских центров,
санкционирующая и поддерживающая все крупнейшие
исследования по вычислительной технике в
университетах, весыла заинтересована во внедрении
новой элементной базы и технологии ЭВМ. Создана
рабочая группа под моим руководством для оценки
сложности работ в этой области и определения их
влияния на вычислительную технику, а также для
оказания помощи и обеспечения разработок. Рабочая
группа приступила к своей деятельности, но я хочу
прокомментировать впечатления и мнения, которые
возникли у меня в ходе интенсивных дискуссий,
предшествующих началу работы группы.
Очень важно понимать перспективу развития данной
тематика. Часто публикуемые в области вычислительной
техники работы содержат утверждения об отмирании
вычислительных пентров и приближающемся господстве
сетей ЭВJ.\. Сторонники этой точки зрения
предсказывают быстрое проникновение распределенных
структур ЭВМ во все организации, отделы и даже
к отдельным пользователям, которые будут располагать
мощными вычислительными системами на своих рабочих
местах. Я бы хотел отметить, что пока будут проявляться
сдвиги в области создания распределенных сетей ЭВМ,
значительно более важные изменения будут
наблюдаться в проникновении ЭВМ в новые для них
области, во внедрении ЭВМ 1:sa все сферы деятельности
общества.
Первым и наиболее важным моментом является факт
одинаковой важности аппаратурного и программного
обеспечения ЭВМ. Данная книга одинаково хорошо
освещает оба аспекта. Впечатляющее снижение
стоимости вычислительной мощности, основн,,й памг1ти
и внешних ЗУ сопровождается резким возрастанием
6
стоимости программ и обслуживания. Уже сегодня
возрастающая стоимость программного обеспечения
и обслуживания намного превышает стоимость
аппаратуры. Сейчас стоимости программного
обеспечения и аппаратурных средств для больших
и средних ЭВМ, усредненные на периодах их
эксплуатации, составляют 80 и 20 % соответственно.
Даже в предельном случае при бесплатной передаче
аппаратуры общая стоимость вычислительных систем
снизится примерно на 20 %. Таким образом, стоимость
больших и средних ЭВМ, эксплуатируемых
в традиционных вычислительных центрах, мало зависит
от внедрения новой технологии. Как же новая
технология влияет на стоимость распределенных сетей
ЭВМ?
Важно отметить, что современная микроэлектроника
проникает в. общественное производство двумя путями:
путем больших количеств микропроцессоров
и микро-ЭВМ малой стоимости и малых количеств
крупных ЭВМ большой стоимости.
Первый путь - это производство больших количеств
дешевых приборов. Чаще всего - это просто одиночные
кристаллы, ориентированные на конкретные применения,
и поэтому они не могут рассматриваться как
компьютеры. Такие кристаллы (контроллеры) можно
применять в обычной аппаратуре и в таком
оборудонании, как автомобили, стиральные машины,
телевизоры. Они не имеют периферии (кроме сигнальных
преобразователей) и не требуют обслуживания,
необходимого для обычных ЭВМ. Большие количества
поставок требуются для снижения себестоимости таких
контроллеров. Широкое внедрение в новые области
жизненно важно для новой МП промышленности, так
KJ к существующий рынок средств обработки данных не
в сопоянии обеспечить ее рост. По существующим
опенкс1м, мировые потребности индустрии средств
обработки в 1978 г. могут быть удовлетворены
производителями микропроцессоров за две недели.
Безусловно, рынок средств обработки данных будет
успешно развиваться в связи с появлением новых
приложений микропроцессоров, но это развитие не будет
решающей силой. Разработки нового оборудования
в большей степени будут опираться на поставляемые
коммерческие кристаллы, чем на собственные
«заказные» микросхемы.
Аппаратура обработки данных станет основным
потребителем крупных ЭВМ высокой стоимости,
выпускаемых в малых количествах. Системы высшего
7
уровня будут строиться на кристаллах при
соответствующем увеличении их цен. Такие системы
с точки зрения электронной части аппаратуры дешевы,
но дорогие механические периферийные устройства будут
увеличивать их цену. Новая технология, однако,
обеспечивает создание таких специализированных
устройств, как матричные процессоры и системы
управления базами данных, превосходящие по
характеристикам современные системы. В будущем
пользователям станут доступны различные системы от
настольных ЭВМ стоимостью несколько сот фунтов до
больших систем с производительностью 50 млн.
операций в секунду и стоимостью примерно 2 млн.
фунтов. Таким образом, по аппаратурным затратам
новая технология существенно снизит цены.
Но ЭВМ состоит не только из аппаратуры.
Необходимое для работы программное обеспечение
(ПО) также представлено двумя категориями:
дешевого ПО, тиражируемого в больших количествах,
и уникального ПО высокой стоимости, каждое из
которых работает на аппаратуре соответствующей
категории (контроллерах и крупных ЭВМ). ПО для
контроллеров специального назначения также является
узкоориентированным, относительно свободным от
ошибок и весьма недорогим из-за больших объемов
поставок, оно не изменяется пользователем и не
требует сопровождения. ПО высокой стоимости,
главным образом, предназначено для средств обработки
данных. Относительно малые объемы поставок
неизбежно ведут к высоким ценам. Из-за высоких цен
пользователи требуют сопровождения программ, что
ведет к дальнейшему повышению их цен. Таким
образом, конкретный пользователь сталкивается не
только со снижением стоимости аппаратуры, но и с
гораздо более стабильным повышением стоимости ПО.
До тех пор, пока существуют эти две тенденции, эра
дешевых ЭВМ, предсказываемая многими, просто не
наступит.
Однако имеются некоторые потенциальные
опасности в применении новой элементной базы при
разработке ЭВМ. Некоторые пользователи предпочитают
покупать недорогую аппаратуру и разрабатывать свое
собственное ПО. В настоящее время это рискованный
подход, так как наблюдаются большие изменения
в области ПО. Доступное для современных
микропроцессоров ПО примитивно, как правило,
написано на ассемблерном или машинном уровне. При
попытке автономной разработки ПО потребуется большое
8
количество дополнительного оборудования и программ
для отладки: эмуляторы, отладчики, логические
анализаторы и системы отладки. В этом случае
превышение стоимости конечной системы в 5-10 раз по
сравнению с исходной за счет сопутствующего
оборудования не будет исключением. Кроме того, еще
и ПО потребует затрат, так как его разработка
проводится с участием человека. Однако существующие
сейчас 16-битовые микропроцессорные системы будут
через несколько лет вытеснены 32-битовыми, в
результате обесценятся все купленные ранее отладочные:
средства. Имеются, безусловно, области, требующие
самостоятельных значительных разработок ПО, но не
следует недооценивать возникающие при этом
трудности, и я надеюсь, что читатели этой книги -
разработчики ПО - уделяют в своей работе достаточно
внимания сделанным предостережениям.
Существуют и другие причины высокой стоимости ЭВМ,
даже в распределенных сетях. Одна из них -
организация файлов, являющихся основой любой
системы обработки данных. В настоящее время быстрое
развитие дискрвых систем файлов делает
распределенное хранение файлов неэкономичным. Диски
емкостью в биллон байт, появившиеся около двух лет
назад, не могут быть заменены наборами гибких дисков
или магнитных запоминающих устройств на
цилиндрических доменах. Но организация файлов не
определяется только стоимостью внешнего ЗУ.
Вычислительный центр с большой центральной
памятью для файлов позволяет организовать хранение
множества файлов значительно дешевле, чем
распределенные терминалы пользователей сети ЭВМ,
кроме того, надежность и секретность хранения файлов
при централизованной организации (один или несколько,
центров) значительно выше. Единственный случай,
когда целесообразна распределенная система хранения
файлов, соответствует случаю полной независимости
файлов отдельных пользователей. Если же их
зависимость даже предельно минимальна, зн,ачительно,
возрастает стоимость передачи данных в распределенной
сети ЭВМ.
Я придерживаюсь мнения, что новые компьютеры будут
организованы по иерархической схеме со связью через
сеть. Степень сосредоточенности вычислительной
мощности и памяти для файлов в отдельных узлах
будет зависеть больше от стоимости передачи данных,
чем от стоимости микропроцессорного оборудования.
Любое изменение в стоимости передачи данных
9
приведет к изменению в распределенности сети. С этой:
точки зрения в будущем будут использоваться
вычислительные центры, сети ЭВМ и отдельные ЭВМ.
Основной результат появления новой технологии, однако,
будет состоять в проникновении ЭВМ в новые сферы
и отрасли, а также в увеличении количества людей,
использующих ЭВМ. Расширение круга пользователей
за счет людей, не сведущих в ЭВМ, ставит новые
требования для техники программирования. Новое ПО
должно быть значительно лучше приспособлено
к человеческим способностям и больше ориентировано
на пользователей. Я: называю такое ПО «симпатичным».
По счастливому стечению обстоятельств, та самая
технология, которая создает потребность в таком ПО,
обеспечивает экономичную базу для его разработки.
В прошлом очень часто программист был ограничен
в использовании основной памяти ЭВМ. Теперь он не
только получает дополнительную память малой
стоимости, но и может создавать различные по степени
детализации интерпретаторы для разных классов
пользователей:. Кроме того, благодаря снижению
стоимости интерактивных систем, появляетс3
возможность интерактивного диалога с пользователем -
непрофессионалом для устранения неточности
интерпретации ответов. Кроме того, такое ПО может
содержать «службу помощи» для сопровождения
пользователя в запутанных ситуациях.
Я: надеюсь, что в этом предисловии я обратил Ваше
внимание на те широкие перспективы, которые
qткрываются введением новой микротехники
и технологии, описанной в прекрасной книге
проф. Д. Зиссоса. Давайте же сосредоточим наше
внимание на большей наглядности представления ЭВМ
новым пользователем, подробно рассматривая основные
этапы разработки «симпатичного» ПО. Если мы не
реализуем эту задачу, то не следует ожидать быстрого
вторжения ЭВМ в новые области применения.
Ливерпуль, август, 1978, И. Алти
ЛОГИЧЕСКОЕ ПРОЕКТИРОВАНИЕ
В этой главе рассмотрены основные положения, необходи
мые для понимания и приобретения навыков проектирования и
конструирования аппаратурной части систем.
Описанные шаги проектирования базируются на использова
нии последовательностных уравнений, разработанных автором
в 1969 г. Все схемы, реализующие эти уравнения, свободны от
гонок (состязаний сигналов) при условии использования вен
тилей с разбросом задержек сигнала до 33 1/ 3 % от максималь
ного значения.
f.f. &АЗОВЫЕ ОПРЕДЕЛЕНИЯ
Логическое проектирование определяется как набор детер
минированных последовательных процедур, используемых на
практике при реализации логических схем по их входным и вы
ходным характеристикам. Логические схемы подразделяются на
комбинационные и последовательностные. Комбинационная -
это схема, для которой выходные сигналы являются функциями
входных, в то время как для последовательностных схем выход
ные сигналы определяются последовательностью поступления
входных. Последовательностные схемы обладают памятью. При
мером комбинационной схемы может служить домашнее освеще
ние, управляемое выключателем. Когда выключатель замкнут,
свет горит, когда разомкнут,- погашен. Осветительная сеть,
управляемая кнопочным выключателем, является последова
тельностной, так как результат нажатия кнопки зависит от
предыдущего состояния цепи. Если свет горит, нажатие кнопки
выключает его, и наоборот.
В свою очередь, последовательностные схемы подразделяют
ся на асинхронные (нетактируемые) и синхронные (тактируе
мые) •.
Нетактируемые, или асинхронные, схемы непосредственно
реагируют на входные сигналы в отличие от синхронных схем,
реакция которых определяется, кроме того, воздействием так
тового сигнала, причем при отсутствии тактового сигнала
• Третий вид поаледовательностных схем, названный «цепями, управляе
мыми импульсами>, рассмотрен во 2-м издании книги Д. Зиссоса «Задачи лоrи-
11ескоrо проектирования и их решения». Оксфорд, Юниверсити Пресс. 1978.
11
состояние такой схемы остается неизменным. При аппаратурной
реализации асинхронной схемы можно использовать только ло
гические элементы, в то время как для реализации синхронной
схемы требуются запоминающие элементы.
До 1969 г., пока не были разработаны последовательностные
булевы уравнения, логическое проектирование асинхронных схем
основывалось на эмпирических принципах, уделявших мало вни
мания инженерной реализации системы вплоть до конечного эта
па. Появление последовательностных уравнений дало возмож
ность создания детерминированных последовательных алгорит
мов, которые учитывают реальное воплощение схемы на всех
стадиях проектирования. Никакие другие инженерные знания
при таком проектировании не требуются.
f.2. ОПТИМАЛЬНОЕ ПРОЕКТИРОВАНИЕ
Главная цель такого проектирования - обеспечение читате
ля простыми и надежными методами проектирования, понятны
ми не только разработчику, но и пользователю. При этом эле
гантное решение задачи можно получить без чрезмерных усилий.
i.Э. &УЛЕВА АЛГЕ&РА
Необходимым условием для логического проектирования яв
ляется знание булевой алгебры.
Булева алгебра - общепринятая система обозначений, в ко
торой переменные и операторы комбинируются в выражения.
Булевы переменные могут принимать одно из двух значений:
«О» или «1». Это не арифметический ноль и единица. Так, на
пример, логический «О» не означает количественно «ничто». Его
можно использовать для индикации одного из двух состояний
устройства с двумя состояниями (бистабильного элемента), та
кого как триггер или реле; второе состояние при этом обозна
чается булевой переменной «1». Существует большое количество
логических операторов: И, ИЛИ, НЕ, НЕТ, ИЛИ-НЕ, И-НЕ,
исключающее ИЛИ и т. д., однако для проектирования достаточ
но только трех - все остальные можно выразить через них. Эти
ми операторами являются: булево сложение (дизъюнкция) ИЛИ,
булево умножение (конъюнкция) И, булева инверсия (отрица
ние) НЕ.
Сложение (дизъюнкция) обозначается знаком «+». Иногда
используются знакиV, U, ИЛИ. Выражение А+В читается как
А ИЛИ В, А плюс В, при этом А+В истинно, если или А, или В,
или оба вместе «истинны», в противном случае А-1-В «ложно:..
Таким образом:
12
О+0=О;
О+1=1;
1+0=1;
1+1=1;
Лоrическое умножение обычно обозначается знаками « ·: .
или «Х». Часто этот знак опускается (как и в обычной алгебре),
но при этом каждая переменная должна обозначаться одной
буквой. Иногда этот знак записывается как Л, n, И. Выраже
ние А-В читается как А И В, или А умножить на В. При этом
А·В «истинно», лишь когда А «истинно» и В «истинно», в про
тивном случае А• В «ложно». Другими словами,
0-0=0;
1-0=0;
О•1=О;
1•1=1.
Логическое отрицание (дополнение до 1) обозначается чер
точкой над его аргументом или знаком « l » перед ним. Иногда
оно записывается как НЕ. Итак, инверсия А это А или lA, или
НЕА.
Булевы теоремы [1, 2]. Для наших целей, т. е. для проекти
рования и реализации цифровых схем, рассмотрим три теоремы.
Теорему, позволяющую исключить избыточность схемы; теорему,
подавляющую нежелательные гонки, и теорему де Моргана. Пер
вую назовем теоремой избыточности, вторую - теоремой гонок.
Теорема 1. Теорема избыточности А+ АВ = А.
Доказательство:
А+АВ=А(1+В)=А •1=А.
Эта теорема обозначает, что в булевых выражениях, содер
жащих сумму произведений, то слагаемое, которое содержит все
сомножители другого слагаемого, является избыточным. Напри
мер, в булевой функции f = AB+ABC+ABD произведения АВС
и ABD избыточны и их можно отбросить, так как каждое из них
содержит все сомножители первого слагаемого АВ.
Теорема2. Теорема гонок АВ+АС=АВ+АС+ВС.
Доказательство: АВ+АС+ВС=АВ+АС+(А+А)ВС=
= АВ +АС+ АВС+АБС=
= АВ(1+С)+АС(1+В)=
=АВ+ АС.
Эта теорема позволяет вводить дополщ1тельные члены в вы
ражение типа суммы произведений •. Дополнительные члены
представляют собой произведение переменных при А и А в вы
ражении АВ+АС.
Слагаемое ВС является дополнительным до тех пор, пока по-
родившие его члены (АВ и АС) остаются в выражении. Если
один из породивших его членов удалить (при использовании
теоремы 1), оно уже не будет дополнительным и не может быть
удалено из выражения. Вышесказанное иллюстрируется тремя
примерами.
• Булево произведение считается дополнительным, если ero присутствие
в выражении ие алияет иа величину функции и его можно заключить
• ск:обки.
13
Пример t.B булевом выражении f-A+AB первое слагаемое, которое мож•
но записать как A·l, содержит А, а второе произведение АВ содержит А. По
этому в соответствии с теоремой 2 можно ввести дополнительное произведение
l·B и тогда
f =А+ АВ+ (В).
Из теоремы 1 следует, что произведение АВ избыточно, так как оно со•
держит все элементы (в данном случае просто В) произведения В. Посколь
ку член АВ (один из породивших В') теперь не входит в выражение, член В
не является дополнительным.
Схематически эти шаги можно представить в виде
f=A +Ав
""\В замещает АВ,
=А+ В- окончательный результат.
Пример 2. Рассмотрим булево выражение f=AB+AC+BCD. Наличие А
в произведении АВ и А в произведении АС с учетом теоремы 2 позволяет вве•
сти дополнительный член ВС. Таким образом, f=AB+AC+BCD+(BC).
Согласно теореме 1, произведение BCD является избыточным, так как оно
содержит все члены произведения ВС, т. е. f=AB+AC+(BC).
Далее, так как члены, породившие ВС, а именно АВ и АС, все еще при•
сутствуют в выражении, член ВС является избыточным и может быть удален;
в результате получим f=AB+AC.
Схематически эти шаги можно представить в виде
f= Ав+Хс+ВСD
"-./
ВС устраняет член BCD,
= АВ + АС - окончательный результат.
Пример 3. Рассмотрим булево выражение f=A+AB+BC. Дополнительный
член В, порождаемый первыми двумя членами А и АВ, замещает член АВ и
подавляет оставшийся член ВС. Схематически это можно представить в виде
t= А+ Ав+вс
~,
-
•
В замещает породивший его АВ и подавляет ВС,
= А+ В - окончательный результат.
Таким образом, дополнительный член можно использовать для удаления
не участвовавшего в порождении члена булевоrо выражения и (или) для за
мещения членов, участвовавших в его порождении.
Теорема 3. Теорема де Моргана. Дополнение булева выра•
жения можно получить прямой заменой каждой переменной ее
дополнением в соответствующем дуальном выражении. Напри
мер, дуальным к выражению Р=А+ВС является выражение
А• (В+С). Таким образом, по теореме де Моргана дополнением
Р является Р=А. (в+с).
Доказательство: пусть выражение Р подлежит инвертирова
нию, а выражение, полученное заменой каждой переменной
14
в дуальном к Р выражении, на ее дополнение обозначим Q. Необ
ходимо доказать, что Q =Р. Это может быть тогда и только тогда,
когда P•Q""'P·P=O и P+Q=P+P=1.
Рассмотрим следующие случаи.
1. Пусть Р - простая константа (О или 1) или переменная,
например, Р=А, тогда Q=A =Р. Далее, если Р=А (инвертиро
ванная переменная), то Q =А=А= Р.
2. Пусть Р- сумма двух слагаемых А и В, которые сами
могут быть выражениями. Тогда Р=А+В; Q=АБ.
и
Далее
PQ=(А+В)А.В=ААВ+АВВ=о+О=о
Р+Q=А+в+А.В=А+В+А.В+В=
-А+В+В=
=А+1=
-1.
Значит, Q=P.
(теорема 2)
(теорема 1)
3. Предположим, Р является произведением двух членов А
и В, которые сами могут быть выражениями. Тогда Р=АВ; Q=
=А+.в
н
PQ=АВ(А+В)-
=о+О=О;
Р+Q==АВ+А+ТЗ=АВ+А+в+В=1.
Следовательно, Q = Р.
Прежде чем инвертировать заданное выражение, целесооб
разно упростить выражение и заключить все члены произведе
ния в скобки. Скобки инвариантны к процессу дополнения.
Пример 4. Найти дополнение к Р-А+ВС. Предлагаемая процедура.
Исходное выражение Р-А+Вё
Минимизированное Р-А+ВС
Скобочная форма Р-А+(ВС)
Инверсия Р=А(В+С)
Удаление избыточных скобок Р-А(В+С).
Пример 5. Найти дополнение к f-A(BC+BC+BCD). Предлагаемая про
цедура.
Исходное выражение f-A(BC+Bё+.t:JCD)
Миннмиsированное f-A(BC+BC)
Скобочная форма f.., А [(ВС)+(ВС)]
Инверсия 7-71 +[(В+С)(В+С)]
~даление избыточных скобок f-A+(B+C)(B+C).
Пример 6 (задача о болтушках).
Дано:
(1) А.лиса никогда не болтает;
(2) Беттк болтает то,11ько в присутствии Алисы;
13
(3) Клара болтает II любых условиях, даже когда она одна;
(4) Доротти болтает тогда и только тогда, когда рядом Алиса.
Определить, когда в комнате царит молчание.
Решение. Пусть G = 1 соответствует условию, когда в комнате болтают;
таким образом, условие G=O справедливо для комнаты, в которой тишина.
Пусть А= l обозначает присутствие, а А =0 - отсутствие Алисы. Анало
гично В, К, D относятся к Бетти, Кларе и Доротти соответственно. Переводя
указанные условия в форму булевого уравнения, имеем
G=AB+K +AD
(слагаемые расположены в порядке их получения из условий. 2, 3, 4; условие
1 порождает слагаемое А·О=О).
Для определения G (условие тишины в комнате) выполним следующие пре
образования:
Исходное выражение G = АВ + К+ AD
Минимизированное G = АВ + К + AD
Скобочная форма G = (АВ) +К+ (AD)
Инверсия G= (А+ В) К (А+ D)
Удаление избыточных скобок G= AR + BKD.
Таким образом, в комнате будет тишина, если отсутствуют Алиса и Кла
ра или отсутствуют Бетти, Клара и Доротти.
Прежде чем инвертировать заданное выражение, целесообразно его реду
цировать и заключить произведение в скобки. Скобки инвариантны по отно
шению к операции дополнения.
Пример 7. Найти дополнение к Р=А+Вё+АD. Предлагаемая процедура.
Исходное выражение Р=А+Вё+АD
Редуцированное (упрощенное) Р=А+ВС
Скобочная форма Р=(А)+(ВС)
Инверсии Р={А)(В+С)
Удаление избыточных скобок Р=А(В+С).
Булева редукция. Булева функция цазывается редуцированной, если не
содержит дополнительных членов, присутствие которых не сказывается иа зна-
чении функций. Например, сомножитель А в А+АВ является избыточным, так
как А+АВ=А+В. Редуцирование в двухуровневых булевых выражениях мо
жет проводиться в три э1апа с использованием теорем 1 и 2. Если выражение
содержит более двух уровней, как в f=A+B(C+D), его необходимо перевес
ти в двухуроilневую форму (в сумму произведений) путем раскрытия скобок.
Ниже описаны три шага алгоритма редуцирования булевых выражений.
Шаг 1- раскрытие скобок. Редуцируемое выражение преобразуем в двух
уровневую форму (сумму произведений) путем раскрытия скобок. Произве
дения, которые после этого содержат как переменные, так и их дополнения,
подлежат отбрасыванию по правилу А-А=О. Повторение переменной в произ
ведении исключается по правилу А·А=А. Полученные произведения распола
гаются в порядке возрастания числа сомножителей слева направо.
Пример 8. Рассмотрим булеву функцию f = ВС + (АВ + D) D + А.
Применив шаг 1, получим
f = вс+ (AB+D)D+A-вc+ABD +DD+A =BC+AвtJ+A = А+
+АвI5+вс.
Шаг 2 - применение теоремы 1. Исключим избыточные члены, используя
теорему 1. Начав с произведения с наименьшим числом сомножителей, т. е.
с первого по порядку, рассмотрим каждый последующий член, имеющий боль
шее число сомножителей (он расположен правее). ПроизведениА, содержащие
все сомножители данного члена, отбрасываются.
16
Пример 9. На 1-м шаге получено выражение f-A+BC+ABD. Рассматри
вая слагаемые слева направо, выбираем А. Далее рассматриваем члены спра
ва от А в поисках слагаемого, содержащего А как сомножитель. Таким слага-
емым является АЕП5, оно отбрасываетс,я, в результате чего имеем f-A+BC.
Так как правее ВС нет других членов, 2-й шаг можно не повторять.
Шаг 3- применение теоремы 2. На этом шаге по теореме 2 оптимизиру
ются члены, содержащие произведения. Практически с приобретением опыта
нижеописанный алгоритм сокращается. Однако в книге дано его полное опи
сание для начинающих или желающих составить для него машинную про
грамму.
Будем считать, что произведения расположены по возрастанию длины
слева направо, как было указано ранее. Преобразования выполняются в два
втапа.
1. В первом произведении выбирается первая переменная, а оставшаяся
часть выражения просматривается в поисках произведения, содержащего до
полнения выбранной переменной. Когда найдено такое произведение, форми
руется дополнительное произведение по теореме 2. Дополнительное произве
дение используется для исключения членов, не участвующих в его порожде
нии, как указывалось в примере 3 после теоремы 2, или (и) для замены по
рождавших его членов (там же). Если порождавшие его члены заменены,
дополнительный член помещается в начало· выражения и 3-й шаг повторяет
ся. Если дополнительные члены не использовались, переходим дальше.
Шаг 3 повторяется до тех пор, пока не будут выявлены все дополнит1Ль
ные члены первого уровня.
2. 3-й шаг повторяется, используя дополнительные члены высокого уров-
ня. Рассмотрим применение всех трех шагов алгоритма.
Пример 10. Редуцировать f = А + АВ + ЁJDC + ABD.
Решение.
Шаг 1 - раскрытие скобок. Не выполняется.
Шаг 2- применение теоремы 1. Не выполняется.
Шаг 3 - применение теоремы 2:
f=А+Ав+BCD+ABD;
"- _/
--
в замещает порождающее произведение АВ и исключает непорожд.ающвА
член BCD,
-л+в+АВD;
""/
BD замещает порождающее произведение ABD,
-А+ B+BD;
"--. /
D замещает порождающее произведение BD,
-А +в+ D-требуемый результат.
Пример 11. Привестиf=(А+С)(А+В)+DE[в+С)+АВС.
Решение.
Шаг 1 - перемножение - раскрытие скобок:
f=АА+АВ+АС+ВС+BDE+CDE+АБС=
= АВ +АС+ ВС+BDE+ёDЕ+АБС.
Шаг 2 - применение теоремы 1
f= АВ+АС+ВС+BDE+CDB.
АВС исключено, поскольку содержит. все члены ~емента АВ.
11
Шаr З - применение теоремы 2:
f-= АВ +АС+ ВС+BDE+ёDЕ;
"-./
ВС замещает непорождающее произведение ВС,
CDE
-АВ~I/Е
+ ёDЕ;
"-
DE замещает порождающие произведения BDE и ёDВ,
-- = АВ + АС + DE - окончатепьный результат.
1.4. 110ГИЧЕСКИЕ ЭЛЕМЕНТЫ
Элементы И-НЕ. Хотя логические схемы можно проектиро
вать, используя набор элементов И, ИЛИ, НЕ, И-НЕ, ИЛИ
НЕ, исключающее ИЛИ, для упрощения будем применять только
элементы И-НЕ, триггеры и трехстабильные элементы. Однако
8-...Z--
c
Р--т---
6
А
в-'"'--
c-....----
'JJ---
б
А(В +ё)+'JJE
AB+CJJ
;=cr:____.__ !р-=>- Л[ в+с,)+Еff +;J
В-,___,, F~6
?
Рис. 1.1
необходимо отметить, что описываемая методика не исключает
использования других элементов.
Элемент И-НЕ для инверсных сигналов выполняет функцию
ИЛИ. Например, если сигналы А, В, С поданы на вход элемента
И-НЕ, на его выходе будет сигнал АВС==А+в+с (рис. 1. 1, а).
Выход элемента И-НЕ можно описать с помощью булевого
выражения типа суммы произведений по одному произведению
18
на каждую схему, подключенную ко входу выходного элемента,
Сомножители каждого из слагаемых являются входными для
соответствующих элементов. Например, выходной сигнал схемы
рис. 1.1, 6 равен AB+CD. Это можно показать следующим обра
зом:
Но
Тогда
g4= А+в+с+D= AB+CD.
Заинтересованный читатель подобным же образом может
проанализировать выходные сигналы схем на рис. 1.1, в и 1.1, г.
Вё+А(В+Ё}
л-..r--
4 P-+-L-✓
1) ----
Рис. 1.2
Рассмотренные шаги, выполненные в обратном порядке, мо
гут использоваться для реализации булевых функций с помощью
элементов И-НЕ. Например, для реализации функции f=-BC+
+А (B+i5) поступаем следующим образом:
1. Изобразим выходной эле-
е
мент И-НЕ- элемент 1 на
~
рис. 1.2.
х------1 >-----%
2. Затем добавим к нему два
элемента И-НЕ по одному на
каждое из произведений В ё и
A(B+D).
3. Входные сигналы элемента
2-В и С, а элемента 3-А и
B+D.
4. Формируем сигнал В+ D.
x-----------z
х----
----z
Рис. 1.3
Для этого подключаем элемент 4, на вход которого подаются
сигналы В и D, как показано на рис. 1.2.
Трехстабильные элементы были разработаны в 1969 г. Г. Май
пом (Н. Mine) в университете г. Киото. Каждый такой элемент
имеет один вход х, один выход z и один управляющий вход е
(рис. 1.3). Когда е-= 1, элемент представляет собой прямое соеди
не:ние входа с выходом, т. е. z=x. Когда е=О, цепь находится
в третьем состоянии, т. е, ведет себя как разорванная,
lt
t.s. rонки [Э]
Гонками называют нежелательные кратковременные сигна•
лы, которые возникают в логических схемах при определенных
соотношениях задержек элементов и величин входных сигналов.
Схема, в которой возникают паразитные импульсы-всплески на
выходе при изменении входного сигнала А от 1 до О при B-==C=l 1
А
1
АВ•А-1
о
1
АС=А-1
о
,----u·
861.f04
,лементоf
о
Рис. 1.4
11.
и2
или1;
НЕ1--н---~ и3
--,___..;...,
uu
показана на рис. 1.4. Причиной гонок являются непосредствен•
ные изменения сигнала А, А -А, равные или О, или 1. Это веде-r
к тому, что булево выражение для рассматриваемой схемы при-
водится к форме А+А- или А -А: причем гонки существуют на
выходе рассматриваемой схемы, несмотря на то, что входные
сигналы свободны от гонок.
Возвратимся к примеру на рис. 1.4. Выражение f =АВ+АС
приводится к виду А+А при В=0=1, что указывает на суще
ствование гоночной ситуации на выходе элемента 4. Гонки в схе
ме легко устранить, если ее булево выражение лишить возмож
ности приведения к одной из двух форм А+А или А ·А. Это лег
ко "\:делать с помощью теоремы 2:
АВ+ АС=АВ+Ас+вс
или
(А+В)(А+С)=(А+В)(А+С)(В+С).
Введение третьего члена препятствует приведению первичио
rо выражения к виду А+А при В=С= 1, так как при этом АВ+
.+АС+ВС приводится к A+A+l=l. Аналогично, когда в-с-
20
-=О, второе выражение приводится к виду (А+О) {А+О) (О+О) -
-=А:-А·О=О.
Для схем, спроектированных по вышеуказанному алгоритму
и выполненных на элементах с максимальным разбросом задерж
ки в ±33 1/ 3 %, гонки автоматически исключаются.
Шаги алгоритма описаны в параграфе 1.9, а разброс задер
жек обоснован в 1.8 .
'1.6 . НЕИСПОЛЬЗУЕМЫЕ СОСТОЯНИЯ
Если число используемых состояний логической схемы N, где
2n-1 <N<2n, то число неиспользуемых состояний равно 2п-N.
Читателю настоятельно рекомендуется не использовать такие
состояния ввиду их неопределенности. Разработчик должен при
проектировании предусмотреть условия и средства, исключаю
щие попадание системы в неиспользуемые состояния. Другими
словами, все диаграммы состояний содержат все 211 состояний до
этапа реализации схемы.
'1.7 . УМЕНЬШЕНИЕ ЧИСЛА СОСТОЯНИИ
При определенных условиях можно уменьшить число состоя
ний на диаграмме состояний. Эти условия были определены
Калдвеллом (S. Н. Caldwell) [4]. Рассмотрим эти условия.
Диаграмма состояний переводится в таблицу состояний (таб
лицу переходов), которая имеет столько строк, сколько состоя
ний в системе, и столько столбцов, сколько имеется возможных
комбинаций входных сигналов. Каждая строка соответствует
состоянию на диаграмме, а каждый столбец - входному сигна
лу. Строки и столбцы отмечаются обозначениями состояний. Пе
ресе11ение столбца и строки определяет состояние, в которое
система перейдет из состояния, соответствующего данной стро
ке, при подаче входного сигнала, соответствующего данному
столбцу (для тактируемых схем тактовый сигнал не указывает
ся в таблице состояний, однако подразумевается его обязатель
ное присутствие для выполнения переходов). Если разработчик
не может определить следующего состояния для данных кон
кретных условий, он не заполняет данную клетку. Для диаграмм
состояний должны быть определены выходные сигналы для каж
дого состояния, кроме тех клето~, для которых состояния не
определены. Очевидно, что если система переходит в состояние,
совпадающее со своим предыдущим состоянием, то она устой
чива по отношению к данной комбинации входных сигналов. Та
кое состояние отмечается на диаграмме жирной цифрой.
Процедура комбинирования строк в таблице состояний за
ключается в следующем.
l. Две строки могут быть слиты или объединены, если состо
яния системы и выходные сигналы в соответствующих столбцах
21
обеих строк одинаковы или соответствующие элементы одной
или обеих строк пусты.
2. При объединении выделенного и невыделенного состояний
с одним номером результирующее состояние будет выделенным.
Таким образом, две строки
35
и
35
68
объединяются в 3 5
68.
Заметим, что изменение состояния системы из состояния 5
в состояние 8 теперь инициируется только входным сигналом.
Когда строка Sm сливается со строкой sn, новую строку необхо
димо именовать Smn·
С применениями алгоритмов можно ознакомиться ниже. До
полнительные сведения приведены в [ 1].
i.8. ПОСЛЕДОВдТЕЛЬНОСТНЫВ УРАВНЕНИЯ
Функционирование нетактируемых последовательностных
схем алгебраически можно описать с помощью булевых выра
жений, обычно именуемых последовательностными уравнениями
[1, 2]. Именно появление этих уравнений в 1969 г. дало возмож
ность развить четкую и детальную процедуру реализации логи
ческих схем, в которой конструктивные ограничения принимают
ся во внимание на этапе проектирования.
Существует две основные формы последовательностных урав
нений:
А=~ Уст. А+ А~ Сбр. А;
А=[:l':Уст. А+А]~Сбр.А,
(1.1)
(1.2)
где переменная А соответствует вторичному сигналу (перемен
ной состояния); Уст. А (условие установки вторичного сигнала)
совокупность (произведение) булевых переменных, при равен
стве которого единице вторичный сигнал переводится во вклю
ченное состояние (т. е. в «1»); Сбр. А (условие сброса вторично
го сигнала) - произведение булевых переменных, которое при
равенстве единице вызывает переход вторичного сигнала в вы
ключенное состояние (т. е. в «О»).
Будем называть такие уравнения элементарными последова
тельностными, и схемы, непосредственно их реализующие,- эле
ментарными последовательностными.
Уравнение ( 1.1) используется при проектировании схем на
элементах И-НЕ, а уравнение (1.2) - на элементах ИЛИ-НЕ.
В дальнейшем будем называть эти уравнения соответственно
И-НЕ и ИЛИ-НЕ последовательностными уравнениями.
Последовательностные уравнения можно реализовать не толь
ко на электронных элементах И-НЕ, ИЛИ-НЕ, но и на других
типах цифровых элементов (электромеханических, гидравличе•
22
ских реле и т. д.). Схема реализации соответственно ИЛИ-НЕ
и И-НЕ последовательностных уравнений на релейных элемен
тах показана на рис. 1.5. Нажатие замыкающей кнопки s приво
дит к выполнению условий установки (включения), а нажатие
размыкающей кнопки , -
к выполнению условий выключения
(сброса) реле А.
Если по некоторой причине условия установки и сброса су
ществуют одновременно, то для уравнения И-НЕ условие уста
·Vп11т
новки превалирует над
условием сброса. Для
уравнения ИЛИ-НЕ
справедливо обратное
утверждение. Это свой
ство используют при
проектировании поме
хоустойчивых схем. Ус
ловия установки и
сброса вторичных сиг
налов можно получить
непосредственно из ди-
аграммы состояния. Рис. 1.5
J!
J- .1/ РелеА
а
Pel/eA
Например, согласно
приведенной на рис. 1.6,а диаграмме двухтактного Т триггера,
можно записать:
условие установки А == Ёс;
условие сброса А = Вс;
условие установки В = Ас;
условие сброса В = Ас.
Подставляя эти величины в уравнение (1.1), получаем опи
сание схемы И-НЕ:
А-== Вс+А(В+с); В==Ас+В(А+ё);
Z=S2+S3=АВ+АВ=А.
.
Схема, реализующая эти уравнения, показана на рис. 1.6, 6*.
Число элементов в схеме можно уменьшить, применяя к исход
ным уравнениям процедуры слияния и замещения сигналов. Хо
тя эти процедуры и формализованы, они затрудняют проектиро
вание и изменяют задержку сигналов. Поэтому они здесь не
рассматриваются. Заинтересованный читатель может найти их
описание в работе [2].
Инверсные сигналы. Докажем, что на выходе элементов 4 и
8 (рис. 1.6, б) формируются сигналы А и В соответственно. Обоз
начим череа s сумму условий установки вторичного сигнала М,
-
• Реа.11изация попучена из уравнений, преобразованных к виду A-BcABcl
В-АсВАс.
23
а через r- сумму условий сброса М, тогда М ==s+Mi"" Схема
реализации этого уравнения с помощью элементов И-НЕ пока-
зана на рис. 1.7 . Для нахождения сиrна.ла М проинвертируем
обе части уравнения M-s(M+r). Добавим sM и sr как допол
нительные члены к правой части уравнения. Получим
so z~o
АВ=ОО
ё
fO
sз z"I
с
в
ё
Рис. 1.6
М=sM+sr+(sM)+(sr)
= м(s+s)+r(s+s)
=M+r
с
с
а
4
= выход элемента З на рис. 1. 7.
zco SI
01
ё
"
Z•/ S2
А
б
А
с
Произведение sM можно
использовать как дополни
тельное, так как при s= 1 М
не равно нулю. Аналогично
s и r никогда не могут быть
равны единице одновремен
но, являясь условием уста
новки и сброса вторичного
сигнала.
Задержки сигналов 1ле-
А6
с·
8
в
8
ментами [5] логических схем можно определить по схеме или
непосредственно из булевого уравнения схемы, как показано ни
же. Пусть t g - номинальное время задержки элемента. Для
схемы из рис. 1.6, б можно записать:
время установки А= 3t11 - элементы 1, 2 и З;
время сброса А = 4t11 - элементы 1, 5, 4 и З;
время установки В= 2t1 - элементы б и 7;
время сброса В= Зig - элементы 9, 8 и 7.
Определим время задержки по последовательностным урав
нениям схемы на примере уравнений: А=Вё+А[В+с]; В=Ас+
+ВГА+с].
•
Сигнал А устанавливается, когда условие его установки
Вё= 1, т, е, когда В= 1 и с= 1. Временной интервал между из•
24
менением с и изменением А равен Зf gs, так как сигнал с сначала
инвертируется, затем объединяется по схеме И с сигналом В и,
наконец, объединяется по схеме ИЛИ с сигналом А[В+с] преж
де, чем вызвать установку А в 1. Аналогично
время сброса А= 4tg-схемы НЕ, ИЛИ, И, ИЛИ;
время установки В= 2tg-И, ИЛИ;
время сброса В= 3tg- ИЛИ, И, ИЛИ.
Выбранная форма последовательностных уравнений опреде
ляет прохождение измененного входного сигнала, по крайней
мере, через один уровень элементов И и через один уровень эле
ментов ИЛИ, перед тем как
изменится вторичный сигнал.
Таким образом, кратчайшее
время, за которое изменит-
ся вторичный сигнал (пере- r{
менная состояния), состав
ляет 2tg-
,.,
Максимальное время за- Рис. 1-7
держки входного сигнала
при инвертировании равно fg- Обозначим через х% максималь
ный разброс значения задержки элемента, обусловленный таки
ми факторами, как технология, различия в нагрузке, старение
и т. д., тогда получим
tpmax = tg(1+х); tsmln = 2tg(l - х).
Как показано в работах [1, 2, 3], задержки в схемах несу
щественны, еСЛИ fp max <: ts mln •
Таким образом, для элементарных схем
tfl(1 + x)<2tg(l -x);
1 + х<:2-2х;
х< 1/3.
Следовательно, схемы свободны от гонок, если они построе
ны на элементах с максимальным разбросом задержек ±331/ 3 %.
Эта цифра - теоретический предел. Практически ее можно уве
личить путем включения наиболее вероятных медленных эле
ментов в критический путь. Дальнейшее увеличение может быть
достигнуто, если принять во внимание фильтрующие свойства
элементов.
Автор обращает внимание читателя на необходимость избе
гать алгебраических преобразований последовательностных урав
нений, учитывая, что каждое алгебраическое преобразование
изменяет относительные задержки первичных и вторичных сиг
налов. Для минимизации схемы разработчик должен применять
процедуру слияния и подстановки сигналов [2].
25
t.9 . АСИНХРОННЫЕ НЕТдКТИРУЕМЫЕ
ПОСЛЕДОВдТЕЛЬНОСТНЫЕ СХЕМЫ
Ниже описано проектирование асинхронных последователь•
ностных схем.
Особенности проектирования. Описываемый процесс проекти
рования состоит из четырех шагов. Он должен удовлетворять
следующим требованиям.
1. Надежность схемы. Все функции, описывающие схему,
корректны и правильны.
2. Минимальность схемы. Часто не все получаемые схемы
минимальны.
3. Разброс задержек эле.ментов. Подразумевается ±331/ 3 %
разброс задержек.
4. Простота обслуживания. Проектируемые схемы просты
в обслуживании.
5. Затраты времени на проектирование. Минимальны.
6. Документирование. Никакие дополнительные документы
не требуются.
7. Алгоритм проектирования. Прост в применении. Не тре
буются никакие специальные знания в электронике.
8. Коэффициент разветвления по входу и выходу. Удовлетво
ряется, но не столь эффективно, как читатель может найти
в работе f2].
Алгоритм проектирования. Ниже детально описаны шаги про
ектирования и их последовательность.
Шаг 1 - характеристики входа и выхода. На этом шаге со
ставляют диаграмму состояний, на которой обозначают допу
стимые входные и требуемые выходные сигналы. Далее диаграм
му состояний используют для определения отношений между
входными и выходными сигналами, реализуемых схемой.
Шаг 2 - внутренние состояния. На 2-м шаге разработчик
определяет внутреннюю структуру схемы. Наряду с опытом, ин
туицией и предвидением, играющими важную роль на этом эта
пе, для неопытного разработчика важна уверенность в полноте
и однозначности решения. По этой причине он должен избегать
сокращения алгоритма и использовать столько состояний, сколь
ко он считает необходимым для полного и однозначного описа
ния функционирования схемы. Нежелательные состояния можно
удалить на следующем шаге.
Шаг 3 - уменьшение числа состояний. Этот шаг необязате
лен и может быть опущен. Главная его цель - уменьшить число
внутренних состояний, полученных на 2-м шаге, если такое
уменьшение возможно и целесообразно.
В таблице состояний схемы, используя алгоритм, уменьшает
ся число состояний путем слияния строк. Для отбрасывания из
быточных состояний необходимо уменьшать число состояний
лишь до некоторой степени двойки. Например, можно исполь-
26
sовать этот шаг для уменьшения числа состояний от пяти до
четырех, но нельзя использовать его для уменьшения от четырех
состояний до трех.
Шаг 4 - реализация цепи. На этом шаге находится одно
значное соответствие между внутренними состояниями и двоич
ным кодом. Кодирование состояний должно быть таким, чтобы
переход из одного состояния
в другое сопровождался из
менением только одного
двоичного разряда в этом
коде. Для этой цели можно
использовать свободную от
гонок диаграмму (рис. 1.8).
00 01
,---,
l-...l
(О· 1/
Рис. 1.8
Oto,y -- -,. .ffO
,,,,/'
1',
ooor:--..L - +-~too
1
111
001-.;--+- -i- -~10,
•
',1
1 ,,,,,,,,
...__ ........
l}fl
111
г--о,о*-~(00 ---1
ГОООО..с'/ _L _ +
........ у!ОО" 1
11
11
1OOtOk-.J--l -_А10101 1
1,,11/111
1 1o11oi-tшo 1 1 1
1 10111 ;..-1'-!lff
',
11
1 1,,/1
........
11
OOlf~_ j_ _J_ _ ~fOlf 1
111111
L-~--1--+-- l
_
_J1
0001 ........ 1
1 /77001. •
1
Oloi'+---+'ftot
/
L--..,.- -....J
L-------'
После кодирования внутренних состояний осуществляются
преобразования булевых уравнений для переменных состояний
t
(1
Рис. 1.9
.l...-fi)зеленоя
IJOMf/OlfKfJ
/{рос11ал
/IOMПO'IKO
звонок •
so
И'c.rollнoe
-
состояние
9-r
r•.o
6=0
о
Сброс
сигнала
тре60211
g:sf
r=O
--
6=f
S1
7
Sf
_
Роспозно6о-
f
ние сигноло
тре6оги
g... o
r•t
6•1
.
11
Лоllт8ержое-
1
;ще си~н11л11
тое оtи
g=O
:/
-
r=f
6=0
о
S2
и выходных сигналов. Хотя первоначально в таблице состояний
могут существовать пустые клетки, после преобразования
27
уравнений схемы они должны быть заполнены. Пустые места за•·
полняются дополнительными членами, описывающими неопреде
ленные состояния схемы. Другими словами, в таблице состояний
для окончательной реализации схемы не должно быть пустых
:мест.
Пример 12. Разработап" систему сигнализации. Спроектируем систему си
гнализации со следующими характеристиками. По сигналу тревоги включает
о/ 00
01
о@)Sf
g,r,h =!,0 ,0
Ф,Ф,Ф
lf
so
®
!11,111,Ф
O,f,f
12
sз
@
(11,fll,fll
0,1,О
sз®
S2
f,0 ,f
Ф,fi.Ф
о
fll .00
01
SOf. f @)Z
r,b•t,0,0
о,,.,
(§6
O,f ,O
5
Рис. 1.10
ff
sz
!11,fll,Ф
@
O,f,O
ff
S23 3
Ф.!11•0,f,f
10
®f,0,0
ся звонок, выключается зеленая
лампочка и включается красная.
Звонок может быть выключен
оператором нажатием кнопки
подтверждения. Если сигнал тре
воги выключается сам, красная
лампочка гаснет, зеленая загора
ется, а звонок автоматически
включается для привлечения вни
мания оператора. Звонок выклю
чается нажатием кнопки подтвер
ждения. Если сигнал тревоги ис
чезает до нажатия кнопки под
тверждения, система возв_ращает
ся в исходное состояние [2].
so
!IJ,(21,!II
10
@
Решение.
Шаг 1- характеристики вхо
да и выхода. Входные и выходные
сигналы системы показаны на ее
# структурной схеме. (рис. 1.9, а), а
,.о.о их соотношения - на диаграмме
состояний (рис. 1.9, 6).
SOI 8
Шаг 2 - внутренние состоя
ния. В рассматриваемом случае
внутренние характеристики совпа
дают с внешними.
Шаг 3 - уменьшение числа
состояний. Составим таблицу со-
~:тояний (рис. 1.10,а) по диаграм
ме состояний (рис. 1.9,б). Выходами схемы являются две лампочки и звонок,
которые не реагируют на кратковременные импульсы. Обозначим их состоя
ния как О или 1 на все время переходов в схеме из одного необведенного
состояния в другое. Далее используем методику уменьшения числа состояний,
описанную в параграфе 1.8. Строки SO, SJ и S2, SЗ сливаются в строки SOJ
и S23, соответственно сокращая число строк в таблице с четырех до двух
(рис. 1. 10, 6). Соответствующая диаграмма состояний показана на
рис. 1.11, а.
Используя входы (о в нашей таблице с двумя состояниями как дополни.
тельные члены, запишем:
•
в состоянии S01 (рис. 1.10,6)
g=ai+аТ+(af) =r. что соответствует g= о в ячейке с номером З;
r = af+(af) = /, что соответствует r = 1в ячейке с номером 3;
Ь =af + (an = f, что соответствует Ь =- 1, в ячейке с номером З;
• состоянии S28
28
g = -af + (af> = Т. что соответотвует g = 1 в ячейке с номером 8;
r ""' af+af+(ai>= f, что соответствует r =- О в ячейке с номером 8;
Ь=af + (а7} =7, что соответствует Ь = l в ячейке с номером 8.
Шаг 4 - реализация цепи. Непосредственно из рис. I.I I, а получаем: JCJIC)-
lliнe установки А = af; условие сброса А = oJ.
Такимобразом,А= af+А(а+f);
g = SO]f+S23/= Af+Af=f;
r-=;= S01f+s23f=Af+Af=f;
Ь=S01f+S23f=Af+Af.
Соответствующая И-НЕ схема показана на рис. 1.11, 6.
f
a-i
--------1 r•t
h•i
А•О
о
A=i
Рис. 1.11
1.10. СИНХРОННЫЕ ТдКТИРУЕМЫЕ
ПОСЛЕДОВд ТЕЛЬНОСТНЫЕ СХЕМЫ
о
А
Синхронные схемы характеризуются следующими особеннос
тями:
1) работа таких схем синхронизирована тактовыми импуль
сами, при отсутствии которых состояние схемы неизменно;
2) любое число переменных состояния может измениться во.
время переключений схемы.
На этапе схемной реализации переменная состояния пред
ставляет собой двухтактный триггер, т. е. бистабильный элемент"
в котором изменение выходного сигнала совпадает по времени
с фронтом или спадом тактового импульса. Предполагается, что,
изменение выходного сигнала А происходцт синхронно со спа
дом тактового импульса. Другие ·случаи будут рассмотрены
особо.
Существует четыре основных типа триггеров:
1) О-триггер
2) Т-триггер
3) RS-тpиrrep
4) JК-триггер.
Их обозначения и диаграммы состояний показаны на рис. 1.12.
Методы их реализации рассмотрены в работе [1].
Проектирование синхронных схем выполняется по алгоритму,
состоящему из четырех шагов. Алгоритмы проектирования син
хронных схем отличаются от алгоритма проектирования асин
хронных схем. Переменные состояния определяются уравнениями-
триггеров в отличие от последовательностных уравнений для
асинхронных схем. Уравнения триггеров представляют собой
булевы выражения условий установки и сброса триггеров. Усло
вие усtановки RS-тpиrrepa, обозначаем как SA, является объе
,%-,А_ l_A _•_o .....~
L1-.
гvи
Рис. 1.12
динением (ИЛИ) общих со
стояний •, вызывающих из
менение величины А от О к
1. Аналогично условие сбро
са А, обозначаемое как R А,
представляет собой дизъ
юнкцию общих состояний,
каждое из которых вызыва
ет сброс величины А от 1
ДО 0.
Выражения для условий
установки и сброса тригге
ров можно минимизировать,
используя дополнительные
члены: а) определяющие не
рабочие комбинации сигна
лов; б) определяющие появ
ление условия установки
триггера в процессе пере
ключения,
когда
выход
триггера находится в состо
янии 1; в) определяющие
появление условия сброса триггеров во время нахождения вы
хода триггера в состоянии О.
Условия установки и сброса в таком виде, как они опреде
лены выше, представляют собой непосредственно сигналы уста-
;rt: кJL
]
А
~
А
.
к
К
А
о
о
------
d
Рис. 1.13
новки и сброса для RS-триггера. Однако на практике чаще ис
пользуются универсальные JК-триггеры. Для получения урав
нений сигналов J и К выделим переменные А и А из уравнений,
<>писывающих SA и Rл- Наиболее легкий метод выполнения та
·КОГО преобразования - прямая реализация JК-триггера с по•
• Общими являются состояния, определяемые неповторяющейся комбина•
цией входных и вторичных сигналов.
мощью RS-триггера. Графическое изображение и диаграмма со
стояний JК-триггера показаны на рис. 1.13. Внутренние пара
метры этого триггера не отличаются от внешних. Таким обра-
зом, непосредственно из рис. 1.13, б получим: SA=SOJ =Al;
RA==S1K=AК.
Соответствующая схема JК-триггера показана на рис. 1.13, в.
Рассмотрим алгоритм проектирования синхронной схемы на
следующем примере (более подробно см. [2]).
Пример 13. Детектор 4 -5-6 . Спроектировать схему, которая будет ос
танавливать считыватель перфоленты путем выключения сигнала т и вк.лю-
20
~
с.,
1---2. .. . ,
1_
s Детектор
vитмиотел1, 2z Дешurрр11тор i-- .. .; ._- - i лосле6о6а-
с перrроленты 21
G теп1,ност11
4--S -6
Зdонок
т
Рис. 1.14
чать звонок. если встречается последовательность символов 4-5 -6
(рис. 1.14).
Импульс синхронизации вырабатывается считывателем при считывании,
каждого нового символа.
Решение.
Шаг 1 - характеристика входа и выхода. Определены в условии.
Шаг 2 - внутренние состояния. Соответствующая внутренняя диаграмма.
состояний показана на рис. 1.15,а. В первоначальном состоянии SO детектор,
ждет появления символа «4», игнорируя все остальные символы. При обнару
жении символа «4» детектор переходит в состояние SJ. В состоянии SJ схема
ожидает второй символ искомой последовательности «5». При появлении сим
вола «5» система переводится в состояние S2. Появление символа «4» в состо
янии S1 не вызывает выхода из этого состояния, поскольку искомой последо
вательности 4-5-6 может предшествовать сколько угодно четверок. Появле
ние символа, отличного от «4» ИJIИ «5», т. е, 4·5, вызывает переход системы &
первоначальное состояние (SO).
В состоянии S2 система ожидает символ «б», появление которого перево
дит его в состояние S3, выключает считыватель и вк.лючает звонок. Появле
ние символа «4» вызывает переход в состояние SJ, а все остальные символы
(4·6) переводят схему в состояние S0.
Шаг З - минимизация числа состояний. Соответствующая таблица состо
яний показана на рис. 1.15,б. Как видно, слияние строк невозможно.
Шаr 4 - построение схемы. Для нумерации четырех состояний выберем.
произвольные коды. В процедуре реализации не будем использовать дополни•
тельные члены для минимизации схемы. Непосредственно из диаграммы сос•
тояний (рис. 1.15,а) следует
SА=S1,5=АВ •5,поэтомуJА=В •5;
RA=S2•4+S2•4•б=S2•4+S2•6=
= S2 • 6, так как S2 • 4 является подмножеством S2 • 6;
= АВ ,6, поэтому К,4 =В·б;
S8=SO•4;
=л.в.4,поэтому 1в=А.4;
Зt
Rв=S1 ,'i•5+S2 •4•б+S2•6-
= S1,4.Б+S2.i'+S2•6=
= S1 ,4 ,5+S2 ,4, поскольку S2 · 6, 9ТО подмножество S2 .4
=АВ. 4• Б+Ав ·4
.
-= В ,4 •5+АВ•4,поэтомуКв=4·5+А•4;
• m=S9=A+B,
Ь=S9=АВ·
АВ•ОО
i•IД
Df
01NU/(IHIJln4"
.,4 "распо.1нана,
qжulaнue"S"
4-Jl
m=t
b•D
sJl
Sf
1l
,.4-,5,В"роспо.1;
HOНfJ, OtmONOv
лент1,1
• 4, S"р_асм,н11н1,1,
oжlidtlЖJt"6"
sз
Вol
,r,
4
s
Sf®
so m=I m=t
Ь•О 6=0
®$2
SI m•t m•I
/J=O /J=O
Sf so
S2 m•f m•I
/J=O 6•0
$3
m•0
6•1
10
6
~m=f
/J•O
so
m"f
6:0
S3
т-1
6,,.0
т•О
l,•f
1•s·l
@
m=t
ь=о
so
m•f
Ь=О
so
т-1
/J•O
вJL
m•I
6•0
о
,,
ВD
хо#
5
8
Sf@~
so m=I m=f m=t
6•0 Ь•О 6•0
®sz so
SI m•t m•f m•f
6•0 Ь•О Ь=О
Sfsosз
S2 m=f m•t m•t
6---0 6--0 6•0
sз
@@@
т--.о т-о m•0
b=f b•f b•f
6
Рис. 1.15
S2
f·!·l
®m=t
b•D
so
m:f
Ь•О
so
m•I
/J=O
@
m=0
b•f
Перед реализацией уравнений необходимо заполнить все пустые клетки
-таблицы состояний с тем, чтобы реакция схемы была определена для всех
входных сигналов. Наиболее просто зто можно сделать, опираясь на уравве-
11ие схемы, как описано ниже.
В таблице рис. 1.15,б есть четыре пустые клетки, их содержимое можn
~ыть описано булевым выражением А·В, т. е. А-1, В=О.
-32
Подставпяи зти величины в триггерные уравнения, получаем:
JA=B-5=0;
КА=В • 6=0;
J8=А.4=О;
К8 =-4-5+А •4==4• 5+4=4.
,s------------------------,
8
8
Cucmtl#HЫU сброс
Рис. 1.16
А
А
,,4''
.. S"
А
в
Это показывает, что переход системы в состояние SЗ (выключение двигате
nя) блокирует JК-тригrер А в установленном состоянии (JА= КА= О) и
JК-тригrер В в сброшенном состоянии (так как Jв= О). Другими словами, состоя•
ние SЗ вводится в пустые клетки таuлицы состояний (рис. 1.15, а). Соответст
вующая схема показана на рис. 1.16.
t.H. СПИСОК ЛИТЕРАТУРЫ
1. Zissos D. ProЫems and Solutions in Logic Design. Oxford University
Press, 1976.
2. Zissos D. Logic Design A\gorithms. Oxford University Press, 1972.
3. Zissos D. Race-hazards. -
Process Control Ьу Power Fluidics. Proceedings
of an International Symposium of the Institute of Measurment. Sheffield. U . К.,
September, 1975.
4. Caldwell S. Н. Switching Circuits and Logic Design. Wiley, 1965.
5. Duncan F. О., Zissos D. Gate Tolerance in Sequentlal Circuits. -
Proc.
IEE, 118, .No 2, February, 1971.
6. Duncan F. О., Zissos D. Design of Synchronous Multi-Ievel Sequential Cir•
cuit. -
Proc. IEE, 119, .No 2, February, 1972.
2 1-459
МИКРОПРОЦЕССОРЫ
В этой главе рассматриваются общие характеристики микро
процессорных схем. причем особое внимание уделяется харак
теристикам, существенным при проектировании. Уточняется ме
~одика проектирования, изложенная в предыдущей главе.
2.t. ОПИСАНИЕ МИКРОПРОЦЕССОРА
Определение. . Микропроцессор - это программно управляе
мая синхронно-последовательностная система• (см. параграф
1.10), которая способна выполнять следующие функции: 1) вы-
.---.....--------------------------0
мп
Рис. 2.1
Прог
роммо
АtJресныи
tJешшрротор
tz
полнять программу. т. е. последовательность команд, используе
мую для реализации поставленной задачи; 2) управлять систе
мой с шинной организацией (рис. 2.1, функционирование и на
значение компонентов этой ·системы описаны ниже).
Программа обычно хранится в полупроводниковой памяти -
ОЗУ, ПЗУ или ППЗУ. Особенности этих типов ЗУ рассмотрены
ниже.
• Синхронно-последовательностиая система - зто логическая схема со
многими состояниями, функционирование которой синхронизируется тактовы
ми импульсами, а в промежутках между импульсами состояние системы не
изменяется.
З4
Прежде чем перейти к детальному ознакомлению с микро•
цроцессором (МП), необходимо отметить, что его внутренняя
структура по своему составу и архитектуре ничем не отличается
от современных ЭВМ. В частности, МП содержит регистры,
арифметико-логическое устройство (АЛУ), дешифраторы, флаж
ки состояний и т. д. Основное отличие МП - быстровозрастаю
щая плотность размещения компонентов.
.
Увеличение плотности - одна из наиболее важных проблем
в техноло.гии БИС. Дело в том, что физические ограничения на
число выводов (14, 16, 24 и 40 выводов стандартного корпуса
микросхемы) вступают в противор~чие с возрастающим числом
логических элементов на кристалле. Для МП противоречие это
Mf
М2
М1
(нашинныtl цикл I} ~ (MfJШUHШll1 цикл2) ..... {Hf/ШUHH61t1 ЦUКА1)
-
-
Рис. 2.2
устранено применением метода разделения времени для входных
и выходных сигналов. При этом один и тот же вывод микросхе
мы используется, например, дл.я ввода данных и команд в МП и
для вывода данных из него. Процесс разделения времени на вы
водах МП рассмотрен ниже.
Разделение во времени. Для упрощения изложения компо
ненты схемы, не имеющие отношения к разделению времени в
МП, опущены. Упрощенная структурная схема МП показана на
рис. 2.3, где изображены лишь четыре основных регистра: про
граммный счетчик РС, содержащий адрес следующей команды;
аккумулятор АС, предназначенный для хранения принимаемых
и выдаваемых микропроцессором данных; адресный регистр ,,
содержимое которого используется для адресации памяти при
чтении и записи; регистр кода операции IR, принимающий код
операции и хранящий его в течение времени выполнения команды.
Указанные регистры представляют собой минимальный набор
регистров, необходимых МП. Обычно МП содержит и другие
регистры, например указатель стека, индексный регистр и т. д.
Функции этих регистров и внутренняя организация МП рассмот
рены в работе (1].
Рассматриваемый простой микропроцессор выполняет коман
ду ввода/вывода за три машинных цикла: Ml, М2 и М3 (рис. 2.2)
(машинный цикл М2 может быть выполнен дважды, если, на
пример, обмен МП с памятью производится байтами, а адрес
имеет длину два байта). Машинный цикл Ml имеет четыре по
следовательных состояния, машинные циклы М2 и М3 - по три
состояния (рис. 2.4).
.
Предположим, что программный счетчик РС загружен адре
сом следующей команды, которая представляет собой команду
35
ввода/вывода, процесс выполнения которой описан ниже (при
изучении процесса выполнения команды читателю рекоменду
ется обратить внимание на рис. 2.3 и 2.4).
Машинный цикл MJ. В течение этого машинного цикла, на
зываемого циклом извлечения команды, из памяти извлекается
команда, подлежащая выполнению, и пересылается в регистр
кода операции.
Если обозначить через Ат ячейку памяти, содержащую сле
дующую команду, то содержимое программного счетчика РС
д
MJ
МЗ·Т3Jl~ МZ.ТЗ
MJ·TJ
~--+------t---...---d
АС
-,....-
Нl·ТJД~Hl-11
Рис. 2.3
перед выполнением этого цикла равно Ат. Когда МП переходит
в состояние MJ, Т1 (рис. 2.4), адресные шины подсоединяются
через внутренний двунаправленный формирователь к РС, что
позволяет выдать адрес ячейки Ат. Далее генерируется после
довательность сигналов для извлечения содержимого ячейки
памяти Ат и выдачи его на выходные контакты микросхемы па
мяти. В течение этого машинного цикла шина данных (d) не
несет информации и находится в третьем состоянии.
Следующий синхросигнал (импульс тактовой частоты) пере
водит МП в состояние М 1 • Т2. В этом состоянии ничего не изме
няется: программный счетчик РС все так же присоединен к ад
ресной шине ( а), а шина d остается в третьем состоянии. Это
состояние, как мы увидим ниже, соответствует введению задерж
ки перед состоянием MJ •ТЗ, чтобы память успела выдать сле
дующую команду. В связи с тем, что принципы синхронизации
с памятью и внешними устройствами детально рассматриваются
в следующем параграфе, будем пока считать, что внешние уст
ройства и память обладают достаточно малым временем для
обмена и не замедляют работу МП.
36
При входе микропроцессора в состояние М J. ТЗ шина данных
d подключается к регистру кода операции IR через внутренние
трехстабильные буферы МП. Одновременно выход микросхемы
памяти, в которой записана программа, подсоединяется к той же
шине и таким образом осуществляется прямая связь между па
мятью и регистром кода операции, как показано на рис. 2.3. Это
Mf
ТI
fРС
liк
d
/трет
состо11
61"'1
Н/111
Т2
Jl
РС
им
11К
d
/трет
состо11Hllil
тз
JLРС
/Н
ак
dк
{КОМРН
,1qгр
la
vженоJ
Jl
РС
INQ(J
~
11К
dк
[Комон
6tко4upo6fJHO]
1PC:•PC+f
М2
мз
Tf
l
Tf
1
g кРС
(I J('J'
d
et
6 mpem6et1
1 трет6ем
состо11н//t1
CQCtnDIIHUU
Т2
IJl
Т2 lд
акре
ак1'
Jl (J
.n.
tl
1 mpem111tt
lmpem611tt
состмнuu·
состо11нu11
тз
IJl
тз IJl
аКРС
ак1'
dKI'
dKAC'
-
f Аирес JfJe,ovжeН}
[Внеш.не~ст-
-
p_~cmlo ~ -
е, vнено н 'l
1PC:•PC+f
!Jt
Рис_ 2.4
означает, что на входе регистра IR находится следующая коман
да. Импульс, формируемый МП, передает эту команду в регистр
кода операции.
Следующий синхроимпульс переводит МП в состояние MJ •Т4
(рис. 2.4). В этом состоянии содержимое регистра IR, т. е_. вы
полняемая команда, декодируется, а содержимое программного
счетчика РС увеличивается на 1. Четвертый синхроимпульс пе
реводит МП в машинный цикл М2.
Машинный цикл М2. Этот цикл называют также циклом из
влечения адреса, так как этот цикл используется для извлече
ния из памяти и засылки в МП адреса внешнего устройства.
Механизм пересылки адреса идентичен механизму пересылки
команды из памяти в МП в предыдущем цикле. В течение этого
цикла программный счетчик РС подключен к адресной шине а.
В состоянии М2 •Т1 сигнал шины а извлекает содержимое
следующей ячейки памяти. Как и в ёостоянйи MJ •TJ, шина d
находится в третьем состоянии.
37
В состоянии М2, Т2, как и в состоянии MJ, Т2, ничего не из
меняется. В этом состоянии осуществляется синхронизация с
памятью.
Когда микропроцессор переходит в состояние М2, Т3, шина
данных d подсоединяется к адресному регистру r. Одновременно
выход микросхемы памяти, содержащей программу, также под
соединяется к шине данных, устанавливая таким образом пря
мую связь между памятью и адресным регистром (рис. 2.3). Это
означает, что на вход адресного регистра подается номер уст
ройства ввода/вывода. Формируемый МП импульс заносит этот
номер в адресный регистр. Седьмой синхроимпульс увеличивает
содержимое РС на 1 и переводит систему в состояние МЗ
(рис. 2.4).
Машинный цикл МЗ. Этот цикл называют циклом выполне
ния ввода/вывода, так как в течение этого цикла устанавливает
ся прямая связь между МП и внешним устройством, определяе
мым номером, извлеченным в цикле М2.
В течение машинного цикла МЗ адресная шина а подсоеди
няется к ,адресному регистру r, обеспечивая выдачу номера внеш
него устройства в течение всего цикла МЗ.
В состоянии МЗ • Т1 и МЗ • Т2, как и в соответствующих состоя
ниях двух прещ,iдущих циклов, шина данных d находится в тре
тьем состоянии. В состоянии МЗ • Т 1 в систему из МП выдается
номер внешнего устройства, а состояние МЗ • Т2 используется для
задержки перед переключением МП в состояние МЗ • ТЗ (рис. 2.4).
Эта задержка используется для синхронизации во времени, так
как МП не должен перейти в состояние МЗ • ТЗ до тех пор, пока
адресуемое внешнее устройство не известит о своей готовности.
Механизм такой задержки рассмотрен в параграфе 2.2 . Для про
стоты предположим, что синхронизация не требуется.
В состоянии МЗ • ТЗ шина данных подсоединяется· к аккуму
лятору через двунаправленный формирователь МП. В то же
время информационный выход внешнего устройства подсоеди
няется к шине данных, образуя прямой канал данных между
внешним устройством и аккумулятором (рис. 2.3). В течение
этого времени данные передаются по шине данных в направле
нии, определяемом командой (ввод или вывод).
2.2. СОСТОЯНИЕ ОЖИДАНИЯ
Синхронизация с памятью. Как уже указывалось, функцио
нирование микропроцессора определяется синхроимпульсами
(р-ис. 2.4). Чем выше частота синхроимпульсов, тем больше про
изводительность системы. Максимальная частота синхронизации
данной системы определяется задержками внутренних схем МП
и временем доступа к памяти программ. Существующие в на
стоящее время микропроцессоры более быстродействующи, чем
микросхемы памяти. Поэтому важно, чтобы разработчики систем
38
с МП понимали механизм синхронизации с памятью для исполь
зования МП на предельных частотах. Этот механизм описан
ниже.
В течение цикла -извлечения команды или адреса, т. е. в те
чение цикла обращения к памяти, частота МП должна быть до
статочно низкой для того, чтобы дать микросхеме памятй воз
можность обработать запрос. В нашем случае (см. рис. 1.4) МП
посылает адрес чтения памяти в состоянии М J. Т1 . В состоянии
MJ • ТЗ, т. е. на два периода позже частоты синхронизаци_и, вы
ходные данные с выбранной микросхемы памяти передаются в
регистр кода операции IR (рис. 2.3). Очевидно, что система не
должна войти в состояние М J. ТЗ до тех пор, пока память не
ответила на запрос. Таким образом, максимальная тактовая ча
стота fmax должна выбираться так, чтобы два ее периода были
не меньше времени доступа к памяти t, т. е.
2/fmax ~ f,
fmax ~ 2/t.
Отметим, что на практике разработчик не встречается с проб
лемой синхронизации с памятью, если МП и элементы памяти
согласованы по максимальной тактовой частоте. Если требуется
реализовать память на элементах, не согласованных по макси
мальной тактовой частоте, можно использовать методы синхро
низации, применяемые при обмене с внешними устройствами.
Синхронизации ввода/вывода. Время цикла ввода/вывода МП
должно быть согласовано с временем ответа внешнего устрой
ства. Например, если во время операции ввода/вывода необхо
димо продвинуть перфоленту на одну позицию для чтения сле
дующего символа, необходимо приостановить операцию чтения
в МП до окончания продвижения ленты. Это означает, что сле
дует перевести систему в состояние МЗ •ТЗ до момента появле
ния следующего символа. Как будет показано в гл. 3, наиболее
эффективным способом синхронизации в этом случае является
выключение синхросигнала вплоть до момента ответа внешнего
устройства на запрос. Однако для современных МП, за исклю
чением небольшого числа (Signeties 2650 и RCA 1800), отклю
чить синхронизацию нельзя вследствие потери внутреннего со
стояния. Для преодоления этого недостатка в МП предусмотре
на система синхронизации, позволяющая переводить систему в
состояние ожидания на любое время без отключения синхрони
зации.
Для продвижения перфоленты, рассмотренной выше, можно
предложить следующий способ синхронизации МП и считыва
теля.
Из состояния М3-Т2 (рис. 2.4) МП переводится в состояние
ожидания МЗ •Т w, как показано на рис. 2.5, а. В этом состоянии
посылается запрос на внешнее устройство, в данном случае счи
тыватель. Когда внешнее устройство выдает сигнал ответа, сиг
нал на его выводе «Готовность» становится нулевым и остается
зэ
таким, пока внешнее устройство выдает ответ. Этот сигнал снова
становится единичным после того, как внешнее устройство вы
даст ответ. Переход сигнала r из О в 1 используется для пере
ключения МП из состояния ожидания в состояние МЗ •ТЗ
MQIJШHH6lti Ц«KII З
/t!З·Tf
rка
НЗ·ТZ Jl
rка
JL
МЗ·Тw
Состмние оншiJония
:Jот;ск 8нешнего
vcmpoticm611 r к 11
MJ·TJ
Вн=~
• IJf/fl't/f' i--Jl-·(-611,..,ешнее
кO
vcm11ot1cm60
omlemuno)
JL
а
Рис. 2.5
/10ШUHH6lfi Ц«KII З
МЗ·Т!
rка
мз-тz Jl
rка
мяз Jl
Jl·(6нешнее
vcmpoiicmlo
om6emu110)
(рис. 2.5, а). Этот переход позволяет в дальнейшем продолжить
нормальное функционирование схемы (чтение ленты и т. д.).
Если для чтения перфоленты вначале выполнить считыва
ние, а затем продвижение ленты, то состояние ожидания необ-
81,160,tiкo
HO,H8HQ6I
Рис. 2.6
8615орка
oiJpeca
Вмполнение
Состояние
1---.... 6 8o tJ1 1/ 6ы6 ot Ja .. .. ., . ., .. .-1 ожи1Jана1
4
ходимо ввести после считывания, т. е. после выхода из состоя
ния МЗ •ТЗ (рис. 2.5, б).
Когда МП входит в состояние ожидания, на внешнее устрой
ство посылается сигнал запроса. МП находится в состоянии ожи-
40
дания до тех пор, пока не подготовится ответ (изменение сиг
нала r от О к 1). После этого МП из состояния ожидания пере
ходит в состояние М J. Т1 (рис. 2.4), позволяющее возобновить его
нормальное функционирование.
М1
Вь,оорко ком11нtl61
Рис. 2.7
М2
вь,оорко ооресо
МJ
86/ЛО/!Нt'НUе
14otJo/ dыOotJo
Jl
Tf
WAIТ•O
Л,_Ф, Фе ..
Jl ,....._......._Т._,2 Jlel.m
WA =О
.Th i417Y
,---. - -,
T:J
. WA -о--......,
-
·НЕА
ДФ,
Слеоующон комоноq
Снеж,1 состоннин лроисrо6нт по
лереlнену tppoнmv Ф1 •
Как видно, возможны два способа синхронизации ввода/вы
вода. При первом вначале на внешнее устройство подается сиг
нал активации (запуска), а затем производится считывание
данных (в нашем примере- протяжка и чтение); во втором -
86!6орко
коможlы
Рис. 2.8
0/НIIOOHlle
(Nсваоо •
НАLТ~, стоноlлен) •
НАLТ-Л'ДФ1
-~.пФ
t ,,,
НАLТ-ЗЕj L 1(INT t-NМI) ·Jt"' .
огр_оммо
'P060ЛIKIJ
ер1,16он11d
'НtН61 сост111ниа лрои~оонт по
лереонену tppoнmv Ф,
Gлеоqющин
KOHtlHQO
вначале МП производит чтение, а затем выдает сигнал актива
ции (чтение и протяжка). Будем называть эти способы соответ
ственно: активация и доступ; доступ и активация.
Диаграмма выполнения команды ввода/вывода МП с воз
можностью ввода состояния ожидания в любом машинном цикле
или в конце команды ввода/вывода показана на рис. 2.6. Таким
41
(23)
(14}
(13)
(12)
JNTEL
8080
(24)
(16)
(21)
(17)
(18)
(19)
READY
+-
(Готовность)
INT
+-
(Прерывание)
HOLD
+-
(Захват)
RESET
+- (Сброс)
WAIT
(Ожидание)
/NTE
➔
а (адресная шина}
d (шина данных)
Под
ние
мп
ыаши
ача .«О» переводит МП в состоя
ожидания. Контакт опрашивается
в состоянии Т2 и Тw каждого
иного цикла по заднему фронту
фазы Ф1
Подача «1» вызывает прерывание
граммы. Временные ограничения не
аrаются
про
нал
Под
ид
ача «1» переводит шины адресную
анных в третье состояние
Подача «1» сбрасывает РС и перево•
МП в состояние MJ •Т1
нимальная длительность сиrнала
ериода
дит
Ми
3п
-+В
сос
ыдается «1», если МП находится в
таянии ожидания или произошел
rраммный останов
про
cl» индицирует разрешение прерыва-
•(Разрешение прерывания) ния
HLDA
(Подтверждение захвата)
DВIN
(Ввод данных)
WR
(Запись)
SYNC
(Синхронизация)
- + «1» подтверждает захват (см. при
чание)
ме
➔ «1» индицирует нахождение шины дан
в состоянии приема
ных
- + Обычно выдается «l», кроме случая
да из МП выводятся данные
коr
Имп улье, используемый для иденти
ации такта Т1 каждого машинно
цикла
фнк
го
Пр им е ч а ни е. Эти сигналы становятся равными «1» с некоторой задерж
кой по отношению к переднему фронту Ф1• Адресная шина и шина данных пе
реходят в третье состояние через некоторое время после появления фронта сле
дующего импульса Ф1•
Рис. 2.9
42,
Продолжение рис. 2.9
1
.
..
~~ t''"
=
• 111
~~
:s
! 1!.
~§!
Информация о ~!
~..
i::
с:,."'
f§ c.i ::с
il
=
де
!I!ltд~818.
., ""с:,.
состоянии
,81\i
...
i::
:! i:: i::
~~1
=ii!
~ (1) ta:
\:}~ ~нl
:;s :s
~~
tiiz 1::sjsj
'1:
~~
('1) i::
('1) ..
::r"
(f) ..
1:: = i::: ===·
Do INTA (Под-
тверждение пре-
рьmания)
ооо
оо
оо
о
1
D1 WD (Запись-
о
1
1
вывод)
1
1
о
о
1
1
Da STАС.К (Стек) о о о
1.о
о
оо
о,
Dз HLTA (Под-
тверждение
о
о
1
останова)
оооооо
1
D, OUT (Вывод)
оооооо
1оо
(}
Do MlrиклMl) 1 о
о
оооо
1о
1
De IN (Ввод)
ооооо
1ооо
о
D7 MEMR (Чтение
о
оооо
о
памяти)
Пр им е чан и е. Слово состояния в МП In 8080 выдается кратковременно в течение
1rакта Tl каждоrо машинного цикла по шине данных, поэтому необходимо позаботиться о ero
сохранении (прим. перев.).
Рис. 2.9
образом, можно осуществить синхронизацию с памятью и оба
типа синхронизации с внешними устройствами.
Не все МП имеют состояние ожидания, подобное изображен
ному на рис. 2.6 . Например, /п 8080 не имеет состояния ожида
ния 4, в то время как МС 6800 имеет только состояние ожида-
ния 4[2, З] (рис. 2.7).
.
Вход в состояние ожидания и_ выход из него обычно осущест
вляются уп9мянутыми ранее сигналами на определенных кон
тактах микросхемы МП. Например, для МП In 8080 появление
логического «О» на контакте 23 («Готовность») вызывает его
переход в состояние ожидания, а появление логической «1» на
том же контакте- выход из состояния ожидания (рис. 2.7 и
2.9). Для МС 6800 переход в состояние ожидания вызывается
подачей логического «О» на контакт 2 (линия «Останов») или
подачей команды «Ожидание прерывания» (код операции ЗЕ).
Выход из состояния ожидания осуществляется подачей логиче
ской «1» на контакт 2 или генерированием запроса прерывания
(рис. 2.8 и 2.10}.
(2)
М 6800 (4)
(6)
(39)
(36)
(40)
(7)
(5)
(34)
ВА
-➔-
ВА
--➔
HALT
(Останов)
IRQ
(Заnрос прерывания)
NMI
+-
- ----..
а (адресная шина)
-- -- + d (шина данных)
Подача «О,, переводит МП в состояние
ожидания в конце текущей команды, а
подача «\» выводит его из состояния
ожидания. В состоянии ожидания шины
а, d и R/W находятся в третьем состо
янии. Шина опрашивается по фронту Ф2•
В состоянии ожидания BA=TSC
Подача «О» прерывает программу. Вре
менные ограничения не накладываются
(Немаскируемое преры-
То же самое, что и IRQ, но отсутству
ет возможность маскирования. Следую
щая команда JMP IND FFFC и FFFD
(косвенный переход через ячейки FFFC16
и FFFD16)
ванне)
TSC
(Управление тремя сос-
тояниями)
DBE
(Разрешение шины дан-
ных)
RESET
,Е-
(Сброс)
ВА
(Адресная шина свобод-
на)
VMA
➔
(Действительный адрес
памяти)
R/W ВА
(Чтение/запись)
Рис. 2.Ю
Подача сигнала «1» переводит шину а
и R!W в третье состояние, а VМА и ВА
в «О»
Подача «О» на этот вход устанавливает
шину данных в третье состояние
Подача «1» вызывает выполнение коман
ды JMP IND FFFE и FFFF (косвен
ный переход через ячейки с адресами
FFFE16 и FFFF16)
«l» индицирует нахождение МП в сос•
тоянии ожидания
«l» индицирует, что на шинах адреса
находится исполнительный адрес
«1» индицирует режим чтения
2.3 . СИГНАЛЫ МИКРОПРОЦЕССОРА
Как и для всех последовательностных схем, работа микро
процессора характеризуется внутренними состояниями и соот
ветствующими внешними сигналами. Эти внешние сигналы
будем называть сигналами управления. Для обеспечения син
хронизации внешних устройств с МП последний формирует сиг
налы состояний. Эти сигналы не отражают непосредственно вну
треннего состояния МП, как это было бы при использовании
переменных состояния (вторичных сигналов).
Для того чтобы правильно использовать сигналы состояния
МП, разработчик должен глубоко понимать их смысл. Это осо
бенно важно для МП. Объясняется это тем, что шины адреса
и данных в МП используются в течение командного цикла по
принципу разделения времени несколькими компонентами МП,
в связи с чем важны временные соотношения между сигналами
управления и сигналами состояния.
Сигналы управления и сигналы состояния вместе будем обо
значать как микропроцессорные сигналы. Эти сигналы у раз
JIИчных МП существенно отличаются. Примером тому может
служить сравнение МП Intel 8080 и Motorola 6800.
2.4 . РЕЖИМЫ РА&ОТЫ МИКРОПРОЦЕССОРА
Системы МП могут работать в одном из следующих режимов:
1) внутреннем, 2) ожидания/счета, 3) проверки и пропуска,
4) прерывания, 5) прямого доступа к памяти (ПДП), 6) прямой
передачи данных (ППД). Рассмотрим подробно все режимы.
Внутренний режим. В этом режиме команды и данные рас
положены в системных ПЗУ и ОЗУ. Так как в этом режиче нет
обращения к внешним устройствам, он не представляет для нас
интереста и в дальнейшем рассматриваться не будет. Заинтере
сованный читатель может найти подробное описание в работе
[1].
Режим ожидания/счета*. В этом режиме внутренние опера
ции МП синхронизируются с более медленными ответами от
внешних устройств путем перевода МП в состояние ожидания
до тех пор, пока выбираемое устройство не ответило на запрос
(см. рис. 3.3). Перевод МП в состояние ожидания был изложен
выше. Режим ожидания/счета характеризуется следующим:
1) отсутствием проблемы временной синхронизации в обыч
ной форме;
2) время, затрачиваемое на разработку, минимально по
сравнению с другими режимами;
3) аппаратурный интерфейс минимален (два проводника -
«запрос» и «ответ»);
* Этот режим используется при организации непрограммного асинхронно
го обмена (прим. ред. пер.).
45
4) концепции режима ожидания!счета легкодоступны для
понимания;
5) сопровождение таких систем несложно.
Недостатком этого режима по сравнению с режимом провер
ки и пропуска является то, что МП простаивает в ожидании
ответа выбранного устройства. В некоторых случаях это не
только нежелательно, но и недопустимо.
Режим проверки и пропуска *. Функционально этот режим
похож на режим ожидания/счета со следующими отличиями.
Синхронизация МП с внешним устройством (ВУ) выполняется
с помощью программного цикла опроса, в течение которого ожи
дается ответ выбранного устройства. В этом цикле МП считы
вает и анализирует состояние ВУ. Если устройство не готово,
то цикл опроса повторяется, в противном случае происходит вы
ход из цикла и переход к дальнейшей отработке программы
(см. рис. 4.1).
Режим прерывания. Используется для прерывания процесса
выполнения программы МП путем подачи внешнего сигнала
(сигнала прерывания) и выполнения некоторой последователь
ности команд (программы обработки прерывания), запрошенной
внешним устройством. В конце программы обработки прерыва
ния управление передается прерванной программе в точку, где
произошло прерывание (см. рис. 5.1).
Как будет показано в гл. 5, проектирование и реализация
этого режима, хотя и осуществляются по четкой процедуре, но
требуют более сложной аппаратуры и программного обеспече
ния, чем для любого другого режима. Основное преимущество
этого режима - высокое быстродействие.
Режим ПДП. В режиме прямого доступа к памяти (ПДП)
устанавливается прямая связь между внешним устройством и
памятью системы (см. рис. 6.1, 6) с целью двунаправленной пе
редачи данных между ними. Этот режим полезен для передачи
больших блоков данных из памяти во внешнее устройство и об
ратно. Хотя такая передача инициируется программой, проте
кает она без ее участия. Обычно, хотя и не всегда, по окончании
передачи данных интерфейс выставляет флажок окончания пе
редачи блока в, чтобы сообщить программе, что указанный блок
данных уже передан.
Вопреки кажущейся сложности разработка и реализация ин
терфейса ПДП весьма проста, в чем мы убедимся в гл. 6. Ап
паратурная часть интерфейса не содержит сложностей, а про
граммная часть для запуска передачи содержит примерно десять
команд на пересылаемый блок.
Внимание читателя обращается также на то, что ПДП при
меняется для обмена с быстродействующими устройствами и не
применяется для таких медленных устройств, как перфоленточ-
• Этот режим используется при организации программного асинхронного
обмена (прим. ред. пер.).
46
ный считыватель, перфокарточный считыватель, перфоратор и
т. д. В гл. 6 будет доказано, что режим ПДП можно использо
вать для обмена блоками между памятью и внешними устрой
ствами, независимо от быстродействия последних. •
Режим ППД. Режим прямой передачи данных (ППД) ана
логичен режиму ПДП с той лишь разницей, что связь для
обмена данными устанавливается между двумя или более внеш
ними устройствами микропроцессорной системы, которая выдает
разрешение на такой обмен (см. рис. 7.3). Этот режим можно
использовать, например, когда необходимо скопировать содер
жимое некоторого блока памяти. •
Так как каждая пересылка банта данных через микропроцес
сор требует выполнения некоторой последовательности команд,
то при пересылке под управлением МП будет потеряно время,
даже если при этом обработка данных в МП не производится.
Поэтому в подобных случаях применяют прямую передачу дан
ных.
Формальный подход к реализации этого режима основывает
ся на использовании последовательностных уравнений, которые
обсуждались в гл. 1.
2.5 . •ПОЛУПРОВОДНИКОВАЯ ПАМSIТЬ
/;
i•
Полупроводниковая память обычно выпускается в виде ин-
тегральных схем в корпусе типа DIP. Каждый такой корпус
содержит определенное число элементов для хранения битов ин
формации: число этих элементов обычно равно степени двух.
Биты могут быть организованы в группы (байты - последова
тельности бит, трактуемые как единое целое), длина которых
кратна восьми (23 ) или меньше. Микросхема памяти, организо
ванная как 2m.2n матрица, содержит 2m+n ячеек для хранения
2m байт длиной по 2n бит. Такая микросхема имеет т адресных
линий, позволяющих адресовать каждый байт в от дельности.
Например, микросхема памяти объемом 128Х8 (27 -2 3 ) содер
жит 1024 (210 ) бита, организованных как 128 8-битовых байтов.
Для такой микросхемы необходимо 7 адресных линий для адре
сации произвольного байта. Аналогично организация 4096 Х 1
описывает микросхему памяти емкостью 4096 бит с 12 адресны
ми линиями.
Кроме адресных выводов, микросхема памяти обычно имеет
выводы выборки микросхем, которые используются для иденти
фикации микросхемы при модульной организации памяти.
Способ распределения битов адресного кода, выдаваемого
МП, между выводом выборки микросхемы и адресными выво
дами определяется архитектурой системы.
Полупроводниковая память подразделяется на несколько ти
пов: ПЗУ, СППЗУ, ППЗУ и ОЗУ. Краткое их описание приве
дено ниже.
47
Постоянное запоминающее устройство (ПЗУ) - это память,
содержимое в которую записывается при изготовлении. Это со
держимое хранится там постоянно и не может быть стерто или
изменено. Благодаря этому ПЗУ, как правило, служит для хра
нения стандартных программ, таблиц и т. д. В отличие от ОЗУ,
ПЗУ сохраняет содержимое при выключении питания.
Основные преимущества ПЗУ - большая емкость, малая по
требляемая мощность, малое время выборки и сохранность ин
формации при выключении питания, недостаток - неизменяе-
Коо
olpeco
Дешиtр
ротор
olpec11
ПJ!/
Треrсто
., __ _.,. 6UЛ6Н/,11
-- - - - ov,pep6J
CIJIHIIA
р11.1реш1ниА
Сиtно11.~
4иlорни
нристо11110
CUHII
lи6орни 1--------------'
кристолло
CUtN{/J/ CIIHI/JONll.11/ЦUV
Рис. 2.11
мость записанной в них информации, поэтому одна ошибка об
ходится очень дорого при серийном производстве.
Структурная схема ПЗУ показана на рис. 2.11 . Выдача
выбранного байта на шину данных МП через трехстабильные
буферы синхронизируется сигналом разрешения выдачи. Естест
венно, что этот сигнал должен подаваться с учетом времени вы-
,,
борки микросхемы памяти. Чаще всего для этой цели исполь
зуется один из входов выборки микросхемы.
Стираемое и программируемое постоянное запоминающее
устройство (СППЗУ). После установки в системе такое устрой
ство ведет себя так же, как и ПЗУ. Различие между ними
заключается в том, что СППЗУ может программировать сам
пользователь. Это означает, что его содержимое можно стереть
и заменить новой информацией. Процесс перепрограммирования
требует спе11иальной аппаратуры, такой, например, как источник
ультрафиолетового излучения (для стирания) и источник высо
ковольтных импульсов (для перезаписи). После того как пер
воначальная информация стерта, новая информация записыва
ется путем подключения каждой его ячейки к высоковольтному
источнику. Благодаря этому происходит заряд соответствующих
емкостей, обладающих возможностью сохранять заряженное со
стояние около 100 лет.
48
СППЗУ на практике используется для запоминания редко
изменяемой или неизменяемой информации, заносимой самим
пользователем.
Программируемое постоянное ;sапоминающее устройство
(ППЗУ) в системе ведет себя так же, как и ПЗУ. Для записи
«1» в выбранную ячейку памяти через нее пропускается ток,
достаточный для пережигания плавкой перемычки. Таким об
разом, создается постоянно разомкнутая цепь, причем этот про
цесс может быть проведен только один раз. ППЗУ не так на-
Cl/tHIJA/Jli
lыlорки
криr:1/111АА(/
Аореr:ныи
deШllfP•
р1тор
03!/
С,rена
Cxtнf/
l116орки --.-f vпраlления
криr:талла
ломнтьн,
7ile,1cmo·
, ___- t шжые
---8o16Vf/11PЫ
Bzol/lы,1118
Сиtнt1л
ра1решен1111
Сl/tЖ/Л
CIJH.lPOHUJOЦUU
IP/W(VmtНut/Jaлur:6)
Рис. 2.12
дежны, как СППЗУ, в особенности для управления процессами
и промышленного применения.
.
Оперативное запоминающее устройство (ОЗУ). Содержимое
может считываться и записываться под управлением программы.
Структурная схема ОЗУ изображена на рис. 2.12 - .
Схема имеет
адресные входы для выборки определенной ячейки ОЗУ и входы
выборки микросхемы в системе памяти.
Для управления ОЗУ обычно используются два сигнала:
сигнал чтение/запись, определяющий выполняемое действие, и
сигнал разрешения для управления временем выдачи/приема
аналогично ПЗУ.
В различных ОЗУ управляющие сигналы различны.
Информация, хранящаяся в ОЗУ, пропадает при выключении
питания. Некоторые ОЗУ, однако, могут работать с пониженным
потреблением мощности, причем переход к такому потреблению
определяется специальным управляющим сигналом. В этом ре
жиме доступ к ОЗУ запрещен, но информация сохраняется при
уменьшенной мощности.
Различают статические и динамические ОЗУ. В статическом
ОЗУ записанная информация при наличии питания сохраняется
без каких-либо дополнительных операций. В динамическом ОЗУ
записанная информация исчезает, если через несколько милли-
49
секунд она не будет регенерирована. Это связано с утечкой за
рядов в емкостях, служащих для хранения информации. Исче
зающий заряд должен быть восстановлен до того, как произой-
дет утечка заряда.
·
•
Статические ОЗУ имеют меньшие емкость и быстродействие,
чем динамические, но они не требуют схем регенерации. Дина
мические ОЗУ, вообще говоря, менее надежны, чем статические.
Стек- блок соседних ячеек ОЗУ, доступный с одного конца
по принципу «вошедший первым выходит последним». В МП
системах адрес стека содержится в указателе стека. Последним
является реверсивный счетчик, содержимое которого обычно
уменьшается на 1 перед каждой операцией записи (занесения в
стек) и увеличивается на 1 после каждой операции извлечения
из стека.
В каждой конкретной системе под стек отводится блок по
следовательных ячеек. Если начальный адрес блока не заносит
ся автоматически в указатель стека, то зто должен предусмот
реть пользователь при составлении программы.
1.6. ПОРТЫ ВВОД.А/ВЫВОД.А
В структурной схеме на рис. 2.13, а показано подключение
входного и выходного портов к двунаправленной шине данных.
Если устройство выбрано адресной шиной и подан сигнал е1 = 1,
оно подключается к шине данных для выдачи информации. Ана•
е,
6.кf}lнqt] n1pm
-----
Рие. 2.13
(j
}ШIIN61.
HNNIJU
,,
,,
,--
-
-
--1
J
6
,,
}ШIIHII
hNNIII
логично, если е2 = 1, то выбранное устройство подсоединяется
через порт ввода к шине данных для приема информации (когда
сигнал разрешения е равен нулю, трехстабильные буферы ведут
себя, как разомкнутые цепи). Очевидно, что пока информация
пересылается от одного устройства к другому, все другие уст
ройства, подключенные к шине данных, должны быть отключены.
Схема трехстабильного буфера, подключаемого к шине дан
ных устройства и способного работать как на ввод, так и на
вывод, показана на рис. 2.13, б. Если е, = 1, а е2 =0, устройство
50
принимает данные с шины, а если е 1 =0 и е2 = 1,- выдает дан
ные на шину; условие е1 =е2=О- условие отключения от шины.
Применение портов ввода/вывода в МП системах показано на
рис. 2.1 .
В рассматриваемой системе используется только одна шина
как при чтении, так и при записи. Такие шины называют дву
направленными.
2.7 . АДРЕСНЫЕ ДЕШИФРАТОРЫ
В схеме на рис. 2.1 для простоты использованы отдельные ад
ресные дешифраторы. Они представляют собой элементы И, вы
дающие выходной сигнал, когда на их вход подается опреде
ленная комбинация сигналов. Например, дешифратор адреса 6
АоAtA.tА,А#..AsА6А1
и
А6
Дeшu,ppamfl/J qJpeca
А
в
с
(2°1
(2'}
(22)
а
/j
Рис. 2.14
на 4·битовом адресном поле состоит из двух инверторов и эле
мента И (рис. 2.14, а).
На практике для этих целей используются интегральные
схемы дешифраторов. Типичный дешифраrор имеет три входных
линии и восемь выходных, т. е. декодирует 8 различных адресов
,(рис. 2.14, б). Большее число адресных линий можно декодиро
вать с помощью соответствующим образом соединенных микро
схем дешифратора, применяя методы, описанные в гл. 1.
2.8 . ИНТЕРФЕАСЫ
Интерфейсы предназначены для анализа состояния двух или
более устройств, между которыми пересылаются данные, и для
передачи последовательности сигналов управления для этих уст
ройств. Последовательность передачи сигналов в некоторых си
стемах программируется. Структурная схема интерфейса между
источником и приемником показана на рис. 2.15.
Формально интерфейс определяется как набор цепей, сигна
лов и алгоритмов, необходимых для передачи данных между
цифровыми устройствами.
5)
Рис. 2.15
Сигналы
,11рикозо6
Исmоl/ник
ClltНtЩI
ЛРUК/1306
Инmeprpetic-
Внешнее vл,оа!ление
2.9. МЕТОДИКА ПРОЕКТИРОВАНИЯ
Приемник.
CU2H8ЛIJ.
COCIТIORH/11
Предлагаемая методика проектирования позволяет неквали
фицированному разработчику создавать надежные и простые
системы и в то же время совершенствовать свои знания при
работе с более сложными системами. Изящность решения не
является целью разработки, но может быть получена без осо
бых усилий.
При проектировании МП систем необходимо учитывать сле
дующие требования:
1. Надежность системы. Все системы должны функциониро•
вать правильно.
2. Простота обслуживания. Системы должны быть просты в
обслуживании.
3. Затраты на проектирование. Должны быть минимальны,
чтобы облегчить творческий подход к проекту.
4. Документация. Должна быть краткой и точной. Диаграм
мы и символы должны быть строго определены, они должны
легко пониматься зарубежными потребителями.
5. Процедура проектирования. Должна быть простой для ре•
ализации технической идеи. В нашем случае никаких дополни
тельных теоретических знаний не требуется.
6. Модификации. Системы должны легко преобразовываться
для новых условий.
2.10. ПРОЦЕДУРА ПРОЕКТИРОВАНИЯ [1]
Процедура проектирования состоит из пяти шагов (рис. 2.16).
Шаг 1 - формирование технического задания. Спецификация
проектируемой системы выражается разработчиком в принятых
терминах, чтобы гарантировать полноту учета всех требований
к системе.
Этот шаг очень важен для успешного взаимодействия между
разработчиком системы и потребителем. Упущения на этом шаге
52
обычно служат причиной неработоспособности системы и при
водят впоследствии к необходимости последующего перепроек
тирования.
Шаг 2 - внешнее проектирование. Разработчик изучает вы
ходные характеристики устройств, которые будут использованы.
При этом следует избегать любого рассмотрения внутренних ха
рактеристик.
Шаг 3 - системное проектирование. Разработчик детализи
рует характеристики системы в общих чертах при помощи струк
турных схем и временных диаграмм.
Ночоло
Форнироdоние тек
ниqеского .JOOOIIU/1
Внвшнее проентироlоние
С11стенное проектироl,,нце
KoHCfJЛ6moцuu потре5ителА
Лроектироdt1Н1Lе annt1pamgpнoii qacm
Рис. 2.16
Лроентиро6t{_ние
лрогроннного 06еспе11енин
Шаг 4 - проектирование аппаратурной части. Результат 4-го
шага неокончателен и может быть изменен на 5-м шаге. 4-й и
5-й шаги многократно повторяются по известной методике по
следовательного приближения на основе хорошо проверенных
методов Г 4].
Шаг 5 - проектирование программного обеспечения [5]. На
основе аппаратурного решения на 4-м шаге и набора команд
машины создается программное обеспечение системы. Этот про
цесс хорошо выявляет улучшения, которые можно ввести в ап
паратурные средства на 4-м шаге. Фактически 4-й и 5-й шаги
можно рассматривать как дополняющие друг друга, они долж
ны повторяться до тех пор, пока не будет получено удовлетво
рительное решение.
l.tt. СПИСОК ЛИТЕРАТУРЫ
.
1. Zissos D., Duncan F. G. Digltal Interface Design (2nd edltion). Oxford
University Press.
2. INTEL 8080 Microprocessor User's Manual, September, 1975.
53
3. М6800 Mlcroprocessor System Design Data. Motorola, 1976.
4. Zissos D. ProЬ!ems and Solutions in Logic Design. Oxford University
Prrss, 1976.
5. Duncan F. G. Microprocessor Programming and Software Design. Prenti•
ce-Нall, 1979.
СИСТЕМА ОЖИДАНИЯ/СЧЕТА
В этой главе излагается концепция режима ожидания/счета
и его использование для проектирования МП систем {МПС).
Для проектирования систем ожидания/счета не требуется спе•
циальных знаний в электронике или технике МП и поэтому его
могут провести неспециалисты в этих областях. Методика про
ектирования изложена в соответствии с алгоритмом, описанным
в параграфах 2.9 и 2.10.
Э.t. &АЗОВЫЕ ОПРЕДЕЛЕНИЯ
Как было отмечено в гл. 2, в течение выполнения операций
ввода/вывода важное значение имеет синхронизация цикла МП
с внешним устройством. Например, если МП выдает 1 байт ин
формации каждые 10 мкс, а в приемнике (печатающем устрой
стве) для печати каждого байта необходимо 100 мкс, неизбеж
на потеря 9 байтов из 10, если скорость работы МП не умень
шится. Таким образом, при проектировании МПС необходимо
предусмотреть, чтобы МП не загружал внешнее устройство (ВУ)
большим потоком информации, чем оно может обработать.
Синхронизация МП с внешним устройством при таких усло
виях обычно достигается (как и в ЭВМ) введением программно
го цикла ожидания готовностц устройства. Этот метод, рассмот
ренный в следующей главе, будем в дальнейшем называть ме
тодом проверки и пропуска.
В тех случаях, когда синхронизацию ввода/вывода можно
выполнить снижением тактовой частоты микропроцессора, ис
пользуют метод, известный как удлинение синхроимпульса ( clock
stretching) [ 1]. Этот метод рассматривается также в следующей
главе. Наиболее прогрессивным является третий метод синхро
низации ввода/вывода, разработанный Д. Зиссосом и Ф. Г. Дун
каном [2]. Согласно этому методу, синхронизация внутренних
оnераций МП с медленными внешними устройствами осущест•
вляется автоматически, при этом отпадае:г необходимость во
54
внешних синхронизирующих сигналах. Благодаря этому МПС
легко реализовать с достаточной надежностью. Кроме того, та
кие системы могут проектировать разработчики, не обладающие
специальными знаниями в электронике или технике МП, напри
мер, физики, химики, инженеры-механики, медики и т. д.
Системы ожидания/счета должны удовлетворять следующим
требованиям с точки зрения системного разработчика:
1. Минимальным временем на разработку.
2. Минимальным аппаратурным интерфейсом. Он состоит из
двух проводников запроса и ответа (см. приложение 1).
3. Проблемы временной синхронизации практически отсут
ствуют.
4. Быстродействие такой системы сравнимо с получаемой по
методу проверки и пропуска.
5. Малым объемом программного обеспечения.
С точки зрения пользователя:
1. Высокой надежностью вследствие малого объема аппара
туры.
2. Простотой концепции ожидания/счета.
3. Легкостью проектирования систем ожидания/счета без спе
циальных знаний электроники, т. е. неквалифицированный поль
зователь может разработать и создать свою собственную систему.
4. Простотой и доступностью алгоритма функционирования.
5. Возможностью внедрения принцип_аожидания/счета в уже
существующие системы.
6. Простотой со11ровождения.
3.2 . КОНЦЕПЦИЯ ОЖНДдННSI/СЧЕТд
При отработке команды ввода/вывода микропроцессор пе
реходит в состояние ожидания. Это состояние, как следует иэ
гл. 2, характеризуется приостановкой выполне
ния внутренних функций МП без выключения
синхронизации. При переходе МП в состояние
ожидания сигнал w на линии ожидания изме
няется от «О» до « 1» (рис. 3.1).
•
Выход из состояния ожидания инициирует-
ся сигналом на линии счета g. В нашем слу
чае МП выходит из состояния ожидания после
изменения сигнала на линии g от «О» до cl».
3,3, СИСТЕМЫ ОЖИДАНИЯ/СЧЕТ.А
мп
1--ll-::-ll-'Нll_'I_ W
oжиltJHUI
IIUHIJI &1/tЛЮ
9
Рис. 3.1
Структурная схема системы ожидания/счета показана на
рис. 3.2 . Система работает следующим образом. При выборке
команды ввода/вывода микропроцессор автоматически переходит
в состояние ожидания, а на внешние. устройства посылается
сигнал запроса. МП остается в этом состоянии до тех пор, пока
55
внешнее устройство не ответит на запрос, после чего он возвра
щается в состояние счета, замыкая цикл {рис. 3.3).
I(ак указывалось ранее, интерфейс типа запрос/ответ (см. при
ложение 1) состоит (рис. 3.2) из двух проводников [2]. Ниже
приводится описание такой системы.
г-1------------------,..-----0
NЛ
Рис. 3.2
w
UtHIIPЫM
g
е
CUIH(IЛ6I
IJЛPl14ЛtHUR
ИнmtpfPelic
Начнем со схемы, изображенной на рис. 3.4. Сигналы w, g,
а, r имеют следующие значения:
сигнал w: «1» на этом выводе (линия ожидания) индицирует
нахождение МП в состоянии ожидания;
·
вн,шне,
vcmp,tJcmlo
.1(1KflNI/UЛfJ
P1Jlomv
Рис. 3.3
1
НПра6ото1т
vcmpotJ-
m
ен,шнr,
ст611 жlе
1
Рнспознона
команоа
66000/ 6616080
нп Ж,lem
vcmpoli-
11111,m
Внешнее
cmlo рно
1
Приемник
нп
11
r
Рис. 3.4
сигнал g: переход из «О» в «1» на этом выводе (линия счета)
выводит МП из состояния ожидания;
сигнал а: переход от «О» до «1» на соответствующей линии пе
реводит устройство во включенное состояние (активирует его) ;
сигнал r: до тех пор, пока внешнее устройство готовит ответ,
r=O; когда внешнее устройство закончит ответ, оно изменяет
сигнал r с «О» на «1». Очевидно, что новое обращение недопу
стимо, пока r = О.
Диаграмма состояний, соответствующая работе этой системы,
показана на рис. 3.5 . Используя методику минимизации числа
состояний (см. параграф 1. 7), составим эквивалентную таблицу
56
состояний (рис. 3.6, а). В этой таблице можно слить три строки
в одну, как показано на рис. 3.6, 6.
Непосредственно из таблицы состояний можно записать сле
дующие уравнения:
а= wr+wr+(wr)= w;
g=wr+wr+(wr)=г.
МП не 8 состо-
Внешнее gcmpoticm!11
So
лнц11ож11iJан11н
sI
законvцлора6отv s2 • •
------
ра5отоет
r
Внешнее vcmpod·
Внешнее vcmpou-
стОо ра5отает
cm61J жilem
МП жоет
о=О
w
a=t
r
a-t
fj=f
g=f
fj•Q
1.- _ ..; .___
-- -1 МП О сос-.___,_;_____, Внешнее
тоянцu ож11ионu11
gcmpoucmDo .1олускоетсв
Рис. 3.5
(1)
(2)
Схема, соответствующая данной системе уравнений, показана
на рис. 3.7 . Как видно, интерфейс типа запрос/ответ между МП,
оснащенным логикой ожидания/счета, и устройством состоит из
wr
00
01
®
SQ
11,g.• O,f
So
s,
rj,.f
Sz
а
wr
00
01
Sm
\sOfZI !S012!
Ф,Ф=О,О o,g~o,t
о
Рис. 3.6
ff
s;
~.,
®f,f
s,
f,ф
11
!S012!
,.,
10
f
Sz
l,Ф
®f,0
tO
\sot2!
!,О
двух проводников.
Для устройств ввода
типа запрос/ответ могут
потребоваться дополни
тельные логические схемы
для формирования сигна
ла разрешения, управляю-
г--1------------t!
Приемник
мп
а
r
1-----+-- - -+- - -W
L___Jl---------' ---f
Рис. 3.7
щего портом. Синхронизация МП с устройством ввода может
осуществиться введением состояния ожидания либо в течение
цикла ввода/вывода, либо после него (рис. 3.8). Сигнал чтения
равен «1» в течение времени выдачи внешним устройством ин
формации в МП.
В схеме на рис. 3.8, а операция ввода осуществляется после
довательно путем запроса устройства, а затем чтения с него. На
пример, для считывателя с перфоленты - это способ «протяжка
на шаг и считывание». В схеме на рис. 3.8, б используется
57,
обратная последовательность: сначала чтение, а затем запроа
{активация). Для устройства считывания с перфоленты это -
«чтение и протяжка на шаг».
Из 'lle"'i"'
изi'llel/eнqe
Kr1'ff/M i'
f/ 'PeCf/
w•O
(w•OJ
е-о
е-о
e-qmeнve
W•O
w•O
w-(qmeнueJ
а
Изlлеqенqе
и.i'Лe'ltнve
ВыпопнеНllе
KOHOHd61
о ,ресо
44otJo/ lыlodo
(w=OJ
(w=OJ
(w=Ol
е==О
е-о
е-vтение
w=O
w•O
w~o
о
!ЧmeНQe•f, пони llH,Popнo111111 qumoemcн и1 lнешнего 11cmpoticml11 1 окк11н11л11тор.
Рис. 3.8
Непосредственно из рис. 3.8, а следует
е = чтение + ожидание;
w =ожидание+ чтение,
иначе
е = ожидание + чтение = w
(рис. 3.9,а).
г--.-----------d
е
f1П
ИcrnOl{HIJK
мп
~
~
~..
;i
:Э"!(>
~
"
~
(За)
--- --- --- t-- -w
--------------w
.____,________...___ 9
L__J___ ___ ___ __. .. .. ._ __ 9
а
Рис. 3.9
Аналогично из рис. 3.8,6 получnм
58
е = чтение + ожидание =
= чтение;
w = ожидание.
о
(Зб)
Отсюда видно, что, когда МП перехдоит в состояние ожидания
в конце выполнения команды (рис. 3.8, б), двум линиям необхо
дима дополнительная логика управления трехстабильным (ТСБ)
буфером и формированием сигнала разрешения выдачи - е
(рис. 3.9, б). В МП типа МС 6800 как раз реализован этот под-
г-t-~,-----------------------------(1
t---iг---------1-----~---------d
Adpecн61t1
tJe111utppll/lIOP
нп
CUZНIJll6I
мл
Рис. 3.10
е,
,,
#О
#f
#n-1
Оо
l'o
а,
r,,.,
г;;-::::::::--::J~-4-----1--+------1----1-w,
r,
On-f
Дfr,rljA6·
типлек- ----------------w,
сор
L..:.::,:.......J---t------+--------t-%
г---,--..L..-----J.-------~gll
i------------------ ~g,
L....._ ,_ __J ~ ---- ----- ---- -""'-- 9n-
г;;-~-=:-,-----------------ео
1-----------------,,
1.-..;.,.....J----------------,17
AlptCHtJ/f ШUHfl
ход, в то время как In 8080 построен н_а принципе ожидания во
время выполнения команды.
Для расширения системы с целью подключения п устройств
преобразуем уравнения ( 1), (2) и (3) к следующему виду:
а,,.= Amw;
g = Aoro + Alrl + ... + Aп-l'п-li
ет = Ате.
Схема реализации этих уравнений показана на рис. 3.10. На
рис. 3.11 изображена схема упрощенной реализации системы
ожидания/счета для .п устройств. Очевидно, что адрес ожидаемо
го устройства должен постоянно выдаваться микропроцессором,
пока он находится в состоянии ожидания.
Отметим, что пока информация пересылается от источника
к приемнику (приемникам), все другие источники, подключенные
к шине данных, должны быть отсоединены от нее, т. е. трехста
бильные выходные буферы их портов должны находиться в тре
тьем состоянии. Приемники при этом могут быть непосредствен
но подсоединены к шине данных своими входами.
59
Для некоторых многофункциональных устройств, таких, на
пример, как накопитель на магнитной ленте, необходимо исполь-
d
to
е,_,
1#О1[
*'
1
1#л·I1
мпим·
ао+ '-li
,, ...
r,
Оп./ '-
rп-
Z/J'IICKIН
С,1'1/11(1
QJ/(~q-
HVR 'C'II •
та
Рис. 3.11
зовать несколько пар линий ожидания/счета. Например, пара
линий ожидание/счет используется для реализации обратного
считывания, для разгрузки и т. д.
Э.4. поrиЧЕСКАЯ СХЕМА ОЖИДАНИЯ/СЧЕТА
Хотя современные микропроцессоры не предназначены для
непосредственной работы в режиме ожидания/счета, они могут
работать в этом режиме, если дополнить их простой логической
мп
схемой ожидания/счета, структур
d пая схема которой изображена на
рис. 3.12. Схема предназначена
для поиска команды ввода/выво-,
w да, по которой осуществляется об-
С11гналь1 МП l!otVl/tt:•
i--;.: .; .. .;. .;.: ,; .;, . ;,; .i ,. j KIR С,1'1•
11
ращение к устройствам, способ
ным вызвать возникновение ситу
ации ожидания (устройств с адре
сами Aw), и перевода микропро
цессора в состояние ожидания при
Рис. 3.12
NQ.DJНIJ•
"
81НЩ/СW- ' 1
та
,
появлении такой команды. Поль-
зователь, знакомый с принципами
логического проектирования и имеющий практический опыт про
ектирования [3], легко выполняет проектирование логической
схемы ожидания/счета. Основная трудность, возникающая при
этом, заключается в точной интерпретации смысла сигналов мик
ропроцессора и временных соотношений между ними.
Алгоритм проектирования рассмотрим на следующих приме
рах.
60
Пример 14. Построить логическую схему ожидания/счета для МП /п 8080.
Структурная схема микропроцессора показана на рис. 3.13,а, а временные дн-
г--,-----------а
l----➔-----+----11
INTEL
1/0
8080
w
Mf
WAJТ{OIКI.IPQHVe) noz1.1чetк(IR
JJBIN (Прием)
схема
OЖIIUOHUR/
Ф,
с11ето
REAJJY {Готов-
ност1,)
g
а
Рис. 3.13
и
1/О(dВОД/ВЫВОД)
"О
аграммы - на рис. 3.14. Диаграмма состояния соответствующей схемы пока•
зана на рис. 3.15.
Исходное состояние схемы So соответствует состоянию, когда микропро
цессор функционирует, а все внешние устройства, способные работать в ре•
мз
81,mолнени, комflн8ы
Ф1о
I
11!
о
/NP I
(8606) О ____________,
JJBIN I
{Прием) О ___,
WAir f
(Ож1.1dон1.1еJО 1--------+- -- --1 --- -. .,
W{•e) ~ 1-------1- -- - --+ - -- __,
Рис. 3.14
1
8800 OOHN/JI.( !
окк11м111111тор {11тение)
жиме ожидания/счета, неактивны. В этом состоянии система ожидает появле
ния команд ввода IN (11011011) или вывода OUT (11010011) при извлечении
их из памяти микропроцессором. Для обнаружения этих команд применяется
схема И (рис. З.13,б), которая выдает сигнал «1-» при появлении на ее входе
команды ввода/вывода. Этот выходной сигнал используется для перевода си
стемы в состояние S 1• В состояние S2 система переходит в следующем машин•
61
...
яом цикле, когда микропроцессор находится в состоянии М2,Т8 (см. рис. 2.7).
В состоянии S 2 на линию READY (готовность) (рис. 3.13,а) подается ло•
rический «О». Благодаря этому микропроцессор через три синхропериода пе•
реходит в состояние ожидания МЗ •Tw, устанавливая при этом линию WAIT
(ожидание) и сигнал w (рис. 3.13,а) в «l». Переход сигнала w в «1> активи•
зирует внешнее устройство, адрес которого находится на шине адреса. I(огда
сигналы r и g на внешнем устройстве (см. рис. 3.7) находятся в состоянии ло•
гического «О», система переходит в состояние Sз, Возврат системы в состояние
So осуществляется по первому синхроимпульсу, пришедшему после окончания
Oжudqнue
команdы
:OBIN
f}floga/f1Dtf10·
Q(/
мt-z/oJl
REAJJY•I
W•e•
-
_,,,
-
•JNf',lJBIN
Aw:Л_oBIN
АВ=ОО
Рис. 3.15
s,
Росло,нона
коможJо
ddodo/dы·
floiJo.
Oжudoнue
(IQ/)iCO ОЖ/J·
QOHIJR/Cl{emo
IШJJY"I
w=O
е•О
01
пФ1
g,.J L
1l:OBIN
Aw
МП808Оле-
pe)'odum fJ
состоннuе
OЖIJl}OH/JR
Jолqск
1/нешнего
IJ.Cmpolicml!o
REAJJY•O
w•WAIТ
е=Ф=w
ff
Внешнее
vcmp_oocmdo
WAIТ·{Jt'
omfJtl{oem
МПжdет
..
/Ш!JУ=О
waWA!Т
е•Ф=w
/О
работы внешнего устройства, т. е. после того как внешнее устройство целиком
ответило на запрос, установив сигналы r и g в «1>.
Реализация такой диаграммы состояний весьма проста. Алгоритм, исполь•
зуемый для этого, описан в параграфе 1.10. Непосредственно из диаграммы
.состояний (рис. 3.15) получаем
SА = S1Aw = ABAw, поэтому JА = BAw;
RA= S3g+(S0) = ABg+(АВ)= Bg, поэтому КА=Bg;
S8 = S0M1 • 1/0 + (S1Au) + (S2MI) + (S3MI)
=-ABMI ,1/0+ (ABAW) + (АВ,MI)+ (АВ ,MI)
=BMI •1/0, поэтому J8 =MI ,//0;
R8 = S2WA!Tg + S1.Aw + (S3)
= ABWA!Tg+ ABAW + (АВ)
= AWAIТg+ ABAre-, поэтому К8 = AWAlТg+AAw;
С=(S0 + S1
)
DBIN+(S2+S3 )
Ф1 = ADBIN + АФ1;
READY=S0+S1
=АВ+Ав
=А,
,rде DBIN соответствует сигналу команды «Ввод данных:..
Поскольку микропроцессор /п 8080 входит в состояние ожидания при выпол
нении команд ввода/вывода в течение цикла выполнения команды (см. пара•
-rраф 3.3), то
Для ln 8080
Р- = ожидание + чтение = w.
ожидание = (S2 + S3) WАIТ = AWAIT;
чтение = INP DBIN.
Подставляя эти выражения в уравнение для сигнала разрешения е, получаем
е=АWАIТ+INPDBIN=w.
Соответствующая схема логики показана на рис. 3.16. Следует обратить.
внимание на тот факт, что никакие дополнительные логические схемы разре-
А
JJB!N
А
'1'1
lJB!N
Рис. 3.16
А
А
Системныli сброс
w
в
А
WAI[
~;
"U
А
д,,,
HEADY
шения в портах ввода/вывода системы ожидания/счета при использованиз
МП ln 8080 не требуются.
Пример 15. Спроектировать логическую схему ожидания/счета для микро•
процессора Мс6800.
•
Рис. 3.17
Пример, м-1000,,,х-сLНА(коп-4f)
M+f•too111,Y•CLHB(кon•SrJ
Пplll'/tl{fJN11e, f. на ,,штр11.rо/Qнныr vvocmК6r 11нрорноц111
NfJ ШIINDr NI onpeltlllNfJ.
2. Cpedн11il VPDIIHI но IIIDI/JDH/lfl IINllll,/11,PVlm
IЩDК611Hntloнcкot COCIIIO/fH/11,
Микропроцессор Мс6800 останавливается в конце команды путем перево-·
да линии HALT (контакт 2 корпуса МП) не позже, чем через 100 нс после
появления фронта импульса Ф 1 в состояние «О:. (рис. 3.17).
Так как выполнение команды ввода/вывода в начальных циклах не отли
чается от обычного обращения к памяти, то разработчики систем, как прави•
63,
JIO, располагают адреса внешних устройств в поле адресов памяти. Это позво
ляет определить цикл ввода/вывода по появлению адреса устройства на шине
данных в течение цикла извлечения адреса или на адресной шине в течение
цикла выполнения. Обращение к соответствующим временным диаграммам,
приведенным в различных изданиях, к сожалению, не дает необходимого на
бора сигналов, позволяющего отслеживать содержимое шин данных в течение
цикла извлечения адреса (автор не желает подчеркивать, что такой набор сиг
налов обязательно существует').
Из-за этого рекомендуется применение второго метода, т. е.
анализ адресной шины в течение последнего цикла команды.
Используемые для этой цели сигналы показаны на рис. 3.17 (они
взяты из работы [1]). Из этой диаграммы ясно, что сигналы на
г--....-- -- -- - -
0 адресной шине стабильны в течение
1--- ,.- - - - - - d последнего цикла команды, начиная
/16800
V/'1A
51--------i Логико
ВА ож11dо-
7 ~-----Ф2-нин/счета
НАLТ
Рис. 3.18
от спада синхроимпульса Ф,. Это оз
начает, что нельзя сбросить в «О»
сигнал линии HALT в течение 100 нс
w после появления фронта Ф,, как это
требуется в руководстве к МП. Эта
проблема на практике решается пу
тем добавления команды NOP (нет
операций) после каждой команды
g ввода/вывода. Ниже приведены две
возможные схемы, реализующие
этот метод.
Схема 1. Набор сигналов микро
процессора, необходимых для реализации этой схемы ожида
ния/счета, показан на рис. 3.18. Временные диаграммы изобра
жены на рис. 3.17. Диаграмма состояний изображена на рис. 3 .19.
Функционирование схемы происходит с.11едующим образом. Ис
ходное состояние - So, Схема находится в этом состоянии, пока
микропроцессор активен, а внешние устройства, работающие в
режиме ожидания/счета, неактивны. Когда адрес обращения к
системе ожидания/счета обнаруживается на адресных шинах в
последнем цикле выполнения команды, схема переходит в состо
яние S1 по синхроимпульсу Ф2• Заметим, что, согласно рис. 3.17,
сигнал на линии VМА и сигналы на адресной шине в течение фа
зы Ф2 последнего цикла текущей команды стабильны.
В этом состоянии сбрасывается в «О» сигнал на линии МП
-.,..--=
HALT. Это вызывает переход МП Мс6800 в состояние ожидания
(останова) в конце следующей команды NOP. Переход микро
процессора в состояние останова вызывает установку в «1» сиг
нала на линии ВА (адресная шина свободна), как показано на
рис. 2.8 и 2.10 (отметим, что шины данных и адреса и линия
R/W находятся в третьем состоянии, пока МП находится в со
стоянии ожидания). Это вызывает установку сигнала ожидания
w (рис. 3.7) в «1», что эквивалентно подаче запроса на внешнее
устройство. Когда внешнее устройство отвечает, устанавливая
64
при этом сигнал готовности r, а затем и сигнал g (рис. 3.7) в «О»,
схема переходит в состояние S 2 .
Возврат в состояние S 0 происходит при появлении первого
же сигнала Ф 2 , следующего за окончанием сигнала ответа внеш
него устройства, о чем сообщает переход сигналов r и g в « 1»
(рис. 3.7).
Алгоритм построения логических схем по диаграмме состоя
ний описан в параграфе 1.9 . Ниже приведена последовательность
So
О.~111Jоние
О. peOOQN(U·
~
dония/сvе-
то
VMA·AwJl
HALTaf
i.... ,.
w-o
t АВ•ОО
Рис. 3.19
П<?г
g,JL
s,
PoCПQJHO·
но ожшJо·
ние/сvет
НАLТаО
w•BA
01
S2
6800Нft!em,
Не11СЛQЛ6·
~ dнешн11.е
зуемо,
vcmoou•
состоя·
BHJl ст6о
ние
роботоет t--
HALТ•f
НАLТ•О
w•f
w•O
ДФ.t
ff
lfO
реализации схемы по диаграмме состояний (рис. 3.19) с приме
нением этого алгоритма:
SA = Slg (ВА)
= A.Bg (ВА), поэтому JА = Bg (ВА);
RA=S2g+Sз
=ABg+AB
= Ag+Ав, поэтомукА=g+в;
Sв = S0 VMAAw
== ABVMA Aw, ПОЭТОМУ J в= А VMA А 111;
Rв=S2g
= ABg, поэтому Кв = Ag;
HALТ=S0+S3=АВ+АВ=В;
w=S1(ВА)+S2
= АВ (ВА)+АВ=В(ВА)+АВ.
Для микропроцессора Мсб800
чтение = VMA AwФ2R/W.
Подставляя эту величину в уравнение (Зб), получаем
е = чтение
= VMA AwФ2R/W.
Соответствующая схема показана на рис. 3.20.
3 1-459
65
Схема 2. Диаграмма состояний для второго варианта логиче
ской схемы ожидания/счета Мс6800 показана на рис. 3.21. Функ
ционирование схемы ясно из рисунка и требуются лишь незначи
тельные пояснения.
ll---r -- -. .
g
ОА -......_-
Сvt:тенж,I0 сорос
А
д
s-г--,
o--r---....
ВА -,..__.,,
1:>-----w
д-.,__-
Рис. 3.20
v~~ ::::.:г--'\
Фz :=::1__)1------,,..,
fl/W
В отличие от схемы 1, которая является синхронной, схема 2
асинхронна. Асинхронные логические схемы рассматривались в
параграфе 1.9.
So1
Ож11dон11е
odpeco ож11-
QOHiiR/C'ltmo
HALТ«f
w-o
АВ=ОО
Рис. 3.21
VMA AwФz
ВА·Ф,
s,
Рослознано
OH(IJOOHIII/
C'lt'm
8А
НАLТ•О
w•O
01
S2
Sз1
М68ООлере-
М6800 ОЖ/1•
XDOlltn 4
•
daern.
состоннiiе
Внешнее
011(/JOOHUR
IJCrnpolirm!o
9 работает
НАLТ•О
HALТ•g
w•t
W•f
ff
!О
Булевы уравнения, описывающие схему 2, получаются непо-
средственно из диаграммы состояний:
условие установки А = В (ВА);
условие сброса
условие установки В= A(VMA) Аt11Ф2;
условие сброса В = Ag➔ А+ g.
66
iA
ё
g
Уравнения схемы 2 принимают вид
А=В(ВА)+А(В+(ВА)+Ф2);
В= А(VMA)АwФ2+В(А +g);
HALТ=S0+S3g = А.В+ABg=АВ+Bg;
w= S2+S3= АВ+АВ=А.
Как и для схемы 1,
е = чтение = VMA AwФ2R/W.
VMA А
А
q
в
A------------w
Соответствующая схема по
казана на рис. 3.22 . Для сох•
ранения ясности процедуры
проектирования ее уравнения
не минимизированы.
Рис. 3.22
Из рис. 2.10 следует, что су•
ществует некоторая внутренняя
связь между сигналом на ли•
нии ВА ( шина данных свобод
на) и входным сигналом на ли•
нии TSC (управление тремя со
стояниями). Установка линии
TSC в «1» сбрасывает ВА в «О». Это может привести к потере
сигнала w, если сигнал на TSC возникнет во время отработки
цикла ожидания/счета. Эту трудность можно устранить отклю
чением контакта 39 (TSC) на время выполнения цикла ожида•
ния/счета. Для этого используется схема И с входными сигнала•
ми тsс и s2+s3.
Тогда «контакт 39» == S2 + S3 TSC
== (АВ + АВ) TSC == ATSC.
Состояния S2 и S3 описаны на рис. 3.21 .
3.5 . ЗАДАЧИ Н РЕШЕННI
В этом параграфе с помощью задач и их решений иллюстри•
руется методика проектирования. Обращается внимание чита•
теля на тот факт, что, хотя примеры приведены для микропроцес•
3*
67
соров !п 8080 и Мсб800, описанные процедуры можно применять
для всех типов микропроцессоров. Особо хочется отметить, что
первые три шага алгоритма проектирования осуществляются
вообще безотносительно к типу микропроцессора.
Задача 1. Поиск записи. Имеется считыватель с перфоленты
и МП, необходимо спроектировать систему, останавливающую
Симво.п
8-й КОД
11
Симво.п
8-11 код
7бю 8бит
7 бит 8бю
Пробел 040 24'()
072 272
11
042 24:.!
073 273
'1::
043 243
=
075 275
044 244
?
077 277
~;
045 245
а*
100 300
&
046 246
А
101 301
' (кавыч-
в
102 302
ка)
047 247
с
103 303
~ 050 250
D
104 304
051 251
в
105 305
*
052 252
F
106 306
+
053 253
G
107 307
, (запятая) 054 254
н
110 310
055 255
/
lll 311
056 256
J
112 312
/
057 257
к
113 313
Перевод
[:,
114 314
строки
012 212
м
115 315
Возврат
N
116 316
каретки
015 215
о
117 317
Забой
177 377
р
120 320
о
060 260
Q
121 321
1
061 261
R
122 322
2
062 262
s
123 323
3
063 263
т
124 324
4
064 264
и
125 325
5
065 265
V
126 326
6
066 266
w
127 327
7
067 267
х
130 330
8
070 270
у
131 331
9
071 271
z
132 332
Рис. 3.23. Коды символов
* Симво.n коммерческое «При».
дальнейшее считывание ленты и устанавливающую флажок при
обнаружении последовательности символов 4-5-6 .
Для реализации использовать режим ожидания/счета, опи-
санный выше для микропроцессоров In8080 и Мс6800.
Решение для !п 8080.
Шаг 1 - формцрование технического задания. Основная цель
проектирования - построение системы просмотра принимаемых
68
данных для обнаружения определенных последовательностей,
таких как метки, пороговые величины и т. д.
Шаг 2 - внешнее проектирование. Микропроцессор имеет ло
гическую схему ожидания/счета, а фотосчитыватель является
мп
е
w1
g1
Рис. 3.24
е
/ Сvитыdотель
о
Интерtреис
1
r
I
l
о
d
устройством типа запрос/ответ (см. приложение 1). Информация
на ленте задана в коде ASC 11 (рис. 3.23).
Шаг 3 - системное проектирование. Структурная схема си
стемы показана на рис. 3.24, а алгоритм работы - на рис. 3.25.
НОl(ОЛО
B6od
нет
Нет
Нет
!Jcmoнud11m~ 1р11ожок
Стол
Рис. 3.25
Шаг 4- проектирование аппара
турной части. За исключением изоб
раженного на рис. 3.26 порта вво
да/вывода никакие другие дополни
тельные аппаратурные средства не
требуются. Это связано с тем, что
для In 8080 e=w, как было доказа
но в параграфе 3.4 .
( Продолжение на стр. 83)
,
INТEL
/ Cvum6ldomмь 1
8080
о
f'
'-
Рис. 3.26
d
....-1
w
w
9о
,io
020
10
g,
Ra•
+58
69
ООО
010
110
100
NOI' Мр=А
ООО
ООО
002
006
004
---
r:=l r:=r+I
010
022
026
024
---
Ml:=A
110
062
066
064
---
о
100
Ml:=HL
042
046
044
---
D,D,Da
HL:=Ml
101
052
056
054
---
A:=Ml
111
072
076
074
---
А:=Мр
011
032
036
034
001
012
016
014
D,
+с 001 210
212
216
214
-с 011 230
232
236
234
'
(-) 111 270
272
276
274
>,;, 101
250
252
256
254
1 D1D,Da
А:=
= Aopr
/\100 240
242
246
244
V 110 260
262
266
264
-
010
220
222
226
224
+ ООО 200
202
206
204
Однобайтный регистр
r
ООО
в
010
D
110
Mhl
100
н
101
L
111
А
011
Е
001
с
Рис. 3.27. Карта команд INTEL 8080
70
о
D,D,D0
101
111
011
Сдвиг
005
007
003
r:=r-1
P:=P+I
025
027
023
с:=1
065
067
063
BCD
045
047
043
А:=А
055
OR7
053
с:=ё Р:=Р-1
075
077
073
---
Сдвиг
035
037
033
015
017
013
215
217
213
235
237
233
275
277
273
255
257
253
245
247
243
265
267
263
225
227
223
206
207
20.1
Условие
z не нуль
ё не перенос
ii больше или равно нулю
р нечет
р чет
n отрицателы10
с перенос
2 нуль
D6
001
001
P:=Il
021
061
041
051
/!L:=
=HL+P
071
031
011
211
231
271
251
241
26\
221
201
001
101 1
121
161
141
151
171
131
111
хЕТ
311
SP:=
HL
371
PC:=HL
351
341
РОР р
361
321
301
011
111
103 1 107
rJ:=r2
123
127
163
167
143
147
153
157
rl:=r2
173
177
133
137
113
117
317
IN
333
337
EI RESTART
373
377
---
353
357
343
347
---
DI
363
367
oar
323
327
JUMP
303
307
Операция
ор
+
V
л
""ИЛИ-НЕ
Сравие11ие (z:=A =r; c:-A<r)
-с (A:=A-r -c)
+с (A:=A -r+c)
• AFиРОР,РИSН
1
1
D,D,D,
101
100
110
105 1 104
106
rJ:=Mhl
125
124
126
Останов
165
164
166
145
14!
146
155
154
156
rl:=Mhl
175
174
176
135
134
136
115
114
116
r.;11.LL
315
314
316
334
336
Ус.nовный
345
365
PUSH р
325
305
00
01
11
10
374
вызов
354
344
364
324
304
376
356
А:=А ор /
346
366
326
306
Реrистрован
пара
р
вс
DE
sp•
HL
010
ООО
1
102
rl:l,r'.I
100
в
122
120
D
162
160
142
140
н
152
1 150
L
rl:=r2
172 1 170
А
132
1
130
Е
112
110
с
312
310
z
332
330
с
Ус.nовныА Условный
372
370
п
переход
воsврат
352
350
р
342
340
р
362
360
ii
322
320
ё
302
300
i
Сдвиг (А)
Логический влево
Логический вправо
Арифметический вправо
Арифметический в.nево,
1,
Таблица З.1
Программа поиска записи для МП /п 8080
8-R
s-n
16-R
адрес
код
код
н
L
LI: 003 ООО 333 DB
001 010 08
L2:
002 376 FE
003 264 В4
004 302 С2
005 ООО 00
006 003 03
007 333 DB
010 010 08
011 376 FE
012 265 В5
013 302 С2
014 002 02
015 003 03
016 333 DB
017 010 08
020 376 FE
021 266 В6
022 302 С2
023 002 02
024 003 03
025 323 D3
026 020
10
027 166 76
--
r
'
\ Мре1iдсныll,р \
t!еши 'f)orno
VMA /А21100
и
Фz1
R/W
Mfl800
-
Рис. 3.29
72
Мнем:о-
КОД
IN
CPI
JNZ
Ll
IN
CPI
JNZ
L2
IN
CPI
JNZ
L2
OUT
HLT
е
}
}
}
}
}
}
}
}
}
}
Комментарии
Читать следующий символ
Сравнить содержимое аккумулято-
ра с числом 4
Если символ не равен 4,
перейти к LI
Читать следующий символ
Сравнить содержимое аккумулято-
ра с числом 5
Если символ не равен 5,
перейти в L2
Читать следующий символ
Сравнить содержимое аккумулято-
ра с числом 6
Если символ не равен 6,
перейти к L2
Поднять флажок
Останов
(/
d
1Cqumы6i,men6 I
I
а"
.,.
\'qoo,
\.'401Ю
920011
9ФOOII
Дли-
Код операции
тель•
Мнемоника
Опиоаиие
(1)
ность в
D,D,D,D,D8D,D1D0 циклах
(2)
АС/
Сложить непосредственно с А и пере-
носом
оо
о7
ADCM Сложить содержимое ячейки памяти с
А и переносом
ооо
о7
ADCr Сложить содержимое регистра о А и
переносом
ооо1sss4
ADDM Сложить содержимое ячейки памяти с А о о о о 1 1 о 7
ADDr Сложить содержимое регистра с А
ооооsss4
ADI
Сложить непосредственно с А
1оооl1о7
ANAM Логическое И содержимого ячейки па-
мятисА
1о1оо1lо7
ANAr ЛогическоеИсодержимогорегистрасА 1 о 1 о о s s s 4
ANI
ЛогическоеИнепосредственносА 111о о 1l о 7
CALL Вызов подпрограммы
11ооl1о117
се
Выэов по переносу
11о111оо11/17
см
Выэов по минусу
111111оо11/17
СМА
Дополнение А
оо1о11114
смс
Дополнение переноса
оо1111114
СМРМ СравнитьсодержимоеячейкипамятисА 1 о 1 1 1 1 l о 7
СМР r Сравнить содержимое регистра с А
1о111sss4
CNC
Вызов по отсутствию переноса
11о1о1оо11/17
CNZ
Вызов по не нулю
1lоооlоо11/17
СР
Выэов по плюсу
l11lо1оо11/17
СРЕ
Выэов по четности
111о11оо11/17
CPI
Сравнить непосредственно с А
1111111о7
СРО
Вызов по нечетности
111оо1оо11/17
cz
Выэов по нулю
11оо11оо11/1.7
DAA
Десятичная коррекция А
оо1оо1114
DADB Сложить пару ВС с Н L
оооо1оо110
DAD D Сложить пару DE с НL
ооо11оо110
DAD Н Сложить пару НL с НL
оо1о1оо110
DAD SP Сложить указатель стека с Н L
оо111оо110
DCR М Декремент содержимого ячейки памяти О о 1 1 о 1 о 1 10
DCR r Декремент содержимого регистра
ОоDDD1о15
DCX В Декремент ВС
Оооо1о115
DCX D Декремент DE
ооо11о115
DCX Н Декремент НL
оо1о1о115
DCX SP Декремент указателя стека
оо111о115
DI
Запрет прерываний
1111оо114
El
Разрешение прерываний
11111о114
НLТ
Останов
о111о11о7
1N
Ввод
11о11о1110
INRM Инкремент содержимого ячейки памяти О о 1 1 о 1 о о 10
INR r Инкремент сод!!ржимого регистра
ооDDD1оо5
INX В Инкремент пары ВС
оооооо115
INX.D Инкремент пары DE
ооо1оо115
/NX Н Инкремент пары НL
оо1ооо115
INX SP Инкремент указателя стека
оо11оо115
JC
Переход по переносу
11о11о1о10
JM
Переход по минусу
11111о1о10
JMP
Безусловный переход
11оооо1110
JNC
Переход по отсутствию переноса
11о1оо1о10
JNZ
Переход по не нулю
11оооо1о10
JP
Переход по плюсу
1111оо1о10
73
Продолжение рис. 3.28
Д,nи-
Код операции
тель-
Мнемоника
Описание
(\)
HOCTt, 8
D,D,D,D•D,D,D,D0цwклах
(2)
JPE
Переход по четности
lllо1оlо10
JPO
Переход по нечетности
1l1ооо1о10
JZ
Переход по нулю
llоо1оlо10
LDA
Прямая загрузка А
оо1l1о1о13
LDAX В Косвенная загрузка А по ВС
оооо1оlо7
LD АХ D Косвенная загрузка А по DE
ооо11о1о7
LHL D Прямая загрузка Н L
оо1о1о1о16
LXI В Непосредственная загрузка пары вс о о о о о о о 1 10
LXI D Непосредственная загрузка пары DE о о о 1 о о о 1 10
LXI Н Непосредственная загрузка пары HL о о 1 о о о о l 10
LXI SP Непосредственная загрузка указателя
стека
оо
ооо
10
MVJ М Непосредственная загрузка ячейки па-
мяти
оо1lо
о10
MVI r Непосредственная загрузка регистра о о DD D
о7
MOV М,, Пересылка содержимого регистра в
ячейку памяти
о
оsss7
MOV ,. М Пересылка содержимого ячейки памяти
в регистр
о
DDD
о7
MOV rl,r2 Пересылка содержимого регистра в ре-
гистр
о1DDDsss 5
NOP
Нет операций
оооооооо4
ORA М Логическое ИЛИ содержимого ячейки
памяти с А
о
о
о7
ORA r Логическое ИЛИ содержимого регист-
расА
о1
оsss4
ORJ
Логическое ИЛИ непосредственно с А
11
о11о7
оит
Вывод
1о
оо1110
PCHL Пересылка содержимого Н L в програм-
мный счетчик
о
оо
5
РОР В Извлечение содержимого пары регист-
ров ВС из стека
ооооо
10
РОР D Извлечение содержимого пары регист-
ров DE нз стека
о
ооо
10
РОР Н Извлечение содержимого пары регист-
ров НL нз сте~а
оооо
10
РОР PSW Извлечение содержимого регистра А
и флажков из стека
ооо
10
PUSH В Засылка содержимого пары rегистров
ВС в стек
ооо
о
11
PUSH D Засылка содержимого пары регистров
DE в стек
о
о
о
11
РИSН Н Засылка содержимого пары регистров
HL в стек
оо
о
11
PUSH Засылка содержимого регистра А и
PSW
флажков в стек
о
о
11
RAL
Циклический сдвиr А влево череэ пе•
ренос
ооо
о
4
74
Продолжение рис. 3.28
Дли-
Мнемоника
Код операции
тель~
Описание
(\)
ность в
D1D8D6D•D3D,D1D0циклах
(2)
RAR
Циклический сдвиг А вправо через пе-
ренос
оо·о
11!4
RC
Возврат по переносу
11о
ооо5/11
RET
Возврат из подпрограммы
1!оо!оо!1()
RLC
Циклический сдвиг А влево
ооооо1114
RM
Возврат по минусу
11111ооо5/\1
RNC Возврат по отсутствию переноса
11о!оооо5/ll
RNZ
Возврат по не нулю
11оооооо5/11
RP
Возврат по п,пюсу
1111оооо5/11
RPE
Возврат по четности
111о1ооо5/11
RPO
Возврат по нечетности
111ооооо5/11
RRC
Циклический сдвиг А вправо
оооо11114
RST
Рестарт
1ААА11111
RZ
Возврат по нулю
оо1ооо5/!l
sвв м Вычесть содержимое ячейки памяти из
А с заемом
оо
о7
SBB r Вычесть содержимое регистра из А с
заемом
оо11sss4
SВ/
Вычесть непосредственно из А с заемом 1 1 о 1 1 1
о7
SHLD Запомнить прямо Н L
оо1ооо
о16
SPHL Переслать содержимое Н L в указатель
стека
11111оо15
STA
Запомнить прямо А
оо11оо1о13
STAX В Запомнить косвенно А по ВС
оооооо1о7
STAX D Запомнить косвенно А по DE
ооо1оо1о7
sтс
Установить перенос
оо11о1114
sивм ВычестьсодержимоеячейкипамятиизА1 о о 1 о 1 1 о 7
SUB, Вычесть содержимое регистра из А
1оо1оsss4
SUI
Вычесть непосредственно из А
1
о1о11о7
х.сно Обменять содержимое пар DE и Н L 1
1о1о114
XRAM Исключающее ИЛИ содержимого ячей-
кн памяти с А
о
о
о7
XRA r Исключающее ИЛИ содержимого ре-
rистра с А
о
о
sss4
XRJ
Исключающее или непосредствен-
носА
о
о7
XTHL Обмен содержимого верхушки стека
сHL
ооо
18
Примечания: 1. DDD или SSS:000-B , 001-С, 010-D, 011-Е, 100 -Н, 101-
L, 110 - память, 111 - А.
2. Две возможных длительности команды указывают на зависимость •шсла циклов "" состоя,
ния флажков,
Рис. 3.28. Система команд JNTEL 8080
75
Адресация
Команды обращения к памя,rи МиеМQ• Непосредст-
Прямая
Индексная
венная
и аккумуляторам
код
ОР1-,#ОР1-1# ОР\-1#
Сложить
ADDA8В229В32АВ52
ADDBсв22DB32ЕВ52
Сложить аккумуляторы
АВА
Сложить с переносом
ADCA89229932А952
ADCBС922D932Е952
Логическое И
ANDA84229432А452
ANDBС422D432Е452
Побитовая проверка
ВIТА85229532А552
ВIТВС522D532Е552
Очистить
CLR
6F72
CLRA
CLRB
Сравнить
СМРА81229132Al52
СМРВCI22D!32EI52
Сравнить аккумуляторы
СВА
Образовать обратный код сом
6372
СОМА
сомв
Образовать дополнительный NEG
6072
код
NEGA
NEGB
Десятичная коррекция, А
DAA
Уменьшить на единицу
DEC
6А72
DECA
DECB
Исключающее ИЛИ
EORA88229832А852
ЕОIЩсв22D832Е852
Увеличить на единицу
INC
вс72
INCA
INCB
Загрузить аккумуляторы
LDAA86229632Аб52
LDABсв22D632Еб52
Логическое ИЛИ
ORAA8А229А32АА52
ORABСА22DA32ЕА52
Засылка в стек
PSHA
PSHB
Извлечение из стека
PULA
PULB
Циклический сдвиг влево
ROL
6972
76
1
Регистр кода условия
Расщире11-
Бе~адрес- Мнемоника выполнения(все наиме-
ная
ная
нования регистров обозначают ИJ< 5 \ 4 \ 312 11 1 о
содержимое)
______
ОР1-1 # ОР1-1 #
НINZV
С
вв43
А+М-➔ А
t
tttt
FB43
в+м-➔ в
t
tttt
7В21
А+В-➔ А
•t
tttt
В943
А+М+С--+А
t
tttt
F943
в+м+с- ➔ в
t
tttt
В443
А•М---..А
ttR
F443
в-м--в
ttR
В543
А•М
ttR
F54з
В•М
ttR
7F63
00-➔ М
RsRR
4F21
00-➔ А
RsRR
5F21
00-➔ В
RsRR
В143
А-М
tttt
Fl43
В-М
tttt
1121
А-В
tttt
7363
М--+-М
ttRs
4321
А---..А
ttRs
5321
В--+-В
ttRs
7063
00-М--+- М
tt12
4021
00-А--+-А
tt12
5021
00- В--+- В
tt12
1921
Преобразование двоичной сум-
мы двоично-десятичных симво-
лов в двоично-десятичный код
tttз
7А63
М-1--+М
tt4.
4А21
А-1--+-А
tt4
5А21
В-1---..В
tt4.
В843
А ЕВ М--+-А
ttR.
FB43
ВеМ--+В
ttR.
7С63
М+ 1--+М
tt5
4С21
А+ 1--+-А
tt5.
5С21
B+l--+B
tt5
В643
М--+А
ttR
F643
М--+В
ttR
ВА43
А+М--+А
ttR
FA43
в+м-➔в
ttR.
36 4 1 А--+- MsP, SP-1
--+-SP
.
37 4 1 В--+-MsP,SP-1-➔SP
.
32 4 1 SP+1---.. SP,Msp--+-А
.
33 4 1 SP+ 1--sP, Msp--- .. В
7963
tt6t
77
Команды обращения к памяти
11 аккумуляторам
Циклический сдвиг вправо
Арифметический сдвиг влево
Арифметический сдвиг вправо
Логический сдвиг вправо
Запомнить содержимое акку-
мулятора
Вычесть
Вычесть аккумуляторы
Вычесть с переносом
Обмен содержимым аккуму-
ляторов
Проверка на нуль и отри-
цательное число
Сравнить с индексным ре
гистром
Уменьшить индексный ре
гистр
Уменьшить указатель стека
Увеличить индексный ре
гистр
Уведичить указатель стека
78
Мнемо-
1<ОЛ
ROLA
ROLB
ROR
RORA
RО!Щ
ASL
ASLA
ASLB
ASR
ASRA
ASRB
LSR
LSRA
LSRB
STAA
STAB
S!JBA
suвв
SBA
SBCA
sвсв
ТАВ
ТВА
TST
TSTA
TSTB
СРХ
DEX
DES
INX
INS
Непосредст-
венная
ОР1-1#
8022
со22
8222
С222
8С33
Адресация
Прямая
Индексная
ОР1 -I# ОР1- 1#
6672
6872
6772
6472
9742А762
D742Е762
9032АО52
DO32ЕО52
9232А252
D232Е252
6072
Команды управления стеком и
9С42АС62
Продолжение рис. 3.90
Регистр кода условия
Расширен• Вез адрес• Мнемоника выполнения (все наи"
ная
ная
меновання регистров обозначают
514131211 1 о
их содержимое)
OPI -1# ОР1-1#
Н!NZVС
l;}lo
4921
Jttбt
59218
-1
1111111
tt6t
7663
сь,
-
11,
tt6t
4621
;} lo-1 1
1
tt6t
1
5621
111111r-J
tt6t
7863
сь,
-
ь,
tt6t
4821
л
tt6t
-
5821
□-1!1111111-и
tt6t
7763
сь,
4,
tt6t
4721
Сr,т,
tt6t
5721
11111-□
tt6t
7463
ь,
ь.с
Rt6t
44 2 1 о-[ 11ii 111]-0
Rt6t
5421
ь,
ь.
с
Rt6t
В753
А-➔ М
t!Rt
F753
В-➔ М
ttR
во43
А-М-➔ А
tttt
F-'O4з
В-М-➔ В
tttt
1021
А-В-➔ А
tttt
F!243
А-М-С- ➔ А
tttt
F243
В-.М-С- ➔ В
tttt
1621
А-➔ В
ttR
1721
В-➔А
ttR
706з
.М-00
ttRR
4021
А-00
ttRR
5021
B-OU
ttRR
индексным регистром
вс53
Хн-М, XL- (М+ 1)
8
094
Х-1-➔ Х
344
SP-1- ➔ SP
084
х+1--,.х
:н4
SP+1-➔SP
79
Адресация
Команды обращения к памяти Мнемо- Непосредст-
Прямая
венная
Индексная
и аккумуляторам
код
ОР1-1# ОР1-1# ОР1-1#
Загрузить индексный регистр LDX СЕ 3 3 DE 4 2 ЕЕ 6 2
Загрузить указатель стека
LDS8Е339Е42АЕ62
Запомнить индексный регистр sтх
DF52EF72
Запомнить указатель стека
STS
9F52AF72
Переслать иэ индексного ре- TXS
rистра в указатель стека
Переслать из указателя сте- TSX
ка в индексный регистр
Адре
Команды передачи управления
Мнемо- Относительная Индексная
и ветвления программ
код
ОР1-1# ОР1-1#
Перейти при любых условиях
BRA2042
Перейти по отсутствию переноса
вес2442
Перейти по наличию переноса
BCS2542
Перейти по условию А = О
BEQ2742
Перейти по условию А :;.. О
воr.:2С42
Перейти по условию А > О
BGT2Е42
Перейти по условию, если больше
ВНI2242
Перейти по условию А ...; О
BLE2F42
Перейти по условию, если меньше или равно BLS 23 4 2
Перейти по условию А < О
BLT2D42
Перейти по отрицательному числу
BMI2В42
Перейти по условию А ,f= О
BNE2642
Перейти по отсутствию переполнения
BVC2842
Перейти по наличию переполнения
BVS2942
Перейти по положительному числу
BPL2А42
Перейти на подпрограмму
BSR8Dв2
Безусловный переход
JMP
6Е42
Обращение к подпрограмме
JSR
ADв2
Нет операции
NOP
Возврат после прерывания
RТI
Возврат иэ подпрограммы
RTS
Программное прерывание
SWI
Ожидать прерывание
WAI
WAI устанавливает адресную шину, запись/чтение и шину данных в трехстабиль-
80
Продолжение рис. 3.30
Регистр кода условия
Расширен-
Безадрес- Мнемоника выполнения (все наи-
ная
ная
менования регистров обозначают
~1~12_, _2,_1,_о
их содержимое)
ОР/-1#ОР/-1#
НINZV
С
FE53
М--+Хн, (М+1)--+XL
9tR
ВЕ53
М-➔SРн,(М+ 1)--+SPL
9tR
FF63
Хн--+М,XL-➔(М+1)
9tR
BF63
SРн--+М,SPL--+ (М+ 1)
9tR
3541
X-1 --+SP
3041
SP+ 1--+Х
сация
Регистр кода состояния
Расширенная
Безадресная
Проверяемое условие
перехода
51413121110
ОР1-1# ОР1-1#
Н!
N
Z'✓ С
Не проверяется
С=О
C=l
Z=I
.
NEJЭV=O
.
Z+(NЕJЭV=0
C+Z=O
.
Z+(NЕJЭV)=1
C+Z=I
NEJЭV=l
.
N=l
.
Z=O
V=O
.
V=I
.
N=O
Смотри специальные
команды
7Е33
Смотри специальные
.
команды
в93
01 2 1 Только увеличивается
.
программный счетчик
3В!О1
10--·-·--
3951
!Смотри специальные
3F 12 1 команды
s
.
ЗЕ91
11
11111
ное состояние, когда сигнал VMA принимает значение «О».
81
П родо,tжение рис. 3.30
Безадресная
Регистр кода состояния
К:омавды управления
регистром кода
СОСТОЯ:tlИЯ
чистить перенос
бросить маску
о
с
п
о
рерывания
чистить перепол-
1ение
t
у
у
становить перенос
становить маску
рерывания
п
установить
олнение
пере-
!ереслать из ак•
п
г
к
r
умулятора в ре-
истр состояния
Переслать из ре•
r
а
истра состояния в
ккумулятор
Мвемо-
ОР1
код
CLC ос
CLI ОЕ
СТ.У ОА
SEC OD
SEI OF
SEV ов
ТАР 06
ТРА 07
1
Мнемоника 5 1 4 1
-
#
11
н1
21О➔С
210-1
R
21o➔v
211-с
211➔1
s
21l➔V
2 1 A-+-CCR
2 1 CCR-+-A
Описание назначения разрядов кода состояния
и условий их установки
3
1211
N
1z
1
V
R
s
12
(Бит устанавливается в единицу, если проверяемое условие истинно,
и сбрасывается в противном случае)
(Бит V) Проверка: Результат =10000000?
2 (Бит С) Проверка: Результат =00000000?
1
1
о
с
R
s
З (Бит С) Проверка: Десятичное значение старшего символа двоично-десятично•
го кода больше девяти? (не сбрасывается, если был предварительно
установлен)
4 (Бит V) Проверка: Операнд= 10000000 перед выполнением команды?
5 (Бит V) Проверка: Операнд =01111111 перед выполнением команды?
6 (Бит V) Проверка: Устанавливается равным NeC после выполнения сдвига
7 (Бит N) Проверка: Знаковый разряд старшего байта = 1?
8 (Бит N) Проверка: Имеется ли переполнение в дополнительном коде при вы-
читании старшего байта?
9 (Бит N) Проверка: Результат меньше нуля? (15-i! бит = \)
10 (Все) Загрузить регистр состопния из стека (смотри (~пециальные команды)
ll •,Бит 1) Устанавливается, когда возникает прерывание. Если предварительно
был установлен, требуется немаскируемое преμыщ1ние для выхода
из состояния ожидания
12 (Все) Устанавливаются в соответствии с содержимым аккумулятора
82
Условныеобозначения:
ОР - Код операции
-
Число циклов ЦП
# - Число байтов
+ - Плюс арифметический
-
Минус арифметический
-
Логическое И
MsP - Содержимое ячейки памяти,
указываемой указателем стека
v -Логическое ИЛИ
Ef> -Исключающее ИЛИ
.М - Инверсия М
-+
-
Пересылка в
О - Нулевой бит
Рис. 3.30. Система команд Motorola 6800
Продолжение рис. 3.30
00 - Нулевой байт
Н - Дополнительный перенос из
четвертого разряда (бит 3)
1 - Маска прерывания
N - Отрицательно (знаковый разряд)
Z - Нуль (байт)
V - Переполнение, признак допол-
нительного кода
С - Перенос из 8 разряда (бит 7)
R -Сброс
S - Установка
t - Проверяется и устанавливается,
если истинно, сбрасывается в
противном случае
•
-
Не изменяется командой
Шаг 5 - проектирование программного обеспечения. Восьме
ричный и шестнадцатиричный листинги для МП / п 8080 состав
ляются непосредственно по схеме алгоритма (рис. 3.25), исполь
зуя карту распределения команд на рис. 3.27 и систему команд
на рис. 3.28.
Решение для Мс6800.
Шаг 1}
Шаг 2
Шаг 3
То же самое, что и для МП In 8080.
Шаг 4 - проектирование аппаратурной части. Структурная
схема устройства на базе Мс6800 показана на рис. 3.29. В допол
нение к порту ввода/вывода требуется схема И для формиро
вания сигнала разрешения е, как объяснено в 3.4 (см. схемы
1и2).
Шаг 5 - проектирование программного обеспечения. Из
структурной схемы алгоритма (рис. 3.25), системы команд
(рис. 3.30) или карты распределения команд (рис. 3.31) непо
средственно составляется шестнадцатиричный листинг програм
мы (табл. 3.2).
Задача 2. Чтение и распечатка п символов. Имеется микро
процессор, считыватель с перфоленты и печатающее устройство.
Необходимо спроектировать систему, печатающую п первых сим
волов, введенных с перфоленты.
Для реализации системы использовать логическую схему
ожидания/счета МП !п 8080 и Мс6800.
Решение для / п 8080.
Шаг 1 - формирование технического задания. Считывание
и распечатка п символов.
Шаг 2 - внешнее проектирование. Микропроцессор имеет ло
гическую схему ожидания/счета. Внешние устройства относятся
к типу запрос/ответ (см. приложение 1).
83
ООО
010
ООО
0111
А:=А-В
110
/Х:=
РОР А
= SP+I
-
100
JUMP
cz
о v.o .o.
101
ii
ii
111
011
D,
001
JX:=
с,:=:0
=IX+I
001
011
A:=A'rP A:=AVP
111
1
101
о.о.о.
100
110
А:=А-Р
А:=А-р-с
010
ООО
Операнд
D.o . р (режим адрес:ацяи)
00 /ММ (непосредаnеиио)
01 DIR (прямо)
11 ЕХТ (расширено)
10 IND (индексно)
110
СС:=А
В:=А
---
PUSH А
z
о
D,D ,D0
100
SP:=SP-1
-
с
101
SP:=IX-1
с
Условный переход
z
пv+iw пv+mi nv+iiv
WAIT
1:=0
c:=G
с:=1
Вызов
SP:=p
TEST
( /Х-р)
Вызов
А:=Р А:=А/\р
TEST
(А/\р)
111
011
А:=СС
---
А:=В
---
PUSHВ РОРВ
c+z
z+пii+nv п
/NT
SOFT
RTJ
---
А:=А+В
l:=I
V:=I
P=SP А:=А+Р
---
---
р:=А
---
g (содержииое регистра или ячейки памяти)
А
в
ЕХТ
IND при D1=1
или REL при D8=0 (относительно)
Рис. 3.31, Карта команд Motorola 6800
84
001
001
NOP
Сравнить
А,В
SP:=SP+I
11
Цикличес-
кий сдвиг
влево
RTS
DAA
g
/Х:=/Х-1
А:=
=А+р+с
В:=
=В+р+с
TEST
TEST
(А-р)
(В-р)
Регистры
А аккумулитор (8)
В аккумулитор (8)
011
g:=g
В:=-В+Р
/Х индексный регистр (16)
РС nporpa111111ныil счетчик (16)
SP указатель стека (lбj
се биты состоинии (6)
1
о,о,о.
111
Ар11фметн-
чески!!
сдвиг
вправо
g
g:-o
p:-IX
р:=В
101
100
110
Логнчес• Цикли•
кнi! ческнi!
сдвнr
сдвиг
вправо вправо
11
~
---
JMP
IND
---
твsт
(g-0) g:=g+I JMP
ЕХТ
---
/Х:-р
TEST
(В1\Р)
В:=В1\р В:=р
Биты состоянии
с перенос-заем
с, перепо.nнение
:z нуль
n отрицатепько (знак)
1 маска прерываний
010
g:=g-1
B:=B't'P
В:=
=В-р-с
h промежуrочвыi! перенос,
ООО
g:=-g
Сдвиг
влево
I
В:=Вур
-
В:=В-р
85
Т~лицп 8.2
Программа ноиска записи для МП МсбВОО
16-А: адрес
16-й
М11емо1<од
Комме11тарю1
!<ОД
н
L
Ll: 00 00 В6 LDAА,2000
)
01 20
Читать символ
02 00
03 01
NOP
L2:
04 81
СМР А
} Сравнить содержимое А с 4
05 34
06 26
BNE LI
} Если символ не равен 4,
07 F8
перейти к LI
08 В6 LDA А, 2000
)
09 20
Читать символ
ОА 00
ОБ 01
NOP
ос 81
СМР А
} Сравнить содержимое А с 5
OD 35
ОЕ 26
BNE L2
} Если символ ие равен 5,
OF F4
перейти к L2
10 В6 LDA А, 2000
) Чm,Th ~-
11 20
12 00
13 01
NOP
14 81
СМР А
} Сравнить содержимое А с 6
15 36
16 26
BNE L2
} Если символ не равен 6,
17 ЕС
перейти к 2
18 В7 STA А, 4000
}
19 40
Установить флажок
lA 00
1В 3F
SWI
Останов
Шаг 3 - системное проектирование. Структурная схема про-
ектируемой системы изображена на рис. 3.32. Так как печатаю-
е
мп
е
w1
_L. .J
··,-- ~·.
Рис. 3.32
86
lс~11ты611тель 11 Лечатqющее
ycтpo1Jcm60
а,
r, 112
•r2
И11терrрейс
1
а
d
щее устройство является приемником данных, то для неrо не ну
жен порт ввода/вывода. Структурная схема алгоритма функцио
нирования системы показана на рис. 3.33.
Шаr 4 - проектирование
аппаратурной части. За иск
лючением порта ввода/выво
да для фотосчитывателя
(рис. 3.34) другие аппара
турные средства не требуюг
ся. Это связано с тем, что
для МП /п 8080 e=w (см.
пример 14 в параграфе 3.4).
Шаг 5 - проектирование
программного обеспечения.
Восьмеричный и шестнад
цатиричный
листинги
Hal/aPO
На11ол1,нон vстано4·
ко Clfemчuк11
до
Ко ец
Рис. 3.33
(табл. 3.3) программы для МП /п 8080 получены непосредствен
но из схемы алгоритма (рис. 3.33) с использованием системы
команд (рис. 3.27 и 3.28).
е
I
INTEL
1Cqum61dameл6 11 Пе11атоющее
gcmpotlcm4o
8080
а,
r,.
Oz•
'
-
Рис. 3.34
Решение для Мсб800.
Шаr 1}
Шаг2 Тожесамое,чтоидляМП/п8080.
Шаг3
1)
d
Wo11
Wotfl
90111
902,
Шаг 4 - проектирование аппаратурной части. Структурная
схема системы на базе Мсб800 показана на рис. 3.35.
Как и в предыдущей задаче, в дополнение к порту ввода/вы
вода требуется схема И для формирования сигнала разрешения
е (см. пример 15 в параграфе 3.4 схемы 1 и 2).
Шаг 5 - проектирование программного обеспечения. Непо
средственно по схеме алгоритма с использованием набора команд
Мсб800 (рис. 3.30 и 3.31) получим листинг программы (табл. 3.4).
Задача 3. Распечатать запись. Имеются считыватель с пер
фо.пенты, печатающее устройство и микропроцессор. Необходи
мо спроектировать систему, печатающую запись из п символов.
87
Таблица 8,3
Программа распечатки п символов со считывателя для /п8080
8-i! адрес
8-й 16-i! Мнемо-
J<омментарии
код
код
код
н
L
003 ООО 016 ОЕ MVI С} Загрузить число в регистр С
001 (п) (п)
002 014 ос INR С Увеличить содержи•
j Установить
мое регистра С
флажки
L2:
003 015 OD DCR С Уменьшить содержи-
условий
мое регистра С
004 312 СА JZ } Если содержимое регистра С=О,
005 016 ОЕ Ll
перейти к Ll
006 003 03
007 333 DB IN } Читать следующий символ
010 010 08
011 323 D3 OUT } Печатать символ
012 020 18
013 303 С3 JMP } Перейти к L2
014 003 03 L2
015 003 03
LI:
016 166 76 HLT Останов
Метка записи - последовательность символов 4-5 -6, которая
применяется только для этих целей.
Для построения си"темы использовать режим ожидания/счета.
Решение для In8080.
-
1
I А/Jресны11 1
tJеш111рратоо
VMA IA1000
и
Ф21
R/W •
M88QO
--
е
'С1111ть1dатель 11 Пе1111тqющее
gстро11ст~о
а,
r,""а2•
rz
(1
rl
W1000
W4000
!12000
!/4000
Рис. 3.35
Шаг 1 - формирование технического задания. Целью проек
тирования является создание устройства, способного распечаты
вать запись.
Шаг 2 - внешнее проектирование. Микропроцессор распола
гает логической схемой ожидания/счета. Фотосчитывателъ и пе-
88
Таблица 8.4
Программа распечатки п символов со считывателя для Мс6800
16-JI адрес
16-й
Мнемокод
Комментарии
код
нL
00 00 С6 LDA 8, п } Загрузить в регистр 8
01п
п
L2:
02 27
REQ
1 Если содержимое регистра 8
03 08
LI
f равно О, перейти к LI
04 В6 LDA А, 2000)
05 20
Читать символ
06 00
07 01
NOP
08 87STAА,4000j
09 40
Печатать символ
ОА 00
08 01
NOP
ос 5А
DEC В
Уменьшить содержимое в
0D 7Е JMPL2
} Перейти к L2
ОЕ 00
OF 02
LI:
10 ЗF
SWI
чатающее устройство яв
ляются устройствами типа
запрос/ответ (см. прило
жение 1).
Шаг 3 - системное
проектирование. Струк
турная схема разрабаты
ваемой системы показана
на рис. 3.32, а структур
ная схема алгоритма его
функционирования - на
рис. 3.36.
Шаг 4 - проектирова
ние аппаратурной части.
За исключением порта
ввода/вывода (рис. 3.34)
другие
аппаратурные
средства не требуются,
так как для In 8080 e=w
(см. пример 14 в парагра
фе 3. 4).
Шаг 5 - проектирова
ние программного обеспе
чения. Непосредственно из
схемы
алгоритма
(рис. 3.36) и набора ко-
Останов
Ha'IOЛ/JH/111 {/CЛIQ•
но6ка c11eml/1JKt1
Нет
Нет
Дt1
Конец
Рис. 3.36
89
Таблица 3.5
Программа распечатки записи со считыватеМ1 по метке дли /пВОВО
Ll:
L2:
L4:
LЗ:
lб•й адрес
н
003
L
ООО
001
002
003
004
005
006
007
010
011
012
013
014
015
016
017
020
021
022
023
024
025
026
027
030
031
032
033
034
035
036
037
040
041
042
043
8-й
код
333
020
376
264
302
ООО
003
333
020
376
265
302
002
003
333
020
376
266
302
002
003
016
(n)
014
015
312
043
003
333
020
323
030
303
030
ооз
166
16-й
код Мнемокод
DB
10
FE
В4
С2
00
03
DB
10
FE
В5
С2
02
03
DB
10
FE
В6
С2
02
03
ОЕ
(п)
ос
0D
СА
23
03
DB
10
D3
18
С3
18
03
76
IN
CPI
JNZ
LI
IN
CPI
JNZ
L2
IN
CPI
JNZ
L2
MVI С
п
INR С
DCR С
JZ
L3
IN
OUT
JMP
L4
HLT
Комментарии
} Читать символ
} Сравнить содержимое А с 4
} Если символ не равен 4,
перейти к LI
} Читать символ
} Сравнить содержимое А с 5
} Если символ не равен 5,
перейти к L2
} Читать символ
} Сравнить содержимое А с 6
} Если символ не равен 6,
перейти к L2
} Загрузить п в регистр С
Увеличить содер• ] Установ-
жимое С
Уменьшить содер-
фк~ажков
жимое С
} Если содержимое С равно О,
перейти к L3
} Читать символ
} Печатать символ
} Перейти к L4
Останов
манд (рис. 3.27 и 3.28) получаем восьмеричный и шестнадцати
ричный листинги (табл. 3.5).
Решение для Мс6800.
Шаг 1}
Шаг 2 То же самое, что и для МП In8080.
Шаг 3
Шаг 4 - проектирование аппаратурной части. Структурная
схема разрабатываемой системы на базе Мс6800 показана на
рис. 3.35. Как и в предыдущей задаче, в дополнение к порту вво-
90
да/вывода необходима схема И для формирования сигнала раз-
решения е (см. пример 15 в параграфе 3.4 схемы 1 и 2).
Шаг 5 - проектирование программного обеспечения. Непо-
средственно из схемы алгоритма (рис. 3.36) с использованием
набора команд (рис. 3.30 и 3.31) получаем шестнадцатиричный
листинг программы (табл. 3.6).
Та6лица 3.6
Проrрамма распечатки записи со считывателя по метке ,цля Мс 6800
16-А вдрес
16-R
Мнемокод
Комментарии
код
н
L
Ll: 00 00 В6LDAА,2000
) Чwrnn,~
01 20
02 00
03 01
NOP
L2:
04 81
СМР А
} Сравнить содержимое А с 4
05 34
06 26
BNE Ll
} Если символ не равен 4,
07 F8
перейти к Ll
08 В6 LDA А, 2000
) ч.,.,,, "'""''
09 20
Од 00
ов 01
NOP
ос 81
СМР А } Сравнить содержимое _А с 5
OD 35
ОЕ 26
BNE L2
} Ес,,и символ не равен 5,
OF F4
перейти к L2
10 В6 LDA А, 2000
) ч,,.,,, "'"'°'
11 20
12 00
13 01
NOP
14 81
СМР А
} Сравнить содержимое А с 6
15 36
16 26
BNE L2
} Если символ не равен 6,
17 ЕС
перейти к L2
18 С6
LDA В, n } Загрузить п в регистр В
19п
п
L3:
lA 27
BEQ
} Если содержимое В равно о,
1В ов
L4
перейти к L4
lC В6 LDA А, 2000
)
1D 20
Читать символ
lE 00
lF 01
NOP
20 В7 STA А, 4000
) п...,.,,, '""'°'
21 40
22 00
23 01
NOP
24 5А
DEC В
Уменьшить содержимое в
25 7Е
JMP L3
} Перейти к LЗ
26 00
27 lA
L4:
28 ЗF
SWI
Останов
91
3.6 . СПИСОК ЛИТЕРАТУРЫ
1. М6800 Microprocessor Applications Manual. Motorola, 1975.
.
2. Zissos D. ,
Duncan F. G. Microprocesэor Interfaces. -
Electronic Letters,
Vol. 12, No 23, November, 1976.
3. Zissos D. ProЫems and Solutions in Logis Design. Oxford University
Press, 1976.
4. INTEL 8080 Microprocessor Systems User's Manual, September, 1975.
5. Zissos о., Bathory J. С. Wait/go Microprocessor Systems. -
Proceedings
Mimi 1977, November, 1977,
СИСТЕМЫ ПРОВЕРКИ
И ПРОПУСКА
В этой главе рассмотрены алгоритмы проектирования и реа
лизации микропроцессорных систем, построенных с применением
режима проверки и пропуска. Обсуждается метод синхронизации
ввода/вывода, основанный на растягивании синхроимпульса.
Применяемая методика проектирования подробно изложена в
параграфе 2.9, а собственно алгоритм проектирования - в 2.10.
4.1 . &дЗОВЫЕ ОПРЕДЕЛЕНИЯ
Необходимость синхронизации МП с периферийными устрой
ствами во время выполнения команд ввода/вывода была обосно
вана в гл. 2 и 3. Один из методов выполнения синхронизации
ввода/вывода - метод ожидания/счета
-
был описан в предыду
Нет
Jоп1ск 1cmpolicm60
Дptj21/e l(0MOHQЫ
Рис. 4.1
92
щей главе. В этой главе вниманию
читателя предлагаются два альтер
нативных метода: проверки и про
пуска и растягивания синхроим
пульса.
В методе проверки и пропуска
запрос МП синхронизируется с отве
том периферийного устройства при
помощи программного цикла. После
выполнения каждой команды вво
да/вывода программа опрашивает
состояние внешнего устройства и
анализирует его на окончание вы
.полнения предыдущей операции. Ес
ли устройство не освободилось, оп•
рос повторяется. Этот программный цикл опроса повторяется до
тех пор, пока устройство не станет готовым к обмену, что приве
дет к выходу из цикла и к выполнению следующей по порядку
команды программы; как показано на рис. 4.1. Проектирование и
реализация микропроцессорных систем с использованием этого
метода описаны в следующем параграфе.
В редких случаях, когда синхронизация ввода/вывода может
быть достигнута временным снижением частоты синхронизации,
применяется метод, называемый растягиванием синхроимпульса.
Он подробно изложен в параграфе 4.3.
4.2. СИСТЕМЫ ПРОВЕРКИ Н ПРОПУСКА
Структурная схема системы проверки и пропуска показана
на рис. 4.2. Сигнал r отображает доступность внешнего устрой
ства. Алгоритм функционирования системы следующий. Микро-
г 1----------------------q
i-----+-------------------d
е,
мп
'---v ---'
Другие сигнолы 1'
состояния
Интер1реРс
Сигнолы
!Jлроdления
Сигнолы
6dooo/ ы-
dооо
.... ._ _ _____ ____ _____ ___ _.
Рис. 4.2
процессор выполняет команду ввода/вывода, активизирующую
периферийное устройство, в результате чего сигнал r изменяется
от « 1» до «О». Далее в МП вводится слово состояния, один из
битов которого несет информацию о сигнале r. Затем этот бит
проверяется на равенство « 1» (r = 1). Если r не равно 1, внешнее
устройство еще не закончило выполнение отданного ему прика
за, в МП опять вводится слово состояния и повторяется его
проверка. Эта последовательность действий повторяется до тех
пор, пока сигнал r не станет равным 1, после чего программа
выходит из цикла (рис. 4.1). Отметим, что продолжительность
работы в цикле проверки и пропуска равна времени ответа пе
риферийного устройства.
4.3. РАСТЯГИВАНИЕ СИНХРОИМПУЛЬСА
Обозначим через f max и fm1n максимальную и минимальную ча
стоты синхронизации, на которых может работать микропроцес
сор. Будем использовать переменную f для обозначения рабочей
частоты, при этом
fmin <: f <: fmax•
Если время ответа внешнего устройства t, где
1
1
-,-<t<-,-.
max
mln
можно синхронизировать МП с внешним устройством, изменяя
его частоту синхронизации до величины f, где
l/f ";ii,-t.
Если предположить, что переходы микропроцессора из со
стояния в состояние происходят по спаду синхросиrнала Ф1, то
целесообразно использовать синхросигнал Ф2 для синхронизации
в схеме растягивания синхроимпульса.
Реализация такой схемы весьма проста и не составляет труд
ности для читателя, обладающего практическим опытом логиче-
Рис. 4.3
,
Ф1
о
1
1
Ф/f~I
1
::~:~
Q
'
1
Фz1
Ф/
о
f
Ф'z 6
ского проектирования. Сам метод проектирования описан ранее
вгл.1.
Для иллюстрации метода покажем, как можно растянуть син
хроимпульсы микропроцессора на два синхропериода первона
чальной частоты. Если обозначить через S сигнал, генерируемый
интерфейсом для запроса двухцикловоrо растягивания, то тогда
вид рассматриваемых сигналов будет соответствовать изобра
женному на рис. 4.3 . Диаграмма состояния схемы показана на
94
рис. 4.4 . Непосредственно из нее получаем:
SA=S1= АВ, поэтому JА=В;
RA = Sas = ABs, поэтому КА= Bs;
S8 = S0s = ABs, поэтому Jв= As;
Rв=S2= АВ, поэтому Кв=А;
Ф;=S0Ф1+S1+S2+S3Ф1=АВФ1+АВ+АВ+АВФ1=В+Ф1;
Ф;=(So+S8) Ф2=(АВ+АВ)Ф2=ВФ2•
So1
Ф/•Фt
Фz•Фz
АВ•ОО
Рис. 4.4
л.:Ф,
s
.,.ПФ,
S.:J L
s,
Jlф'
Ф/•f
Ф;•о
Of
Sг
Jlф'
Sз1
Ф/• f
Ф/• Ф,
Ф1 •0
Ф2•Ф2
fl
!О
Соответствующая схема показана на рис. 4.5 .
Ф,
____....,. . __ __ __ ___ ,
А
А
]с
s
6
А
i
Ак"
f.'11стен-
11ыti сброс
Рис. 4.5
4.4 . ЗАДАЧИ И РЕШЕНИЯ
в
ё
в--r-\__ /
Фг~ Фг
В данном разделе рассматриваются задачи и их решения для
алгоритма построения систем проверки и пропуска. Обратим
внимание на тот факт, что приведенные решения для микропро
цессора In 8080 не ограничивают область применения алгорит
ма для других типов микропроцессоров. Первые три шага алго
ритма проектирования можно выполнить вообще безотноситель
но к типу мп.
Задача 1. Распечатка содержимого ОЗУ. Спроектировать ин
терфейс, позволяющий программно пересылать данные из после
довательных ячеек ОЗУ или ПЗУ через МП к приемнику инфор-
95
мации. Приемником информации является устройство цифровой
.печати, технические характеристики которого указаны на рис. 4.6.
Используется МП / п 8080.
Устройство типа
запрос/ответ
!Jcmpot)cmlo
тvла
Jолрос/ от!,т
а
r
Контакт а. Переход
«О» ➔ «l:t на этом кон
такте
активизирует
устройство (подает за
прос).
Контакт r. Сигнал со
стояния r равен «1»,
когда устройство гото
во к обмену, и равен «О»
в
противоположном
случае. Активизация
устройства недопусти
ма,еслиr=О.
Рис. 4.6
Решение.
Печатающее устройство
"'
Контакт w. Импульс отри
цательной полярности дли
тельностью свыше I мкс
загружает символ в буфер
либо запускает механизм
печати, если буфер запол
нен, или вводится символ
«возврата каретки» (015 в
коде ASC // (см. рис.
3.23)). Недопустимые в ко
де ASC 11 символы игно
рируются.
Контакт х. Сигнал состо
яния х равен 1, когда пе
чатающее устройство го
тово, и на шине w уро
вень 1.
Считыватель
]К/111
Контакт j. Подача «О» на
этот контакт запускает про
гон ленты влево.
Контакт k. Подача «О» на
этот контакт вызывает про
гон ленты вправо.
Контакт l. Сигнал состояния
l устанавливается в 1, когда
отверстие
синхродорожки
перфоленты находится под
считывающей головкой, ина
чеl=0.
Контакт т. Уровень «1» на
этом контакте указывает, что
считыватель готов к приему
следующего импульса прого
на. Для остановки перфолен
ты на очередном символе не
обходимо снять импульс про
гона на 1 мс сразу за фрон
том сигнала /. Минимальная
длительность импульса l
1 мкс.
Шаг 1 - формирование технического задания. Целью проек
тирования является построение интерфейса между МП и отно
сительно простым периферийным устройством в режиме провер
ки и пропуска для используемого микропроцессора.
Шаг 2 - внешнее проектирование. Сигналы ввода/вывода МП
/п 8080, используемые в рассматриваемом случае, показаны на
рис. 4.7, технические характеристики печатающего устройства -
на рис. 4.6.
Шаг 3 - системное проектирование. Структурная схема раз
рабатываемой системы показана на рис. 4.8, а ее функциониро
вание описывается алгоритмом, показанным на рис. 4.9.
Шаг 4 - разработка аппаратурной части. Необходимые ап
паратурные средства содержат: адресный дешифратор, элемент
И-НЕ, инвертор и элемент И (рис. 4.10). Дешифратор исполь
зуется для декодирования адреса ввода/вывода печатающего
устройства и трехстабильного буфера. Можно использовать один
96
и тот же адрес, так как буфер работает в режиме ввода, а пе
чатающее устройство - в режиме вывода. Если обозначить ад-
рес через Ат, то w=AmOUT WR; этот сигнал вырабатывается
Мf
,
Ф2о
КомонiJо 44orlo/4ы4oiJo
мг
мз
Исполнение
44oiJo / 61,16000
INP f
(B8oiJ} О ..L .-- --- -- -1- --- '
f
1JBIN
(Прием)О
оит f
(ВыОоиJ о
_f
WRО
(JолиС!,/'lmение)
Рис. 4.7
СлеiJующон KOMOHQ/l
Mf
.Вы6ор_ко
KO/lfOH(/1,/
схемой И-НЕ. Трехстабильный буфер открывается при выпол
нении команды IN (ввод) с адресом Ат, т. е. e=IN DBIN Ат.
Этот сигнал формируется вентилем И. Так как сигнал состояния
г-1------------------------а
1-----+------------------d
мп
Рис. 4.8
е
~
ДpljZUe СUZНОЛЫ
состо1111и11
Сигнал coC11Jo1111u11
пеvотоющего
Пеvотоющее
ycmpoilcm6o
устроист6о х
w
Интерrреl]с
печатающего устройства х может передаваться только при w ...
- 1, то можно в качестве сигнала w использовать сигнал OUT.
Это сократит интервал времени, в течение которого сигнал w не
может передаваться, до величины длительности импульса OUT.
4 1-459
97
Как ранее было оговорено, все 8 выходов трехстабильного бу
фера хранят состояние «О», пока печатающее устройство не го
Наv11ло
311гру:1vть н11q11л1,•
HЫli 11dpec 03!1
!/ст11ноОvт1, наvальнае
3Hl/ql!H/JI! C'lf!m,щкa С
Д11
!lмеюшvт1, r:oOepmu•
мо, r:vemvvкo сн11 Г
тово.
Шаг 5- проектирование програм
много обеспечения. Для простоты по
нимания рассмотрим сначала програм
му, необходимую для синхронизации
печати с работой микропроцессора.
Структурная схема этой программы
показана на рис. 4.1. Сама
Конец
программа на языке ассем·
_____
блера написана ниже.
OUT {Передать символ из АС
- # на печатающее устройство
Ll: lN
#
• ANAA
JZ
Ll
{Ввести состоян~е с печа
тающего устроиства
Установить флажки
{При неготовности устрой
ства вернуться к метке Ll.
Непосредственно из схемы рис. 4.9,
руководствуясь системой команд (рис.
3.27 и 3.28), запишем восьмеричный и
шестнадцатиричный листинги програм-
Рис. 4.9
мы (табл. 4.1} для адреса внешнего
устройства Am=A0l0.
Задача 2. Считать информацию и ввести в ОЗУ. Спроектиро
вать интерфейс для программной пересылки данных от внешне-
r-1-----~------------------0
1----1-------...---------~--d
1-----4- -' - --- -- -- --- -- --;-r -·!NP
1--_
_ .._ ___ ____ ____ ____ _rt _D ВIN
1----------------------~-+-оит
L~-----------------..-ж
Рис. 4.10
го источника через микропроцессор в последовательно располо
женные ячейки ОЗУ.
98
Табли11а 4.1
Программа распечатки содержимого ОЗУ
8-й адрес
8-1!
16-1!
Мнемокод
I<омментарин
код
код
нL
003 ООО 041 21 LXIН
{ Загрузить непосредственно началь-
001 (L) (L)
ный адрес ОЗУ в регистровую
002 (Н) (Н)
пару HL
003 016 ОЕ MVI с { Загрузить длину блока в
004 (п) (п)
~гистр С
005 014 ос INRС
величить содержимое регистра С
L3:
006015ODDCRс
для установки флажков
Уменьшить содержимое регистра С
007 312 СА
JZ
{ Если содержимое регистра С=О,
010 027 17 {Ll
011 003 03
перейти к Ll
L2:
012 333 DB
IN
Читать состояние принтера
013 010 08
014 247 А7 ANA А Установить флажки
015 312 СА
JZ
{ Если принтер не готов, перей•
016 012 ОА{L2
017 003 03
тик L2
020 176 7Е MOVA,M Переслать следующий символ из
памяти в аккумулятор
021 323 03 оuт { Переслать символ на принтер
022 010 08
023 054 2С INR L Увеличить адрес ОЗУ
024 303 сз JMP
{ Перейти к L3
025 006 06 {L3
026 003 03
Ll:
027076ЗЕMVIА
{
Загрузить в аккумулятор непос-
030 015 8D
редственно код 0158 для возврата
каретки
031 323 D3 оuт
{
Печать. Содержимое аккумулятора
032 010 08
распечатывается, и каретка возвра•
щается
033 166 76
HLT
Останов
Источником данных является считыватель с перфоленты, опи
санный на рис. 4.6; в качестве микропроцессора используется
lп 8080.
Решение.
Шаг 1 - формирование технического задания. Задачей про
ектирования является построение интерфейса между микропро
цессором и внешним устройством, для которого существует
ограничение на временные соотношения входных сигналов.
Шаг 2 - внешнее проектирование. Используемые сигналы
ввода/вывода микропроцессора ln 8080 показаны на рис. 4.7,
структурная схема фотосчитывателя и назначение его выводов -
на рис. 4.6.
Шаг 3 - системное проектирование. Структурная схема раз
рабатываемой системы показана на рис. 4.11, а схема алгоритма
4*
99
ее функционирования - на рис. 4.12. Все 8 выводов трехстабиль
ноrо буфера состояния находятся в состоянии О, пока считыва
тель не готов к обмену.
• -,.________________________ а
1-----t ---- --- ---- --- ----d
мп
Рис. 4.11
е,
'----v - - --'
Дрvше сvена.н61
систоннин
Состонни,
cl/umwfJameл1
Интер,реt1с
k
т
Шаг 4 - проектирование аппаратурной части. В связи с тем,
что минимальная длительность импульса ввода/вывода микро
процессора составляет 0,48 мкс, его нельзя непосредственно
HllVfJAfJ
передать на фотосчитыватель. Это пре
пятствие можно преодолеть на практике
с помощью триггера, устанавливаемого
з1,рv1ит& н,1111п1- • импульсом ввода/вывода.
ш,t1 118Р11: OJY
Из описания характеристик выводов
!lcf1lflкolvmi HtJ'll1л&ж, , фотосчитывателя следует, что сигнал пpo-
Jl((lveнue сv,тvика с
гона ленты может быть
д,
l/1J111om1 состонни,.
qv11т11611телн
Нет
11ит111116 4·
DHHVMVAll11111P
П1ресл11m6 из
аннvмv1111111ор11 6 ОЗУ
Унетши1111 co611JJК/J·
/tloe cvemvlJl(Q с на f
к,н,ц
отключен, когда сигнал l
сбрасывается в «О». Таким
образом, триггер можно
сбрасывать переходом из
«1» в «О» сигнала на ли
нии l, как показано на рис. 4.13. Сигналы
1разрешения трехстабильных буферов рав
ны
е2 = INP DBIN Ар,
Эти сигналы формируются двумя эле
ментами И, как показано на рис. 4.13.
Рис. 4.12
Шаг 5 - проектирование программно
го обеспечения. Непосредственно из ал
горитма (рис. 4.14) и в соответствии с си
стемой команд (рис. 3.27, 3.28) можно
записать восьмеричный и шестнадцати
ричный листинги программы для адресов
Ар = Ао2о, Aq = АоаЬ (табл. 4.2).
100
,--,-..;.,-----------------------а
1---4 ---- ------- ------ -------11
/NТEL
8080
Сvитыdотель
k
о
i---.....~-- -- --- -- -- --- -- --' -+ -/NP
1-----+-------------------ов1N
1------------------------ovr
L_l -------- ----------- --: ----W
Рис. 4.13
Рис. 4.14
Начали
НL=•но11ольншi
о!рес OJ!I
HL:•JI.L+I
/(QHII/
Таблица 4.2
Программа ввода данных в ОЗУ с фотос•IИтывателя
в.й адрес
8-й
16-й
Мвеыокод
Коымеюrарви
КОД
код
н
L
003ООО04121LXIн
{ Загрузить нача..п,ный адрес 03~ •
001 (L) (L~
002 (Н) (Н
регистровую пару НL
003 016 ОЕ MVI с { Загрузить длину блока в
004 (п) (п)
регистр С
005 014 ос INR С Увеличить содержимое регистра t.
006
для установки флажков
LЗ,
015 OD DCR С Уменьшить содержимое регистра а
007 312 СА
JZ
{ Если сод~ржимое регистра С=О,
010 027 17 {Ll
011 003 03
перейти к Ll
12:
012 333 DB
IN { Читать состояние считывателя
013 020 10
014 247 А7 ANA А Установить флажки
015 312 СА
JZ
{ Если считыватель не rотоь,
016 012 ОА {L2
017 003 03
перейти к L2
020 333 DB
IN { Читать следующий символ
021 030 18
022 167 77 MOVM,A Загрузить содержимое аккумуля-
023054 2СINXН
тора в память
Увеличить адрес памяти
024 303 сз JMP
{ Перейти к
025 006 06 {LЗ
LЗ
026 003 03
LI:
027 166 76
HLT
Останов
Задача 3. Прочитать и отпечатать п символов. Спроектиро
вать интерфейс между считывателем с перфоленты, описанным
в задаче 2, и печатающим устройством, описанным в задаче 1,
для распечатки программно-устанавливаемого числа считывае
мых символов. Использовать микропроцессор In 8080.
Решение.
Шаг 1 - формирование технического задания. Цель проекти
рования - построение интерфейса между МП и двумя внешними
устройствами.
Шаг 2 - внешнее проектирование. Необходимая информация
о сигналах ввода/вывода микропроцессора ln 8080 приведена на
рис. 4.7, а характеристики сигналов сопряжения фотосчитывате
ля и печатающего устройства - на рис. 4.6.
Шаг 3 - системное проектирование. Структурная схема раз
рабатываемой системы показана на рис. 4.15. Используемое
здесь решение включает: чтение символа, распечатку символа,
уменьшение счетчика на 1 и ожидание готовности считывателя
и печатающего устройства для повторения процедуры. После то-
102
го как содержимое счетчика приобретает значение О, указывая
тем самым, что п символов переданы и отпечатаны, работа за
канчивается, как показано на схеме алгоритма (рис. 4.16).
Шаг 4 - проектирование аппаратурной части. Руководствуясь
описанием сигналов сопряжения фотосчитывателя, находим, что
··11-------...------------------ q
1-----+ -- --- -1 ~-- --- --1 - --- --- -11
мп
~
Д/J11г11е CillHQ/16/
COC/710//Hil//
k
Пеl/оmающее •
••11 cтp ot1 cm6 0
(т
w
.(
CiltHQ/16/ ,....,___._____.....,.......__...___._
_.__....____...,
6dllt!O/d6I-
Интерq;еОс
Рис. 4.15
для продвижки перфоленты на один символ необходимо подать
нулевой сигнал на контакт k длительностью не менее 1 мкс,
и снять его перед тем, как
сигнал l станет равным
«1». Так как длительность
импульса ввода/вывода
примерно равна 0,5 мкс,
его нельзя непосредствен
но использовать для рабо
ты с фотосчитывателем.
Наиболее простым реше
нием в данном случае яв
ляется применение триг
гера,
устанавливаемого
импульсом ввода/вывода
и сбрасываемого сигналом
l при переходе из «1» в
«О». Этот переход проис
ходит через 2 мс после
подачи «О» на контакт k.
Таким образом, длитель
ность сигнала k примерно
равна 2 мс. Присвоим счи-
Ycmoнodi/1716 NQI/DIIЫIOI
ЗНО'IСНi/е C'lem'lil/((/ с
Да
Vumom6 cocmDllнue с11итыdо
тм11 и11е11отоющеео 1cm,oolicmdo
/fem
l/UmQ/716
Пe'lomom;
УмеН6шt1m6 соt!ернш
мое C'lem'lикa сна I
Конеq
Рис. 4.16
тывателю адрес ввода/вывода 003 и будем использовать сигнал
INP DBINAзoз для перевода JК:-триггера из «1» в «О». Этот же
сигнал используется для стробирования трехстабильного буфе
ра фотосчитывателя, т. е.
е1 = INP DBIN А003•
103
Для запуска печатающего устройства нулевой сигнал подает
ся на контакт w при выполнении команды ввода/вывода с адре-
сом 004, т. е. w=OUT WRAo 04 • Этот сигнал вырабатывается эле
ментом И-ПЕ и инвертором, показанными на рис. 4.17. Сигналы
!NTEL
8080
х
t---++----------------ч---+-+----INP
i-----t------------------------08/N
.___
_..______________________ оит
1-__J----+----------------------'wl
Рис. 4.17
да
Рис. 4.18
Конец
состояния т и х подают
ся на второй трехстабиль
ный буфер. Выходы этого
буфера несут информацию
о готовности считывателя
и печатающего устройст
ва, причем если устройст
ва не готовы, то на выхо
дах буфера формируется
код ООО ООО 11 или 003s.
Это дает возможность
программисту проверять
готовность обоих уст
ройств.
Для нашего случая
порту состояния присвоен
адрес 005.
Шаг 5 - проектирова
ние программного обеспе
чения. По схеме алгорит
ма (рис. 4.18) и в соответ•
ствии с таблицей команд !п 8080 (рис. 3.27 и 3.28) строим вось
меричный и шестнадцатиричный листинги программы (табл. 4. 3),
Таблица 4.9
Программа распечатки 11, символов с фотосчитывателя
8-й а.црео
8-А
16-А
Мнемокод
Комментарии
код
код
нL
003 ООО 016 01 { MVI { Загрузить следующий байт в ре-
001 (n) (n)
гистр С, п - число символов
002 014 ос INR С { Увеличить содержимое регистра С
для установки флажков условий
L3:
003 015 0D DCR С { Уменьшить содержимое регистра С
004 312 СА
JZ
tЕе.пи содержимое регистра С =0, пе-
005 025 15 {Ll
рейти к Ll
006 003 03
L2:
007 333 DB { IN { Ввести состояние
010 005 05
011 376 FE CPI 1Сравнить содержимое аккумулятора
012 003 03
со следующим байтом
013 302 С2 JNZ
{ Если устройство не готово, пере-
014 007 07 {L2
йтикL2
015 003 03
016 333 DB jIN
Читать символ
017 003 03
020 323 D3 Jоuт Печатать символ
021004041
022 303 сз JMP
{ Перейти к L3
023 003 03
{L3
024 003 03
Ll:
025 166 76 HLT
Останов
СИСТЕМЫ ПРЕРЫВАНИЙ
В этой главе разработаны алгоритмы проектирования и реа
лизации систем, работающих в режиме прерывания. Методика
проектирования изложена в гл. 2 (2.9 и 2.10).
5,1, &дЗОВЫЕ ОПРЕДЕЛЕНИЯ
Способность системы к обработке прерываний означает, что
некоторые внешние события могут вызвать временное прекраще
ние выполнения фоновой программы микропроцессором с целью
10~
отработки некоторой другой: последовательности команд, именуе
мой: программой обработки прерываний: (рис. 5.1). После того как
запрос прерывания удовлетворен, возобновляется обработка пре
рванной фоновой программы. Например, датчик пожара может
сообщить микропроцессору, что обнаружено загорание; в таком
случае микропроцессор должен прервать выполнение текущей
программы и выполнить служебную программу (например, вклю
чением сигнала тревоги предостеречь работающий поблизости
персонал, включить систему пожаротушения, вызвать пожарную
команду и т. д.). Ответив таким образом на пожарный сигнал,
Фоноdон программа
Лрер61dоемо11
Прер6tdоние
лрогроммtJ
Ат:'----,----'
-------
....---_ -. ...
-
....- --..
As· Л11оzроимо
QQC/llj!К(ldOIIVR
Bo:Jdf}{Jm лрер616011vн
Ат,,-.--_ _ . _ _
_,
Прерdоннм
лрогроммtJ
Рис. 5.1
микропроцессор
может
вернуться к обработке
прерванной: программы.
Введем следующие
обозначения: Ат- ячей
ка памяти, содержащая
последнюю выполненную
команду фоновой: прог
р аммы к моменту преры
вания; As - ячейка, со
держащая первую коман
ду программы обработки
прерываний:. В момент
прерывания содержимое
программного счетчика РС равно Am-ti, так как оно увеличивает
ся в машинном цикле MJ (см. рис. 2.4) выполняемой команды.
Для того чтобы переключиться с основной: программы на
подпрограмму обработки прерываний:, необходимо заменить со
держимое программного счетчика РС на А8• Аналогично для
возврата в прерванную программу по окончании обработки пре
рываний необходимо загрузить программный счетчик РС вели
чиной: Ат+1, Последняя представляет собой минимальную инфор
мацию, необходимую микропроцессору для возврата в прерван
ную программу. Будем называть эту информацию адресом воз
врата в программу. На практике необходимо сохранять на время
обработки пр~рываний: также содержимое рабочих регистров и
флажков состояния. Под рабочими регистрами понимаются ре
гистры, используемые как прерванной программой, так и про
граммой обработки прерывания. Содержимое программного счет
чика, флажков состояния и рабочих регистров в дальнейшем бу
дем называть информацией возврата в программу [ 1].
Примерами применения режима прерывания программы на
практике могут служить запуск, сопровождение и завершение
некоторого процесса, протекающего параллельно (одновремен
но) с выполнением основной программы.
Хотя разработка систем прерывания также выполняется по
обобщенному алгоритму проектирования, реализация таких си-
106
стем требует существенно большего объема аппаратуры и про•
граммного обеспечения, чем любой другой режим работы микро
процессора.
5,2, СИСТЕМЫ ПРЕРЫВАНИЯ
Структурная схема системы обработки прерываний показана
на pf1c. 5 .2. Она состоит из логики прерываний (схема обработ
ки прерываний), используемой всеми устройствами, работающи
ми в режиме прерывания; периферийных устройств и интерфейса
.-1---------------------11
------d
МП ...,_ _l _'N_TA
__
~
I
111
-------v------ lп
Дрqше 1p1101НKII
Внешнее
qcmpoOcrл6fJ
с11ено11и Cuzн11116t
уп,ооМенин состо11ни11
Сием11N ,___________._ _ _, __. .. ____ ._ _
66odo/6ы
odo
Рис. 5.2
ИнтерtреОс
прерываний. Приведенная схема представляет собой обобщен
ный вариант системы обработки прерываний без конкретизации
типа микропроцессора и внешних устройств. Схема алгоритма ее
работы изображена на рис. 5.3, а описание его приведено ниже.
Когда периферийное устройство требует обслуживания или
готово передавать данные в микропроцессор (или принять их из
МП), его интерфейс, осуществляющий связь с системой, уста
навливает флажок (концепция флажков будет описана далее).
Схема обработки прерываний, воспринимая состояние всех флаж
ков, генерирует сигнал прерывания (сигнал / на рис. 5.2) и
некоторую дополнительную информацию, которую обозначим пе
ременной i. Сигнал / сообщает микропроцессору, что одно или не
сколько внешних устройств желают установить связь с микро
процессором. Если прерывания разрешены, микропроцессор за
канчивает текущую команду и отвечает на запрос следующим
образом. •
1. Микропроцессор генерирует сигнал INTA (рис. 5.2), ука
зывающий, что выполняемая программа прервана. Будем назы
вать его сигналом подтверждения прерывания.
2. Дальнейшие запросы прерывания не воспринимаются (за
прещаются). Таким образом, проц~сс выполнения программы
107
обработки прерывания микропроцессором не будет прерван до
тех пор, пока это снова не станет воз~ожным по логике про
граммы.
3. Информация возврата запоминается в стеке.
4. Определяется источник прерывания путем ввода и расшиф-
ровки информации i.
5. Содержимое рабочих регистров запоминается в стеке.
Фоноdон
программа
Со~ран11т, atJpec
loJdpama
Опре!lелить истоq
ник npep616aнuii
О5риоотко 1ипроса
преры6ания
о,1истить
tрлажок
Ри1решить
ЛPiPЫ6:JHUR
Висстаноdить
qopec 6016ротq •
6. Обслуживается запрос прерывания.
7. Сбрасывается флажок запроса пре•
рывания.
8. Восстанавливается содержимое ра
бочих регистров.
9. Разрешаются прерывания.
10. Осуществляется выход из подпро
граммы обработки прерывания.
(Возврат в прерванную программу пу
тем загрузки в РС адреса возврата).
Приведенная выше последователь
ность событий является обобщенной и мо
жет в определенной степени варьировать
ся в зависимости от конкретного микро
процессора, на котором реализуется си
стема. Например, для микропроцессора
Мс6800 все рабочие регистры микропро
цессора и флажки состояния заносятся в
стек автоматически, тогда как в микро
процессоре / п 8080 автоматически в стеке
запоминается только содержимое про
граммного счетчика. В данном случае за•
дача запоминания содержимого рабочих
регистров и флажков условий должна ре
шаться пользователем.
Рис. 5.3
Конфигурация систем обработки пре
рывания для различных микропроцессо
ров различна и обусловлена структурой
цикла обработки прерывания. Как будет показано в 5.4, разра
ботка системы прерывания не представляет существенных труд
ностей, если разработчик знаком со структурой цикла обработки
прерываний конкретного микропроцессора. Однако, прежде чем
переходить к детализированному описанию процесса проектиро•
вания систем прерывания, представляется целесообразным из
ложить концепцию флажков и принципа их сортировки, что бу
дет сделано в следующем параграфе.
5,3. ФЛАЖКИ И ИХ СОРТИРОВКА
Флажки. Оnределим флажок как сигнал, генерируемый и ис
пользуемый некоторым устройством для информирования друго
го устройства о запросе на установление связи. Структурная
схема цепи, способной устанавливать, сбрасывать, разрешать и
запрещать выдачу флажков, показана на рис. 5.4 . Функции че
тырех входных сигналов следую-
щие. Входной сигнал е разрешает i( -- "'1
доступ к флажку, а сигнал d запре
щает его. Эти два сигнала не долж
ны появляться одновременно. Когда
доступ к флажку разрешен, сигнал
с--"'1 l!ель
1рорм11ро6он111 i--,,- -1
/! --"'1 !рЛОЖКО
на входе k устанавливает его. Фла- d --" '1
жок сбрасывается (очищается) сиг-
.______,
налом на входе с. Если нет необхо- Рис. 5.4
димости в управлении, доступном к
флажку, входы d и е могут не использоваться.
Схема флажка. Как и для всякой логической схемы, переда
точная характеристика логической структуры флажка может
быть реализована с помощью различных (но функционально
d
so
ds,
·SZ
S!
ДОС/111/Л
Флаwок
Фло.wок
Фложок
Kl{)Л(JJНKI/
е
0171KЛIOll/!H
/(
11с111оноlлен
оvuщен
1алрещен
c+d
/=О
1-0
f=/(
J=O
!=О
!•f
E•f
E-= f
АВ=оо
01
ff
10
Рис. 5.5
эквивалентных) схем. Ниже мы рассмотрим два возможных спо
соба реализации флажков, именуемых в дальнейшем флажок
1 и флажок 2.
Флажок 1. Диаграмма состояний, описывающая внутренние
и внешние операции схемы [2], изображена на. рис. 5.5 . Непо
средственно из этой диаграммы получаем:
условие установки А = Bk;
_
_
инверсия А _
_
условиесброса А== Bk +Bd--➔(В+k)(В+d);
условие установки В == Ае + Ak;
_
и-иверсия В _ _
условиесброса В==Ad+Ас+Ad==d+Ас--➔d(А+с).
109
Таким образом,
А=Bk+А(В+k)(В+d);
в=Ае+Aii+в(А+ё)l;
f=S2k =ABk.
Эквивалентная схема И-НЕ показана на рис. 5.6.
в
i
в
(/
и
г------,
А~
f~--~j I
А
А
с
Рис. 5.6
в
Флажок 2. Если отсутствует необходимость в цепях разреше
ния/запрета, а сигнал k является импульсным, флажок можно
реализовать в виде триггера, как показано на рис. 5.7 (см. также
1.1 О).
,'_ Идентификация флажков. Как отмечалось выше, сигнал пре
рывания формируется путем выполнения функции ИЛ И над со·
k---,
So
с
s,
1
m
f
I
/=О
l•f
о
с
Рис. 5.7
держимым всех флажков. Этот сигнал просто информирует ми
кропроцессор о запросе прерывания от одного или нескольких
устройств. Таким образом, когда микропроцессор начинает об
рабатывать прерывание, подпрограмма обработки должна иден
тифицировать источник прерывания. Существует два основных
метода идентификации флажков: последовательный и вектор
ный. Каждый из этих методов рассмотрим подробнее.
Последовательный метод. В этом случае после получения
запроса прерывания микропроцессор последовательно просматри
вает устройства, пока не обнаружит устройство, требующее об
с.11уживания. Когда такое устройство найдено, просмотр прекра
щается и вызывается соответствующая подпрограмма обслужи-
110
вания. Если после окончания обслуживация среди непросмотрен
ных устройств еще есть устройства, выставившие запрос, про
смотр продолжается, в противном случае производится возврат
в прерванную программу.
Существует несколько способов практической реализации
последовательного метода. Для описываемого далее примера
флажки подсоединяются ко вход-
ному порту, через который их со-
ФоноОоя лрогроммо
держимое читается микропроцес-
1
сором во внутренний регистр по
IJстоноОить но'lt111ьное
шине данных {рис. 5. 8, а). Со-
значение счетvино ,к:Dт
,,
е
..- -:4--
мп ~ипи
----
lm lm+f
fп
а
Рис. 5.8
держимое внутреннего регистра
затем проверяется побитно, как
показано на рис. 5.8,б.
Векторный метод. В этом ме
тоде С ПОМОЩЬЮ СПеЦИаЛЬНОЙ ЛО·
d
1/итать состояние
,P IIOJl(HOO
Нет
СQ,краж1.т1, соОерж11.мое
аоочи,к реаастро/1
Лереilти к 06с11,;жи/lою
щеи программе х
Восстоно/lить соОерж11мое
ра6очи,к регистроd
Нет
!/de11u11am1, СQ/lержимое
с11еm'1ико(x:•x+t)
нет
гической схемы - сортировщика флажков (приоритетного шиф
ратора) автоматически устанавливается наличие флажков, иден
тифицируются выставившие их устройства (см. рис. 5.9, а). Сиг
нал прерывания / генерируется, как и во всякой системе, путем
выполнения операции ИЛИ над содержимым флажков. Иденти
фицируется флажок специальным двоичным кодом. Будем ис
пользовать в наших примерах прямой двоичцый код (8-4-2-
1), если не оговорецо особо.
Проектирование и реализация приоритетных шифраторов не
представляют труд1:1остей для читателей, з1:1акомых с материалом,
111
изложенным в гл. 1. Продемонстрируем алгоритм проектирова•
ния на примерах двух-, восьми- и шестидесятичетырехфлаж
ковых шифраторов. При этом будем полагать, что более высоким
d
Фоно6он
l
программа
/
е
Вdестц l
мп
Векторный
otJpec
/
PC:=l
8оз6рот
(nepe.rotJ к notJ11po1paммeJ
Шцrрратор
ФлоJNкu Восстоно6uть cotJep_жuнoe
rрложкоd
ра501111.к pet11cmpod
а
5
Рис. 5.9
приоритетом обладает устройство с большим флажковым но
мером.
Двухфлажковый приоритетный шифратор.
Структурная схема двухфлажкового шифратора показана на
fo
Дdtj.ftp/lON(
l(Q6Ш}
шцrppqmop
q
Рис. 5.10
!
А(2°)
fo 11
оо
хf
fо
/
о
f
f
о
А
fJ
1
о
lо~'ЛИ 1
11
А
о
рис. 5.10, а, а его передаточная функция (характеристика вход/
выход) - на рис. 5.10, б в виде таблицы истинности. Непосред•
ственно из этой таблицы получаем следующие уравнения:
I=fо+f1;
А=f1•
Схема, реализующая эти функции, показана на рис. 5.10, в.
Восьмифлажковый шифратор. Структурная схе
ма восьмифлажковоrо шифратора показана на рис. 5.11, а, ха•
рактеристика вход/выход в виде таблицы истинности- на рис.
5.11, б. Непосредственно из этой таблицы получаем следующие
112
уравнения:
l=~+~+~+~+~+h+~+~
А= f7 + f7fвfь + f?fвf,,f4fэ + fiвfofJJ2f1 =
= /7 + f вfь + fвf4'э + fвf4f2f1;
В= f1 + f1f в+ f7fвfьf4fs + f.1'ef~f4'зf2 =
= /7 + fв + fьf4'з + fr,f4f2;
С=f1+f7fв+f.:{вfr, +f1fвfьf4 = f1+fв+fъ+f4.
В связи с тем, что вось
мивходовые приоритетные
шифраторы выпуС'каются
в виде БИС, их реализа
ция на вентилях не пока
зана.
Рис. 5.11
8ОС6МUtрЛОЖ·
ко6ь1v
шиrрротор
а
I,
А(2')
8(21)
С(2 2)
Вхо4м
f11·f,fz11141,f6f1
оооооооо
хххххххf
ххххххfо
х_ххххfоо
ххххfооо
хххfоооо
ххfооооо
хfоооооо
fооооооо
о
86IX04bl
lСВА
о -е- -е- -(J-
ffff
fffо
ffоf
ffоо
fоf,
fоfо
fооf
fооо
'
Шестидесятичетырехфлажковый шифратор.
Структурная схема 64-флажкового шРфратора показана на
рис. 5.12 . Флажки объединены в 8 групп по 8 флажков в каж
дой, причем каждая группа связана со своим шифратором. Вы
ходные сигналы восьми приоритетных шифраторов поданы на
вход селектора групп, являющегося также приоритетным шиф
ратором. Работает схема следующим образом.
-
Селектор группы выбирает группу, в которой есть установлен
ный флажок, генерирует сигнал прерывания для системы / и трех
битовый адрес, идентифицирующий выбранную группу. Сигналы
D, Е и F, кроме того, что они подсоединены к адресной шине,
подаются также на вход двоично-десятичного дешифратора.
Каждый из восьми выходов дешифратора стробирует три трех
стабильных буфера, соединяющих адресную шину с соответству
ющим приоритетным шифратором, как показано на рис. 5.12 .
Заметим, что данный 64-флажковый шифратор можно использо
вать для обслуживания меньшего числа флажков путем простого
заземления неиспользованных входов.
Очевидно, что модульный метод, используемый при реализа
ции 64-флажкового шифратора на основе 8-флажковых шифра-
113
торов, можно применять для разработки системы, обслуживаю
щей до 4096 флажков путем установки 64-флажкового шифра
тора в качестве модуля в схеме рис. 5.12 .
11J
АtJреснан шеtна
.....---"---,
А
R
с
lJ
F
~
Грумовые { Do_- =
= Групповой
флажки
шифратор
9в=
-~_..:..:._..:..J------------..
Рис. 5.12
5,4. СИСТЕМА ПРЕРЫВАНИА
МИКРОПРОЦЕССОРА ln 8080
}Аорес
(pЛflJНKfl
} ADpec
tрfЛЛ61
1
В этом параграфе проектируется система прерываний для
микропроцессора: /п 8080. К:ак было указано выше, для проекти
рования системы прерываний необходимо ознакомиться со струк-
114
турой цикла обработки прерывания в микропроцессоре, который.
как мы увидим, в значительной мере индивидуален. Рассмотрим
этот вопрос более детально.
Цикл прерывания в микропроцессоре /п 8080[3]. Функцио
нальное назначение выводов МП, приведенное на рис. 2.9, пока
зывает, что подача логической «1» на контакт 14 прерывает про
грамму, если прерывания не запрещены. Разрешение прерывания
индицируется логической «1» на контакте 16. На входной сигнал
запроса прерывания не налагаются никакие временные ограни-
.л.
~~
~lt
1Е.
ре
00000000
00tldd000 IR
-
f
Вж;т-
f
d
ренние
~1
цепv
l
Рис. 5.13
~
1
1
AtJpec 11кощ6оемыti 6 РС !
CmqPoe
J
соtJержимое 1
РС1
1
Стек
1
1
1
1
t
Сmqршqя nono-
duнo otlpeCfl MnQtJшoн nono-
' (}Q 000 ООО 6ино т1реr:11
00000 ООО
0000/ ООО
00010000
000/f ООО
00 /00 00IJ
00 /Of ООО
00110 00(1
00 /!f ООО
ч:ения - сигнал можно подавать в любое время. Это возможно
благодаря наличию внутренней синхронизации запроса преры
вания в микропроцессоре путем его стробирования синхроим
пульсом Ф2 на последнем такте командного цикла, в течение
которого поступил запрос прерывания.
Как уже отмечалось, метод, используемый в МП / п 8080,
весьма своеобразен. Этот метод проще понять, будучи знакомым
с методом отработки микропроцессором команды RST. Код опе
рации этой команды 11ddd11 l. Тремя буквами ddd обозначено
восьмеричное число от О до 7. Как и для команд ввода/вывода,
на отработку команды RST затрачивается три машинных цикла.
Предположим, что команда RST загружена в регистр кода
операции IR (рис. 5.13). В течение следующих трех машинных
циклов содержимое программного счетчика РС засылается в стек
(по 8 бит за цикл). Параллельно со стековыми действиями со
держимое регистра команд (1 ldddl 11) подается на вход вну
тренних цепей, генерирующих два 8-битовых слова:
00ООООООи00dddООО.
115
По мере того как байты программного счетчика засылаются
в стек, эти сгенерированные слова занимают их место, причем
00 ООО ООО заносится в старший байт программного счетчика РС,
а 00ddd000 - в младший байт. Таким образом, следующая коман
да будет извлечена из одной из следующих 8 ячеек:
00 ООО ООО (0008) 00 ООО ООО (0008), если ddd = ООО;
00 ООО ООО (0008) 00 001 ООО (О 108), если ddd = 001;
00 ООО ООО (000 8) 00 010 ООО (0208), если ddd = 010;
00 ООО ООО (0008) 00 О11 ООО (0308), если ddd = О11;
00 ООО ООО (0008) 00 100 ООО (040 8), если ddd = 100;
00 ООО ООО (0008) 00 101 ООО (0508), если ddd = 101;
00 ООО ООО (0008) 00 11О ООО (0608), если ddd = 11О,•
00 ООО ООО (0008) 00 111 ООО (0708), если ddd = 111.
Как ясно из предыдущего параграфа, трехразрядная двоич•
пая переменная ddd в команде RST может быть сгенерирована
при_о_ритетным шифратором.
Ниже будет показано, как команда RST (повторного запус
ка) может использоваться для прерывания микропроцессора
INТEL
8080
/
I
шт_,,_....
'т-l'"i"т'т'т......
Рис. 5.14
г
1
070а 303 JUMP
003
Рис. 5.15
03!1
/п 8080 в аварийных ситуациях, даже когда прерывания запре
щены. Эта особенность, аналогичная немаскируемому прерыва
нию в МП Мсб800, является полезной в случаях, связанных с вы~
соким риском, таких как управление и контроль в медицине и др.
Возвратимся теперь к циклу прерывания МП /п 8080. Он
.
похож на обычный цикл извлечения команды (см. рис. 2.2, 2.4),
за исключением того что: а) генерируется сигнал подтверждения
прерывания; б) содержимое программного счетчика не увеличи
ваеrся на 1; в) запрещаются дальнейшие прерывания.
Если в течение :времени действия сигналов INTA DBIN от
ключить память от шины данных и перейти к обработке команды
116
RST, как показано на рис. 5.14, управление программой пере
. дается
одной из 8 ячеек, показанных на рис. 5.13, в зависимости
..
ddd ООО
Выкоишu1рро•{!тораtрЛОЖНО6
! - ddd=00f
.
ddd•0f0
-
.
dda•0ff
-
ddd = f00
-
.
ddd• f0f
-
-
ddd= lf0
i dd:•fff
Рис. 5.16
0039
03!/
11//.,
1/////////,/,
////ДiW/,7///,7///2
ооо,
0109
ого,
0304
ово,
0701
от кода ddd, выдаваемого приоритетным шифратором. Напри
мер, если на выходе приоритетного шифратора будет код 010, то
управление передается ячейке с адресом 00 010 00 (020),
fJ
d•
l
/NTA
/NTtl
е,
е2
8080
1)8/N'
J
I
INT
/
Внешнее
ljCmpQi1Cm8Q
~
Дplj211e tpЛOIN:ml ln
Сuгнолы С112нолы
tjлрQ8ленин состо11н11н
INP
08/N
Интерrреоо
Рис. 5.17
В существующих системах обычно (хотя и не всегда) ячейки
ПЗУ имеют адреса с нулевым старшим байтом. Так как подпро-
117
граммы обслуживания прерывания, написанные пользователем,
должны располагаться в ОЗУ (из-за невозможности изменения
содержимого ПЗУ), то ячейки ПЗУ с адресами 00 ddd ООО долж
ны содержать команды перехода в соответствующие ячейки ОЗУ
(см. рис. 5.15). Для рассматриваемого примера будем полагать,
что ячейки ОЗУ начинаются с адресов, у которых старший байт
равен 00 ООО 011 (003), а ячейки ОЗУ, в которые передается уп
равление при переходе, имеют младший байт адреса от 000 8 до
0708• С точки зрения пользователя это означает, что сигнал
прерывания вызывает передачу управления на одну из восьми
ячеек вектора ОЗУ в зависимости от величины кода ddd
(рис. 5.16). Любая из восьми ячеек может использоваться для
первой команды программы обслуживания прерывания. Если
программа обслуживания имеет более восьми команд, то про
граммист может использовать команду JVMP для перехода на
другие адреса памяти.
Содержимое программного счетчика на момент поступления
прерывания восстанавливается командой возврата. Содержимое
рабочих регистров восстанавливается путем выполнения соответ
ствующих команд извлечения из стека. Структурная схема ми
кропроцессорной системы прерываний на базе /п 8080 в оконча
тельном виде изображена на рис. 5.17 .
5.5. ЧРЕЭВЫЧААНЫЕ ПРЕРЫВАНИSI
МИКРОПРОЦЕССОРА /п 8080
Одной из характерных особенностей любой системы, работаю
щей в медицинском, промышленном и другом оборудовании, экс
плуатируемом в условиях высокого риска, является ее cпocoб-
i----------------. -......-- - - ~ rl
lNТ.EL
8080
Рис. 5.18
(ABAPИЯ)·MNJBIN \
......_,_ _,
A6(/p11liж1t1 oDpet:
ность отвечать на запросы в критических ситуациях с минималь
ной задержкой. В МП /п8080, как указывалось выше, при входе
в цикл обработки прерывания автоматически запрещаются все
остальные прерывания. Для разрешения их необходимо приме
нение командЫ' «разрешение прерывания» EI. До тех пор,, пока
118
такая команда не выполнена, микропроцессор будет игнориро
вать внешние запросы прерывания, т. е. аварийные запросы не
будут рассмотрены в течение этого времени. Этот интервал вре
мени может затянуться до опасных пределов из-за того, что про
граммист не учел необходимости обработки аварийных сигналов
либо забыл поставить в необходимом месте команду разрешения
прерывания.
Риск появления такой ситуации можно уменьшить с помощью
выдачи на шину команд команды RST при появлении аварийно
го запроса с соответствующей величиной ddd (рис. 5.18). Это вы
зовет практически мгновенный переход на подпрограмму обра
ботки аварийного запроса независимо от того, запрещены пре
рывания или нет.
S.6. СИСТЕМА ПРЕРЫВАНИЯ
МИКРОПРОЦЕССОРА Мс 6800
Как будет видно ниже, для микропроцессора МсбВОО можно
построить две системы прерывания. Однако вначале рассмотрим
структуру цикла прерывания этого микропроцессора.
Цикл прерывания Мс 6800. Согласно схеме функционального
назначения выводов (см. рис. 2.9), работа микропроцессора
.- --1 ---- --- --~ -11
1---+--------.--t!
l
fo ft
Рис. 5.19
Рис. 5.20
МсбВОО может быть прервана подачей логического «О» на кон
такт 14, если прерывания не запрещены. Как и для /п8080, на
сигналы запроса прерывания не налагается никаких временных
ограничений, т. е. они могут появиться в любой момент. Это
возможно благодаря тому, что синхронизация с обрабатываемой
командой достигается внутренним стробированием запроса пре
рывания фазой Ф2 в последнем такте командного цикла.
Процесс обслуживания прерывания происходит сJiедующим
образом:
119
1} заканчивается текущая выполняемая команда;
2) запрещаются дальнейшие прерывания;
3) состояние микропроцессора автоматически записывается в
стек в следующем порядке: PCL, РСн, IRL, IRн, АССА, АССВ, СС;
4) программный счетчик загружается величиной, записанной
в ячейках FFF8 (РСн) и FFF9 (PCL). Эти ячейки, как уже объ
яснялось, содержат адрес первой команды программы обработ
H#'IQAIJ
1/vтоть l
Пpeo5poзlldqm6 l l NfJI/0/16
H6/li оирес лQlfnpoepflмн11(As)
Переdти Hfl
IIIМPOt/lflH/lfV { А s}
Koнell
ки прерываний.
Внимание читателя обращается на тот
факт, что на данном этапе источник прерыва
ния не идентифицируется.
Возврат в прерванную программу в кон-
це программы обработки прерывания вы
полняется с помощью команды возврат из
прерывания (RТI), код операции которой
ЗВ1&- В результате выполнения данной
команды восстанавливается состояние мик
ропроцессора до прерывания путем извле
qения из стека содержимого регистров мик
ропроцессора в порядке, обратном занесе
нию.
Рис. 5.21
Источник прерывания Мсб800 можно оп
ределить как последовательным, так и век
торным методом, описанными в 5.3. Рас
смотрим две разновидности системы обработки прерываний.
Система прерываний 1. В этой системе используется последо
вательный метод для идентификации источника прерывания. Его
структурная схема показана на рис. 5.19, а алгоритм его функ
ционирования описан на рис. 5.8, б.
Система прерываний 2. В системе 2 используется векторный
метод для идентификации источника прерывания. Структурная
схема системы показана на рис. 5.20, а алгоритм функциониро
вания - на рис. 5.21 .
5.7 . ЭКСТРЕННЫЕ ПРЕРЫВАНИЯ
МИКРОПРОЦЕССОРА Мс 6800
Экстренные прерывания обслуживаются после подачи сигна
ла на вход NMI (немаскируемое прерывание) (контакт 39,
рис. 2.9).
5.8 . ЗАДАЧИ И РЕШЕНИЯ
В данном параграфе продемонстрируются применения обще
го алгоритма проектирования при решении задач вплоть до уров
ня окончательных решений. Внимание читателя обращается на
тот факт, что приводимые процедуры проектирования пригодны
для любого микропроцессора, хотя в примерах использовались
120
только In8080 и Мсб800. Отдельно хочется отметить, что первые
три шага алгоритма проектирования выполняются без учета типа
применяемого микропроцессора.
1 Задача 1. Счетчик событий. Импульсы, представляющие со
бой некоторые события, возникают случайным образом на шине
q (рис. 5.22). Спроектировать систему прерывания, позволяющую
распечатать содержимое счетчика Фоноdон
событий всякий раз при ручном ~11
нажатии кнопки т. Нажатие на
кнопку сбрасывает счетчик (пред
полагается, что нажатие происхо
дит нечасто).
q
Проект11р1щ"011
с11стем11
==
~
-~--
==
-
===птть
~
.. !!1-
Рис. 5.22
Рис. 5.23
Систему реализовать на микропроцессоре In8080 (задача 1)
и микропроцессоре Мсб800 (задача 2).
Доступные разработчику адреса ввода/вывода следующие:
для /п8080- 0038 и 004s;
для Мсб800 - 20001в, 800415 и 800615.
Решение для I п8080.
Шаг 1 - формирование технического задания. Цель проекти
рования состоит в выдаче содержимого счетчика событий по
запросам с использованием режима прерывания, как показано
на рис. 5.23.
Шаг 2 - внешнее проектирование. Структурная схема систе
мы прерывания на микропроцессореlп8080 показана на рис. 5.17,
а сигналы ввода/вывода - на рис . .4.7 ..
•
Характеристики сопряжения печатающего устройства приве
дены на рис. 5.24 .
Шаг 3 - системное проектирование. Структурная схема об
щего решения показана на рис. 5.25, а ее функционирование~
на схеме алгоритма рис. 5.26. Каждый импульс на шине q ире
р-ывает текущую программу и увеличивает содержимое счетчика
на 1. Аналогично при нажатии клавиши прерывается текущая
программа и выполняется другая служебная подпрограмма,
обеспечивающая печать содержимого счетчика и сброс его содер
жим,оr.о. в ноль.
! Шаг 4 - проектирование аппаратурной части. Из структур
ной сх~мы рис. 5.27 (общей структурной схемы разрабатываемого
121
Устройство типа
запрос/ответ
!lcfll,OQl1cm6o
tonpoc/01116e111
11
r
Контакт а. Переход
«0) ➔ «1:t на этом кон
такте активизирует уст
ройство (подает sа
прос).
Контакт ,. Сигнал
со
стояния r равен «!»,
когда устройство гото
во к обмену, и равен
«О» в противоположном
случае. Активизация
устройства недопусти
ма,еслиr=О,
Рис. 5.24
Печатающее устройство
w
х
Контакт w. Импульс отри
цательной полярности дли
тельностью свыше 1 мкс
загружает символ в буфер
либо запускает механизм
печати, если буфер запол
нен, или вводится символ
«возврата каретки» (О 15 в
коде ASCII (см. рис.
3. 23)), Недопустимые в
коде ASCJ/ символы
игнорируются.
Контакт х. Сигнал еосто
яния х равен 1, когда пе
чатающее устройство го
тово, и на шине w уро
вень 1,
Считыватель
JkIт
Контакт 1. Подача «О» на
этот контакт запускает про
гон ленты влево.
Контакт k. Подача «О» на
этот контакт вызывает прогон
ленты вправо.
Контакт l. Сигнал состояния
l устанавливается в 1, когда
отверстие синхродорожки пер
фоленты находится под счи
тывающей головкой, иначе
l= О.
Контакт т. Уровень «!» на
этом контакте указывает, что
считыватель готов к приему
следующего импульса прого
на. Для остановки перфолен
ты на очередном символе
необходимо снять импульс
прогона на 1 мс сразу за фрон
том сигнала l. Минимальная
длительность импульса l
1 мкс.
г-r-----------------,...---------а
1--------r- -- ---t- -- -- -, -- -- d
l
/NTA
мrt 1-------.
./
~
Дрvеие f/)ла,кки
lo 1,
Пе11атающее
vcmpol1cm6o
w
,к
Инmepf/Jtl1c
СuгNoлы
nм~wkмL-------т--------,г----,-----
Рис. 5.25
122
q
.! !L
устройства на МП / п 8080) видно, что интерфейс генерирует
следующие сигналы:
1) двафлажка- foиf1;
2) импульс печати w.
Если нет необходимости разрешать или запрещать доступ к
флажкам, то они могут формироваться схемой типа 2 (см. 5.2}.
1
Зr111ретить tJgл.нedщue
лреры6они11
Со%ронить ailpec ОозОрата
Саrронить соilержииое
po5011u,r регистро6
до
Пe11omQmь соdержииое
с11ет11ик11 co51,1muti
Соросит1, lt
8осстоноlит1, соtJе,ожи
мое po5011u,r ре211стро8
Розрещит11 лрер1,16они11
Нет
Со.rронит1, соtlержимон
po501111,r pezucmpo6
!/6ели1111ть соuержимое
Cllfl/ТJ'I/IK(J на f
С5,оосить .f"
Восстоно6ит1, cotlepжu
мoe po5ovu.r pezucm,008
fQзрешит11 лрер1,16онин
J(oмoнtlo
loз6pt1ma
КомонtJ11
...._____, __ _ _....,.____...,1 dоз6роти
Рис. 5.26
ВосстоноОить atlpec
Оо.16рот11
Если использовать импульс q для установки триггера fo
(рис. 5.28), а сигнал с кнопки подать на триггер f1, то уравнения
интерфейсных сигналов примут вид:
Со= q,•
r0 = OUT WR Аоо3;
с1 =m;
Г1 =W;
-~---
w=OUTWRА00,.
123
,--,_________________________ d.
L......---------------1-----------tf
оресныа
dешцtрра-
Пе11атающе,
I тор
рстраt1ст6о
Aooj
Ао111
w
,r
...____,..___,
Друеце rрлажкц
t,
fo
INP
JJl
0(1
Интер;J1Ос
WR·
т
q
Рис. 5.27
Q
(1
l • f!Qt, 1111
1
Пе11отающее
ycmpoilcm6o
/NT
/
Аоо, Аоо4 w
х
(Не использvется)
INTEL
8080
'
loI
/1
о
о
......_______....,________...,.._____ оит
t--_____,.,__________. __ _ _ _ WH
Рис. 5.28
Далее, если принять во внимание, что fо и f1 - единственные
флажки системы, то можно удовлетвориться двухфлажковым
приоритетным шифратором.
Как показано в 5.3, такая Поипрщтммо ntvoma
поипро2ронмо &v1m11
схема реализуется на венти- _
HovoAtJ
Ноvол,
ле ИЛИ (см. рис. 5.10). При
этих условиях аппаратурная
часть системы имеет конфи
гурацию, показанную на
рис. 5.28.
Шаг 5 - проектирование
программного обеспечения.
Структурная схема алгорит
ма для In 8080 показана на
рис. 5.29 (см. также рис. 5.3).
Непосредственно из алгорит
мов, пользуясь приведенной
на рис. 3.28 системой команд
МП, получаем . следующие
восьмеричный и шестнадца
тиричный листинги програм
мы (табл. 5.1).
Со.fронип,1, А С
Со,rр_онит1, cotJipJНUl'fDI
АС и ipЛOIНKOd
!ldeлuvum1, соiJержимо,
cvtm11t1кo
Вос1:л111ноdит1
!рЛОIНКU
t1зрешит1,
п,оерыlония
Воз/рот
,Рис. 5.29
Таблица 5.1
ПодD/)оrрамма обработки прерываний в счетчике событий на /п 8080
8-й адрес
8-й
16-й Мвемокод
~оммевтарвв
код
код
Подпрограмма оослужиsания О (Счет)
нL
003 010 365 F5 PUSH PSW Сохранить содержимое А и фпажков
011 004 04
INR В
Увеличить содержимое В
012 323 D3
оuт
{ Цикл ввода/вывода для о<mстки флаж-
013 003 03
ка fo
014 361 Fl РОР PSW
Восстановить А и флажки
015 373 FB
EI
Разрешить прерывания
016 311 С9
RET
Возврат
Подпрограмма оослуживания 1 (Печать)
030 365 F5 PUSH PSW Сохранить содержимое А и флажков
031 170 78 MOVА,В ПереслатьизВвА
032 323 D3
оuт
{ Цикл вывода для загрузки принтера
033 004 04
и очистки флажка f1
034 076 3Е MVIA { Загрузить в А код возврата каретки
035 015 0D
015
в ASCJJ
036 323 D3
OUT
{ Опрос принтера
037 004 04
040 006 06
MVI В { Очистка регистра В счетчика
041 060 30
042 361 Fl РОР PSW
Восс·rановить А и флажки
043 373 FB
EI
Разрешить прерывания
044 311 С9
RET
Возврат
125
Решение для Мсб800.
Шаг1-}
Шаг 2 То же самое, что и для МП ln8080.
1Шаг3
. :. Ша г 4 - проектирование аппаратурной части.
·для МП МсбВОО разработчик имеет возможность выбора меж
ду реализацией системы обработки прерываний с последователь
ным или векторным методами идентификации. В приведенном
-
1
t
IAtlpecныil 1
QilJJ/Jf/JPfИIIJP
[
vмAI - 'е
и
~1
r/J1.
-
'2
1---
,___ ..
Гiю -oL или
М6800
-
~
Дpljt/18 f/)ЛOIНKIJ
lu
VMA
H/W 1
r/Jг 1
-
Рис. 5.30
1 Mpecн6tri 1
tleшuf{Jpomup I Пеvотqю~ее
ljtmpllllCm (1
А,rюг A81JfJ4
А2004
,,,;~
··х
1,
Инmeprpetlc
L-m._J
о
d
1
варианте рассматривается последовательный метод опроса, опи•
санный в 5.3 . Структурная схема показана на рис. 5.30 . Из нее
видно, что интерфейс должен генерировать следующие сигналы:
1) два сигнала флажков - fo и f 1, вызывающих программы
счета и печати;
2) сигнал разрешения е для порта ввода/вывода;
3) сигнал w для запуска печатающего устройства.
Как и ранее, в данной системе используется только два флаж
ка. Это позволяет для формирования сигнала прерывания и адре•
са прерывающего устройства применять один вентиль И (см. 5.2).
Кроме того, не требуются сигналы разрешения/запрета для
этих флажков, и поэтому они могут быть реализованы на двух
JК-триггерах, как показано на рис. 5.31. Импульс на шине q уста
навливает триггер счетчика f0, аналоrиirно импульс на шине т
устанавливает триггер печати f1. Если для обнуления флажков
126
используются адреса 2000 и 8006, то уравнения сигналов сброса
принимают следующий вид:
f~ = VMA R/W А 2000Ф2;
;;_ = VMA R/W А8006Ф2.
Вентили И-НЕ 1 и И-НЕ2 на рис. 5.31 формируют эти сиг
налы.
г--.------------------------ а
i---------------+ - -- -- - -- - -d
fo f,
М6800
/,f
о
о
1,
Пi?ЧOlrlQIOЩ6t
ycmpoticmdo
х
Olt 11cnQll6IVtmcя/
t--~=-----+-,....----+-1~--------vм~
i------+-------+-----------н;w
L..._..r------------------------0,
Рис. 5.31
В этой системе возможно обращаться к печатающему устрой
ству, сбрасывая флажок f1• Так как активизация печатающего
устройства и сброс флажка происходят по спаду сигнала, то эти
две операции можно объединить.
Обратите внимание на совпадение полученных схем для
ln8080 и Мсб800.
Шаг 5 - проектирование программного обеспечения. Струк
турная схема алгоритма приведена на рис. 5.32. Непосредствен
но из этого рисунка, руководствуясь набором команд микропро
цессора Мс6800 (рис. 3.31), получаем шестнадцатиричный: ли
стинг служебной программы (табл. 5.2).
Задача 2. Интерфейс для распечатки содержимого ОЗУ. Раз
работать и реализовать интерфейс между В-битовым микропро
цессором и цифровым печатающим устройством, используя
121
Фонмон
Фоно6он про2ромм11
/
Зопрет11m6 послеdqющ11е
преры/Jон1J11
C(}.(pQNt1m1, состонн11е мп
Нет
ne1111mt1m6 cotJilpN(ll/lfDt
Clllm'IUK(J ('(JOD!mlltl
Copocum1, с11ет1111к
coo1,1mut1
84ест11 l
до
!//IЛll'lllm6 CDQIPНfll/lfOI
C'ltm'IIIN/1 Ctw"11Лlltl
С5рос11т1, 1,
О1111стит1, 11
КомонtJо
КомонtJо loзlpo-
loзlpomo из'---------------'то из прер1,1-
прер1,16онvн
lонvн
Рис. 5.32
Bot"&moнolvmь
состо11нvе мп
режим прерывания. Реализовать интерфейс для 1)
/п 8080, 2) Мс6800.
~
Доступные адреса ввода/вывода:
для /п8080- 004в, 005 и 006;
----
для Мс6800-20001в, 4000 и 8004.
,
П111от11ющее gcmpot1cm60 мтоlа
~
-~Пеvот1,
-·
-
.=== ·· - вo,lp11m
.
-·
Рис. 5.33
128
Решение для / п 8080.
Шаг 1 - формирование техни
ческого задания. Цель проектиро
вания - обеспечение программис
та возможностью пересылки в ре
жиме прерывания блоков данных,
расположенных; в последователь
ных ячейках ОЗУ, в приемник
(рис. 5.33).
Шаг 2 - внешнее проектиро
вание. Структурная схема систе
мы прерываний на базе /п 8080
показана на рис. 5.17, а сигналы
Taблutfa 5.2
Подпр:>rрамма обработки прерываний в счеrчике событий на Мс6800
16·11 адрес
16-й Мнемокод
Комментарии
код
00 50 86LDAА
{ Ввод адреса из шифратора флажков
51 80
52 04
53 87 RAR А Циклический сдвиг вправо А
54 25 BCS Ll { Переход к подпрограмме счета, если фла-
55 07
жок переноса установлен
56 F6LDAВ
{ Переслать содержимое счетчика в В
57 00
58 FF
59 F7 STAВ
{ Печатать и очистить флажок f1
5А 80
58 06
5С 38 RTI
Возврат
Ll:
5D 7С INC
{ Увеличить содержимое
5Е 00
счетчика
5F FF
60F7STAв
{ Очисти~ь флажок /1
61 20
62 00
63 38 RTI
Возврат
сопряжения микропроцессора - на рис. 4.7. Характеристики со
пряжения печатающего устройства показаны на рис. 5.24.
г------------------------а
1--------.....,...-----..i.---------d
мп
/NTA
Ct12HOl1hl
ld0Pojd~1dodo
Рис. 5.34
5 1-459
l
ИнmeptpeiJc
Пе1/оmоющее
ycmpoucmlo
х
129
Шаг 3 - системное проектирование. Структурная схема раз
рабатываемой системы показана на рис. 5.34, а алгоритм ее функ
ционирования - на рис. 5.35. При каждом программном преры
вании предназначенный для печати символ пересылается из ячей-
Фонg/оя
лрgгроммо
[
Зо11рет11m6 лос11еiJ11ю
щце ЛPllPhldOHtlЯ
Co,rpoнum6 оорес
doзdpomo
/fО'IОЛЬНОЯ !/CIЛOH(J#•
Kfl C'lem'IIIKO Cl/fl6
До
llem
Co,rpoнt1m6 сооержимое
floovu,r регистро6
Пepec11flm6 meкvщu.li Oflr1m
d flKK!/M!/IIЯmgp
Copoct1m61"
fмен6шцт6 соilержимое
cvemquкo oor1m
Пepetlmu к
0/J!lttlM C/lf/Жt!P·
11ь1м лоiJлрогроммом
>-...;.;д_o___~Зf/Kf/HVll./116 лepeOll'I!/ ОЛQКО,
Jолретить 17
fMf!Н6Шll/116 f/0,0f!C
ootimf/
8occmoнod11m6 сооерж11-
мое poogq11,к рег11строd
Po1peшt1m6 лре,оы6011t111
l(oмo11dfl 6016,оото
Рис 5.35
ки ОЗУ в аккумулятор, а из аккумулятора - на шину данных.,
причем одновременно активизируется печатающее устройство.
После того как символ отпечатан и печатающее устройство вы
ставило фJ1ажок r,отовности, генерируется следующее прерыва•
ние путем установки флажка /1,
130
--,_______________ _,. ________ ,._,
1---------,-------+-----,----lf
ZNTA
JJBIN
l
е,
Mper:ныtl
оешиrрротор
Пе11атающее
ycmpotJcm8Q
/NTi--D4 -- -- -1 ..___- ,- ..,_ .,,. ...,... .....,
/NTEL
8080
INP
JJB/N
о
Аоо4 Aoos Аоо6
'-----v - -'
l1
Дplj21Je ipЛOЖl(i/
Интерг;тlс
w
х
Рис. 5.36
б*
,_______________________ ,
1----------т------1-----..,....---d
INTl----o- --= -
1-~
/NTEL
8080
Рис. 5.37
.. __... ,__
Пеl/оmпющее
ycmpolir:mdo
Ао04 Aoos Аоо, w
f
Когда будет отпечатан последний симвоJI из блока, програм
;мно запрещается установка флажка прерывания и дальнейшая
;печать запрещается. Передача следующего блока инициируется
!Программистом путем разрешения прерываний.
Шаг 4 - проектирование аппаратурной части. Структурная
-схема для In 8080 изображена на рис. 5.36. Сигналы, генерируе
:Мые интерфейсом, следующие: 1) импульс печати w, 2) флажок
прерывания f1,
Novало
Наиболее простой метод генерации сигнала w
состоит в декодировании команды ввода/вывода
по одному из доступных аресов ввода/вывода,
_ н апр име р 004s. В этом случае
8016P11m
Рис. S.38
w=OUTWRАоо4,
Если длительность сигнала w меньше 1 мкс,
• необходимо продлить его, используя стандартные
Д11
методы, или добавить к печатающему устройству
311КOHl(Um6 neptC6I/IM
олоко. Juлpemum;f
логическую схему, чувствитель
ную к фронтам импульсов, ис
пользуя методы, описанные в при
ложении 1.
Флажок / 7 должен устанавли
ваться, когда печатающее устрой
ство выставляет сигнал готовнос
ти, т. е. когда сигнал его состоя
ния принимает значение «1». Он
может сбрасываться, когда печатающее уст-
ройство запрашивается, т. е. когда сигнал w
заземляется. Если использовать синхронный
триггер для формирования / 7 , то уравнения
сигналов его синхронизации и сброса будут
иметь вид (см. 5.2)
С1=Х;
r1=W,
Сх.ема триггера флажка показана на рис. 5.37. Читатель пом
нит, что триггеры переключаются по спаду синхросигнала, а по
входу сброса реагируют на нулевой уровень.
Кроме того, интерфейс должен обеспечивать программное раз
решение и запрет выдачи флажка прерывания. Этого можно до
стичь с помощью триггера, сбрасываемого и устанавливаемого
пр0граммно. Если для этих целей использовать восьмеричные
адреса 005 и 006, то соответствующие уравнения примут вид
со= OUT WR Аоо0 ; Го= OUT WR Аоов•
Схема реализации этих уравнений показана на рис. 5.37.
Шаг 5 - проектирование программного обеспечения. Струк
турная схем.а алгоритма показана на рис. 5.38 . Из этой схемы и
132
системы команд (рис. 3.28) получим восьмеричный и шестнадца
тиричный листинги программы ( табл. 5.3).
Таблица 5.9
Программа распечатки содержимого ОЗУ по прерыванию для / п8080
8-й адрес
003
LI:
060
1
2
3
4
5
6
7
070
1
2
3
4
5
6
7
100
1
2
3
4
5
6
7
10
8-1!
КОД
365
345
032
056
003
276
323
004
053
042
056
003
041
055
003
065
302
105
003
323
006
341
361
373
311
16-1!
код
F5
Е5
IA
2Е
03
7Е
D3
04
2D
22
2Е
03
21
2D
03
35
С2
45}
03
D3
06
EI
FI
FB
С9
Мнемокод
Комментар1ш
PUSH PSW }
PUSH Н
Сохранить содержимое рабочих
регистров
LНLD } Загрузить в регистры HL адрес
следующего байта (содержимое
ячеек 003-056/7)
MOVA, М
оuт
DCX Н
SHLD
LXI Н
DCR М
INZ
LI
OUT
РОРН
РОР PSW
EI
RET
Переслать байт в А
} Вывести символ и очистить
флажок
1Уменьшить содержимое Н, L и,
сохранить его в ячейках 003-056/7
Это есть адрес следующего
байта
} Загрузить в Н, L адрес ячейки
памяти, где хранится число байт-
}
}
Уменьшить число байт
Если число байт не равно О, пе
рейти к Ll
Запретить f7, если число байт
равно О
Восстановить содержимое рабо
чих регистров
Разрешить прерывания
Возврат
Решение для Мсб800.
Шаг11 •
Шаг 2 То же самое, что и для Мп /п8080.
Шаг 3
Шаг 4 - проектирование аппаратурной части. Из структур
ной схемы на рис. 5.39 видно, что интерфейс формирует следую
щие сигналы: 1) сигнал печати w, 2) флажок прерывания f7 •
Если печатающему устройству присвоить шестнадцатиричныf!!
адрес 8004, то
w = А 8004 VMA R/W Ф2 (см. рис. 5.40).
Если длительность сигнала w менее 1 мкс, то необходимо
продлить ее стандартными методами либо ввести в состав печа
тающего устройства логическую схему, чувствительную к фрон
там импульсов (см. приложение 1).
Флажок f7 должен устанавливаться, когда печатающее уст
ройство выставляет сигнал готовности, т. е. когда его сигнал со
стояния х становится равным «1». Флажок может быть сброшен.
когда активизируется печатающее устройство, т. е. когда
13~
г--,..._,....________________.....:____► а
t---t--------т-------+----------d
VMA
N/W
{
A/Jpecm1t1
deШ/if)POmop
Пе'fоrпоюще,
IJ&mpotlcmdo
Ааоов Авоо~ А.гооо w
~
Дpveue tp/lQl/(/((J /7
..
Hнmeprpe/Jc
х
Рис. 5.39
.---.....------------------------0
1---+------т------+-----...----d
М6800
пеvатающее
vcrnpoi1crn6o
w
А2000 А~000Аеоо1
,,
t--==--+-~~.,..~-------+~-------VMA-
1--1 -- --- -- --- -+ -+ -- ---R/W
'-~-1 -....;=-4- --+- --- --- --1 --- --- - 1/11
Рис. 5.40
контакт w заземляется. Если использовать синхронный триггер
для формирования f7, то уравнения сигналов синхронизации и
сброса принимают вид (см. 5.2)
134
Схема триггера показана на рис. 5.40. Напоминаем читателю,
что применяемые здесь триггеры переключаются по спаду син
хроимпульса, а по входу сброса реагируют на нулевой уровень.
Кроме того, интерфейс должен обеспечивать программное
разрешение и запрет флажка. Наиболее простым методом для
На1/а110
реализации этой возможности
является применение триггера,
устанавливаемого и сбрасываемо
го программно. Если для этой це- Перес11оть с11ед1jЮЩ(I(}
симdол 5O!(!(IJMIJ!l!lmop А
ли использовать шестнадцатирич-
ные адреса 2000 И 4000, ТО урав- Пт1тать симt1011 и
нения сигналов синхронизации и соросить rp1111жolr'
сброса примут вид
с0 = А2оооVMA R/W Ф2;
Го= А4ооо VMA R/W Ф2•
Выход триггера флажка объе
диняется по схеме И с сигналом
Е для формирования сигнала f7,
как показано на рис. 5.40.
!/ме116шит; соiJержи
мие crem1/lll!ll lir11Jm
Уменьшит;
gtJpec5allmo
(Во18рот 111
прер61dанин)
да
Jаконvит; пер,
с;~лку 511rжа.
.Janpemum; 1р11а1КОК
Рис. 5.41
Шаг 5 - проектирование про
граммного обеспечения. Струк
турная схема алгоритма показана
на рис. 5.41 . Из этой схемы и
системы команд МП из рис. 3.30
листинг программы (табл. 5.4).
получим шестнадцатиричный
Таблица 5.4
Программа распечатки содержимого ОЗУ по прерыванию для Мс6800
16-А адрео
16-А Мнемокод
Комментарии
КОД
00 5F
п
Запомнить длину блока в ячейке 00SF
60
В6 LDAA
} Переслать следующий символ в акку-
61
ти
мулятор
62
mL
63
В7 STAА
}Распечатать символ и очистить ф.1а-
64
80
жок f1
65
04
66
7А} DEC п Уменьшить длину блока
67
00
68
SF
69
~}
BEQ Ll Если длина блока равна о, перейти
6А
кLl
6В
7А} DEC mL Уменьшить содержимое указателя еле-
6С
00
дующего символа
6D
62
6Е
зв
RТI
Возврат
Ll:
6F
В7} STA А Запретить флажок f,
70
40
71
00
72
зв
RTI
Возврат
135
5.9 . СПИСОК ЛИТЕРА ТУРЫ
1. Zissos О., Duncan F. G . Digital Inteгface Design. Oxfoгd University
Press, 1973.
2. Zlssos О. Prohlems and Solutions in Logis Design Oxford University
Press, 1976.
3. INTEL 8080 Microprocessor Systems User's Manual, September, 1975.
4. М6800 Microprocessor Applications Manual. Motorola, 1975.
СИСТЕМЫ ПРЯМОГО ДОСТУПА
К ПАМЯТИ (ПДП)
В этой главе рассматривается реализация микропроцессор
ных систем прямого доступа к памяти, т. е. систем, которые по
зволяют пересылать данные непосредственно между периферий
ными устройствами и памятью. Используемая методика проек
тирования и ее шаги описаны в гл. 2 (2.9 и 2.10 соответственно).
6.1 . &АЗОВЫЕ ОПРЕДЕЛЕНИЯ
В рассматриваемых ранее методах пересылка данных между
микропроцессором и внешними устройствами производилась че
рез микропроцессор (рис. 6.1, а). Для этой цели требовалось не-
сколько команд для пере-
Памят1 н
.------. .- - -- -, дачи каждого байта. На-
н Внешнее 1
МП
vcmpoticm!D
пример, при работе в ре-
_____,
---
0-__
.....,
жиме прерывания, как
показано в гл. 5, необхо
димы следующие операции.
К11нt111ЛДП
мп
5
Внешнtt
gcmpuocmd11
1. Запретить дальней
шие прерывания, если
это не выполняется авто
матически.
Рис. 6.1
2. Запомнить инфор-
мацню о возврате.
3. Идентифицировать источник прерывания.
4. Обслужить запрос.
5. Очистить флажок.
6. Восстановить информацию о возврате.
7. Разрешить прерывание.
8. Возвратиться в прерванную программу.
13ti
Для обработки больших блоков данных такая процедура мо
жет потребовать значительное время. Более того, если скорость
передачи информации с внешнего источника больше скорости
обмена микропроцессора с памятью, возможны потери информа·
ции.
В системах, в которых установлена прямая связь между внеш-·
ним устройством и памятью, как показано на рис. 6.1, б, пробле
ма потери информации не возникает, так как в них можно пере•
дать байт информации между памятью и внешним устройством
за один цикл памяти. Вопреки всеобщему убеждению проекти•
рование и реализация такой системы весьма просты. Как мы
увидим далее в этой главе, аппаратурный интерфейс несложен,
а требуемое программное обеспечение вообще минимально - не
сколько команд на каждый пересылаемый блок.
Продолжительность времени прямого доступа к памяти ис
числяется в циклах памяти. Цикл памяти - промежуток времени,
в течение которого формируются требуемые сигналы чтения или
записи. Так как циклы памяти эффективно используются для
микропроцессорных операций в момент возникновения запроса
прямого доступа, то цикл прямого доступа к памяти часто на
зывают захваченным циклом, а саму операцию - захватом цик
ла. Все микропроцессоры имеют возможность прямого доступа
к памяти (сокращенно ПДП), т. е. возможность прямой пере•
дачи данных между внешним устройством и памятью системы
(рис. 6.1, б).
6.2 . СИСТЕМА ПДП
Структурная схема системы ПДП показана на рис. 6.2. Она
проектировалась как пример системы общего назначения, с тем
1-~~-----~------t---------► (/
1--i:::Es:J----r--+-,.----+------,.---d
CVtllQЛ6I
VЛPOIЛtHV/1
мп
\..
С11гналь1МЛ
Рис. 6.2
t
f.Ноl/6ЛЖ6i11
а6рес лом11т11
2.Длинfl 4лока
з. Оv1нал" Лfкс"
А6рес
Инmер,реОо
Сl/иmы!Qmель
(VCIТIO'IHUK 6ОНН61.r)
а
r
13't
чтобы удовлетворить любому типу периферийного устройства и
любому типу микропроцессора. Алгоритм ее функционирования
HOV0/11/
показан на рис. 6.3 и описан ниже.
1. Программист обращается к интерфейсу
ПДП. Осуществляется это использованием ко
манды ввода/вывода для выдачи на интерфейс
первоначального адреса памяти и длины блока.
Таким образом, интерфейсу ПДП ставятся в
соответствие определенные адреса ввода/вы
вода, по которым программист имеет к нему
доступ.
2. Далее выводится на интерфейс третья ве
личина - сигнал запуска. Этот сигнал исполь
зуется для начала пересылки блока, которая
затем протекает автономно, без участия програм
миста.
3. Когда передача блока закончена, интер
фейс устанавливает флажок е, с тем чтобы сооб
щить программисту, что блок передан.
J:o::::J;~:,:д;::~
4. Программист подтверждает прием состоя-
ния флажка выполнением команды ввода/выво
да, сбрасывающей его.
К1Jне11
Рис. 6.3
Сигналы с, t и t' описаны в следующем пара
графе.
6.3 . ИНТЕРФЕЯС ПДП
Проектирование систем ПДП, как уже отмечалось, не пред
ставляет особой: сложности для читателя, знакомого с принципа
ми логического проектирования, описанными в гл. 1.
Интерфейс ПДП проще разрабатывать, если рассматривать
его состоящим из двух отдельных блоков: интерфейс 1 и интер
фейс 2 (рис. 6.4). Интерфейс 1 предназначен для обработки ини
циирующей информации, вырабатываемой: микропроцессором, и
для формирования сигналов «СТАРТ» и «СТОП» для интерфей
са 2, который:, в свою очередь, предназначен для управления
передачей: данных между памятью и внешними устройствами.
Алгоритм функционирования каждого из интерфейсов описан
ниже.
Интерфейс 1. Структурная схема интерфейса 1 показана на
рис. 6.5. Он состоит из двух каскадно соединенных счетчиков,
пяти логических .элементов и триггера. Счетчики предназначены
для запоминания первоначального адреса памяти и длины бло
ка. Загрузка их производится следующим образом. Программно
засылается начальный адрес ячейки памяти в аккумулятор и за
тем выполняется команда ввода/вывода по адресу А,,. При этом
формируется импульс ввода/вывода на входах загрузки каждого
счетчика, по которому содержимое аккумулятора засылается в
138
(f
rl
f.Hlll/(IЛ6Hh!U оирес
с
ЛflMRmll
t
fl(IMRm6
2.ДЛIIHfl QЛOKI
3. Clll!HflЛ" ПijCK" (1
мп
Внешнее
vcmpulicm6o
ИнmepqmJcf
t
Сцгналы
Сиенолы
t
е
vпро6ленив состоннvв
(Стоп)
t'
Интерrре11с 2
Рис. 6.4
11
d
ИМП1/Л/JС6/ JOZPf/JKV
Ар
~
;::-
'--
'--
::,
~
е,
:::з
~
~
..
с::
~
~
~
~
"'1:
мп
Ar
t
Еt
Рис. 6.5
счетчик /. В то же самое время, благодаря каскадному соедине
нию счетчиков, прежнее содержимое счетчика / переписывается
в счетчик 2. Далее программным путем в аккумулятор загру
жается величина длины блока и опять выполняется та же самая
команда ввода/вывода. При этом содержимое счетчика / (на
чальный адрес памяти) переносится в счетчик 2, а величина
длины блока загружается из аккумулятора в счетчик /.
Далее программа отрабатывает следующую команду вво
да/вывода по адресу Аq(рис. 6.5). При этом формируется импульс
t--C3::J-------- .- -- - -- - -- - -1 -.... :
М.П
с
Инmeptpeilc 2
Рис. 6.6
на входе синхронизации JК-триггера. В связи с тем, что на вход
J триггера постоянно подана «1» и триггер вначале сброшен
сигналом системного сброса, то он устанавливается в « 1» и фор
мируется сигнал Е. Этот сигнал, как будет показано далее, яв
ляется приказом интерфейсу 2 на запуск передачи блоков данных
путем запуска цикла ПДП каждый раз, как только периферий
ное_устройство выставит сигнал готовности.
Когда цикл ПДП закончен, сигнал t стансвится равным «1».
Этот сигнал используется для увеличения содержимого обоих
счетчиков на единицу (рис. 6.5).
По окончании передачи блока данных в счетчике / записаны
нули, что индицируется логической «1» на выходе элемента
ИЛИ-НЕ. Выходной сигнал этого элемента, обозначенный бук
вой е на рис. 6.5, используется интерфейсом 2 для окончания
пересышш блока. В то же время он объединяется по схеме И
140
с сигналом Е для выработки сигнала «конец передачи» е, кото
рый, как было указано выше, информирует программиста об
окончании передачи блока. Программист подтверждает прием
флажка е выполнением команды ввода/вывода по адресу А,.
По этой команде после дешифрации элементом Из (рис. 6.5)
формируется импульс на вход сброса JK-тpиrrepa, благодаря
чему выключается сигнал е.
На рис. 6.6 показана структурная схема интерфейса 1 для
микропроцессора с 8-битовой шиной данных и 16-битовой шиной
Нет
Нет
Ант11611з11ро6оть
611ешнее ycmpo(lcmlo
адреса. Для упрощения на этом ри
сунке не показано периферийное ус
тройство. Смысл сигналов с, t и t'
объяснен ниже.
Интерфейс 2. Функция интерфей
са 2, как уже указывалось, состоит
в передаче данных между памятью
микро-ЭВМ и внешними устрой
ствами. Для абстрагирования про
цесса проектирования от типа мик
ропроцессора предположим, что ис
пользуется некоторый микропроцес
сор, позволяющий выполнять зах
ват цикла (см. 6.5).
ноН11иm6 пере-
01(1/ 0/101(0
Рис. 6.7
!Jсто6ить
сиенол ё
Конец
Сигнал с. Переход от «О» к «1» этого сигнала переводит
буферы микропроцессора в третье состояние для выполнения
цикла ПДП. Таким циклом (см. 6.1) называется цикл времени,
в течение которого генерируются необходимые сигналы чтения/
записи памяти.
Сигнал t. Этот сигнал равен «1», когда микропроцессор на
ходится в третьем состоянии, в противном случае t=O. Этот сиг
нал используется для определения продолжительности цикла
ПДП.
Сигнал t'. Сигнал t' генерируется в течение действия сигна
ла t. Он используется как импульс чтения/записи для памяти.
6.4 . ДВУХПРОВОДНОА ИНТЕРФЕАС
В этом параграфе рассмотрим реализацию интерфейса 2
(рис. 6.4) между микропроцессором с возможностями захвата
цикла, объясненными в предыдущем параграфе, и устройством
141
типа запрос/ответ (см. приложение 1), состоящего из двух про
водов. Воспользуемся методикой проектирования, описанной в
параграфе 1.9. Для упрощения первоначально не будем рассмат
ривать сигналы Е, е и t' (рис. 6.8).
Шаг 1 - характеристики ввода/вывода. Сигналы ввода/вы
вода показаны на рис. 6.9. Необходимые соотношения между
Мцнрмро•{~
цессор
t'
Рис. 6.8
Интер1реис t
е
t
Инmeptptl1c2
С112н11лы)
COCЛIOBHll/1
Внешни
с
vcmpoocmd,
11гн11лы
1/ЛPOMtHIII/
входными и выходными сигналами описаны в предыдущем па
раграфе и характеризуются тем, что цикл ПДП запрашивается
внешним устройством, когда оно готово читать или писать байт
r-----i
---11
Конец l,f/lHЛO ПДП
-
t---
мп рооотоет v-
--... МП I третьем
COCЛIORHIIU
Jолvсн dнешнего Внешнее vcmpou• Внеuшее vcmpoucm!o
!JCmpovcmlo
cmlo готоdо с6нш6оетс11 с ломнт;ю
---с
Рис. 6.9
Рис. 6.10
памяти. Когда цикл ПДП выполняется, передается байт, по окон
чании передачи мик·ропроцессор возобновляет функционирова
ние, а внешнее устройство запускается (рис. 6.10).
Шаг 2 - внутренние характеристики. Внутренняя диаграмма
состояний соответствующей схемы показана на рис. 6.11. Состоя-
So
Конец зоА'lото
Ц/1КЛ11
St
Внешнее !JCmpolicmdo
от6ет11ло
S2
Joxdom
--
[~
~
r
---
!/cmpoticmlo
ЦliКЛО
t
r
IКЛЮ'lено
--
--
c=t
Joxlom ц11кл11
С•!
Ycmpolicmdo
с-о
о=О
dьтолнен
a=f
но'luноет omdem
а=f
Рис. 6.11
ние S0 поддерживается, пока микропроцессор находится в треть
ем состоянии, т. е. в течение цикла ПДП. В конце цикла ПДП,
когда сигнал t переключается в «О», схема переходит в состояние
S1. Переход из So в S1 сопровождается изменением сигнала а
из «О» в «1», благодаря чему запускается внешнее устройство.
Когда внешнее устройство ответило или сигнал готовности r стал
142
нулевым, схема переходит в состояние S2, В состоянии S2 схема
находится до тех пор, пока внешнее устройство не ответит пол
ностью, т. е. пока сигнал r=O. Когда устройство ответило пол
ностью, сигнал r становится равным «1», что вызывает переход
tr 00
01
lf
fO
JO
Sf
®
с,а=Г.8
!,О
Sf
sг
®so
,.,
f,f
f,8
tl' 00
О!
ff
fO
S2®
Sf
$012 JSOt2i jso12!
f,f
1so12j
O,f
B,f
c,a•O,t
а
о
Рис. 6.12
системы в состояние S 1. При переходе из состояния S2 в S1 сиг
нал с изменяется от «О» до «1», запрашивая разрешение на зах
ват цикла микропроцессора. Когда цикл захвачен (t= 1), схема
переходит в состояние So, В дальнейшем процесс повторяется.
1--------------------------► (1
l--------.; .... -1 ----- --11 ----- ----1 ~ --- -1 1
,. На,;аЛ6Н6/11
adpec памнтv
2. длина блока
з.команоа.пvск"
Сиеноло1
66ооа/do16000
Инmeprpellc 1
(см.рvс6.5)
NП.
t
i-_;..-t.....,..____-,-____.,....J
Е
rпvск)
t
е
{Cf{IOЛ)
t
L..J ---------------__. ,.____ _,. .t
Рис. 6.13
Шаг 3- минимизация числа состояний. На этом шаге, как
уже указывалось, по диаграмме внутренних состояний состав
ляется таблица состояний и используется методика минимизации
Калдвелла. Таблица, полученная непосредственно из диаграммы
состояний (рис. 6.11), показана на рис. 6.12, а. Применяя про
цедуру минимизации (см. 1.7), сливаем в таблице три строки
в одну (рис. 6.12, 6)..
143
Шаг 4 - реализация схемы. Непосредственно из минимизи
рованной таблицы состояний получаем уравнения
с=tr+tr+(tr) =r;
а=tr+tr+(ii)= t.
(6.1)
(6.2)
Вводя сигналы Е и е, получаем
с=Еёr;
(6.3)
а== Т.
(6.4)
Таким образом, интерфейс ПДП между микропроцессором
,с захватом цикла и внешним устройством типа заnрос/ответ со
стоит из двух проводов, как показано на рис. 6.13.
Из уравнений (6.3) и (6.4) следует, что передача данных
запускается циклом ПДП и заканчивается запуском устрой:
-ства.
6.5. ЛОГИЧЕСКАЯ СХЕМА ЗАХВАТ А ЦИКЛА
Характеристики захвата цикла, определенные в предыдущем
-параграфе, в современных микропроцессорах отсутствуют. Та
~ким образом, задача построения внешней: логической: схемы, реа
.лизующей: функцию захвата цикла, выпадает на долю пользо
,вателя. Структурная схе
ма показана на рис.
,6.14,а. Процедура проек
"Тирования весьма проста.
мп
Рис. 6.14
Лozu-
CutlldP61MП i:'fJ#
а
зо16от
ЦIIKPQ
Cvнrpi JU1Jl_JLJl_JL
1111
1
1111
с_j1111
О
1111
1\11
,
111L
сt
11
,
о--~- t
1
t· t•, ______Н...___ _
о
ь
Основная трудность состоит в правильной: интерпретации по име
ющимся описаниям функций: выводов микропроцессора.
Как уже отмечалось выше, во всех случаях, кроме оговорен
,ных специально, длительность цикла ПДП предполагается рав
ной трем синхропериодам (рис. 6.14, б). Продемонстрируем про
,цедуру разработки логики захвата цикла для микропроцессора
JnBOBO.
Логическая схема захвата цикла для микропроцессора /п 8080.
Требуемые сигналы микропроцессора показаны на рис. 6.15, а.
Логическая «1» на шине захвата HOLD (вывод 13) отсоединяет
адресную шину и шину данных. Сигнал ответа HLDA ( «ПОД•
144
ТВЕРЖДЕНИЕ ЗАХВАТА») выдается на вывод 21. Этот сигнал
принимает значение логичес1юй «1» через определенное время
после появления фронта Ф 1 в машинном такте ТЗ. Шины дан-
(!З)~---- HOLJJ
(Jo.rбom}
Логu11еснон I но этом 8.коi/е nepe!oi/um ovrpepи
otlpeco и 1/ol{HЫ.r 8 треm6е состонние
so. f
MЛpllOOfll(J-
/NTEL
8080
(21)..,_--HLDA
(ПotJm8egн((Je1
ж1е Jo.ruomo
Sf
о
ё.HLJJA ДФz
МЛI
ет.
HLJJA Jr.t
mретим
Jl!i
0mt11Joнt1e с
состоннuи
---
H0LO=&
t=O
t'=O
АВ=ОО
Рис. 6.15
H0L1J=I
t='
t'=O
0f
Логvl/ескоя f noumdepжtJoem .зоJ'!от.
Этот CtllN(IR RPIIHIIROem cdoe .1NOl/l?Hlle с
onpei/enel{NOtl .зоtJержкоd относител611fl
rрронто Ф,. Ш111161 оиресо пере,rо!нт 8
неолреi/еленное· cocmtJRHиe vерез норот
кое dремя nflcne noнlneнuR ·rрронто
cneiJ(/IOЩi'ZtJ IIMR(/Л6Cll Фz.
S2
.sз 1
МПI
мnlmpem,y'/11
состонн11.11
/ТI/J6/116tM
JLФz теvение oiJнtJ-
состоннuи
tO CUH.fPOUl'I-
Л(//16&0.
H0LJJ=!
Ожиi/ож1е с
H0L1J=0
t=I
t=HL1JA
t'=f
t'=O
о
ff
,о
ных и адресов переходят в третье состояние по истечении корот
кого промежутка времени после появления фронта следующего
импульса Ф2• Для более детального ознакомления с временны-
е :~HOLD
н,~::D;::oo-t
в :===o-t'
Рис. 6.16
ми диаграммами читателю рекомендуется обратиться к руко
водству по микропроцессору /п8080.
На рис. 6.15, б показана внутренняя диаграмма состояний
логической схемы, переводящей микропроцессор Zn8080 в третье
состояние примерно на 3 синхропериода. При этом необходимо
6 •t-459
145
принять во внимание, что сигнал с не должен сбрасываться
вплоть до момента появления сигнала HLDA. Непосредственно
из этой диаграммы получаем уравнения:
S,4 = S1 = А.В, следовательно, JА= В;
RA = s;;c HLDA = AHc-HLDA, следовательно КА = BёHLDA;
S8 = S0 HLDA = ABHLDA, поэтому J в= А HLDA;
Rв=S2=АВ, поэтому Кв=А;
HOLD=S0c+S1+S2 = АВс+АВ+АВ=
=Ас+В;
t=S1+S2+S8HLDA=АВ+АВ+АВHLDA=
= в+ ABHLDA =
=В+ AHLDA;
t'=S2=АВ.
Соответствующая элементарная схема показана на рис. 6.16.
6.6 . ЗАДАЧИ И PEWEHИSI
В этой главе методика проектирования демонстрируется на
ряде задач с решениями. Внимание читателя обращается на тот
факт, что, хотя для реализации используется микропроцессор
Шина ООНН6/,(
o.d .
{Ао
(6ы.rоо
Вн~трен·
аи
запрещен)
нuuorJpec
с.е.
А1
(6ыооркf1
крщтолло)
R/W (11тение/запись)
данные
AiJpec
с.е.
f
о
f
o.d. О
1
1
1
R/W ~ ~t50нс .1 ➔ 650НС
.1 1. ноне
(11тение;,ол11с6)
Рис. 6.17
146
1п8080, данная методика применима ко всем типам микропро
цессоров, имеющих или не имеющих логическую схему захвата
цикла. Особо необходимо отметить, что первые три шага проек
тирования выполняются вообще без ссылки на применяемый тип
микропроцессора.
Задача 1. Интерфейс считывателя с памятью. Разработать
интерфейс ПДП между 8-рязрядным считывателем с перфоленты
г-.---~:::г:s::1--------,-------,---------а
1----1::!:s:J. --- ,- --+ -, --- --+- --- -- ---d
ДаННh/1!
t
h-~ 5 ':1---,..,c'"i Пам11m6
мп
t
СU2НОЛ6!МП
Рис. 6.18
f.Hoqaл6ныti аорес
ломнти
г. длина илико
J. Сигнал"Пqск"
M,otc
Инmepq1etic
Внешнее
qcmpoucm!o
CIJIHOЛ6! Сишили
11лраМен11Я состоннин
и ОЗУ микропроцессорной системы. Доступные адреса ввода/вы
вода: Аоо4, Aoos, Аоов.
Решение.
Шаг 1 - формирование технического задания. Целью проек
тирования является разработка устройства, позволяющего пере
сылать блоки данных из источника непосредственно в ОЗУ мик
ропроцессорной системы, используя принцип ПДП.
Шаг 2 - внешнее проектирование. Микропроцессор перехо
дит в третье состояние на время трех синхропериодов по фронту
импульса на контакте с (рис. 6.14). Принимая частоту синхро
импульсов, равную 0,5-1,5 МГц, получаем длительность сигна
ла t, равную 2-6 мкс, и t', равную 667 нс - 2 мкс.
Цикл записи ОЗУ показан на рис. 6.17. Считыватель являет
ся устройством типа запрос/ответ (см. приложение 1).
Шаг 3 - системное проектирование. Структурная схема раз
рабатываемого устройства показана на рис. 6.18, а схема алго
ритма функционирования его после начальной загрузки - на
рис. 6.19.
Шаг 4 - проектирование аппаратурной части. Отправной
точкой для разработки аппаратуры служит структурная схема,
показанная на рис. 6.4,- общая структура системы ПДП. Реа
лизация интерфейсов 1 и 2 показана на рис. 6.5 и 6.13. Если
6*
147
предположить, что длина блока не превышает 256 слов, то со
ответствующая схема на базе In8080 показана на рис. 6.20.
Ноqоло
Шаг 5- проектирование програм
много обеспечения. Программа, нeoбxo-
t~ffo~~1ft,,J' димая для инициирования пересылки п
-----iусло611t1
символов со считывателя в последов а-
..______
тельные ячейки ОЗУ через интерфейс
нет рис. 6.20, имеет вид:
ь--,..___,
Загрузить аккумулятор на-}
чальным адресом ОЗУ (стар-
шая половина)
i.:.::: .:~;;;;;. . .;~==== ~ Вывод
по адресу 004
~. ; . .; .H;.; .;em;......J Загрузить аккумулятор на
чальным адресом ОЗУ (млад-
1;._...::::.;;......__
шая половина)
~Н..;.е~т__. Вывод по адресу 004
Загрузка
начального
адреса
ОЗУ
Загрузить аккумулятор дли-} Загрузка
ной блока
длины
L,;,.; .;=..;; .;; .; .,======--- .
Вывод по адресу 004
блока
Нет
Умею,ш11m6 / 1jdeл11-
'll/m6 абреса OJ!I
!lмeH6Шllm6 соtJернш
мое t:1/em1/uкa сло8
Нет
Рис. 6.19
Решение.
Вывод по адресу 005
Если е = 1, выполнить слу
жебную программу
Вывод по адресу 006
El
RET
Начать
передачу
блока
} Очистка
флажка
Разрешить
прерывание
Возврат
Задача 2. Модификация системы. Мо
дифицировать решение в предыдущей за
даче так, чтобы только данные, отмечен
ные признаками v = 1, считывались в
ОЗУ.
Указанная модификация осуществляется путем подавления
цикла ПДП и генерирования цикла чтения, когда vr= 1. (Введе
ние переменной r в уравнение указывает, что данные передаются
только тогда, когда r= 1). Это достигается путем модификации
сигналов с и а (рис. 6.20) следующим образом:
с= Eiёv; а = tvr.
148
Рис. 6.20
СИСТЕМЫ ПРЯМОЙ
ПЕРЕДАЧИ ДАННЫХ
В этой главе внимание уделено проектированию и реализации
микропроцессорных систем прямой передачи данных (ППД),
т. е. таких систем, в которых пересылка данных может произво
диться непосредственно между периферийными устройствами.
Используемые методика и алгоритм проектирования описаны в
2.9 и 2.10 соответственно.
7.1 . &дЗОВЫЕ ОПРЕДЕЛЕНИЯ
Рассмотрим следующую ситуацию. Необходимо получить
распечатку некоторой информации, отперфорированной на пер
фоленте. Для этой цели воспользуемся фотосчитывателем и пе
чатающим устройством микропроцессорной системы при условии,
что микропроцессор нельзя занимать более, чем на несколько
микросекунд для каждого акта печати.
149
Возможно следующие способы решения поставленной задачи:
1. Считывать каждый символ в аккумулятор, а затем распе
чатывать его (рис. 7.1). Этот метод требует нескольких команд
для пересылки каждого байта со считывателя на печатающее
Cvvmulqп1e116
cvum11lume11,
~-
Е]
Пам11ть
мп
flOHR/ll6
Пеvотоющее
nevamoю~,e
vcmpollcm6o
vcmpo/Jcm 'fJ
Рис. 7.1
Рис. 7.2
устройство (подобная задача решалась в гл. 4, задача 3). В свя
зи с тем, что время выполнения каждой команды обычно состав
ляет несколько микросекунд, этот метод исключается.
2. Можно прочитать целиком содержимое ленты в память
(ОЗУ), а затем отпечатать это содержимое, используя в каждом
случае канал ПДП (рис.
Cv11m11lame11ь 7.2). Если на ленте имеется
п символов, то потребуется
2n циклов ПДП и ряд ко
пеvатоющее манд для инициализации
j Пам11ть Н...__м_п _
_.
vcmpocmlo
Рис. 7.3
обоих интерфейсов, как объ-
яснялось в предыдущей гла
ве. Общее время, требуемое
в данном случае, хотя и значительно меньше, чем в предыдущем
способе, однако для современных микропроцессоров превышает
100 мкс. Для реализации метода требуется определенный: объем
памяти (ОЗУ), что не всегда имеется. Кроме того, необходимы
два канала ПДП.
3. Можно установить непосредственный канал связи между
считывающим и печатающим устройствами (см. рис. 7.3). В та
кой системе данные передаются от источника к приемнику неза
висимо от микропроцессора, благодаря чему удовлетворяются
условия поставленной задачи.
Для упрощения понимания на рис. 7.1, 7.2 и 7.3 не показаны
другие внешние устройства.
7.2. СИСТЕМЫ ППД
Структурная схема системы ППД показана на рис. 7.4 . Ап
паратурной части интерфейса присвоен некоторый адрес вво
да/вывода, по которому к нему осуществляется доступ. Если
пользователь хочет установить прямой канал передачи между
парой или группой: внешних устройств, он должен поступить сле
дующим образом.
Во-первых, определить, доступно ли намеченное к использо
ванию устройство. Эту информацию он получает опросом сигнала
150
Ь (рис. 7.4) - сигнала состояния, индицирующего занятость опра
шиваемого устройства: Ь = 1, если одно или более устройств за
няты, в противном случае Ь = О. Если устройства свободны, необ
ходимо выполнить команду ввода/вывода по адресу интерфейса.
При этом интерфейс реагирует следующим образом: 1) изоли-
--
-
-
мп
6
1
h
CиtNf/1/bl 1
-
~6oM6ыdol}Q
Рис. 7.4
6
Источник 1
1
Сuгн11л;1 Сигн1111ы
с , vлр11dленин, рсостоннин
Инmepf/Je«t:·
а
d
Приемнvк /
CU/!H0/161
~ ) (IЛPlld/leНIJН с
С11~'Nf/llbl
то11ния
)СОС
1
рует от системы ту часть шины, которая соединяет запрашивае•
мые устройства; 2) изменяет сигнал Ь с «О» на «1»; 3) иницииру
ет пересылку данных, которая далее протекает автоматически,
т. е. без программного обслуживания. Когда полный блок данных
передан, сигнал Ь становится равным «О», а участок шины воз
вращается в нормальное состояние.
7,3. ИНТЕРФЕАС ППД
Разработка и реализация интерфейсов ППД производится
по хорошо известным алгоритмам и не представляет труда для
читателя, знакомого с методами логического проектирования
[ 1].
Для устройств типа запрос/ответ (см. приложение 1) пока
зано, что интерфейс может состоять из двух проводов [2]. Для
по.11ноты изложения повторим доказательство этого утверждения.
Начнем со структурной схемы, показанной на рис. 7.5, а. Ее
функционирование описано схемой алгоритма, приведенной на
рис. 7.5, б. Для простоты проектирования никакие внешние уп
равляющие сигналы на данном этапе не рассматриваются.
С точки зрения реализации интерфейс представляет собой
логическую схему с входными сигналами r1 и r 2 и выходными
сигналами а 1 и а2 (рис. 7.6). Для реализации схемы используем
алгоритм, описанный в параграфе 1.9.
Шаг 1 - внешние характеристики. Они показаны на рис. 7.5.
151
Шаг 2 - внутренние характеристики. Соответствующая диа
грамма внутренних состояний показана на рис. 7.7. Функциони
рует она следующим образом.
Допустим, что устройство 1 активно, а устройство 2 нет (см.
рис. 7.5, а). На диаграмме это состояние обозначено So. Система
-----. -------------d
Исто11нак # t
а,
Oz.
Инmepq,eiJc
а
Пр11емнак#Z
Ycmpotlcm61J
#2полностью
от6етило
#f раоотает
#2 жiJem
!/cmpotlcmdo# f
полностью
от6етило
#fжlJem
#2ра5отает
Рис. 7.5
находится в этом состоянии до тех пор, пока устройство 1 актив
но. Когда оно заканчивает работу, выставляя сигнал r1 = 1, ·схема
переходит в состояние S 1• Из рис. 7.7 видно, что в состоянии So
а2=0, а в состоянии S1 а2=1, т. е.
переход из So в S1 вызывает переход
r, ---интерq;еис1----а, сигнала запроса а2 из «О» в «1».
(см.рис7.5о)
Этот переход активизирует устрой
ство 2. Когда r2 становится равным
О, т. е. устройство 2 начинает рабо-
Рис. 7.6
___,_,
02 тать, схема переходит в состояние
S2, Она остается в этом состоянии
до тех пор, пока устройство 2 не за
кончит работу, т. е. r2 не станет
равным «1». Когда r2 становится
равным «1», схема переходит в состояние S1• Так как а1 равно
«О» в состоянии S2 и а1 равно «1» в состоянии S1, то переход из
S2 в S1 активизирует устройство 1. Когда это устройство отра
батывает приказ, о чем свидетельствует значение r 1 = О, схема
переходит в состояние S0 и продолжает в нем находиться до тех
пор, пока устройство 1 не освободится. Далее цикл повторяется.
Шаг 3 - минимизация числа состояний. Таблица состояний,
соответствующая диаграмме состояний рис. 7.7, показана на
рис. 7.8, а. Применяя методику минимизации числа состояний,
описанную в параграфе 1.7, соединим три строки таблицы состоя
ний в одну, как показано на рис. 7.8, б. В первой ячейке введем
дополнительно состояние S01 2, так как никакое другое состояние
схема принять не может. Для данной ячейки выходными сигна-
152
.пами служат 0, 0, принимающие нулевые (безразличные) зна
чения.
Шаг 4 - реализация схемы. Непосредственно из минимизи
рованной таблицы состояний (рис. 7.8, 6) получаем следующие
уравнения:
so
#1 puoomuem
#2 жtJem
Рис. 7.7
Ql = Г1Г2+Г1Г2+(Г1~)= Г2}
~2 = '1'2+,12+<ri2>= 'i-
rr Sf
r,
а1=t
02= f
rz
#fжtJem
#2umde11uem
а,-о
02=-f
.
}
(7.1)
{7.2)
Так как дополнительное произведение r1r2 не будет исполь
зовано в окончательном выражении для сигналов а 1 и а2, то
а1=а2 =О в первой ячейке рис. 7.8, 6.
)'0
1s
s2
Il00
О!
®
0,,02 ~1,о
so
,,о
о
Рис. 7.8
fl
Sf
f,O
®1,1
SI
IJ,f
!О
S2
и.1
r,r200
01
,,
10
@о,, S012
@@@!)@!)
Ф,Ф•О,0
1,0
1,1
о,, .
л
Будем называть уравнения (7.1) и (7.2) простейшими интер
фейсными уравнениями. Реализация их соответствует двум про
водникам, показанным на рис. 7.9.
Начало
--..---------..--rJ
Нет
Конец
#2
Рис. 7.9
Рис. 7.10
153
Управление работой/остановом. Очевидно, чтобы избежать
потери информации, пересылка данных должна начинаться опе
рацией чтения, а заканчиваться операцией записи (рис. 7.10).
1
d
t,
f
о
f
a,-rz
111•0
3аЛUС6
1/тение
a2•6r1 02•6 rz
Рис. 7.11
Рис. 7.12
Сами операции чтения/записи определены на рис. 7.11 . Исполь
зуем сигнал G для определения активного (G= 1) и неактивного
( G= О) состояний системы (рис. 7.12). Непосредственно из диа
граммы получаем
a1 =Gr2 +Gr2 =r2;
а2 = Gr1•
Соответствующая схема показана на рис. 7.13.
---.- ---------- --tl
#2
и
rz
Рис. 7.13
Рис. 7.14
Если сигналы старт/стоп являются импульсными, можно ис
пользовать JI(-триггер (рис. 7.14) для генерации сигнала G.
Возможны и другие варианты.
lz (j
f
6о
f
111 =rz
о,=6r,
o,=rz
а, =rz
112 =6 r1 аг=О
az=O
01•6 r,
Рис. 7.15
Рис. 7.16
Операция подавления чтения (i2 = 1 ). В рассматриваемой си
стеме операция подавления чтения реализована путем запрета
чтения (а=О) и инициирования вместо нее операции записи
(а1 = Gr 1), как показано на рис. 7.15. Непосредственно из ри
сунка получаем:
а1= r2[z+Gr1l2;
as = Gr1iз•
154
Операция подавления записи (l1 = 1). Как и операция подав
ления чтения, операция подавления записи осуществляется пу
тем запрета операции записи ( а1 = О) и введения вместо нее опе
рации чтения (а2 = Gr 2), как показано на рис. 7.16.
Непосредственно из рисунка получаем:
а1 = ri1;
а2 = a,;rl + Gri1•
ll1200
О!
11
fQ
a,-rz
a1•6r1
а1 -о
f1t"'0
a2•6r,
а2•О
Uz•O
az•Srz
Рис. 7.17
Интерфейсные уравнения. Сигналы запроса для всех комби
наций сигналов подавления чтения и записи показаны на
рис. 7.17. Непосредственно из этого рисунка имеем:
а1 =7172, 2 +i1i2Gr1;
а2 = t;l;a, 1 + l17:;.Gr2•
(7.3)
(7.4)
Эти уравнения мы будем называть интерфейсными уравне
ниями.
7.4 . ЗАДАЧИ И РЕШЕНИSI
В данном параграфе демонстрируются изложенные принципы
проектирования на задачах и их полных решениях. Внимание чи
тателя обращается на тот факт, что, хотя для реализации постав-
-
--
-
мп
6
ь
Сu2но11ы 1
-i
6' 'О
'lodo/dtм ~
Рис. 7.18
~
Коне!,(
4
ленР9ы С1111т1,1 отм1,
1
лент1,1
(#f)
а,-
-
r,
Инmeprpetlc
о
d
G
1
Ленто11н""J
лeprpopomop
(#2)
1
а,··
·· r,
1
155
ленных задач используется МП In8080, описываемые процедуры
применимы для всех типов микропроцессоров. Особо необходимо
отметить, что первые три шага алгоритма проектирования выпол
няются вообще без ссылки на тип микро
процессор а.
Задача 1. Копирование ленты. Скопиро
вать данную перфоленту, используя режим
ППД.
Решение.
Шаг 1- формирование технического за
дания. Целью проектирования является раз
работка устройства, пересылающего дан
ные от источника к приемнику в режиме
ППД. Никакая обработка данных не требу
ется.
Шаг 2 - внешнее проектирование. Счи
тыватель и перфоратор являются устройст
вами типа запрос/ответ. Кроме того, считы
ватель генерирует сигнал конца ленты
(е. о. t).
Шаг 3 - системное проектирование.
Структурная схем.а проектного решения по
казана на рис. 7.18. Алгоритм ее функцио
нирования представлен в виде схемы алrо-
коне11
ритма на рис. 7.19.
Рис. 7.19
Шаг 4 - проектирование аппаратурной
части. Из рис. 7.J8 видно, что интерфейс
должен формироnать сигналы а1, а2,Ь и G.
Сигналы а 1 и а2 могут быть получены непосредственно из ин
терфейсных уравнений (7.3) и (7.4) подстановкой О вместо
i1Иi2:
al=Г2;
а1 = Gr1•
-----------------и
r-t------;:г;,;:1---т---------1---11
Коне11ленf!!11
ь~А
~КО~'Н~=и..,.,л~=wт""'11
г.:::::т-----_.::,:==:::::...------------оитrв116оf;
Рис. 7.20
156
i+---------------------WR(Зgn11cь/
Выражение для сигнала Ь слРдующее (рис. 7.20):
Ь= '1+i;+е.о.t.
i--------,,-..---------------<,----o
1----t:::a;::J-+ -----,.. ----.... ----..J _--d
G
мп
ь
Сvгi/олы
MoiJo/DыdoiJo
Рис. 7.21
6
о,
d
'Pomocvvmыdomeль %%%~t
#f
r,
Инmeprpetlc
Для формирования сигнала G (уп
равление работой/остановом) использу
ется JК-триггер (рис. 7.20). Установка
этого триггера производится командой
ввода/вывода. Сбрасывается триггер сиг
налом «Конец ленты» (е. о. t).
Шаг 5 - проектирование программно
го обеспечения. За исключением коман
ды ввода/вывода, запускающей обмен
данными по каналу ППД, никакое дру
гое программное . обеспечение не требу
ется.
Задача 2. Очистка ленты. Скопиро-
вать перфоленту, удалив все забитые
символы (т. е. символы, состоящие из
единиц).
Решение.
Шаг 1 - формирование технического
задания. Целью проектирования являет
ся выборочное воспроизведение принима
емых даРных. В нашем случае забитые
символы не подлежат воспроизведению.
Шаг 2 - внешнее проектирование.
Фотосчитыватель с ленты и ленточный
перфоратор являются устройствами типа
запрос/ответ. Кроме того, фотосчитыва
тель генерирует сигнал 41:Конец ленты»
Oz
ЛентоvН1,1il
лерrроротор
#2
Рис. 7.22
(е. о. t).
до
157
Шаг 3 - системное проектирование. Структурная схема раз
рабатываемого устройства показана на рис. 7.21, а схема алго
ритма его функционирования - на рис. 7.22 .
Шаг 4- проектирование аппаратурной части. Из рис. 7.21
видно, что разрабатываемый интерфейс должен формировать
сигналы а1, а2, Ь и G.
Ситналы а1 и а2 получаются непосредственно из интерфейс
ных уравнений (7.3) и (7.4) подстановкой d и О вместо i1 и l2
г-1------------------------и
1-. ...-- ---- c~-- ---- ---- ---- --d
!NTEL
8080
ii' ........,----,
r,
Гz --,1..-_ __ ,
G--<r----,
,;
111--,1 ..-.....,
g
r;
G-r---.
Конеq 11 r,
И
•ленm6t 1 ';j_, ........1..----'
rz.
в
6
Конецленти
1---~- --- -- --- -- --- -- --- -- 0UT{B616ol)
..-----------------------WR(Jonvc6)
Рис. 7.23
соответственно. Сигнал d формируется путем объединения по
схеме И всех восьми разрядов шины данных, т. е. состояние
d= 1 служит признаком наличия забитого символа. Сигнал d
анализируется только в моменты, когда r 1 = 1, т. е. в то время.
когда данные, выдаваемые фотосчитывателем, стабильны. Поэ
тому
а1 = dr1r2 + Gr1d;
а2 =dGrl'
Уравнение для сигнала Ь имеет вид:
Ь =fi +r2+e.o .t .
Сигнал G, как и в задаче 11 формируется JК-триггером
(рис. 7.23). Этот триггер устанав·ливается пусковой командой
158
ввода/вывода, а сбрасывается автоматически сигналом «Конец
ленты».
Шаг 5- проектирование программного обеспечения. Разра
ботанное устройство не требует никакого программного обеспе
чения, кроме команд ввода/вывода, запускающих передачу дан
ных.
7.5 . СПИСОК ЛИТЕРАТУРЫ
1. Zissos D. ProЫems and So\utions in Logic Deslgn. Oxford Unlversity
Press, 1976.
2. Zissos D., Duncan F. G., Colin Т. J. Logic-free Data Channels, -
Eiectro-
nics Letters, vol. 10, No 17, August, 1974.
Приложение 1
УСТРОЙСТВА
ТИПА ЗАПРОС/ОТВЕТ
В данном приложении вводится определение устройств типа запрос/ответ
и объясняется методика их реализации.
П1.1. УСТРОЯСТВО ЗАПРОС/ОТВЕТ
В 1974 г. в [l, 2] было показано, что интерфейс между двумя устройства
ми типа запрос/ответ состоит из двух проводников. Устройства типа запрос/от
вет имеют два вывода: вывод запроса и вывод ответа
Ycmpot1cm6o
типо
Jолрос/отбет
Рис. Пl.1
----о
t-----r
(рис. Пl.1). Сигналы а и r несут следующую информа
цию.
Сигнал а. Переход от «О» до «l» этого сигнала за
пускает (активизирует) устройство. Запуск невозможен,
когда r=O.
Сигнал r. Этим ответным сигналом определяется
доступность (r= l) или недоступность (r=O) устрой
ства.
В настоящее время большинство устройств управ
ляются несколькими сигналами и не могут быть смоде
Jiированы приведенной моделью типа запрос/ответ. Та
кие устройства, однако, могут быть легко приведены к
виду запрос/ответ с помощью логической схемы, чувствительной к фронтам.
П1.2. ЛОГИЧЕСКАЯ СХЕМА, ЧУВСТВИТЕЛЬНАЯ К ФРОНТАМ
Схема, чувствительная к фронтам, показана на рис. Пl .2. Схема форми
рует сигналы состояния устройства и генерирует правильные последователь
ности управля1ощих сигналов для запусков устройства при изменении уровня
сигналов запуска от «О» к «1». К:роме того,
она генерирует сигнал ответа r. Реализа-
ция такой логической схемы довольно про-
ста, если применить методику, описанную
вrл.1.
!lcmpolicm4o
Основная трудность, с которой прихо-
дится сталкиваться пользователю, заключа•
ется в правильной интерпретации сигналов
управления и состояния устройства по
С11гнол61
состояния Логиrес•--- 0
ко11схе-
но,,r1J/С
1/nро4ляю
щие CU!НIIЛI/
mиllfТle//6
НО//К
iрронтом
t-----r
предоставляемой изготовителем докумен
тации. Рассмотрим пример несколько тен
денциозного содержания, заключающийся
Рис. Пl.2
в том, что некоторый пользователь достаточно хорошо знаком с семантикой
сигналов состояния и управления, однако не хочет использовать устройство
в том виде, в каком оно поставляется изготовителем. Ниже дано несколько
общих рекомендаций по проектированию логических схем, чувствительных к
фронтам.
В связи с тем, что требования к входным сигналам для всех устройств.
снабженных логической схемой, чувствительной к фронту, одинаковы, сигнал
запроса не используется непосредственно для запуска устройства, а исполь-
160
зуется для перевода схемы в следующее по диаграмме состояние. В этом но
вом состоянии генерируется первый из сигналов управления и обрабатывают
ся соответствующие ответные сигналы состояния. Когда же устройство закон
чило выполнение действий, вызванных поступившими управляющими сигна
лами, логическая схема, чувствительная к фронту,
генерирует следующий управляющий сигнал. Процесс
продолжается до тех пор, пока устройство не выпол
нит действия, «заказанные» последним управляющим
сигналом. Тогда схема возвращается в свое исход
ное состояние для а=О. Благодаря этому обеспечи
вается чувствительность логической схемы только к
Цuгрропмато;ощее
ycmpolicmбo
фронту сигнала запроса и допускается автономный
режим работы при подсоединении его выхода готов
ности (состояния) к входу запроса. Рассмотрим раз
работку логической схемы, чувствительной к фронту,
на примере цифропечатающего устройства.
wхуz
Рис. Пl.3
Пример 16. Спроектировать логическую схему, чувствительную к фронту
для цифропечатающего устройства (рис. Пl.3), которое имеет следующие ха
рактеристики ввода/вывода.
SO
S!
Контакт w. Подача уровня- «О·» на этот
контакт устанавливает печатающий узел в со
ответствие с вводимыми данными.
W•f
!l•f
а
r•f
АВ=ОО
az
10
W•f
!l•f
-·-
r=z
z
SJ
Рис. Пl.4
W•O
у-1
r•O
Of
'i
"
W•I
IJ •'l
r-о
sг
Контакт х. Пока печатающий узел уста
навливается, х=О. Сигнал принимает значение
1, когда печатающий узел окончательно уста
новится.
Контакт у. Подача нулевого уровня на
этот контакт вызывает срабатывание молоточ
ков печатающего узла и последующую про
тяжку бумаги на одну позицию.
Контакт z. Сигнал z=O в течение сраба
тывания молоточков и протяжки бумаги, ос
тальное время z= 1.
В данном примере сигналы а, х и z явля
ются входными сигналами ,rюгической схемы,
аw,уи,-
выходными. Диаграмма состоя
ний разрабатываемой схемы показана на рис.
Пl.4. Непосредственно из диаграммы получаем:
условие установки А = Вх;
условие сброса А=Baz➔ инверсия➔ в+а+z;
условие установки В = А.а;
условие сброса в = Az ➔ инверсия ➔А + z.
Таким образом, уравнения схемы имеют вид:
А=Вх+А(В+а+z);
В=А.а+В(А+z);
w=81=АВ=А+В;
у=S0+S1+s;;x+Sз
=s2 +s;;
=S2+x
=А+в+х.
Схема, соответствующая реализации этих уравнений, показана на
рис. Пl.5. Данная схема соответствует схеме, чувствительной к фронту, и ис
пользуется в цифропечатающих устройствах.
161
А
8--.r--..
о
z-...,___
_,
8
А-...г-,
r
10---1. ._, , 1
Рис. Пl.5
П1.3, СПИСОК ЛИТЕРАТУРЫ
1. Zlssos D., Duncan F. G ., Collin Т. J. 'Logic-free Data Channels;- Electro-
nics Letters. Vol. 10, No 17. August, 1974.
2. Collln т. J. 'Loglc,free Data Channels; М. Sc. Thesis, University of Cal•
gary, 1974.
Приложение 2
МИКРОПРОЦЕССОР Intel 8085
П1.t. О&ЩИЕ ПОЛОЖЕНИЯ
Микропроцессор Jn 8085 является эволюционным преемником микропро•
цессора ln 8080*. Его выпуск стал возможен благодаря усовершенствованию
технологии за последние 10 лет, а также благодаря приобретению. опыта в
разработке и использовании микропроцессорных систем. Основные отличитель
ные черты этого МП, с точки зрения системного разработчика, следующие.
1. Одно напряжение питания ( +5В). Эта особенность полезна для пор
тативной аппаратуры, она позволяет снизить общую стоимость разрабатыва•
емой системы.
2. Наличие однофазной синхронизации. Использование однофазной син
хронизации знач1-1тельно ослабляет временные ограничения на интерфейсные
сигналы. Минимальная и максимальная частоты синхронизации соответственно
0,5 и 3 МГц. Вся система синхронизации встроена в кристалл, и для функцио
нирования необходим только внешний кварцевый генератор или RС-генератор.
Сигнал синхронизации Ф выводится на контакт 87 (рис. П2.1), все внутрен
ние переходы осуществляются по спаду синхросигнала Ф.
Необходимо обратить внимание на тот факт, что требуемые для функцио
нирования МП две неперекрывающиеся по фазе последовательности синхро
сиrналов генерируются внутри кристалла от внешнего источника. Одна из
этих последовательностей выдается потребителю.
3. Уменьшенный набор семейства. Повышение уровня интеграции позво
лило реализовать минимальную архитектуру микrо-ЭВМ на трех криеталлах:
8085 (микропроцессор), 8155 (ОЗУ) и 8355/8755 (ПЗУ/ППЗУ).
• Более подробная информация по микропроцессору /п 8085 приведена в
фирменном руководстве [!].
162
(35)
(6)
(9)
(8)
(7)
(10)
INTEL
8085
(39)
(36)
(29)
(33)
(34)
(31)
(32)
(11)
(38)
(30)
(3)
. .....
......
. .....
......
. .....
......
READY
TRAP
RST7,5
Подача «О» на этот вход переводит МП в состояние
идания, а подача «!» выводит его из этого состоя
.
Шина стробируется в течение машинных тактов
и Тw каждого цикла по фронту фазы Ф ➔ (рис. П2.5J
ож
ния
Т2
Немаскируемое прерывание. Переход О --+ l вызывает пе
ачу управления по адресу ООО 044 8
ред
Пе реход О -+ l вызывает передачу управления по адре-
000 0758
RST6,5
су
Подача «!» вызывает передачу управления по адресу
ООО 0658
•
RST5,5
Подача «!» вызывает передачу управления по адресу
0558
INTR
HOLD
ООО
По
да
дача «l» прерывает программу (асинхронно). Коман
RSТ или команда CALL выдается на шины в тече
ние цикла обработки прерывания
Подача «1» переводит а, d, RD, WR, //ОМ, и ALE в
тье состояние
тре
RESET IN Подача «О» ,сбрасывает программный счетчик и перево
МП в состояние MJ • Т1 (рис. П2.5), устанавли
тся маска RST и запрещается сигнал IN TR
So
si
!/ОМ*
WR*
RD*
INTA
HLDA
ALE*
дит
вае
➔)
f
➔1
-+«!»
-+«О»
-+«О»
So S1
О \ О IПрограммный останов
Информация __➔
о состоянии
о
1
1
1l 1Запись
1°1
Чтение
1
1
1
Извлечение
индицирует выполнение ввода/вывода
команды
да
индицирует вывод данных
} Не только для
индицирует режим ввода по шине устройств ввода/
иных
вьmода
➔Этот сигнал генерируется в течение следующего коман
ого цикла после приема сигнала IN TR ~запрос пре
вания). Он используется вместо сигнала RD и имеет
же временные характеристики
дн
ры
те
➔«1» подтверждает прием захвата HOLD. Шины будут
реведеиы в третье состояние в начале следующего
нхроцикла
пе
си
➔ СП ад этого сигнала можно использовать для стробиро
ния младших разрядов адресной шины
ва
RESET ОU1:_И нднцирует сброс микропроцессора
• Находятся в третьем состоянии во время программного останова.
163
(5)
(4)
(37)
Продолжение рис. П2.1
SID
~+------Последовательный вход данных
SOD
,------Последовательный выход данных
ф
,_____ -системная синхронизация
Рис. П2.1
4. Сигналы микропроцессора приведены на рис. П2.1. В общем, они спро
оектированы весьма разумно и доста.точно четко определены, хотя имеется два
исключения: а) контакт //ОМ (контакт 34 рис. П2.1) переводится в третье
-состояние в момент выполнения команды «Останов», однако, если в данной си
стеме используется нагрузочный резистор, то сигнал //ОМ принимает уровень
логической «1» при останове микропроцессора, ошибочно индицируя системе,
что выполняется команда ввода/вывода; б) в микропроцессоре не предусмот-
М!·Тf
РСнкА8 -А 1r
РС, кd
d строо11р11ед.1r;_н
сuгниломАLс
Mf·T2
Рис. П2.2
/ ..:-- --. ---- l f----- ---d
rJ "r Мf·[Т2+Т1/
Mf·[T2-T1}
lТ
омано
реи сигнал ожидания, как это сделано в ln 8080, который бы индицировал,
что прибор находится в состоянии ожидания.
5. Мультиплексируемая шина данных. Микропроцессор ln 8085 использу
,ет мультиплексирование шины данных. Процесс мультиплексирования лучше
понять при рассмотрении рис. П2.2 и П2.3. Из этих рисунков видно, что в те
чение такта Т1 каждого машинного цикла шина данных d не несет информа
ции. Из этого следует, что для 8-битовой машины с 16-битовым полем адре
·Са 8 из 16-адресных сигналов можно ввести на шину данных в течение такта
Т 1 и простробировать до того, как шина данных будет испо,1ьзоnана для об
мена с памятью или ввода/вывода. Таким путем можно освободить 8 выводов,
.которые можно применить для других целей. Именно такой метод мультиплек
сирования данных и применен в микропроцессоре ln 8085. На рис. П2.2
показано мультиплексирование шин данных в цикле выборки команды, обозна.
ченном как MJ. Сигнал ALE (Adress Latch ЕпаЫе, строб выдачи адреса) пред-
:J.64
ставляет собой импульс, генерируемый микропроцессором /п 8085 в каждом
машинном цикле перед переходом в состояние Т2. Спад сигнала ALE можно
использовать для стробирования выдаваемой по шинам данных адресной ин
формации. Временные диаграммы описываемых процессов приведены в ра
боте [1].
6. НабЬр команд. Под набором команд подразумевается набор операций,
которые может выполнять микропроцессор. Микропроцессор /п 8085 имеет
такой же набор команд, как микропроцессор /п 8080, за исключением двух
дополнительных команд- S/M (Set lnterrupt Masks - «Устан.овить маску пре
рывания») •и RlМ (Read lnterrupt Masks- «Читать маску прерывания»). Коман
да SIM пересылает содержимое аккумулятора в регистр маски прерывания,
П~cneilqdomeлшмio--f,s.-:;lJ;-,
,1,rol QОННШ
i.;!...:.(
{
-- 117~
J11пдос61 npe- ---r;; 1
p6id11н111)
f-'~,
1-15 !Ш1
Фп11жк11 PO!lf)tШI?· - [
н11нпре.'f)ыdон111) ~ lE.1 l/meн11eнgc-
1--:, KII Л/11?/1_6/IО•
{
-117' НIJ{}j
Моск11 п11еры- -fм6i
·
dOH41l
i.:- -1
--tM51
,__
_,
Рис. П2.4
Cmapшuti
оит
Рег11стр /1/llCKII
npepы6aнvti
500 ПfJJl~6if/ff/11•· Доннш(оvrрерSОD)
Pos.пeшeнt1eSOJJ [Если О,то ilоннщ dJl/1/Jl?P
,,
SOD не зоноснтсн,
Hee'lfffJR6ЗV· •
Cdpoc RST 7.5
~Yo/.i61//;r;'Jf/'fff!/fl/
Разр_ешен11п;ста- [Еспи.о•маски 7,fi,5 не
нddк11 /1/оски
paccмampullll(lmc11}
MocкoRSТ7.5}[flpu I/CllJQHOdлeннo/11611me
маскаRSТ6.5 J(MSEJ еии11и11а I некотором
.
811те маск11 запрещает сиот-
МоскаRST S.S 6emcmlv11Jщ11e лрерь1dа1111н}
а команда RIM позволяет прочесть в аккумулятор информацию о состоянии
(рис. П2.4).
7. Режим ожидания/счета. Проектирование и реализация систем типа ожи
дания/счета на микропроцессоре /п 8085, как и на любом другом, не представ
ляет затруднений. Микропроцессор /п 8085 в качестве центрального устрой•
ства ожидания/счета рассматривается в следующем параграфе. Проектирова•
ние логической схемы ожидания/счета было бы несколько проще, если бы
пользователю был доступен сигнал ожидания. Сигнал ожидания, как уже ука
зывалось в гл. 3, индицирует, что микропроцессор находится в состоянпи ожи
дания некоторого сигнала.
8. Режим проверки и пропуска. Последовательность разработки систем,
работающих в режиме проверки и пропуска, описывается в параграфе П2.3. •
. 9. Режим прерывания. Возможна обработка следующих прерываний:
а) немаскируемое прямое векторное прерывание, TRAP, на контакт б
(рис. П2.1) ;
б) три прямых векторных прерывания на контакты 7, 8 и 9;
в) восемь косвенных векторных прерываний, как и для микропроцессора
/п 8080.
10. Режим ПДП. Никаких особенностей для данного микропроцессора при
применении его в режиме ПДП нет.
.
'
11. Режим ППД. Как и для режима ПДП, в данном случае никаких осо
бенностей для микропроцессора /п 8085 нет.
П2.2. СИСТЕМЫ ОЖИДАНИЯ/СЧЕТА
Как и все выпускаемые в настоящее время микропроцессоры МП /п 8085
не выполняет циклов ожидания/счета. Как уже объяснялось в гл. 3, под таки•
ми циклами понимаются циклы ввода/вывода по адресам ожидания/счета А J)
в течение которых микропроцессор автоматически входит в состояние ожида•
ния, которое он покидает, когда сигнал на шине счета изменяется от «О» до
«1 ». Пользователю предоставляется решение задачи разработки логической
схемы ожидания/счета, позволяющей инициировать цикл ожидания/счета.
Структурная схема изображена на рис. 3.12.
165
о
о,о,о.
ООО
010
110
100
101
111
011
001
NOP Мр :=А
Сд8ИГ P:=P+I р: = //
ООО
ООО
002
006
004
005
007
003
001
---
010
022
026
024
025
027
023
021
--
SJM MJ:=A
r:=i r:=r+I r:=r-1 с:=- 1
110
062
066
064
065
067
063
061
---
R.I .vl Ml:=HL
BCD
100·
042
046
044
045
047
043
041
--- ---
D6D,D,
HL:=Ml
А:=А
101
052
056
054
055
057
053
051
---
-
-
о
A:=Ml
с:=с
Р:=Р-1
111
072
076
074
075
077
073
071
---
---
HL:=
А:=Мр
Сд8иr
=HL+P
011
032
036
034
035
037
033
031
D,
001
012
016
014
015
017
013
011
+с 001
210
212
216
214
215
217
213
211
-с 011
230
232
236
234
235
237
233
231
(-) ш
270
272
276
274
275
277
273
271
'v 101
250
252
256
254
255
257
253
251
1 D,D,D,
А:= А ор,
Л 100
240
242
246
244
245
247
243
241
V 110
260
262
266
264
265
267
263
261
-
010
220
222
226
224
225
227
223
221
+ ООО
200
202
206
204
205
207
203
201
Реrистр ,
Условие
Оператор ор
ООО в
2 не нуль
+
010 D
~-
не переноо
110 Mhl
п не меньше нупя
V
\00 н
р нече'l
л
101 [,
р чет
..,
111 А
п меньше нупя
сравнение (z : = А = r, c:==A<r)
oll Е
с перенос
-
с(А:=А-r
-
с)
oOI с
z иуль
+с(А:= А+r+о)
Рис. П2.3. Карта команд / NTEL 8085
166
о.
001
011
101
103
121
123
161
163
141
143
151
153
171
173
131
133
111
113
RET
311
JN
333
-
--
SP:=HL EI
371
373
-
---
PC:=HL
351
353
-
---
341
343
---
DI
361
363
---
РОР р оит
311
323
--
JMP
301
303
Пара регистров р
00 ВС
01 DE
11 Sp*
10 HL
1
D1D1D0
111
101
100
101
105
104
r/:=r2
127
125
124
167
165
164
147
145
144
157
155
154
rl: .. r:l
177
175
174
137
135
134
117
115
114
CALL
317
315
314
---
337
334
RESTART
Условный
377
374
вызов
357
354
---
347
345
344
367
365
364
327
pUSH р
325
324
307
305
304
* AF AJiЯ команд РОР, PUSH
110
010
ООО
106
102
100
r/: -Mhl
r/;= r2
126
122
120
Останов
166
162
160
146
142
140
166
112
150
r/;,,, . Mh ,l
rl:-r2
176
172
136
1!2
116
112
ЗНI
312
336
332
376
Усповиыi!
372
356
переход
352
А:=А ор /
346
342
366
362
326
322
306
Зй2
Сдвиг (А)
Логический влево
Логический вправо
Арифметический вправо
Арифметический влево
170
130
110
310
330
Усповиьп!
370
во§:gвт
340
360
Э2О
300
в
D
н
L
А
в
с
-==
z
с
n
р
-
р
"'ii
ё
z
167
О
о
н
6
1
'
M
f
-
Т
f
R
E
A
'
D
Y
=
Ф
е
=
О
w
=
O
(
!
O
/
M
=
O
,
S
O
·
S
f
=
f
J
ф
J
l
M
f
·
T
Z
O
~
C
'
t
r
l
:
.
/
I
V
I
'
R
E
A
f
f
Y
:
J
l
Ф
R
E
.
l
J
Y
•
f
е
=
О
W
•
O
-
-
-
-
,
(
!
О
/
М
=
О
,
S
O
·
S
f
=
f
)
t
М
!
·
Т
w
ф
О
л
р
о
с
'
Н
Е
А
1
J
У
'
.
[
H
E
A
.
D
Y
:
J
l
R
E
A
J
J
Y
=
j
l
е
-
-
w
=
М
f
·
Т
1
(
I
O
/
M
=
O
,
S
O
•
S
f
=
f
}
R
E
A
.
D
Y
·
Ф
1
е
=
О
1
i
-
~
-
.
.
.
J
w
=
o
H
E
A
'
D
Y
:
J
l
(
l
o
/
м
=
o
,
s
o
·
s
t
=
t
J
ф
д
M
f
·
T
f
f
R
E
A
J
J
Y
=
Ф
e
•
g
w
-
(
J
O
/
M
•
O
,
S
O
•
S
f
•
/
)
Р
и
с
,
П
2
.
5
8
6
t
0
0
P
K
O
о
о
р
е
с
о
M
2
·
T
t
R
E
A
J
J
Y
=
Ф
e
=
z
r
.
-
-
W
•
'
!
O
/
М
-
-
0
,
S
O
•
S
f
+
S
O
-
S
f
=
f
}
ф
J
l
М
2
·
Т
2
О
п
р
о
с
'
R
E
A
1
J
Y
'
R
E
A
'
D
f
:
J
l
9
'
/
?
Е
А
D
У
•
в
е
=
w
-
-
-
l
(
!
О
/
М
=
О
,
S
O
-
S
f
+
S
O
·
J
t
=
f
}
•
M
2
·
T
w
ф
(
)
W
J
O
C
'
R
E
1
1
v
r
J
л
H
E
A
D
Y
:
J
l
E
A
J
J
Y
•
i
1
0
1
м
=
о
.
s
о
1
,
:
O
-
S
N
J
.
М
Z
.
Т
1
R
E
A
.
D
Y
=
Ф
1
е
=
О
_
_
_
j
_
_
w
·
O
_
l
?
!
A
'
D
Y
:
J
l
Ф
(
1
0
/
М
•
О
,
S
O
·
S
f
t
-
S
O
·
S
f
'
I
)
П
р
и
м
е
ч
о
н
t
J
.
е
,
П
е
р
е
.
r
о
а
1
1
1
м
е
ж
о
1
1
r
о
с
т
о
1
1
н
ц
н
м
1
1
и
м
е
ю
т
м
е
с
т
о
п
о
r
п
о
4
1
/
/
J
M
Л
I
J
Л
6
C
0
6
t
p
o
:
m
ф
В
ы
п
о
л
н
е
н
и
е
М
о
а
а
;
6
1
1
1
6
о
о
а
М
3
•
Т
f
R
E
A
1
J
Y
=
Ф
е
=
о
(
1
0
1
й
=
1
,
s
f
.
Г
,
f
s
o
-
s
1
•
t
J
ф
J
l
М
3
·
Т
2
l
l
Л
/
J
O
C
'
Н
t
:
j
i
V
1
'
f
Ш
J
J
Y
=
O
е
=
О
r
z
o
1
м
-
1
.
s
o
1
i
+
1
0
-
s
1
=
0
ф
R
E
A
D
Y
J
l
.
Ф
i
М
З
·
Т
w
.
q
л
в
_
о
с
'
Н
Е
А
О
У
'
R
E
A
7
J
Y
•
;
:
•
f
R
E
A
J
J
Y
:
f
l
e
•
l
/
!
=
f
J
1
0
1
м
•
1
,
s
'
f
.
s
l
+
s
o
-
s
,
-
1
1
М
J
-
Т
3
R
E
A
O
Y
=
Ф
1
e
•
f
_
_
w
=
o
-
,
_
(
!
O
/
f
'
I
•
f
,
S
O
•
S
f
+
S
O
·
S
f
=
1
)
R
E
A
l
l
Y
:
J
l
Ф
ф
J
l
M
f
•
i
1
г
-
Н
Е
А
О
У
=
Ф
-
-
,
1
е
=
О
1
1
_
w
=
o
1
L
f
Z
O
l
t
t
°
-
f
-
o
•
s
t
•
J
l
.
J
1
Рассмотрим диаграмму внутренних состояний микропроцессора ln 8085
во время выполнения цикла ввода/вывода (рис. П2.5). Как и для микропро
цессора /п 8080, для реализации цикла ожидания/счета используется переход
микропроцессора из состояния М3-Т2 в состояние МЗ,Т w (вместо перехода в
состояние МЗ·ТЗ). Переход в состояние МЗ.ТЗ инициируется переходом сиг
нала из «О» в«!» на шине счета g (рис. П2.6).
В соответствии с рис. П2.5 микропроцессор /п 8085 переходит в состояние
ожидания благодаря подаче нулевого уровня на линию R,EADY (контакт 35).
Так как данная линия опрашивается
микропроцессором в течение состояний
Т2 и Т w· логический «О» на нее необхо
димо подать, когда
микропроцессор
/п 8085 переходит в состояние МЗ,Т2, а
на шинах поддерживается адрес ожи
дания/счета Aw• Нулевой уровень на ли
нии READY должен быть до тех пор,
пока сигнал счета g не изменится с «О»
на «!'», при этом необходимо подать на
линию READY единичный уровень. Это
позволит микропроцессору перейти в со
стояние М3·Т3 и продолжить свое нор
мальное функционирование. На рис.
П2.1 показано, что в течение выполне
ния цикла команды ввода/вывода на
(ГотоОность)
Рис. П2.6
контакте 34 поддерживается уровень· логической «1». Этот сигнал обозна-
чается как //ОМ. Уровень логической «1» на этом контакте также может быть
получен при отработке команды останова, как это указывалось в параграфе
П2.1 (пункт 4). Очевидно, что логическая схема ожидания/счета не должна
опрашивать контакт //ОМ во время программного останова процессора. Из
рис. П2.1 видно, что в течение программного останова оба сигнала со-
ОНfиiJоние
odpeco OНf/J·
ф
tJdнu11/c1/emo,
A_w__
!0/M·Aw{SO+S1) Jl
l/[ADY·1
w-o
е-о
АВС•ООО
_n_Ф
07
8085dM1·T2
--
R[ADY=1
w-o
е•О
001
Рис. П2.7
JL~
80856МН2
.л_Ф
1/EADY=O
w-o
е•О
0/0
06
80856Ml·Tf
JlФ
---
1/[АDУ-Ф-1
W•O
е=О
Off
02
80856М:Иw
80856MJ-Тw
Зor,ljCK
-л"'
Внешнее
Внешнего
11cmpoocm60
11cmpoocmdo
g,
роЬотоет
READY=O
1 [_8нешнее~строй- 1/[ADY=O
w=f ст6о ро5~ оет}
W•f
е•Ф=/
е=Ф•f
110
~. ~::;:: 100
~i~~ g.JlФ
~[~~~
"
..
Os
о.~
80856М3-ТJ
!/стам~··'О
11тен1,,дан-
JLФ
Ш/JH6IR ;41)У
ныи неш-
6/01111 1,!.(о4о
itZJcfJf//
UJftff/ll11111
1/ЕАDУ·Ф•1
1/EADY•/
W•Ф•1
w-r
е-1
е·Ф• 1
/f1
tof
стояния So и S1 равны О. Таким образом, используя вентиль И для сигналов
//ОМ и So·S1 получим искомый сигнал .поrической схемы ожидания/счета
l/OM (S0 + S1).
Итак, кроме сигналов //ОМ, Aw и Ф логическая схема ожидания/счета
должна анализировать сигналы состояния So и S1. Для упрощения мультиплек-
169
сирование и демультиплексирование на шинах w и g не показано. Интересую
щийся читатель может найти подробности на рис. 3.10.
Соответствующая диаграмма· внутренних состояний логической схемы ожи
дания/счета показана на рис. П2.7,а. Функционирует она следующим образом.
Нормальное состояние схемы Qo, схема находится в этом состоянии, пока
In 8085 активно функционирует, а периферийные устройства, работающие в
режиме ожидания/счета, неактивны. /п 8085 поддерживается в активном сос
тоянии благодаря наличию на шине READY высокого уровня. В этом состоянии
схема ожидает появления сигнала адреса ожидания/счета Aw. С этой целью
опрашивается адресная шина микропроцессора, пока он находится в состоя
нии МЗ•ТJ (рис. П2.5). I<огда /п 8085 находится в состоянии МЗ,ТJ, то
//ОМ=1; S0+S1= 1.
Таким образом, можно использовать сигнал l/OM(So+S1)Aw для перехо
да в следующее состояние. Так как переход в схеме и в микропроцессоре про-
в
ё
в
с
TRAP
Cucme1+
ныliсорос
Рис. П2.8
А
вёq
с
ё
А=:(2]
8
1-c_=-t§iJ_,....ил-и-,-----REAllY
А
W{•e}
исходит по спаду импульсов фазы Ф, схема переходит в состояние Q1 в то же
самое время, когда микропроцессор переходит в состояние М3•Т2 (рис. П2.5).
В состоянии Q1 на линию READY подается низкий уровень. Благодаря этому
микропроцессор переводится в состояние ожидания по следующему синхроим
пульсу. Одновременно схема ожидания/счета переходит в состояние Q2, при
этом формируется сигнал ожидания w. Изменение сигнала w от «О» к «1'» ис
пользуется для запуска внешних устройств. Для того чтобы быть уверенны
ми, что связь с устройством не оборвалась, схема не переводится в состояние
Q3 до тех пор, пока сигнал g не станет равным О. Последнее обстоятельства
указывает на то, что внешнее устройство начало отвечать на запрос. Состоя
ние Q3 сохраняется до тех пор, пока устройство не ответит на запрос, т. е.
пока сигнал g не станет вновь равным 1. В состоянии Q. 'На линию READY
подается высокий уровень, позволяя следующему синхроимпульсу вывести ми
кропроцессор из состояния ожидания. Одновременно логическая схема ожида
ния/счета переходит в состояние Qs. Данные считываются в аккумулятор, если
внешнее устройство является источником, когда микропроцессор находится в
состоянии МЗ•ТЗ. Это значит, что в состоянии Qs сигнал разрешения е должен
быть равным 1.
Из состояния Q5 можно непосредственно возвратиться в состояние Qo. Од
нако в таком случае диаграмма будет иметь шесть рабочих состояний и два -
неиспользуемые. Во избежание такой ситуации по причинам, описанным в па
раграфе 1.6, введем дополните,1ьные состояния Q5 н Q1 для нормальной рабо
ты схемы.
Очевидно, что сигнал READY анализируется только в состоянии Qo, когда
микропроцессор находится в состояниях М3•Т2 или М3•Тw· Это связано с тем.
170
что линия READY опрашивается микропроцессором только в состояниях Т2
и Т w (рис. П2.1).
Так как /п 8085 входит в состояние ожидания в течение цикла ввода/вы
вода, сигнал е может быть приравнен сигналу w (см. уравнение (За)).
Чтобы исключить нежелательные броски сигналов на линии ожидания w,
воспользуемся свободным от состязания кодированием для определения тре
буемых восьми состояний. Примеры таких кодов приведены на рис. Пl.8, а
конкретное кодирование для рассматриваемого случая - на рис. П2.7. Непо
средственно из этого рисунка получаем уравнения:
sА=Ql=АВС,
RA=Q5= АВС,
S8 =Qof/OM(S0+S1)Aw+Q,
• = А.Ёё!/ОМ(S0+S1) Aw+АВС,
поэтому JА = ВС;
поэтому КА= ВС;
поэтому Jв=
R8 = Q;g+ Q6 = Aifcg+ABC,
Sc=Q8g=ABCg,
Rc=Q7 =ABC,
АёiОМ(S0+S1) Aw+АС;
поэтому Кв = ACg+ АС;
поэтому Jс = ABg;
поэтому Кс = АВ;
READY=Qo+Q,+Q1+(Qo)+(Qв)
= АВС+АВС+АВС+(АВС)+(АВС)
=""ХЁ+С;
е= w=Q1+Qa+Q,+(Q5)
= Аве+АБС+АВС+(АВС)
=А;
Сигнал сброса== Системный сброс+ TRAP.
Системный сброс позволяет осуществить синхронизацию в системе, а сиг•
кал TRAP позволяет ей покинуть состояние ожидания в особых случаях. Со
ответствующая схема показана на рис. П2.8.
П2.3. СИСТЕМЫ ПРОВЕРКИ И ПРОПУСКА
Структурная схема микропроцессорной системы проверки и пропуска для
одного внешнего устройства показана на рис. 4.2, а алгоритм ее функциони
рования - на рис. 4.1 .
•
- - - ,_____ ____ ____ ____ __ (l
1----------------------tl
/NТEL
8085(."'2)
.,,
- -- -- HD .f"1JжJ11ц11pvem режим 11тен111I
на шине. 011HH61.r d
(34) 1---------JO/M.f"11нo1JЦ/JPV,,t'm /6111()PeH/JI
8811011/ '1618oiJIJ
.(3t)
wн .f"иноицирvет нgлuque оанны.r из
..._____,
11KKf/l'ff/Al/mo,tJ11 АС на шине оаннщ d
Рис. П2.9
Сигналы ввода/вывода, как и во всех микропроцессорах, генерируются во
время выполнения команд ввода/вывода. Для микропроцессора /п 8085 все
пересылки ввода/вывода осуществляются через аккумулятор. Непосредственно
171
может адресоваться до 256 вводных и 256 выходных устройств. Выполнение
команд ввода/вывода не изменяет состояния флажков микропроцессора.
Сигналы ввода/вывода показаны на рис. П2.9. Соответствующие им вре-
'
СинхросигналФ
о
'
Rll
о
10/М f
о
WRf
О--+--------+-------+----'
Рис. П2.10
менные диаграммы показаны на рис. П2.10. Для простоты на рисунке не пока
заны фронты и спады сигналов. Для более подробного ознакомления с диа
граммами необходимо обратиться к литературе [1].
,--,..____________________________
а
INTEL
8085
---------------------------ti
'---v----' f'p r,
Др11г11е ClltHUЛ6/
состовнив
1----+ -+ -- - -- -- -- -- -+- -.. ;.. ._ _.... ;...-1,.... ..__ _ R D
~--_.....,.._________..,____+---IO/ff
,-----------------------~"1R
Рис. П2.11
Структурная схема системы проверки и пропуска на базе микропроцессо
ра /п 8085 для одного источника и одного приемника данных показана •на
рис. П2.11. Сигнал r Р = 1, когда источник выдает данные. Аналогично rq = 1.
когда приемник готов принять данны_е. Сигнал ер имеет три состояния и вы-
рабатывается путем объединения по схеме И сиrнаJJов АР' Rd и //ОМ..
П2.4. СИСТЕМЫ ПРЕРЫВАНИЙ [1)
Микропроцессор /п 8085, как уже указывалось, имеет 5 входов прерыва
ний: TRAP, RST7.5, RSTб.5, RST5.5 и /NTR (рис. П2.12). На эти сигналы не
накладываются никакие временные ограничения - они могут появляться в JIIO•
172
бое время. Входы прерываний (контакты 6-11, рис. П2.12) стробируются в
течение последнего синхропериода выполняемой команды. Запросы прерываний
имеют фиксированный приоритет, показанный ниже
ТRAP
Высший приоритет
RST7.5
1
RST6.5
RST5.5
INTR
Низший приоритет
TRAP- немаскируемое прерывание (повторный запуск, RST), использу
емое преимущественно в экстренных ситуациях. Этот сигнал должен быть вы
сокого уровня в момент стробирования, однако, для того чтобы этот сигнал.
(6)
(9)
(8)
INTEL
8085
(7)
(10)
(11)
Рис. 2П.12
------- ➔ а
1--------d
TRAP
RST 7,5
RST 6,5
Немаскируемое прерывание. Переход «О» ➔ «!» вызыва
ет передачу управления в микропроцессоре по адресу
ООО 044 8 после окончания текущей команды. Должен,
быть равен 1 в момент стробирования. Асинхронный
Переход «О» ➔ «!» вызывает передачу управления по ад
ресу ООО 075 8 после окончания текущей команды. Асин
хронный
Подача «!» вызывает передачу управления по адресу
ООО 0658 после окончания текущей команды. Асинхронный
RST 5,5
+------Подача «1» вызывает передачу управления по адресу
ООО 0558 после окончания текущей команды. Асинхронный
INTR
+-----Подача «!» прерывает выполнение программы в конце
текущей команды. На шину данных в течение цикла
обработки прерывания подается команда CALL или RST.
Асинхронный
JNTA
----➔Этот сигна.1 генерируется в течение цикла следующего
за приемом сигнала / NTR. Он имеет те же самые вре-
менные характеристики, что и сигнал RD и использу
ется вместо него
был воспринят в следующий раз, он сначала должен принять значение «О'».
а затем - опять «1».
Три прямых рестарта, RST7.5, RST6.5 и RST5.5, могут быть каждый в от
дельности программно замаскированы (т. е. запрещены) с помощью команды
SIM (рис. П2.4). Отметим, что gапрос RST7.5 можно подать даже тогда, ког
да его маска установлена, а прерывания запрещены. На рис. П2.1 показано.
что подача «О» на контакт 36 устанавливает все маски прерываний, т. е.
запрещает прием прерываний через контакты 7, 8, 9 (рис. П2.12) .
.JNTR используется как прерывание общего назначения, этот вход эквива
лентен входу запроса прерывания микропроцессора /п 8080, т. е. если /NТR
единственный выставленный запрос прерывания и флажок разрешения преры
вания JNTEFF установлен, микропроцессор /п 8085 сбрасывает этот флажок
и входит в цикл обработки прерывания, т. е. все действия выполняются так
же, как в /п 8080. Цикл обработки прерывания похож на цикл извлечения
команды за двумя исключениями. Сигнал / NTА устанавливается вместо RD-
(cм. рис. П2.10). Адресные шины не несут информации. Когда INTА установ-
17~
лен, логическая схема прерывания должна выдать для выполнения код опе
рации. Хотя будет выполнена любая команда, но обычно подается команда
CALL или RST. Это связано с тем, что обе эти команды вызывают засылку
содержимого программного счетчика микропроцессора в стек перед переходом
по новому адресу. Если это утверждение недостаточно ясно, то более подроб
ное изложение читатель может найти в параграфе 5.1. Для /п 8080 использо
валась команда RST (см. параграф 5.4), а для /п 8085- команда CALL.
После получения кода операции в состоянии Мl•ТЗ (рис. П2.5) микропро
цессор декодирует ее в следующем цикле Ml•T4 и определяет, что необходимы
еще два ба_йта. Далее /п 8085 выполняет два дополнительных машинных цик-
(32) 'iПJ
Рис. П2.13
11001101
А
в
А
ла, извлекая второй и третий байт. Как и в случае выборки кода операции,
байты 2 и 3 выдаются на шину данных, когда сигнал /NTA не равен О. В те
чение цикла обработки прерывания содержимое программного счетчика не уве•
личивается.
В течение машинных циклов М4 и М5 микропроцессор засылает старший
и младший байты содержимого программного счетчика в стек и помещает на
их место два байта, принятые в циклах М2 и МЗ. Благодаря этому происхо•
дит передача управления по адресу, указанному в команде CALL.
На рис. П2.13 показана простая схема для выдачи на шину данных коман
ды CALJ. в течение цикла прерывания, состоящая из счетчика импульсов (до
трех) и трех портов ввода/вывода. Вначале счетчик сбрасывается сигналом
RD~ В течение цикла обработки прерывания после получения сигнала /NTR
(запрос прерывания') импульсы RD подавляются. Вместо них генерируются
три импульса /NTA с теми же временными характеристиками. Эти импульсы
используются в качестве счетных в счетчике. Так как содержимое счетчика
увеличивается по спаду синхроимпульса, то условия выдачи трех байтов
команды CALL следующие:
•
АВ /NТА-выдача кода операции 11001101;
АВ INTA- выдача байта 2 (младшая половина адреса);
АВ INTА - выдача байта 3 (старшая половина адреса).
Счетчик сбрасывается следующим импульсом RD.
П2.5. СПИСОК ЛИТЕРАТУРЫ
1. MCS85 User's Manual (Pre!iminary), lntel Corporation. 1976, 1977.
СОДЕРЖАНИЕ
От редактора перевода
Предисловие автора
Введение .
.
.
.
.
.
Глава 1. Логическое проектирование
1.1 . Базовые определения
.
1.2 . Оптимальное проектирование
1.3 . Булева алгебра
.
.
1.4. Логические элементы.
1.5. Гонки
.
.
.
.
.
1.6. Неиспользуемые состояния
.
1.7. Уменьшение числа состояний
.
1.8 Последовательностные уравнения . . . . .
1.9. Асинхронные нетакгируемые последовательностные схемы
1.10. Синхронные тактируемые последовательностные схемы
1.11. Список литературы
.
Глава 2. Микропроцессоры
.
.
2.1 . Описание микропроцессора
2.2 . Состояние ожидания
.
2.3 . Сигналы микропроцессора
.
.
2.4 . Режимы работы микропроцессора
2.5 . Полупроводниковая память
2.6 Порты ввода/вывода .
.
2.7 . Адресные дешифраторы
.
2.8 . Интерфейсы
.
2.9 . Методика проектирования
.
2.10. Процедура проектирования [1]
2.11 . Список литературы
.
.
Глава 3. Системы ожидания/счета
3.1 . Базовые определения
.
3.2. Концепция ожидания/счета
3.3 Системы ожидания/счета . . .
3.4. Логическая схема ожидания/счета
3.5. Задачи и решения
3.6 . Список литературы
.
.
Глава 4. Системы проверки и пропуска
4.1 . Базовые определения
.
4.2 . Системы проверки и пропуска
4.3 . Растягивание синхроимпульса
4.4 . Задачи и решения
.
Глава 5. Системы прерываний
5.1 . Базовые определения
5.2 . Системы прерываний .
5.3 . Флажки и их сортировка
.
.
.
.
.
5.4 Система прерываний микропроцессора /п 8080 . .
5.5 . Чрезвычайные прерывания микропроцессора /п 8080
5.6 . Система прерываний микропроцессора Мс 6800 .
5.7. Экстренные прерывания микропроцессора Мс 6800
Стр.
3
5
6
•
11
11
12
12
18
20
21
21
22'
26
29
33
34
34
38
45
45
47
50
51
51
52
52
53
54
54
55
55
60
67
92
•92
92
93
•94
•
95
105
105
107
109
114
118
119
120
175
5.8. Задачи и решения
5.9 . Список литературы
Глава 6. Системы прямого доступа к памяти (ПДП)
6.1 . Базовые определения
6.2 . Система ПДП
6.3 . Интерфейс ПДП
.
.
6.4 . Двухпроводной интерфейс
6.5 . Логическая схема захвата цикла
6.6 . Задачи и решения
.
Глава 7. Системы прямой передачи данных
7.1 . Базовые определения
7.2 . Системы ППД
.
7.3 . Интерфейс ППД.
7.4 . Задачи и решения
7.5 . Список литературы
.
.
.
Приложение l. Устройства типа запрос/ответ
Пl.l. Устройство запрос/ответ . . .
П 1.2. Логическая схема, чувствительная к фронтам
Пl.3. Список литературы . . . .
Приложение 2. Микропроцессор lntel 8085
П2.l. Общие положения . .
П2.2. Системы ожидания/счета
П2.3. Системы проверки и пропуска
П2.4. Системы прерываний
П2.5. Список литературы
Д. зиссос
Проектирование систем на микропроцессорах
РедакторН.М.Корнильева
Оформление художника С. К. Дан ил ъ ч е н к о
ХудожественныередакторыЛ. А.Дикарев, В.С.Шапошников
Технический редактор С. В. И в ан у с
Корректор Н. Г. Петр и к
Информ. бланк No 2134
120
136
136
136
137
138
141
144
146
149
149
150
151
155
159
160
160
160
162
162
162
165
l7l
172
174
Сдано в набор 05.02 .81 . Подписано в печать 13.11.81 . Формат 60Х90 1 / 16 • Бумага типогр. No 1.
Гари. лит. Печ. вые. Усл. печ. л. 11.О. "Усл. кр.-отт. 11,0 . Уч.-изд. л. 11,55 . Тираж
10 ООО экз. Зак. 1-459. Цена I р. 10 к.
Издательство «Техника», 252601. К:иев, 1 , ГСП, К:рещатик, 5 .
Отпечатано с матриц К:иевской книжной фабрики на Харьковской книжной фабрик,
«Коммунист», 310012, Харьков-12, Энгельс а. 11.