WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     | 1 |   ...   | 3 | 4 || 6 | 7 |   ...   | 23 |

В качестве примера рассмотрим контроллер прямого доступа к памяти К580ВТ57 (рис. 1.14). Он имеет 4 независимых канала прямого доступа к памяти. В состав каждого из которых входит 16-разрядный регистр адреса, 14-разрядный счетчик длины блока данных и 2-разрядный регистр режима канала [1, 11]. В каждом канале формируется выходной сигнал запроса прямого доступа в память (ЗПДП; DRQ - Direct Request) и выходной сигнал подтверждения прямого доступа в память (ППДП; DACK – Direct Acknowledged).

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

Устройство управления контроллера прямого доступа к памяти и схема управления вводом-выводом в зависимости от комбинации управляющих сигналов переводят контроллер в одно из двух возможных состояний:

контроллер является ведомым на этапе инициализации, а также при считывании содержимого регистров по инициативе микропроцессора; ведущим – в режиме прямого доступа к памяти.

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

Буферное Канал ЗПДП устройство шины Регистр адреса данных Счетчик ППДП (DACK) Блок Р управления вводомвыводом Канал ЗПДП Регистр адреса Устройство Счетчик ППДП управления (DACK) и регистр режима Р прямого доступа в память Канал ЗПДП Регистр адреса Счетчик ППДП (DACK) Р Схема определения приоритетов Канал ЗПДП Регистр адреса Счетчик ППДП (DACK) Р Рис. 1.14 Структурная схема контроллера прямого доступа к памяти 1.3.5. Организация интерфейса с клавиатурой Основную часть клавиатуры (рис. 1.15) составляет матрица, имеющая четыре вертикальных и четыре горизонтальных шины. Каждая вертикальная шина соединена с каждой горизонтальной с помощью клавиш (сенсоров). Клавишей может быть обычная механическая клавиша, либо, например, транзистор, касаясь затвора которого можно перевести его в проводящее состояние.

"Окончание" "НачаГенератор ло" импульсов Блок запрета СТ СТ СТ СТ Рис. 1.15 Схема устройства организации интерфейса с клавиатурой Устройство (рис.1.15) переводящее буквы алфавита в набор логических нулей и единиц, т.е. на язык, воспринимаемый микропроцессором, содержит генератор импульсов с шестью выходами. Принцип действия такого генератора следующий. В определенный момент времени на выходе “Начало” генератора формируется импульс, который подается на входы “Сброс” четырех двоичных счетчиков СТ и переводит их в такое состояние, когда на трех выходах присутствует комбинация логических нулей 000. Далее на первом выходе генератора формируется один импульс, на втором - группа, состоящая из двух импульсов, на третьем – группа из трех и, наконец, на четвертом – группа из четырех импульсов. После завершения группы из четырех импульсов генератор импульсов вырабатывает сигнал “Окончание”.

Сигнал “Начало” можно рассматривать, как сигнал прерывания. Если нажата какая-либо из клавиш, то на вход соответствующего счетчика поступят один, два, три или четыре импульса, что приведет к появлению соответствующей комбинации логических нулей и единиц на его выходах.

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

Двенадцать выходов четырех счетчиков дают возможность получить в общем случае 4096 возможных различных комбинаций логических значений нулей и единиц при числе клавиш равном 16.

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

Любой управляющий сигнал так или иначе соотносится во времени с частотой следования тактовых импульсов. Частота следования может быть от нескольких сотен килогерц до гигагерц. Эта частота определяет быстродействие микропроцессорной системы. Как правило, тактовые генераторы синхронизируются с помощью кварцевых резонаторов, что позволяет использовать их при необходимости для точного измерения или задания интервалов времени прерываний и дисциплины обслуживания прерываний.

