Текст
                    Киев "Твхи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.