загрузка...
Знакомство с ЭВМ | Модули микро ЭВМ и особенности их работы
Микропроцессор — автомат по обработке данных
Чтобы легче было разобраться в работе микропроцессора, выполняющего роль программного автомата по обработке данных, рассмотрим торговый автомат. Опуская монету нужного достоинства во входное отверстие такого автомата, на его выходе можно получить стакан газированной воды, пачку сигарет или проездные билеты. Конструкция автомата бывает довольно сложной. Но тот, кто пользуется автоматом, может ничего о ней не знать, считая автомат черным ящиком и имея представление лишь о том, где находится вход для монеты и где расположен выход товара.
Упрощенная схема подобного автомата приведена на рис. 16. Здесь прямоугольником обозначен черный ящик торгового автомата. Слева от него стрелкой А указан вход монеты, а справа стрелкой Б — выход товара.
Более сложные автоматы, помимо входа А и выхода Б, имеют еще кнопки для выбора вида товара. Примером может служить автомат, отпускающий газированную воду. Три кнопки Bl , B2 и ВЗ на рис. 17 такого автомата позволяют получить газированную воду без сиропа, с лимонным или апельсиновым сиропом. Назовем эти кнопки программными и объясним, что при нажатии кнопки В 1 автомат срабатывает по программе, обеспечивающей выдачу газированной воды без сиропа; при нажатии кнопки В2 работа автомата происходит по другой программе, добавляющей в воду лимонный сироп, а нажатие кнопки ВЗ включает третью программу, в результате которой стакан наполняется водой с апельсиновым сиропом. Диалогично можно представить себе автомат, выдающий разные газеты или почтовые открытки при нажатии соответствующей программной кнопки.
Микропроцессор является таким же автоматом. Только, в отличие от торгового автомата, он не выдает товар, а производит обработку информации. По аналогии со схемой, изображенной на рис. 17, на рис. 18 приведена упрощенная схема микропроцессора. На этой схеме левая стрелка А изображает вход информации в виде цифровых данных, поступающих для обработки, а правая стрелка Б указывает, откуда выходят обработанные данные. Обработка выполняется по программе, подаваемой на вход В.
Предположим, что на вход А поступают цифровые данные в виде двух чисел 3 и 2, обведенных на рис. 18 прямоугольниками, а на программный вход В подается команда Сложить. Тогда на выходе Б появится число 5(3+2 = 5) Если бы на программный вход В была подана команда Вычесть, то на выходе Б появилось бы число 1 (3 — 2=1).
Таких элементарных понятий о микропроцессоре, подобно начальным сведениям о торговом автомате, было бы достаточно, чтобы с помощью простейшего устройства ввода данных подать на вход А исходные цифровые величины, на вход В — команду выполняемых действий и на выходе Б получить искомый результат. Однако, идя навстречу читателям, которые сами захотят собрать микроЭВМ, написать и отладить программу ее работы, приоткроем черный ящик микропроцессора и по реальной схеме опишем, из каких частей он состоит и как они взаимодействуют при обработке данных.
Прежде всего укажем, что любая информация (цифровые данные, буквенный текст, графическое или телевизионное изображение, различные виды механических действий, физиологических состояний и др.), подлежащая вводу в микропроцессор для обработки предварительно кодируется, то есть условно представляется в виде двоичных чисел, называемых цифровым двоичным кодом, а сами двоичные числа вводятся в микропроцессор путем подключения к его электрическим выводам электрического напряжения различного уровня (высокого или низкого), представляющего собой единицы (1) или нули (0) двоичного числа.
В табл. 2.11 приведен пример кодирования различных данных с помощью восьмиразрядного двоичного кода.
В зависимости от объема данных, подлежащего кодированию, применяют двоичные числа различной длины, имеющие два, три, четыре и больше разрядов.
Соответственно и микропроцессоры, служащие для обработки двоичного кода данных, выпускают четырех-, восьми-, шестнадцати- или тридцатидвухразрядными .
Рассмотрим устройство четырехразрядного микропроцессора. На рис. 19 приведена его схема. На этой схеме слева указаны четыре вывода (АО, A1, A2 и A3) для включения электрических уровней (1 или 0) вводимого цифрового двоичного кода данных. Справа изображены четыре вывода (Б 0 , Б1, Б2 и БЗ) для выдачи двоичного кода обработанных данных. Снизу находятся четыре вывода (ВО, B1, B2 и ВЗ) для подключения двоичного кода операции по обработке данных.
Теперь кратко ознакомимся с внутренним устройством микропроцессора. Как уже говорилось, микропроцессор состоит из десятков тысяч и даже миллионов электронных элементов, соединенных между собой и образующих сотни взаимосвязанных узлов, блоков и устройств, выполняющих различные функциональные действия.
Среди такого множества сложных частей все же удается выделить несколько главных, основных. К ним относятся: регистры, арифметическо-логическое устройство (сокращенно АЛУ) и устройство управления (УУ), изображенные на рис. 19. Регистр служит для временного хранения двоичного числа. Он состоит из триггеров, общее число которых соответствует количеству разрядов регистра. В рассматриваемом четырехразрядном микропроцессоре регистр содержит четыре триггера.
Разные типы микропроцессоров имеют в своем составе разное количество регистров (от 4 до 32). Чтобы отличить один регистр от другого, их обозначают латинскими буквами. На рис. 19 изображено четыре регистра А , В, С и D
Арифметическо-логическое устройство (АЛУ) осуществляет операции по арифметической и логической обработке данных, а именно выполняет действия сложения, вычитания, сравнения, сдвига, преобразования, увеличения или уменьшения числа на единицу и др.
Устройство управления (УУ) является самым сложным из всех устройств микропроцессора. Используя поток электрических сигналов, поступающих в виде единиц и нулей на входы данных (АО--A3), входы кода операции (ВО—ВЗ) и другие входы микропроцессора (не показанные на рис. 19), устройство управления вырабатывает серию последовательных управляющих электрических сигналов, передаваемых в нужные узлы, блоки и элементы микропроцессора для координации их работы, а также для согласования действий микропроцессора с внешними устройствами, например памятью. Все, что происходит в микропроцессоре, подчинено электрическим сигналам устройства управления. Образно УУ можно сравнить с дирижером большого оркестра, состоящего из сотен различных электронных узлов и тысячи логических элементов, входящих в состав микропроцессора. При этом партитурой музыкального произведения служит программа, заложенная в память.
Каждый тип микропроцессора имеет свой двоичный код операций, подаваемый на входы ВО—ВЗ для выполнения нужных действий. Список кодов этих операций называют системой команд.
Двоичный код некоторых операций, взятых из системы команд нашего четырехразрядного микропроцессора, приведен в табл 2.12В левой колонке таблицы описаны действия выполняемой операции, а в правых колонках указано, какие уровни напряжений (1 или 0) необходимо подавать на входы ВО, Bl , B2 и ВЗ, чтобы выполнить эти действия.
Рассмотрим сложение двух чисел (3 и 2) при помощи микропроцессора. На рис. 24—27 последовательно изображены все операции, которые он выполняет, складывая числа.
Поясним эти операции. На рис. 20 показано, как с помощью простейшего устройства ввода двоичных чисел, описанного в разделе 2.1 и состоящего из четырех переключателей (П 0 — П3), можно подать на выводы А0—A3 двоичный код десятичного числа 3.
Для этого нужно переключатели ПО и П 1 установить в верхнее положение, обеспечивающее выдачу 1, а переключатели П2 и ПЗ — в нижнее положение, при котором выдается 0. В этом случае на входы А0—A3 будет подано четырехразрядное двоичное число ООП, означающее десятичную тройку. Теперь нужно запомнить поданное число в каком-либо регистре микропроцессора, например в регистре А.
Для этого следует подать на входы В0—В3 с помощью таких же переключателей (рис. 21), согласно табл. 2.12, двоичный код 0001. Этот код поступит в устройство управления, расшифруется там (определится смысл операции) и преобразуется в сигналы, поступающие в регистр А в виде указания о необходимости подключиться к выводам А0—A3 и запомнить имеющиеся там логические уровни (1 и 0), а после запоминания отключиться от выводов А0—A3. Таким образом, в результате произведенных операций одно из слагаемых чисел (тройка) поступит в микропроцессор и запомнится в регистре А.
Аналогично (рис. 22), с помощью того же устройства ввода нужно набрать и ввести код второго слагаемого (двойки). Для этого переключатель П 1 следует установить в верхнее положение, а все остальные — в нижнее. Тогда на входе А 1 появится 1, означающая десятичную двойку. Если теперь на входы ВО—ВЗ (рис. 23) подать двоичный код 1000, означающий согласно табл. 2.12. операцию запоминания данных в регистре В , то двоичное число (0010), находящееся на выводах АО—A3, поступит в регистр В и запомнится там.
Для выполнения операции сложения чисел, расположенных в регистрах А и В (рис. 24), следует подать на выводы В0—В3 код 1100, взятый из табл. 2.12. При этом числа из регистров А и В переместятся в АЛУ и там произойдет их сложение, после чего устройство управления (УУ) подаст в АЛУ и в регистр А управляющие сигналы для пересылки результата сложения в регистр А. Таким образом, операция сложения будет состоять из трех действий или трех тактов: первый такт — пересылка данных из регистров А и В в АЛУ; второй — сложение данных в АЛУ и третий — пересылка результата сложения в регистр А. Некоторые, более сложные операции (не указанные в табл. 2.12), микропроцессор выполняет не за три, а за десять и более тактов своей работы.
Чтобы закончить решение поставленной задачи по сложению двух чисел, нужно еще подать на выводы ВО—ВЗ, согласно табл. 2.12, код 0110 для выполнения операции по пересылке данных из регистра А на выводы Б0—БЗ (рис. 26). Если на это время к выводам Б0—БЗ подключить светодиоды С0—С3, то по свечению светодиодов С 0 и С2 можно будет прочесть двоичную цифру 0101, обозначающую десятичную пятерку.
Все рассмотренные операции по сложению чисел микропроцессор выполняет не беспорядочно, а через строго определенные промежутки времени, повинуясь специальному электрическому сигналу (короткому импульсу)., поступающему в устройство управления из тактового генератора. Этот короткий сигнал, подобно стартовому выстрелу, подаваемому на соревнованиях бегунов, заставляет устройство управления начать ньмнишишс такта своей работы, заключающегося в создании определенного количества управляющих воздействий, которые зависят ОТ Кода операции. После исполнения этих воздействий работа микропроцессора приостанавливается и устройство управления переходит в состояние ожидания следующего тактового сигнала.
Частота тактовых сигналов, вырабатываемых тактовым-генератором , бывает довольно высокой. Она исчисляется сотнями тысяч и даже миллионами тактовых сигналов в секунду.
Учитывая, что единицей измерения частоты служит 1 Герц (один тактовый сигнал, выдаваемый за одну секунду), укажем, что частота тактового генератора современных микропроцессоров составляет сотни килогерц, и даже несколько мегагерц. Конструктивно тактовый генератор чаще всего выполняется отдельно от микропроцессора и размещается рядом так, как это показано на рис. 27. Однако встречаются микропроцессоры, у которых тактовый генератор входит в состав его внутренней схемы.
Мы коротко рассмотрели работу в некоторой степени иллюстративного четырехразрядного микропроцессора при сложении двух чисел. По своему действию такой микропроцессор близок к четырехразрядному микропроцессору типа К584ИК1, выпускавщому промышленностью.
Конечно, схема К584ИК1 выглядит более сложной — она содержит ряд дополнительных устройств, узлов и выводов, но принцип ввода и обработки данных у нее, примерно, такой же, как и у описанного выше микропроцессора.
Помимо микропроцессора типа К584ИК1, наша промышленность выпускает и другие типы, отличающиеся разрядностью, быстродействием, системой команд, технологией изготовления, конструктивными данными, стоимостью и др.
Каждый тип микропроцессора имеет свои достоинства и свои недостатки и применяется в тех или иных конкретных условиях, в зависимости от требований, предъявляемых к ним.
Структурная схема четырехразрядного микропроцессора типа К584ИК1 оказалась, например, очень удобной для начального знакомства с принципом ввода и вывода данных. Поэтому мы выбрали именно нот тип для иллюстрации рассказа об устройстве микропроцессор-1 нa базе таких микропроцессоров, соединяемых в группы ii.ip.1MH (для увеличения разрядности обрабатываемых чисел), строят микроЭВМ, решающие разнообразные задачи.
Существует также обилие разработанных и отлаженных программ для этого микропроцессора. Следует отметить, что он был выпущен в начале 70-х годов и по своим электрическим качествам во многом уступает современным микропроцессорам, но созданные за эти годы программы (игровые, расчетные, управляющие, служебные) можно с успехом использовать и сейчас, не теряя зря силы и время на их разработку. И наконец, очевидное превосходство заключается в популярности этого микропроцессора. Даже теперь некоторые заводы изготовляют микроЭВМ на его базе. Правда, теперь он выпускается под названием КР580ИК80А. Изменение приставки К на КР обусловлено иной конструкцией и технологией изготовления микропроцессора данной серии. По остальным показателям микропроцессор КР580ИК80А не отличается от микропроцессора К580ИК80.
Учитывая упомянутые преимущества КР580ИК80А, в дальнейшем будем изучать именно этот тип микропроцессора и примем его за основу для сборки микроЭВМ.
В связи с тем, что название микропроцессор типа КР580ИК80А будет часто повторяться в тексте нашего дальнейшего изложения, условимся называть его МП—К580.
Рассмотрим его отличия от уже знакомого нам четырехразрядного микропроцессора. МП—К580 является восьмиразрядным микропроцессором, служащим для ввода, обработки и вывода восьмиразрядных двоичных чисел. Три группы выводов четырехразрядного микропроцессора (группа А — для ввода данных, группа Б — для вывода и группа В — для ввода кода операции, согласно рис. 19) в МП—К580 объединены в одну общую группу, имеющую восемь выводов (DO—D7 на рис. 28) К этим выводам подключаются восемь проводов (линий), называемых шиной данных. По шине данных в течение какого-то короткого промежутка времени осуществляется ввод данных, т. е. действия, которые в четырехразрядном микропроцессоре выполнялись по проводам группы А. По этой же шине данных в течение другого промежутка времени передается код операции, который раньше пересылался по проводам группы В и наконец, в какой-то промежуток времени шина данных выполняет то, что прежде выполнялось проводами группы Б — вывод данных из микропроцессора во внешнее устройство.
Такая замена трех групп выводов одной группой приводит к уменьшению числа выводов микропроцессора (8 вместо 24) Отметим также, что при вводе данные следуют по шине в одном направлении, а при выводе — в другом.
Следующей отличительной особенностью MM K680 является наличие у него так называемых адресных ВЫВОДОВ, Прежде чем рассказать о них, укажем, что вводить в микропроцессор код операции с помощью переключателей (см. рис 20 и 22) можно лишь в условиях специально замедленного ритма работы микропроцессора, осуществляемого в учебных целях, При нормальной же работе микропроцессора код вводится и исполняется в течение нескольких микросекунд, поэтому вводить его в ручную невозможно. В этом случае высокое быстродействие микропроцессора достигается тем, что все коды операций, а часто и данных, заранее помещают в запоминающее устройство (память), а затем микропроцессор с нужной ему скоростью последовательно выбирает из ячеек памяти двоичный код одной операции за другой и сейчас же их исполняет.
Чтобы микропроцессор мог из той или иной ячейки памяти выбирать код операции или данных, все ячейки нумеруют и этот номер называют адресом ячейки памяти. Адрес, в отличие от номера, выражается не десятичным числом, а его двоичным эквивалентом в виде нулей и единиц, появляющихся на 16 адресных выводах АО—А15 (см. рис. 28). Таким образом, адресные выводы АО—А15 служат для размещения на них адреса той ячейки памяти, к которой желает обратиться микропроцессор. Адресные выводы АО—А15 с помощью адресной шины соединяются с адресными выводами устройства памяти.
МП—К580, как и четырехразрядный микропроцессор, состоит из регистров, арифметическо-логического устройства (АЛУ) н устройства управления (УУ). Его 10 регистров обозначены рис. 28 буквами А , В, С, D, Е, II, L, F, УС и СК, Регистры УС и СК шестнадцатиразрядные, а остальные восьмиразрядные.
Регистр А , изображенный на рис. 28 отдельно от группы регистров, называется аккумулятором. Он является основным рабочим регистром, участвующим во многих операциях. Например, при сложении двух чисел одно из них обязательно должно находиться в регистре А. Результат вычислений также автоматически размещается в регистре А. Работа регистра А неразрывно связана с АЛУ, поэтому на схеме его часто изображают вблизи или внутри АЛУ.
Регистры Л, И, С, I), Е, Н и L образуют группу так называемых регистров общего назначения (РОН). Характерной особенностью РОН является доступность каждого регистра для пользователя,
выражаемая в том, что с помощью определенной команды можно
поместить данные в любой регистр РОН или извлечь их из регистра, а также переслать из одно регистра в другой. В то время МП—К580 содержит ряд регистров (F и некоторые другие,
не указанные на рис. 28 вклейке), которыми распоряжается
только устройство управления, и пользователь не может по своему усмотрению с помощью команд примменить эти регистры для ввода и вывода данных.
Регистры РОН восьмиразрядные, но они допускают попарную работу и поэтому позволяют вводим, и запоминать шестнадцати разрядные числа, Принято такое попарное соединение регистров ВС, DE и HL.
Регистр СК называют счетчиком команд он содержит адрес очередной ячейки памяти, к которой обращается микропроцессор. Все триггерные выходы этого регистра подключены к выводам АО—А15. После выполнения каждой команды адрес в регистре СК автоматически увеличивается на единицу и поэтому двоичное число на выводах АО—А15 тоже увеличивается на единицу, что приводит к обращению к соседней ячейке памяти, где размещены код операции или данные следующей команды.
Регистр F называют регистром признаков, а регистр УС — указателем стека. Назначение и принцип действия этих регистров будут рассмотрены далее.
Устройство АЛ У и УУ выполняют в МП—К580 те же действия, что и в четырехразрядном микропроцессоре, а именно: АЛУ производит арифметическологические операции, а УУ — управляет работой АЛУ, внутренними регистрами и рядом дополнительных узлов и устройств, не показанных на рис. 28.
Генератор тактовых сигналов МП—К580 отличается от генератора четырехразрядного микропроцессора. Это отличие сводится к тому, что он вырабатывает два тактовых сигнала, подаваемые на два вывода Ф 1 и Ф2. Оба сигнала сдвинуты по времени один относительно другого, то есть когда действует один, бездействует второй, и наоборот. Такая система запускающих сигналов напоминает подачу сдвоенной команды, например: Направо, Кругом Аналогично и здесь, сперва подается часть команды в виде сигнала Ф1 , а потом, спустя некоторое время, вторая часть — сигнал Ф2. Формирование таких сдвоенных сигналов представляет известные трудности, что является недостатком МП—К580, с которым приходится мириться.
В заключение укажем, что МП—К580 имеет 10 управляющих выводов (ПМ, ВД, ГТ, ОЖ, ЗХ, ПЗХ, ЗПР, РПР, С и СВР), изображенных на рис. 28 снизу. К этим выводам подключается шина управления, по которой сигналы передаются из микропроцессора и в микропроцессор для согласования совместных действий с внешними устройствами, а также для изменения режимов их работы.
По управляющей шине пересылаются и другие сигналы управления, не указанные на рис. 28, так что общее количество проводов у этой шины может не совпадать с количеством управляющих выводов МП—К580.
Действия управляющих сигналов можно будет понять только тогда, когда мы изучим принцип работы МП—К580, а также узнаем основные правила составления программ. Поэтому сигналы управления будут рассматриваться нами постепенно, по мере ознакомления с микропроцессором, а сейчас мы лишь расшифруем название управляющих выводов МП—К580 и коротко поясним назначение сигналов, появляющихся на этих выводах.
Название вывода ПМ происходит от сокращения слова ПРИЕМ. На этот вывод микропроцессор выдает управляющий сигнал, указывающий на то, что он находится в режиме приема, и, следовательно, может принять ценные по шине данных из памяти или внешнего устройства
Вывод ВД означает сокращение слова ВЫДАЧА. Появление сигнала на этом выводе происходит в том случае, когда микропроцессор может выдать выдать данные по шине данных и память или внешнее устройство.
Обозначение вывода ГТ является сокращением слова ГОТОВ. На вывод ГТ микропроцессор должен получить сигнал от внешнего устройства, сообщающий о готовности обмена данными с микропроцессором. При отсутствии сигнала на выводе ГТ микропроцессор останавливает свою работу и переходит в режим ожидания.
Вывод ОЖ означает сокращение слова ОЖИДАНИЕ. На этом выводе появляется выходной сигнал микропроцессора, извещающий о том, что он находится в состоянии ожидания сигнала от внешних устройств о их готовности к обмену данными.
Наименование вывода ЗХ происходит от сокращения слов ЗАХВАТ ШИН. На вывод ЗХ поступает сигнал от внешних устройств о запросе разрешения на использование ими (захвата) шин адреса и данных, подключенных к микропроцессору. Этот захват бывает необходим для прямого доступа внешних устройств к памяти, минуя микропроцессор.
Вывод ПЗХ означает ПОДТВЕРЖДЕНИЕ ЗАХВАТА ШИН Н а этот вывод микропроцессор выдает сигнал, разрешающих
внешним устройствам использовать шипы данных и адреса, а сам отключается от этих шин. Обозначение вывода ЗПР является сокращением слов ЗАПРОС. ПРЕРЫВАНИЯ. На вывод ЗПР поступает сигнал от внешних устройств с требованием прерывания основной программы, выполняемой микропроцессором, и внеочередного обслуживания более важной и нужной программы внешнего устройства.
Значение букв вывода РПР относится к сокращению слов РАЗРЕШЕНИЕ ПРЕРЫВАНИЯ. На выводе РПР появляется сигнал микропроцессора, указывающий на то, что он прервал выполнение своей программы и готов выполнить внеочередную программу внешнего устройства,
Буква С на управляющем выводе означает слово СИНХРОНИЗАЦИЯ. Этот вывод микропроцессор и использует для выдачи сигнала о началенового цикла работы, о том, что он приступил к очередному этапу выполнения команды. Название вывода СБР означает сброс. На вывод СБР в микропроцессор поступает входной сигнал, сбрасывающий счетчик команд (СК) в начальное, нулевое состояние, в результате чего микропроцессор начинает свою работу с обращения к ячейке памяти с нулевым адресом.
На все перечисленные выводы управления микропроцессор выдает или получает от внешних устройств упрапления в виде высокого (1) или низкого (0) логического уровня.
Регистр СК называют счетчиком команд, он содержит адрес очередной ячейки памяти, к которой обращается микропроцессор. Все триггерные выходы этого регистра подключены к выводам АО—А15. После выполнения каждой команды адрес в регистре СК автоматически увеличивается на единицу и поэтому двоичное число на выводах АО—А15 тоже увеличивается на единицу, что приводит к обращению к соседней ячейке памяти, где размещены код операции или данные следующей команды.
Регистр F называют регистром признаков, а регистр УС — указателем стека. Назначение и принцип действия этих регистров будут рассмотрены далее.
Устройство АЛ У и УУ выполняют в МП—К.580 те же действия, что и в четырехразрядном микропроцессоре, а именно: АЛУ производит арифметическо-логические операции, а УУ — управляет работой АЛУ, внутренними регистрами и рядом дополнительных узлов и устройств, не показанных на рис. 28.
Генератор тактовых сигналов МП—К580 отличается от генератора четырехразрядного микропроцессора. Это отличие сводится к тому, что он вырабатывает два тактовых сигнала, подаваемые на два вывода Ф 1 и Ф2. Оба сигнала сдвинуты по времени один относительно другого, то есть когда действует один, бездействует второй, и наоборот. Такая система запускающих сигналов напоминает подачу сдвоенной команды, например: Направо, Кругом Аналогично и здесь, сперва подается часть команды в виде сигнала Ф 1 , а потом, спустя некоторое время, вторая часть — сигнал Ф2. Формирование таких сдвоенных сигналов представляет известные трудности, что является недостатком МП—К580, с которым приходится мириться.
В заключение укажем, что МП—К580 имеет 10 управляющих выводов (ПМ, ВД, ГТ, ОЖ, ЗХ, ПЗХ, ЗПР, РПР, С и СВР), изображенных на рис. 28 снизу. К этим выводам подключается шина управления, по которой сигналы передаются из микропроцессора и в микропроцессор для согласования совместных действий с внешними устройствами, а также для изменения режимов их работы.
По управляющей шине пересылаются и другие сигналы управления, не указанные на рис. 28, так что общее количество проводов у этой шины может не совпадать с количеством управляющих выводов МП—К580.
Действия управляющих сигналов можно будет понять только тогда, когда мы изучим принцип работы МП—К580, а также узнаем основные правила составления программ. Поэтому сигналы управления будут рассматриваться нами постепенно, по мере ознакомления с микропроцессором, а сейчас мы лишь расшифруем название управляющих выводов МП—К580 и коротко поясним назначение сигналов, появляющихся на этих выводах.
Название вывода ПМ происходит от сокращения слова ПРИЕМ. На этот вывод микропроцессор выдает управляющий сигнал, указывающий на то, что он находится в режиме приема, и, следовательно, может принять данные но шине данных из памяти или внешнего устройства.
Вывод ВД означает сокращение слова ВЫДАЧА. Появление сигнала на этом выводе ПРОИСХОДИТ В ТОМ случае, когда микропроцессор может выдать данные но шине данных в память или внешнее устройство.
Обозначение ВЫВОДА ГТ является сокращением слова ГОТОВ, На вывод ГТ микропроцессор должен получить сигнал от внешнего устройства, сообщающий 0 готовности обмена данными с микропроцессором. При отсутствии сигнала на выводе ГТ микропроцессор останавливает свою работу и переходит в режим ожидания.
Вывод ОЖ означает сокращение слова ОЖИДАНИЕ. На этом выводе появляется выходной сигнал микропроцессора, извещающий о том, что он находится в состоянии ожидания сигнала от внешних устройств о их готовности к обмену данными.
Наименование вывода ЗХ происходит от сокращения слов ЗАХВАТ ШИН. На вывод ЗХ поступает сигнал от внешних устройств о запросе разрешения на использование ими (захвата) шин адреса и данных, подключенных к микропроцессору. Этот захват бывает необходим для прямого доступа внешних устройств к памяти, минуя микропроцессор.
Вывод ПЗХ означает ПОДТВЕРЖДЕНИЕ ЗАХВАТА ШИН. На этот вывод микропроцессор выдает сигнал, разрешающий внешним устройствам использовать шины данных и адреса, а сам отключается от этих шин. Обозначение вывода ЗПР является сокращением слов ЗАПРОС ПРЕРЫВАНИЯ. На вывод ЗПР поступает сигнал от внешних устройств с требованием прерывания основной программы, выполняемой микропроцессором, и внеочередного обслуживания более важной и нужной программы внешнего устройства.
Значение букв вывода РПР относится к сокращению слов РАЗРЕШЕНИЕ ПРЕРЫВАНИЯ. На выводе РПР появляется сигнал микропроцессора, указывающий на то, что он прервал выполнение своей программы и готов выполнить внеочередную программу внешнего устройства.
Буква С на управляющем выводе означает слово СИНХРОНИЗАЦИЯ. Этот вывод микропроцессор использует для выдачи сигнала о начале нового ЦИКЛА работы, о том, что он приступил к очередному этапу выполнения КОМАНДЫ
Название вывода СВР означает СБРОС. На вывод СБР в микропроцессор поступает входной СИГНАЛ, сбрасывающий счетчик команд (СК.) в начальное, нулевое СОСТОЯНИ 0 , в результате чего микропроцессор начинает свою работу с обращения к ячейке памяти с пулевым адресом.
На все перечисленные выводы управлении микропроцессор выдает или получает от внешних устройств управляющие сигналы в виде высокого (1) или низкого (0) логического уроним
Прежде чем перейти к рассмотрению внутреннего устройстве и принципа работы МП—К580 напомним, что микропроцессор не может работать самостоятельно, без запоминающего устройства (памяти), так как программа его работы и данные располагаются в памяти. Поэтому перед изучением микропроцессора нужно ознакомиться с устройством памяти.
Память состоит из запоминающих ячеек. Обычно под словом ячейка подразумевают нечто одиночное: отдельное звено в сети, отдельную ячейку в сотах и др. Здесь же ячейка, служащая для хранения двоичного числа, состоит из нескольких отделений или элементов (рис. 29). Количество отделений равно разрядности запоминаемого числа. Ячейка памяти, используемая для работы с восьмиразрядным МП—К580, состоит из восьми отделений, в каждом из которых хранится один разряд (1 бит) двоичного числа (нуль или единица), а вся ячейка запоминает восемь разрядов двоичного числа или 1 байт (8 разрядов = 8 бит = 1 байт). В повседневной микропроцессорной практике под байтом понимают восемь разрядов (битов) двоичного числа. В то же время в литературе байт часто рассматривается как единица информации (данных) в 8 раз большая, чем наименьшая единица— би т. Еще более крупная единица, состоящая из нескольких байтов, называется словом. Слово кратно по длине байту, а иногда имеет длину в один байт.
Упрощенная схема памяти приведена на рис. 30. Справа показаны адресные выводы а0—а15 для подключения адресной шины, снизу изображены входные выводы Ь0—Ь7, а сверху — выходные выводы с0—с7 для подключения шины данных. Слева находятся управляющие выводы ЧТ (чтение) и ЗП (запись). При появлении на адресных выводах а0—а 15 двоичного адресного числа из всех ячеек памяти особое устройство, называемое дешифратором, выбирает одну ячейку, номер которой соответствует адресному числу.
Режим работы выбранной ячейки зависит от логических уровней (1 или 0), подаваемых на выводы ЧТ и ЗП. Обычно блок управления памяти устроен так, что режим чтения данных реализуется при подаче на вывод ЧТ уровня 1. В этом случае выходы выбранной ячейки подключаются к выводам с0—с7 и содержимое ячейки fio шине данных поступает в микропроцессор для чтения. Если же уровень 1 подать на вывод ЗП, то выполняется режим записи, при котором входы ячейки памяти подключаются к выводам Ь0—Ь7, куда по шине данных поступают данные из микропроцессора для записи.
Программу следует записывать по форме табл. 2.14. В первой колонке этой таблицы будем указывать порядковые номера байтов программы; во второй — двоичный код адресов ячеек памяти, в которых размещаются байты команд; в третьей — описания операций выполняемых команд; в четвертой — двоичные коды, представляющие собой восьмиразрядные двоичные числа каждого байта команды; в пятой дополнительные пояснения (комментарии) к каждому байту, помещенному в ячейку памяти.
Заполнение табл 2,14 начнем с записи в колонку 3 описания начальной (нулевой) команды: Поместить в регистр А десятичное число 3. Согласно табл. 2.13 эта команда двухбайтная. Первый байт содержат код операции, представленный двоичным числом 00111110. Помещаем по число в колонку 4. Вторым байтом является вводимое число (десятичная тройка). Переводим тройку в двоичную форму. Получаем 00000011. Записываем это двоичное число во второй строке колонки. Аналогично выполняем записи в колонках 3 и 4 для следующей команды, которая осуществляет размещение в регистре В десятичного числа два. Затем заполняем строки колонок 3 и 4 для команды сложения содержимого регистров А и В.
И наконец, выполняем последнюю запись, относящуюся к пересылке результата сложения в ячейку памяти 33. Эта команда трехбайтная; в первом байте располагается код (00110010) операций пересылки; во втором и в третьем байтах размещается адрес ячейки памяти 33. Преобразовываем номер ячейки 33 в двоичное адресное число. Десятичное число 33 соответствует двоичному числу 0000000000100001. Восемь младших разрядов этого числа (00100001) помещаем во 2-й байт команды, а восемь старших разрядов (00000000) — в 3-й байт.
Все команды программы написаны. Теперь для каждого байта команды нужно записать в колонке 2 адрес ячейки памяти, в которую он будет помещен. Начинаем с первого байта начальной команды. Размещаем этот байт в нулевой, начальной ячейке памяти, имеющей двоичный адресный код 0000000000000000. Записываем этот код в колонке 2. После него в следующей строке заносим код, на единицу больший 0000000000000001, принадлежащий соседней ячейке, куда будет помещен второй байт, и так поступаем вплоть до восьмой ячейки, имеющей код 0000000000000111, где будет размещен последний (восьмой) байт команды.
Составление программы закончено. Пользуясь программатором, эту программу можно ввести в память, а затем к памяти подключить МП—К580 для выполнения команд.
При работе микропроцессора совместно с памятью возникает проблема соединения шипы данных с памятью. В режиме записи, когда микропроцессор желает разместить в память какие-то данные, шину данных приходится подключать ко входам ячеек памяти, а при чтении, когда нужно получать данные,—к выходам. Причем переключение должно выполниться автоматически и с большой скоростью (сотни тысяч переключений в секунду). Решение этой проблемы осуществляется при помощи специального устройства, называемого шинным формирователем. Его схема приведена на рис. 32, а. Он имеет три группы восьмиразрядных выводов: К0—К7, Л0—Л7 и М0-М7. Снизу располагаются два управляющие вывода ВШ и ВМ. К выводам К0—К7 подключаются выходы ячеек памяти, к выводам Л0—Л7— входы ячеек памяти, а к выводам МО—М7 подключается шина данных.
Если на управляющий вывод ВШ подать низкий логический уровень (0), то выводы К0—К7 соединяются с выводами МО—М7 (рис. 32, б) и данные из ячеек памяти проходят через шинный формирователь в шину данных и по ней поступают в микропроцессор (реализуется режим чтения). Если же на вывод ВШ подать высокий логический уровень (1), то выводы М0—М7 соединяются с выводами Л0—Л7 (рис. 32, в) и данные из микропроцессора по шине данных проходят через шинный формирователь и поступают на входы ячеек памяти (реализуется режим записи). Проводники шинного формирователя под воздействием сигнала ВШ переключаются при помощи сложной комбинации логических схем И, ИЛИ, НЕ, находящихся внутри шинного формирователя и не указанных на рис. 32.
Шинный формирователь работает при условии, когда на управляющий вывод ВМ подается сигнал 0. Если же на ВМ подать 1, то выходы ЛО—Л7 и M0-M7 шинного формирователя переходят в так называемое высокоимпедансное состояние и шинный формирователь отключается от шины данных и выводов памяти. Поясним указанное состояние. Для этого вспомним работу переключателя устройства ввода данных. В нижнем положении ручки переключателя (рис. 33, а ) контакт А соединяется с верхним контактом Б и на выходе переключателя устанавливается низкий логический уровень (0). При переводе ручки в верхнее положение (рис. 33, б) контакт А соединяется с нижним контактом В и на выходе возникает высокий логический уровень (1). Если же ручку переключателя установить в среднее, нейтральное положение (рис. 33, в), при котором контакт А не соединяется с контактами Б и В, то на выходе не будет никакого электрического уровня (бесконечно большое сопротивление). Такое состояние и называют высокоимпедансным . В литературе его иногда называют третьим логическим состоянием, считая первым состоянием — наличие логической, единицы, вторым — наличие логического нуля.
Таким образом, при подаче на управляющий вывод ВМ (рис. 32, а) уровня логической единицы все выводы Л0—Л7 и М0—М7 шинного формирователя переходят в третье состояние и, следовательно, отключаются от шины данных и выводов памяти. Такой режим, как мы узнаем позже, часто используется для прямого доступа к памяти, когда нужно отключить микропроцессор от памяти и заняться программированием (вводом двоичных чисел в ячейки памяти при помощи программатора).
Несколько слов об изображении микропроцессорных схем. Характерной особенностью этих схем является наличие многопроводных шин данных, адреса и управления. Обилие проводов, из которых состоят шины, затрудняет процесс черчения и ухудшает восприятие схемы. Поэтому многопроводные шины (рис. 3) условились изображать в виде плоской полоски с фигурной стрел
кой на конце (рис. 4) или в виде толстой линии, пересеченной короткой черточкой, возле которой пишут цифру, указывающую количество проводов в данной шине (рис. 5).
Кроме того, ряд выводов (рис. 6) изображают в виде одного вывода (рис. 7) или одной точки (рис. 8), возле которых пишут обозначение (D0—D7), из которого можно понять, какое действительное количество (8) выводов соответствует этому единственному выводу или точке. Приведенные правила черчения выполняются, в основном, при изображении структурных (функциональных) схем, а на принципиальных схемах многопроводные соединения часто выполняют так, как показано на рис. 9 и 10. Если требуется показать соединение выводов микросхемы DD1 с выводами микросхем DD2 и DD3, то вместо вычерчивания всех проводников (рис. 9) их нумеруют и собирают в один общий жгут, изображаемый утолщенной линией (рис. 10). Замечая номер проводника, входящего в жгут, разыскивают аналогичный номер, выходящий из жгута и, таким образом, определяют, какие выводы микросхем соединяются друг с другом при помощи данного проводника. Напомним также, что во всех микропроцессорных схемах аналогично интегральным схемам не указывают выводы источников питания.
Для определения функциональных действий микросхем применяются условные обозначения, указанные в табл. 10 Приложения. Более подробно условные графические обозначения элементов цифровой техники приведены в [57].
Для наглядности на рисунках цветных вклеек нашей книги адресные шины и все элементы схемы, связанные с адресами, будут изображаться синим цветом, шина данных и все, что относится к хранению, пересылке и обработке данных — зеленым, а шина управления, управляющие элементы и провода, по которым проходят сигналы управления — красным.
Учитывая упомянутые правила черчения, рассмотрим схему соединения МП—К580 с памятью (рис. 34) и объясним принцип ее действия при выполнении команд программы
Затем МП—К580 выдает управляющий сигнал на свой вывод ПМ. Этот сигнал поступает на вывод ВШ шинного формирователя, в результате чего выводы К0—К7 соединяются с выводами М0—М7. Одновременно сигнал ПМ поступает на вывод ЧТ памяти и поэтому выходы нулевой ячейки памяти подключаются к выводам b0 —b7. Таким образом, первый байт начальной команды (число 001111Ю), находящийся в ячейке памяти № 0, поступает по шине данных в МП—К580. Получив этот код операции и узнав из него о необходимости размещения в регистре А двоичного числа второго байта, устройство управления МП—К580 увеличивает показания счетчика СК на единицу, благодаря чему на адресной шине появляется число 0000000000000001 и это приводит к вызову соседней ячейки памяти, содержащей число, которое нужно поместить в регистр А. В результате действия ряда дополнительных сигналов, посылаемых устройством управления, это число поступает в регистр А и запоминается там. Как только операция заканчивается, счетчик СК снова увеличивает свои показания на единицу, что изменяет адрес на единицу и приводит к вызову следующей ячейки памяти. Так последовательно, один байт за другим, вызываются и исполняются все байты команд программы, записанные в ячейках памяти.
Рассмотренная нами программа сложения двух чисел (см. табл. 2.14) не является единственно возможной. МП—К580 допускает исполнение и других вариантов программы сложения чисел, при которых данные можно не помещать предварительно в память, а непосредственно вводить в микропроцессор, путем подключения устройства ввода чисел к шине данных. МП—К580 разрешает подключение к шине данных 256 устройств ввода и 256 устройств вывода данных. В разделе 2.3 подробно рассмотрены различные типы устройств ввода—вывода. Для уяснения принципа совместной работы МП—К580 с устройствами ввода—вывода воспользуемся уже известными нам переключателями, выполняющими роль устройств ввода, и светодиодами, используемыми для вывода данных.
Если к линиям шины данных подключить одновременно несколько переключателей, принадлежащих разным устройствам ввода, то они будут мешать работе друг друга. Один переключатель на линию будет подавать низкий логический уровень, а втор й в это время — высокий, и микропроцессор не сможет определить, какой уровень подан. Кроме того, подключение переключателей будет влиять на передачу данных по шине данных из микропроцессора в память и обратно. Поэтому для независимого (управляемого) ввода данных каждое устройство ввода (в нашем случае — переключатели) подсоединяется к шине данных через специальное приспособление, которое получило название порт.
Схема порта ввода приведена на рис. 37. Порт имеет три группы выводов: К0—К7, Л0—Л7, М0—М7 и управляющий вывод ВШ. Двоичное число, которое нужно ввести в микропроцессор, набирается с помощью переключателей П и подается на выводы К0—К7. Эти выводы соединяются через выключатели а0—а7 с выводами М0—М7, куда подключается шина данных. В исходном состоянии все выключатели а0—а7 разомкнуты и поэтому данные с переключателей не могут поступить на выводы М0—М7. Включение а0—а7, а следовательно, и разрешение прохождения данных через порт производится при помощи управляющего сигнала ЧТВВ, подаваемого через вывод ВШ на логическую схему совпадения 2 И.
Каждый порт ввода и вывода имеет свой номер, позволяющий микропроцессору распознавать порты и включать их в работу в нужный момент времени. С этой целью порт содержит адресные выводы Л0—Л7, на которые микропроцессор посылает адрес в виде двоичного числа, соответствующего номеру порта. Адресное число пересылается по восьми младшим разрядам (А0—А7) адресной шины микропроцессора, а порт имеет дешифратор, который в ответ на двоичное число пришедшего адреса выдает разрешающий сигнал ВМ, поступающий на логическую схему 2И для включения аО —а7. Таким образом, данные через порт передаются при условии поступления адреса данного порта на его выводы Л0—Л7, в результате чего образуется управляющий сигнал ВМ, и прихода управляющего сигнала ЧТВВ на вывод ВШ.
Когда оба эти сигнала (ВЦ! и ВМ) в виде уровней логических единиц совпадают по времени на схеме 2И, то на выходе 2И появляется сигнал, включающий переключатели аО —а7.
Иногда дешифраторы, установленные в каждом порту, заменяются одним общим дешифратором для всех портов (см. рис. Щ, справа). В этом случае порт лишается адресных выводов. Эти выводы переносятся на дешифратор адреса, который преобразовывает двоичный адресный код в разрешающий сигнал, посылаемый в нужный порт.
Выключатели а0—а7 изображены на рис. 37 условно. В реальной схеме порта их роль выполняет набор логических элементов типа И , ИЛИ, НЕ.
Порт вывода (рис. 38) устроен так же, как и порт ввода, с той лишь разницей, что данные перемещаются в другом направлении — от выводов шины данных М0—М-7 к выводам К 0 — К7, куда подключены светодиоды С. Кроме того, на управляющий вывод ВШ порта подается сигнал ЗПВВ. В связи с тем, что микропроцессор выдает данные в порт в течение очень короткого промежутка времени, исчисляемого микросекундами, светодиоды С не успевают отобразить поступившие данные. Поэтому порты вывода снабжают восьмиразрядным запоминающим регистром (не указанным на рис. 38), который запоминает данные, а потом отображает их в течение нужного времени с помощью светодиодов С. Такой же регистр часто устанавливают и в портах ввода, если данные поступают в порт от кратковременно действующих источников данных.
На рис. 39 изображена более подробная схема соединения МП—К580 с памятью и устройствами ввода— вы вода данных. Левая часть схемы, состоящая из МП—К580, тактового генератора, кнопки Сброс, памяти, шинного формирователя, адресной шины и шины данных, соответствует ранее рассмотренной схеме (рис. 34). Исключение составляет лишь наличие блока Р , вырабатывающего серию управляющих сигналов, посылаемых по шине управления. На правой стороне рис. 39 изображены два порта ввода и два порта вывода. Эти порты лишены своих дешифраторов адреса и для вызова пользуются сигналами ВМ, поступающими из общего дешифратора адреса.
МП—К580 может выполнять четыре вида действий с данными: 1) чтение (получение) данных из памяти; 2) запись (размещение) данных в памяти; 3) чтение данных из устройства ввода; 4) запись данных в устройство вывода.
Исполнение этих действий осуществляется при помощи четырех управляющих сигналов: 1) ЧТЗУ, посылаемых в память при чтении данных; 2) ЗПЗУ, посылаемых в память при записи данных; 3) ЧТВВ, посылаемых в порт ввода при чтении данных; 4) ЗПВВ, посылаемых в порт вывода при записи данных.
Эти сигналы формируются при помощи сложной электронной схемы, использующей специальные кратковременно появляющиеся на шине данных логические уровни (называемые сигналами состояния), в начале выполнения микропроцессором каждого байта команды. Эти уровни (1 или 0) совместно с управляющими сигналами ПМ, ВД и С, выдаваемыми микропроцессором, поступают в электронный блок Р, состоящий из логических элементов И , ИЛИ, НЕ и регистра (не указанных на рис. 39), где и образуются сигналы: ЧТЗУ, ЗПЗУ, ЧТВВ и ЗПВВ. Указанные сигналы являются основными управляющими сигналами, позволяющими реализовать различные операции по пересылке данных.
Рассмотрим эти операции, пользуясь схемой рис. 39. Пусть требуется микропроцессору получить данные из ячейки памяти №. 1. Для этого микропроцессор выдает на адресную шину адресное число 0000000000000001. Это число одновременно поступает и в дешифратор памяти, разрешая работу ячейки № 1, и в дешифратор адресов портов, вызывая порт ввода № 1 и порт вывода № 1. Однако из этих трех вызванных источников данных к шине данных подключится, только один — ячейка памяти № 1, потому что микропроцессор пошлет ей дополнительный сигнал ЧТЗУ. Аналогично, если нужно получить данные из порта ввода № 1, то микропроцессор должен послать по шине управления в порт ввода № 1 сигнал ЧТВВ, в результате чего данные только этого порта поступят на шину данных, так как порт ввода № 1 получит два разрешающих сигнала: сигнал ВМ из дешифратора и сигнал ЧТВВ из шины управления. В случае записи данных в ячейку памяти № 1 нужно послать в память сигнал ЗПЗУ, а при записи в порт вывода № 1 —сигнал ЗПВВ.
Таким образом, комбинируя двоичным адресным кодом на адресной шине и сигналами ЧТЗУ, ЗПЗУ, ЧТВВ и ЗПВВ на шине управления, можно независимо друг от друга вводить и выводить данные из любой ячейки памяти и любого порта ввода и вывода.
Пользуясь схемой (рис. 39), составим вариант программы сложения двух чисел, отличающийся тем, что числа не нужно предварительно размещать в памяти, а можно непосредственно ввести в регистры микропроцессора при помощи устрой ств вв ода (переключателей), подключенных к портам ввода. С этой целью переключателями порта ввода № 0, изображенных на рис. 39 в виде устройства ввода, набираем первое слагаемое (число 3), а переключателями порта ввода № 1 — второе слагаемое (число 2). Программу будем составлять так же, как и прежде, пользуясь формой табл. 2.14 (с. 58) и выпиской из системы команд МП—К580, приведенной в табл. 2.13. (с. 56).
Приступая к составлению табл. 2.15, прежде всего заполняем ее колонки 3 и 4. В колонке 3 записываем начальную команду программы: Переслать в регистр А данные (десятичную тройку) из порта ввода, адрес которого указан во 2-м байте команды. Так как первое слагаемое (тройку) мы набрали переключателями порта ввода № 0, то в первой строке колонки 4 записываем код операции этой команды, взятый из табл. 2.13, а во второй строке — адрес порта ввода № 0, выраженный в двоичной форме (00000000).
Ранее упоминалось, ч/го ввод и вывод данных из портов МП— К5 80 осуществляет только через аккумулятор (регистр А). Поэтому нужно освободить регистр А от размещенного там числа (три), чтобы можно было переслать в регистр А второе слагаемое — двойку. Для этого пересылаем тройку из регистра А в регистр В. Пересылку выполняем при помощи однобайтной команды, имеющей код 01000111. Этот код записываем в колонке 4. Затем вводим второе число (двойку), набранное переключателями порта ввода № 1, в освободившийся регистр А. В колонке 3 записываем словесное название команды, а в колонке 4 — двоичные коды двух байтов этой команды. Код операции (ПОПОИ) будет прежним, а адрес изменится (00000001). Он будет соответствовать порту ввода № 1. После выполнения написанных команд числа 3 и 2 будут размещены в регистрах В и А. Теперь их нужно сложить. Для этого воспользуемся той же командой, что и в первом, варианте программы (см. табл. 2.14). Результат сложения МП—K580 автоматически размещается в регистре А. Выведем этот результат в порт вывода № 0, пользуясь командой (см. табл. 2.13): Переслать в порт, адрес которого указан во 2-м байте команды, данные из регистра А . Код этой операции 11010011, а двоичный адрес порта вывода — 00000000.
Все команды программы написаны. После этого в колонку 2 необходимо занести адреса всех ячеек памяти для размещения байтов команд, начиная с нулевого адреса, подобно тому, как это делалось при заполнении табл. 2.14. После написания этих адресов ячеек памяти, а также комментариев к каждому байту команды
программа будет составленной. Ее можно ввести в память, а затем включить МП—К580 и он выполнит эту программу, в результате чего на светодиодах, подключенных к порту вывода № 0 (светодиоды на рис. 39 изображены в виде устройства вывода), появится двоичное число 00000101, обозначающее десятичную пятерку (результат сложения тройки и двойки).
|