1.4 Система команд и языки программирования микропроцессоров 1.4.1 Система команд Изменение состояния микропроцессорной системы осуществляется c помощью микрокоманд (см.раздел 1.1), представляющих собой управляющие сигналы в виде комбинации логических значений нулей и единиц. В любой микропроцессорной системе возможное количество микрокоманд значительно меньше возможного числа состояний МПС. Различие между числом состояний и числом микрокоманд объясняется тем, что каждый управляющий сигнал в микрокоманде может определять состояния одновременно нескольких логических элементов.

В запоминающих устройствах микропроцессорной системы микрокоманды хранятся в сокращенной форме, которая является командой (см.

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

Для перехода с языка команд на язык микрокоманд используются, хранимые в ПЗУ словари, а так же программируемые логические матрицы (ПЛМ). Такие средства перехода могут входить в состав БИС микропроцессора или в состав отдельных БИС микропроцессорной системы. Так, микропроцессор КР580ВМ80А с фиксированным набором команд содержит в своем составе программируемые логические матицы. В микропроцессоре КР588ВС2 набор команд можно изменять, заменяя соответствующую БИС.

Рассмотрим в качестве примера систему команд микропроцессора КР580ВМ80А, т. е. микропроцессора с фиксированным набором команд, который в наибольшей степени отражает особенности микропроцессорной системы. Команды, так же как и микрокоманды, имеют свой фиксированный формат. В частности, команды рассматриваемого набора по формату подразделяются на три основные группы: однобайтные, двухбайтные и трехбайтные. Следовательно, в зависимости от формата, команда может содержать 8, 16 или 24 двоичных символов.

Ячейка запоминающего устройства имеет емкость 8 двоичных символов или один байт. Хранение трехбайтной команды требует использование трех ячеек ЗУ с тремя различными адресами. Очевидно, что адреса всех трех ячеек ЗУ должны быть взаимосвязаны и в простейшем случае представлять собой три последовательно расположенных целых числа. Для извлечения или записи трехбайтной команды требуются три последовательных цикла обращения к запоминающему устройству. Первый байт размещается в регистре команд, а два остальных – в регистрах W и Z (рис. 1.4).

а) Код операции (КО) б) Код операции Операнд: Dв) Код операции Адрес: ADR или операнд: DРис. 1.16. Форматы команд микропроцессора КР580ВМ80А Формат однобайтной команды показан на рис. 1.16,а. Однобайтная команда состоит из одного кода операции КО. Формат двухбайтной команды приведен на рис.1.16,б. Двухбайтная команда содержит код операции и 8-разрядный операнд, обозначенный на рисунке, как D8. Операндом называется слово, над которым непосредственно выполняется операция, предусмотренная кодом операции. Наконец, трехбайтная команда имеет формат, показанный на рис.1.16,в. Она состоит из двух частей, одна из которых является кодом операции (1 байт), а вторая может быть либо адресом (в этом случае она обозначается буквами ADR), либо 16-разрядным операндом D16.

Код операции, являясь 8-разрядным двоичным словом, может принимать 256 значений. Столько же различных команд входит в состав рассматриваемого микропроцессора. При описании наборов команд пользуются мнемоническими обозначениями или мнемоническими кодами. Мнемонический код представляет собой несколько букв алфавита, сочетание которых напоминает некоторое слово или фразу на русском, английском или другом языке. В микропроцессоре КР580ВМ80А принята мнемоника, основанная на английском языке.

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

• команды пересылок;

• арифметические и логические команды;

• команды ввода-вывода;

• команды управления;

• специальные команды.

Команды пересылок Они делятся на команды однобайтовых или двухбайтовых пересылок и команды обмена байтами. Типичным примером команды однобайтовой пересылки служит команда межрегистровой пересылки, мнемонический код которой имеет вид:

MOV R1, R: RRВ левой части (до двоеточия) записан мнемонический код команды, а в правой части записана ее реализация в символической форме. Буквы MOV взяты являются начальными буквами двух английских слов «Move register», что означает «Осуществить пересылку между двумя регистрами». Команда межрегистровой пересылки MOV R1, R представляет собой группу операций, отличающихся друг от друга конкретными регистрами, между которыми осуществляется пересылка. В частности, на место буквы R в мнемоническом коде подставляется имя конкретного регистра из которого осуществляется пересылка, а на место символов R1 ставится имя регистра в который осуществляется пересылка слова. Эта процедура символически изображается в виде:

R RЗнак "" обозначает помещение слова в ячейку запоминающего устройства (регистр), код которой указан у острия стрелки. Передаваемое слово извлекается из ячейки ЗУ (регистра), имя которой указано слева от стрелки.

Для указанной группы команд межрегистровых пересылок, использующей регистровую адресацию, однобайтовая команда имеет следующий вид:

01 DDD SSS.

Два старших разряда образуют код операции пересылки. Три разряда, обозначенные буквами DDD, соответствуют коду регистра в который передается информация (destination). Три разряда, обозначенные буквами SSS, соответствуют коду регистра из которого передается информация (source). Коды регистров определяются таблицей 1.2. В системе команд имеется 63 команды типа MOV, которые представлены в табл. 1.3.

Таблица 1.Десятичный код ИсточникРегистр регистра приемник SSS/DDD 0 000 B 1 001 C 2 010 D 3 011 E 4 100 H 5 101 L 6 110 M 7 111 A Таблица 1.Код 0000 0001 0010 0011 0100 0101 0110 MOV MOB В MOV MOV MOV MOV MOV MOV В,В,С B,D B,E B,H B,L B,M B,A MOV MOV MOV MOV MOV MOV MOV MOV D,B D,C D,D D,E D,H D,L D,M D,A MOV MOV MOV MOV MOV MOV MOV MOV H,B H,C H,D H,E H,H H,L H,M H,A MOV MOV MOV MOV MOV MOV MOV HLT M,B M,C M,D M,E M,H M,L M,A Код 1000 1001 1010 1011 1100 1101 1110 MOV MOB MOV MOV MOV MOV MOV MOV C,В C,С C,D C,E C,H C,L C,M C,A MOV MOV MOV MOV MOV MOV MOV MOV E,B E,C E,D E,E E,H E,L E,M E,A MOV MOV MOV MOV MOV MOV MOV MOV L,B L,C L,D L,E L,H L,L L,M L,A MOV MOV MOV MOV MOV MOV MOV MOV A,B A,C A,D A,E A,H A,L A,M A,A В табл. 1.3 в заголовке каждой строки даны комбинации из четырех старших двоичных символов кода операций, а в заголовке каждого столбца изображены комбинации из четырех младших двоичных символов кода операций. Например, первая строка таблицы имеет заголовок 0100, третий слева столбец - 0010. На пересечении первой строки и третьего столбца обозначено: MOV В, D. Следовательно, команда с кодом операции 0010 вызывает пересылку содержимого регистра D в регистр В регистров общего назначения микропроцессора. Восьмиразрядное двоичное слово из регистра D пересылается в регистр B и заменяет ранее находившееся там слово, причем содержимое регистра D сохраняется, что является важнейшим условием для всех пересылок.

Все перечисленные в табл. 6.2 комбинации символов содержат адреса.

Однако при пересылках слов из регистра в регистр имеются особенности.

Так, код операции 0100 0000 соответствует записи MOV В,В. В этом случае из регистра В извлекается слово и помещается в тот же регистр В в инверсной форме. В операции участвует один регистр общего назначения.

При этом предыдущее содержимое регистра уничтожается и вместо операции пересылки выполняется операция инверсии. В регистре В вместо кода 0100 0010 будет записан код 1011 1101.

Для кода операции 0100 0110 мнемонический код имеет вид: MOV В,М. Буквой М обозначается ячейка запоминающего устройства, адрес которой хранится в двух регистрах H и L. Код операции 0100 0110 требует выполнения следующей последовательности действий: извлечь содержимое двух регистров H и L, использовать его в качестве адреса ячейки ЗУ, содержимое которой поместить в регистр В микропроцессора. Содержимое ячейки ЗУ при этом остается неизменным.

Коду операции 0100 0111 соответствует мнемонический код MOV В,А.

Буквой А обозначен регистр-аккумулятор. По этой команде содержимое регистра-аккумулятора передается в регистр В и сохраняется в самом регистре-аккумуляторе.

В четвертой сверху строке табл. 1.3 обозначена комбинация 0111.

Первые шесть команд этой строки означают, что содержимое соответствующих регистров В, С, D, E, H или L передается в ячейку запоминающего устройства, адрес которой записан в двух регистрах H и L. Заметим, что имеется особенность команд с кодами 0111 0100 и 0111 0101. Каждая из них предусматривает, что в ячейку запоминающего устройства с некоторым адресом должна быть передана половина этого адреса. Команда с кодом операции 0111 0110 не относится к рассматриваемому классу. Это команда HLT, по которой прекращается выполнение операций.

Восемь команд последней строки в табл.1.3 предусматривают передачу в регистр-аккумулятор содержимого любого из регистров общего назначения или ячейки запоминающего устройства, адрес которой хранится в двух регистрах H и L. Эти же команды предусматривают передачу содержимого регистра-аккумулятора в тот же регистр, но после инверсии.

Каждый код операции указывает ту последовательность действий, которая должна быть выполнена в микропроцессорной системе.

Кроме рассмотренной группы команд имеются шесть семейств операций однобайтовых пересылок.

Операции MVI R, D: D8R. Наличие символа D8 означает, что команда имеет двухбайтовый формат. Смысл этого семейства операций заключается в том, что операнд D8, т. е. содержимое второго байта команды, передается в регистр, имя которого стоит на месте символа R. В этом семействе операций восемь команд. Они позволяют записать операнд в регистр - аккумулятор, в любой регистр общего назначения и в любую ячейку запоминающего устройства, адрес которой хранится в регистровой паре H и L. Мнемонический код MVI происходит от английских слов «Move immediate», что означает «переслать слово, входящее непосредственно в состав команды».

Семейство операций STAX YZ: AM(YZ). Символом YZ обозначается содержимое регистровой пары В и С или D и E. Ячейка запоминающего устройства с адресом, помещенным в скобки, обозначается символом М (YZ). Адрес этой ячейки запоминающего устройства содержится в регистровой паре, имя которой помещено на место символов YZ. По командам этого семейства операций содержимое регистра - аккумулятора передается в соответствующую ячейку запоминающего устройства. Эти команды, соответствующие двум возможным различным регистровым парам, имеют однобайтовый формат. Регистровая пара именуется именем первого регистра. Мнемонические коды команд будут иметь вид: STAX В, либо STAX D.

Семейство команд LDAX YZ: M(YZ)A. По командам этого семейства происходит косвенная загрузка регистра - аккумулятора по аналогии с командами семейства операций STAX YZ.

Семейство команд STA ADR: AM(ADR). Мнемонический код STA ADR происходит от английских слов. «Store accumulator direct», что означает "прямое размещение содержимого аккумулятора". Это семейство состоит из одной команды c трехбайтовым форматом, при выполнении которой содержимое регистра-аккумулятора передается в ячейку запоминающего устройства, адрес которой записан во втором и третьем байтах команды.

Команда LDA ADR: M(ADR)A. Эта команда по своему смыслу является обратной к предыдущей.

Команда SPHL: HLSP. По данной команде содержимое регистровой пары H и L передается в регистр - указатель стека, символическое обозначение SP которого образовано из начальных букв английских слов «Stack pointer», что и означает «указатель стека».

Pages:     | 1 |   ...   | 3 | 4 || 6 | 7 |   ...   | 23 |






















© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.