ISBN 978-985-6866-42-8 (ч. 4)

ЦИФРОВЫЕ И МИКРОПРОЦЕССОРНЫЕ УСТРОЙСТВА

Конспект лекций

для студентов специальностей

2-45 01 33 – Сети телекоммуникаций

2-45 01 32 – Системы радиосвязи, радиовещания и телевидения

В 5 частях

Часть 4

Основы микропроцессорной техники

Минск

УДК 81.332

ББК 32.97

Ц75

Рекомендовано к изданию

кафедрой информатики и вычислительной техники

15 января 2008 г., протокол № 4

Составитель

В. И. Богородов, преподаватель высшей категории

кафедры информатики и вычислительной техники

Рецензент

Е. В. Новиков, зав. кафедрой информатики и вычислительной техники,

доцент, канд. техн. наук

  Ц75 Цифровыеи микропроцессорные устройства: конспект лекций для студентов специальностей 2-45 01 33 – Сети телекоммуникаций, 2-45 01 32 – Системы радиосвязи, радиовещания и телевидения. В 5 ч. Ч. 5: Принципы организации однокристальных микроконтроллеров. Организация памяти микропроцессорных систем / сост. В. И. Богородов. – Минск: ВГКС, 2008. – 62 с. ISBN 978-985-6866-42-8. Рассматриваются общие принципы построения микропроцессоров и микропроцессорных систем, основные технические данные и структура однокристального микропроцессора К1821ВМ85А. Описываются система прерываний, последовательный ввод-вывод данных, система команд и программирование микропроцессора К1821ВМ85А. Провидятся назначение, схемотехническая реализация, принцип работы простых интерфейсных схем и их программирование, примеры современных интерфейсных микросхем отечественного производства схемотехники КМОП. Предназначено для студентов и преподавателей колледжа. УДК 81.332 ББК 32.97

ISBN 978-985-6866-42-8 (ч. 4)

978-985-6866-43-5 © ВГКС,2008


ВВЕДЕНИЕ

В четвертой части конспекта лекций рассматриваются основные определения и классификация микропроцессоров, структурные схемы микропроцессоров с «жесткой» и программируемой логикой управления, типовая структурная схема микропроцессорной системы с мультиплексируемой шиной адресов и данных на основе микропроцессора К1821ВМ85А. Описываются структура микропроцессора К1821ВМ85А, назначение узлов и их взаимодействие в процессе считывания и исполнения команд, система прерываний, последовательный ввод-вывод данных, система команд и приемы программирования. Рассматриваются назначение, схемотехническая реализация, принципы работы простых интерфейсных схем и их программирование. Приводятся примеры современных интерфейсных микросхем отечественного производства схемотехники КМОП.

ОБЩИЕ СВЕДЕНИЯ О МИКРОПРОЦЕССОРАХ

Общие сведения о микропроцессорах, основные определения и классификация

Микропроцессором (МП) называют программно-управляемое устройство, осуществляющее процесс обработки цифровой информации и управления им, реализованное в виде одной или нескольких интегральных схем.

Микропроцессорная БИС – интегральная схема с большой степенью интеграции, выполняющая функцию микропроцессора или его части.

Микропроцессорный комплект (МПК) – совокупность микропроцессорных и других интегральных схем, совместимых по архитектуре, конструктивному исполнению и электрическим параметрам, обеспечивающих возможность их совместного применения в составе микропроцессорного вычислительного или управляющего устройства.

Кристалл БИС – часть полупроводниковой пластины, в объеме и на поверхности которой сформированы базовые элементы микропроцессора, межэлементные соединения и контактные площадки.

Аналоговая микросхема – микросхема, предназначенная для преобразования и обработки сигналов, изменяющихся по закону непрерывной функции.

Цифровая микросхема – микросхема, предназначенная для преобразования и обработки сигналов, изменяющихся по закону дискретной функции.

МП является центральным процессорным элементом микропроцессорных систем (МПС) или микроЭВМ.

МПС – совокупность БИС МПК, объединенных в единую структуру и имеющая совместную программу работы.

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

Система команд – полный набор всех команд, выполняемых МП.

Вычислительные, контрольно-измерительные и управляющие системы, обрабатывающим элементом которых служит МП, относятся к числу МПС.

Первый МП появился в 1971 году. Это 4-разрядный МП i4004, который стал применяться в микрокалькуляторах. В 1972 году появился 8-разрядный МП i8008, а в 1974 году его улучшенный аналог i8080. Он нашел применение в первых встроенных ЭВМ для управления производственными процессами.

Развитие МП шло по разным направлениям, важнейшее из которых - увеличение разрядности. В этой области в сжатые сроки были достигнуты существенные результаты. Так в 1980 году фирма Motorola выпустила 32-разрядный МП MC68000, а затем Intel и др. Первый 64-разрядный МП i80860 был создан фирмой Intel в 1989 году и т. д. Подавляющее большинство производимых МП являются однокристальными.

Все многообразие МП БИС можно классифицировать по следующим признакам (рисунок 1):

- по технологии изготовления и схемотехнической элементной базе;

- по разрядности обрабатываемых данных;

- по типу архитектуры;

- по виду временной организации работы БИС;

- по функциональному назначению;

- по виду обрабатываемой информации;

- по области применения;

- по числу одновременно выполняемых программ.

По технологии изготовления и связанной с ней схемотехнической элементной базе различают МП БИС на основе схемотехники типа МОП, биполярной и комбинированной биполярно-полевой (Би-КМОП). Первые поколения МП БИС были реализованы на основе p - (p -МОП) и n -канальных (n -МОП) транзисторов, современные поколения проектируются на основе усовершенствованной КМОП-схемотехники и технологии. Микропроцессорные БИС на основе комбинированной биполярно-полевой (Би-КМОП) технологии обладают наилучшим сочетанием характеристик, обеспечивая высокие быстродействие и нагрузочную способность при сравнительно небольшой, присущей КМОП БИС, мощности потребления. Наибольшее распространение получили МП БИС типа КМОП и Би-КМОП.

По разрядности обрабатываемых данных различают 2-, 4-, 8-, 16-, 32-, 64-разрядные МП БИС и более. При этом обычно имеется в виду максимальная разрядность обрабатываемого информационного слова (операнда), например, 16-разрядный МП может обрабатывать 8-разрядные слова.

По типу архитектуры различают расширяемые (или секционные) и нерасширяемые (или закрытые) микропроцессоры. Расширяемые позволяют увеличивать разрядность обрабатываемых данных (операндов) путем параллельного объединения необходимого числа МП БИС. Так, для обработки 32-разрядного слова можно использовать два 16-разрядных или четыре 8-разрядных секционных МП. Естественно, в структуру таких МП БИС вводятся специальные входы, определяющие позицию секционного МП в микропроцессорной системе – младшая, средняя или старшая. В понятие типа архитектуры также включается тип шинной организации: с раздельными, с совмещенными, с двунаправленными шинами.


Рисунок 1 – Классификация МП БИС

Кроме возможности расширения разрядности схемные решения МП БИС позволяют организовать конвейерные архитектуры, когда обработка потока информации выполняется параллельно.

В зависимости от используемой системы команд различают два типа архитектур: МП CISC -архитектуры (CISC-Complex Instruction Set Computer), выполняющие полный набор команд и МП с RISC -архитектурой (RISC-Reduced Instruction Set Computer), выполняющие не все стандартные, а только наиболее часто используемые в вычислительных и управляющих системах типы команд. Это позволяет существенно сократить аппаратурные затраты, необходимые для реализации таких БИС, а главное, увеличить производительность работы МП БИС.

По виду временной организации работы МП БИС и их комплекты подразделяются на синхронные и асинхронные. Если в синхронных МП БИС время выполнения команд (тактовая частота работы БИС) остается постоянным и независимым от типа команд и величин операндов, то в асинхронных МП БИС начало выполнения каждой следующей команды определяется по сигналу фактического окончания выполнения предыдущей. Синхронные МП БИС отличаются сравнительной простотой организации внутреннего управления, хотя и обеспечивают более низкую по сравнению с асинхронными БИС производительность.

По функциональному назначению различают следующие типы МП БИС: БИС процессорных элементов (ПЭ), БИС микропрограммного управления (МПУ), интерфейсные БИС. Процессорные элементы фактически представляют собой операционное устройство любой микропроцессорной системы, которое выполняет полный набор операций. БИС МПУ, входящие в состав большинства микропроцессорных комплектов, предназначены для формирования последовательности адресов внешней памяти команд (микрокоманд) на основании кодов обрабатываемых команд, значений вырабатываемых процессорным элементом сигналов, сигналов внешних устройств, запросов прерываний и т. д. Интерфейсные МП БИС предназначены для организации связи БИС ПЭ и МПУ с внешними устройствами и друг с другом в составе любой микропроцессорной системы. Здесь, в свою очередь, различают такие их типы, как магистральные приемопередатчики (МПП), магистральные коммутаторы (МК), программируемые системные контроллеры (ПСК), программируемые каналы ввода-вывода (ПКВВ), многоцелевые буферные регистры, контроллеры прямого доступа к памяти (КПДП) и др.

По виду обрабатываемой информации МП БИС могут быть разделены на цифровые, аналоговые и комбинированные (цифро-аналоговые и аналого-цифровые). В цифровых МП БИС прием, обработка и выдача результата осуществляется в цифровой форме. В аналоговых МП БИС информация поступает на входы в аналоговой форме, затем преобразуется в цифровую с помощью встроенных средств и в таком виде обрабатывается МП. Результаты обработки снова преобразуются в аналоговую форму и поступают на выход БИС.

По области применения различают два больших класса МП БИС - специализированные и универсальные. Специализированные МП БИС предназначены для реализации лишь определенных классов микропроцессорных систем и устройств – цифровой обработки сигналов (ЦОС), систем решения задач радиолокации, гидродинамики, кинофототехники, медицинской электроники, автомобильной электроники и т. д. Универсальные МП БИС могут быть использованы в различных системах вычислительной техники и автоматики. Основное достоинство специализированных МП БИС – их высокая производительность на конкретных задачах.

По числу одновременно выполняемых программ МП БИС разделяются на одно- и многопрограммные. В однопрограммных МП БИС в один момент времени выполняется одна программа, переход к исполнению следующей программы (последовательности команд) происходит только после завершения предыдущей. В мультипрограммных МП БИС могут одновременно выполняться несколько программ.

Различают три группы параметров МП БИС: функциональные, электрические и динамические.

Основным функциональным параметром МП БИС является функциональная мощность К, измеряемая количеством операций, выполняемых в единицу времени (например, MIPS – миллион инструкций в секунду). В зависимости от типа операций различают несколько значений функциональной мощности, например: в формате операций регистр-регистр KRR, в формате операций регистр-память KRM и др.

Из других функциональных параметров используют разрядность слова адреса, разрядность слова данных, разрядность слова команды, число команд (микрокоманд), реализуемое МП БИС.

Электрические параметры МП БИС имеют размерность напряжения, тока и мощности и определяют основные технические характеристики микропроцессорных систем (см. параметры интегральных ЛЭ).

Динамические параметры МП БИС определяются по временной диаграмме (ВД), которая определяет развернутую во времени последовательность подачи на МП БИС управляющих воздействий, информационных, синхронизирующих и вспомогательных сигналов, а также последовательность считывания из БИС результатов обработки. На ВД приводится вид этих сигналов, указывают допустимые временные соотношения между ними, допустимые длительности и т. д.

Общая структурная схема микропроцессора

Как и любое сложное цифровое устройство, МП может быть представлен соединением двух устройств – операционного и управляющего. Исходя из этого, общая структурная схема МП имеет вид, представленный на рисунке 2.

Рисунок 2 – Общая структурная схема микропроцессора


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

УУ координирует работу узлов ОУ, формируя управляющие сигналы Y1, Y2, …, Yn в определенной временной последовательности. УУ обеспечивает в определенных узлах ОУ требуемые для выполнения операции действия.

Любая операция, выполняемая в узлах ОУ, делится на последовательность элементарных действий, называемых микрооперациями. К микрооперациям относятся:

- установка регистра в некоторое состояние;

- пересылка содержимого одного регистра в другой;

- суммирование содержимого двух регистров;

- инвертирование содержимого регистра и т. д.

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

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

Набор управляющих сигналов, обеспечивающих выполнение одной или нескольких микроопераций в одном и том же тактовом периоде, называется микрокомандой (МК), следовательно, управляющие сигналы являются микрокомандами. Последовательность МК, обеспечивающая выполнение одной операции, называется микропрограммой.

Иногда последовательность действий при выполнении операций зависит от состояния узлов ОУ или, иначе, от некоторых признаков, связанных с результатами микроопераций. Такие признаки X1, X2, …, Xp выдаются из ОУ и поступают в УУ. Некоторые признаки Xp + 1, …, Xs могут поступать извне, определяя порядок работы МП. Формируя управляющие сигналы УУ обязано в соответствующие тактовые периоды ориентироваться на признаки. В ОУ поступают данные и выдаются данные.

Два подхода в построении УУ микропроцессора

При проектировании УУ МП используются два принципа:

- принцип схемной или «жесткой» логики;

- принцип программируемой логики.

При построении УУ МП по принципу схемной логики можно подобрать набор микросхем малой и средней степени интеграции. Затем определяется схема соединения выводов микросхем, обеспечивающая генерацию требуемой последовательности МК.

Достоинством принципа схемной логики является возможность достижения максимального быстродействия при заданной технологии элементной базы.

Недостатки принципа схемной логики:

- всякое изменение последовательности МК требует демонтажа старого УУ и монтажа нового, т.е. принцип схемной логики не обеспечивает гибкости применения;

- экономически не выгодно использовать последние достижения микроэлектроники – БИС и СБИС, так как разработка специализированных БИС обходится дорого.

При использовании принципа программируемой логики в УУ используется память, хранящая микропрограммы, т.е. последовательности МК.

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

Структурная схема МП со схемной логикой управления

Структурная схема МП со схемной логикой управления представлена на рисунке 3.

Рисунок 3 – Структурная схема МП со схемной логикой управления


УУ содержит k устройств управления операциями (логических схем). Для выбора одной из них дешифратор декодирует операционное поле команды, поступающей из основной памяти (ОП). В зависимости от кода операции, указанного в команде, выбирается УУ операцией, которое выдает на входы ОУ нужную последовательность управляющих сигналов.

Принцип микропрограммного управления. Структурная схема МП на основе программируемой логики управления

В каждом тактовом периоде из УУ выдается на ОУ некоторая кодовая комбинация управляющих сигналов. Если число управляющих сигналов n, то кодовая комбинация n-разрядная и каждый разряд показывает присутствует ли управляющий сигнал в соответствующей управляющей цепи, например, 0010…1. Такие кодовые комбинации можно хранить в так называемой управляющей памяти (УП) или микропроцессорной памяти (МПП) и тогда МП имеет структуру, представленную на рисунке 4.

Рисунок 4 – Структурная схема МП с программируемой логикой управления

Микропрограммы различных операций хранятся в УП. Для выполнения каждой МК необходимо задать ее адрес и прочитать из УП.

Считанная из УП общая МК может быть разбита на две МК. МК ОУ определяет функционирование узлов ОУ в данном тактовом периоде. МК БМУ содержит поле адреса и поле условных переходов и задает способ формирования адреса очередной МК.

Если микропрограмма является линейной последовательностью МК, то задавать адрес каждой следующей МК можно счетчиком, предварительно загрузив в него начальный адрес микропрограммы. Однако линейные микропрограммы встречаются редко. Чаще они представляют собой последовательности с ветвлениями и с циклами. В таком случае адрес следующей МК должен определяться специальным образом. Для этой цели служит БМУ. Исходными данными для определения адреса следующей МК обычно служит адрес текущей МК, специальные поля текущей МК (МК БМУ), а также совокупность признаков (условий), поступающих от ОУ и из внешних устройств.

Рассмотрим структурную схему УУ МП с программируемой логикой управления (рисунок 5).

Рисунок 5 – Структурная схема УУ МП с программируемой логикой управления

В ячейках ПЗУ МК одной микропрограммы с номерами, отличающимися на единицу, имеют адреса, также отличающиеся на единицу. Поэтому при последовательной выборке МК удобно использовать суммирующий счетчик СТ (рисунок 5). Исходное состояние счетчика устанавливается внешним сигналом F (код операции текущей команды) при обращении к очередной микропрограмме и соответствует адресу первой МК этой микропрограммы.

Если МК не содержит микроопераций «условный переход» и «безусловный переход», то управляющий сигнал из схемы определения адреса МК увеличивает код на выходах счетчика на единицу – происходит выборка МК из соседней ячейки ПЗУ.

Если очередная МК содержит микрооперацию «безусловный переход», то адрес следующей МК из схемы определения адреса МК параллельно переписывается в счетчик (адресом является содержимое поля адреса текущей МК).

Если очередная МК содержит микрооперацию «условный переход», то адрес следующей МК определяется в зависимости от значения признаков X1, X2, …, Xm, поступающих из ОУ МП, и также параллельно переписывается в счетчик. При этом младший разряд поля адреса текущей МК замещается значением признака, т. е. происходит модификация (изменение) адреса следующей МК. В этом случае очередная МК считывается с одной из двух соседних ячеек управляющей памяти, адреса которых отличаются значениями только младших разрядов, например:

 
 

Код с выходов счетчика преобразуется дешифратором DC в сигнал, под действием которого из ПЗУ считывается нужная МК. Эта МК запоминается в регистре RG МК и поступает на выход УУ МП в виде управляющих сигналов Y1, Y2, …, Yn.

Временная диаграмма работы МП с программируемой логикой представлена на рисунке 6.

Рисунок 6 – Временная диаграмма работы МП


В момент t1 (рисунок 6) БМУ выдает в управляющую память адрес очередной МК. Через некоторое время (от десятков до сотен наносекунд) завершается процесс чтения МК в управляющей памяти и в момент t2 на выходах памяти появится требуемая МК. С момента t2 в ОУ начинается выполнение предусмотренной в МК микрооперации и завершится к моменту t3.

До окончания выполнения микрооперации БМУ не может формировать адрес следующей МК, поскольку это зависит от признаков, т. е. от результатов микрооперации. Поэтому БМУ формирует адрес следующей МК от момента t3 до t4.

В данном построении МП его блоки функционируют не одновременно, а последовательно во времени и длительность тактового периода T должна быть не меньше суммы времен, необходимых для выполнения действий в блоках. Для повышения быстродействия МП используется конвейерный способ считывания и исполнения МК.

Типовая структурная схема МПС с мультиплексируемой шиной адресов и данных

Практически всегда структура МПС является магистрально-модульной. В такой структуре имеется группа магистралей (шин), к которым подключаются различные модули (блоки), обменивающиеся между собой информацией поочередно, в режиме разделения времени.

Термин «шины» относится к совокупности цепей (линий) по которым передается однотипная информация. Число цепей определяет разрядность шины.

Типична трехшинная структура МПС с шинами адресов ША, данных ШД и управления ШУ. Наряду с русскими терминами применяются английские AB (Address Bus), DB (Data Bus) и CB (Control Bus).

На рисунке 7 показана структура микропроцессорной системы с МП, имеющим мультиплексируемую шину адресов/данных (например, с МП К1821ВМ85А). Линии A15–8 являются адресными, через них в систему передается старший байт 16-разрядного адреса. В эту шину включен формирователь на постоянно открытом по входу разрешения EN буферном регистре ИР82, обеспечивающем работу шины на нагрузку, образуемую внешними цепями. Собственной нагрузочной способности у выводов МП, как правило, не хватает. Линии AD7–0 мультиплексируются. Вначале они передают младший байт адреса, признаком чего служит наличие сигнала ALE (Address Latch Enable), загружающего этот байт в регистр ИР82.


Рисунок 7 – Структура микропроцессорной системы

После загрузки регистра сигнал ALE снимается, и содержимое регистра остается неизменным вплоть до новой загрузки в следующем цикле работы процессора. Так формируется 16-разрядная шина адреса, содержащая адрес A15–0. Этот адрес используется блоками постоянной и оперативной памяти ROM и RAM. Адресация портов ввода и вывода данных требует восьмиразрядного адреса, что соответствует возможности работы не более чем с 256 портами каждого из типов. Адрес портов можно снимать с любой половины адресной шины (во взятом для примера МП состояния обоих полушин адреса при адресации портов дублируются).

После передачи младшего байта адреса шина AD7–0 отдается для передачи данных. Эти передачи двунаправлены, направление задается буфером данных BD в зависимости от сигнала T (Transmit). При активном состоянии сигнала чтения () данные передаются справа налево, при пассивном – в обратном направлении. К шине данных подключены информационные выводы всех модулей МПС.

Выводы X1 и X2 служат для подключения кварцевого резонатора или иных контуров, задающих частоту тактовому генератору, расположенному в МП. Тактирование системы производится на частоте, равной половине частоты резонанса кварца или иного контура, поскольку генератор работает на триггер, с которого снимаются сигналы тактирования модулей МПС, а триггер делит частоту на 2. Вход является входом асинхронного сброса, приводящим МП в исходное состояние. Сигнал L-активный. Сброс может быть осуществлен замыканием ключа K и автоматически происходит при включении питания UCC. В этом случае благодаря цепочке RC напряжение на входе нарастает постепенно, и в течение некоторого времени после включении питания остается низким (ниже порогового), что равноценно подаче сигнала .

Выполняя программу, МП обрабатывает команду за командой. Команда задает выполняемую операцию и содержит сведения об участвующих в ней операндах. После приема команды происходит ее расшифровка и выполнение, в ходе которого МП получает необходимые данные из памяти или внешних устройств. Ячейки памяти и внешние устройства (порты) имеют номера, называемые адресами, которыми они обозначаются в программе.

По однонаправленной адресной шине МП посылает адреса, определяя объект, с которым будет обмен, по шине данных (двунаправленной) обменивается данными с модулями (блоками) системы, по шине управления идет обмен управляющей информацией.

ПЗУ (ROM) хранит фиксированные программы и данные, оно является энергонезависимым и при выключении питания информацию не теряет.

ОЗУ (RAM) хранит оперативные данные (изменяемые программы, промежуточные результаты вычислений и др.), является энергозависимым и теряет информацию при выключении питания. Для приведения системы в работоспособное состояние после включения питания ОЗУ следует загрузить необходимой информацией.

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

На схеме (рисунок 7) модули системы показаны укрупнено. Кроме обозначенных блоков, в состав систем входят обычно и более сложные, чем адаптеры, блоки управления внешними устройствами – контроллеры. К их числу относятся, прежде всего, контроллеры прерываний и прямого доступа к памяти. Имеются также контроллеры клавиатуры, дисплея, дисковой памяти и т. д.

Контроллеры прерываний обеспечивают обмен с внешними устройствами в режиме прерывания (временной остановки) выполняемой программы для обслуживания запроса от внешнего устройства.

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

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

Управление памятью и внешними устройствами

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

Свои адреса имеют и внешние устройства (ВУ). МП при обмене данными всегда должен выбрать только одну из ячеек памяти или одно ВУ. Такой выбор осуществляется схемами декодирования адреса.

При управлении памятью и ВУ процессор должен вначале сформировать нужный адрес, который затем декодируется.

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

При косвенной адресации в команде явно или неявно указывается регистр МП, содержащий адрес операнда. Команда сохраняет компактность, но для ее выполнения требуется предварительная настройка – загрузка адреса в регистр (регистр косвенного адреса). Косвенная адресация удобна при обработке списков, когда настройка производится однократно, а очередной адрес получается модификацией предыдущего (изменением его на единицу).

При непосредственной адресации в команде содержится сам операнд.

Помимо перечисленных имеются и более сложные способы адресации: индексная, относительная и др., однако в простейших МП они не используются.

Возможность использования различных видов адресации сокращает объем и время выполнения программ.

С помощью того или иного способа адресации формируется физический адресный код, поступающий на шину адреса для выбора ячейки памяти или ВУ, с которыми взаимодействует МП.

С точки зрения использования АП памятью и ВУ различают концепции интерфейса с общей шиной и раздельной шиной.

В рамках первой концепции для адресов памяти и ВУ выделяются части общего АП. К ВУ, обращение происходит так же, как и к ячейкам памяти, т. е. с помощью тех же команд и той же шины. Недостатком этой концепции является сужение АП для памяти, поскольку часть АП занимается внешними устройствами. Достоинство состоит в том, что над данными, получаемыми от ВУ, можно производить все те операции, которые имеются в системе команд процессора для данных, находящихся в ячейках памяти. Таких операций много и это способствует улучшению параметров программ и упрощению программирования. Концепцию «с общей шиной» называют также вводом/выводом, отображенным на память.

В концепции «с раздельной шиной» ячейки памяти и ВУ имеют свои АП. При этом требуется наличие управляющих сигналов, определяющих, с каким типом объектов ведется обмен. Например, вводится сигнал , указывающий, адресуется память или ВУ. При этом память может использовать все АП. Для обмена с ВУ обычно имеются только операции ввода IN port и вывода OUT port, и теряется возможность применять к данным от ВУ широкий набор команд, имеющихся для работы с данными, хранимыми в памяти.

Диапазон адресов, к которым может обращаться процессор (т. е. емкость АП) связан с разрядностью шины адреса n соотношением АП = 2n. Например, с помощью 16-разрядной шины адреса можно адресовать 216 = 64 K объектов, с помощью 20-разрядной 1 M объектов и т. д.

Адресация – только часть процесса управления памятью и ВУ. Кроме адресов требуются стробы чтения и записи ( и ), задающие направление обмена, сигналы разрешения работы (, EN), признак обращения к ВУ или памяти (). Процессор обычно вырабатывает минимальную группу сигналов, тогда как в системном интерфейсе может быть предусмотрена несколько иная группа. В частности, МП К1821ВМ85А дает три сигнала: сигнал чтения (), записи (), и сигнал , т.е. обращения к ВУ при высоком уровне и к памяти – при низком. В системном же интерфейсе используется система из четырех сигналов: сигнала чтения из памяти , записи в память , чтения из ВУ и записи в ВУ .

Иногда условием обмена является готовность к нему памяти или ВУ. Для выявления готовности применяют такой метод: появление адреса медленного устройства ведет к запуску генератора одиночного импульса необходимой длительности, на время существования которого сигнал готовности RDY снимается. Длительность интервала неготовности рассчитывается согласно требованиям медленного устройства. Процессор ждет появления сигнала готовности и только после его появления выполняет операцию обмена. Чтобы избежать потерь времени, желательно генерировать интервал неготовности с привязкой его к синхроимпульсам МПС.

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

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

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

Для обмена между памятью и ВУ без участия процессора используется режим ПДП. В обычном режиме пересылка данных между памятью и ВУ требует вначале приема данных в процессор, а затем выдачи их приемнику, что снижает темп передачи. В режиме ПДП процессор отключается от системных шин и передает управление обменом контроллеру ПДП, что увеличивает темп передачи данных.

МИКРОПРОЦЕССОР К1821ВМ85А

Во всем мире широко применяются микропроцессоры (МП) фирмы Intel и их аналоги. Эта фирма разработала первый МП, а затем целый ряд их семейств. При изучении МП целесообразно ориентироваться на конкретные образцы. МП К1821ВМ85А – аналог микропроцессора Intel 8085A. Это простой для изучения объект, на котором легко проследить основные принципы работы МП. Несмотря на свой многолетний возраст (выпущен в 1977 г.), этот МП до сих пор выпускается промышленностью и встречается в каталогах фирм. Естественно, что областью его применения не являются компьютеры, в которых сейчас применяются гораздо более мощные и производительные МП. Такие МП, как К1821ВМ85А, используются в системах управления различной аппаратурой, где их возможностей вполне достаточно.

Структура микропроцессора К1821ВМ85А

МП К1821ВМ85А предназначен для обработки 8-разрядных данных, содержит 6200 транзисторов, корпус имеет 40 выводов. Напряжение источника питания 5 В ± 10%, потребляемый ток не более 170 мА, ток выхода при низком уровне выходного напряжения не более 2 мА, ток выхода при высоком уровне выходного напряжения не более 0,4 мА.

Структура микропроцессора К1821ВМ85А показана на рисунке 8. Микропроцессор имеет восьмиразрядную внутреннюю шину данных, через которую его блоки обмениваются информацией. На схеме приняты следующие обозначения:

- AC (Accumulator) – регистр-аккумулятор, выполненный на двухступенчатых триггерах и способный хранить одновременно два слова (один из операндов и результат операции);


Рисунок 8 – Структура микропроцессора К1821ВМ85А

- TR (Temporary Register) – регистр временного хранения одного из операндов;

- ALU (Arithmetic-Logic Unit) – арифметико-логическое устройство, выполняющее действия над двумя словами-операндами, подаваемыми на его входы. Аккумулятор служит источником и приемником данных, TR – источником слова данных, хранимых на время выполнения операции. АЛУ функционирует согласно соотношению A:= A * B, где B хранится в TR, второй операнд поступает от аккумулятора, в него же поступает результат операции (звездочкой обозначен обобщенный символ операции). АЛУ непосредственно выполняет лишь операции сложения, вычитания, сдвига, сравнения слов, поразрядные логические операции (конъюнкцию, дизъюнкцию, сложение по модулю 2). Более сложные операции (умножение, деление и др.) выполняются по подпрограммам. В АЛУ имеется схема перевода двоичных чисел в двоично-десятичные (DA, Decimal Adjust);

- RF (Register Flags) – регистр флажков, т.е. битов, указывающих признаки результатов арифметических или логических операций, выполненных в АЛУ.

Указываются пять признаков: Z (Zero) – нулевой результат, C (Carry) – перенос, AC (Auxiliary Carry) – вспомогательный перенос, S (Sign) – знак, P (Parity) – четность веса слова. Признак вспомогательного переноса (переноса между младшей и старшей тетрадами восьмиразрядного слова) нужен при выполнении операции в двоично-десятичном коде. Смысл остальных признаков ясен из их наименований. Признаки служат для управления ходом процесса обработки информации.

Блок регистров МП К1821ВМ85А

С внутренней шиной данных через мультиплексор/демультиплексор связан блок регистров, часть которых специализирована, другая часть (регистры общего назначения, РОН) программно доступна и может быть использована по усмотрению программиста. Регистры обозначены через W, Z, B, C, D, E, H, L, SP и PC. Регистры W и Z предназначены только для временного хранения данных при выборке команды из памяти и недоступны для программиста. Регистры B, C, D, E, H, L относятся к регистрам общего назначения, так как могут быть использованы по усмотрению программиста. Эти восьмиразрядные регистры могут применяться либо по отдельности, либо в виде пар B-C, D-E, H-L, играющих роль 16-разрядных регистров. Пары регистров именуются по первым регистрам пары как пары B, D, H. Пара H-L, как правило, используется для размещения в ней адресов при косвенной регистровой адресации. В блоке регистров имеются также 16-разрядные регистры SP и PC. Регистр SP (Stack Pointer) – указатель стека. Стек (память с последовательным доступом) удобен для запоминания массива слов, так как при этом не требуется адресовать каждое слово отдельно. Слова загружаются в стек в определенном порядке, при считывании также заранее известен порядок их следования. В частности, стек удобен при запоминании состояний регистров в момент прерывания программы. Порядок ввода слов в стек и их считывания предопределены его устройством. При организации типа LIFO (Last In – First Out) последнее записанное в стек слово при считывании появляется первым.

Аппаратно стек реализуется в ОЗУ, где для него выделяется определенная область. Указатель стека SP содержит адрес последней занятой ячейки. При выполнении операций PUSH и POP значение SP уменьшается или увеличивается. Задавая в SP начальное значение, можно размещать стек в той или иной области ОЗУ, следя при этом за тем, чтобы эта область не использовалась для других целей.

При байтовой организации памяти и записи в стек содержимого регистровой пары старший байт запоминается по адресу SP – 1, а младший – по адресу SP – 2, содержимое SP уменьшается на 2. При выборке содержимое двух верхних ячеек стека помещается в соответствующие регистры, а содержимое SP увеличивается на 2.

Основное назначение стека – обслуживание прерываний программы и выполнения подпрограмм.

Программный счетчик PC (Program Counter) дает адрес команды и может обращаться в любую из 64 K ячеек АП. При сбросе МП PC принимает нулевое состояние, которое является адресом первой исполняемой команды, иначе говоря, выполнение программы начинается с нулевой ячейки. Длина команды составляет 1…3 байта. Содержимое программного счетчика после выборки очередного байта из памяти автоматически инкрементируется, так что в PC появляется адрес следующей команды, если текущая команда была однобайтовой или следующего байта текущей команды в противном случае. Второй и третий байты команды поступают в регистры W и Z, которые не адресуются программой и используются только блоком внутреннего управления.

Схема INC/DEC (Increment/Decrement) изменяет передаваемые через нее слова на + 1 или – 1.

При обмене между МП и памятью или ВУ адрес соответствующей ячейки памяти или ВУ от выбранной команды или одной из регистровых пар передается в регистр адреса RA.

Буфер адреса BA с тремя состояниями выхода выдает сигналы старших разрядов адреса на линии адресной шины А15…8.

Буфер шины адресов/данных BA/D с тремя состояниями выхода передает на шину A/D с разделением во времени младший байт адреса или байт данных.

Внутренняя восьмиразрядная шина данных передает байты между различными внутренними регистрами или обменивается с другими модулями МПС через мультиплексируемую шину адресов/данных.

Назначение блоков управления прерыванием и последовательным вводом-выводом ясно из их названий. Режимы прерывания и последовательного ввода-вывода подробнее рассмотрены ниже.

Блок управления МП К1821ВМ85А

Регистр команд IR (Instruction Register) принимает из памяти первый байт команды, после дешифрации которого блок управления генерирует сигналы, необходимые для реализации машинных циклов, предписанных кодом операции.

Блок синхронизации и управления использует выход дешифратора команд и шифратора машинных циклов для синхронизации циклов, генерации сигналов состояния и управления шиной (внешними устройствами микропроцессорной системы).

При естественном следовании команд МП, начав работу, выбирает из памяти и выполняет одну команду за другой, пока не дойдет до команды «Останов» (HLT). Выборка и выполнение одной команды образует командный цикл. Командный цикл состоит из одного или нескольких машинных циклов (МЦ). Самая короткая команда выполняется за один машинный цикл М1, а самая длинная – за пять циклов (М1 … М5). Каждое обращение к памяти или ВУ требует машинного цикла, который связан с передачей байта в МП или из него. В свою очередь, машинный цикл делится на то или иное число тактов (T), число которых зависит от типа машинного цикла.

Микропроцессор К1821ВМ85А имеет следующие типы машинных циклов:

1 выборки команды (OF, Opcode Fetch);

2 чтения из памяти (MR, Memory Read);

3 записи в память (MW, Memory Write);

4 чтения из ВУ (IOR, Input-Output Read);

5 записи в ВУ (IOW, Input-Output Write);

6 подтверждения прерывания (INA, Interrupt Acknowledge);

7 освобождения шин (BI, Bus Idle);

8 останов (HALT).

В начале каждого машинного цикла генерируются сигналы состояния, идентифицирующие тип цикла и действующие в течение всего цикла.

Функции выводов и сигналов:

- А15…8 – выходные линии с тремя состояниями для выдачи старшего байта адреса памяти или полного адреса ВУ. Переходят в третье состояние в режимах HOLD, HALT и RESET (захвата, останова или сброса соответственно);

- АD7…0 – двунаправленные мультиплексированные линии с тремя состояниями для выдачи младшего байта адреса памяти или полного адреса ВУ в первом такте машинного цикла, после чего используются как шина данных. Как видно из сказанного, при адресации ВУ адресная информация обеих полушин (А15…8 и АD7…0) дублируется;

- ALE – строб разрешения загрузки младшего байта адреса памяти во внешний регистр для его хранения в течение машинного цикла. Появляется в первом такте машинного цикла. Регистр загружается задним фронтом сигнала ALE;

- , – стробы чтения или записи. Низкий уровень соответствующего сигнала свидетельствует о том, что адресованная ячейка памяти или внешнее устройство должны выполнить операцию чтения или записи. Выводы переходят в третье состояние в режимах HOLD, HALT и RESET;

- READY – входной сигнал показывает, что память или ВУ готовы к обмену с МП. Если готовности памяти или ВУ нет, МП входит в состояние ожидания, которое может длиться любое число тактов, вплоть до появления единичного уровня сигнала READY;

- S1, S0 – сигналы состояния МП, сообщаемые внешней среде. Формируются в начале и сохраняются во время всего машинного цикла;

- – сигнал выбора памяти или внешнего устройства. При высоком уровне происходит обращение к ВУ, при низком – к памяти.

Совместно с сигналами S1, S0 сигнал идентифицирует тип машинного цикла. Сигналы состояния и управляющие сигналы , и для различных машинных циклов имеют следующие значения (таблица 1);

Таблица 1 – Значения сигналов состояния и управления для различных

машинных циклов

Тип МЦ Сигналы состояния Сигналы управления
S1 S0
OF            
MR            
MW            
IOR            
IOW            
INA            
BI TC ´ ´      
HALT TC     TC TC  
Примечание – TC – третье состояние
               

- x1, x2 – эти выводы присоединяются к кварцевому резонатору или другим частотно-задающим цепям для обеспечения работы внутреннего генератора синхроимпульсов МП. Частота на выводах x1 и x2 в два раза выше рабочей частоты;

- ( ) – вход сигнала сброса МП в начальное состояние. Сигнал может поступить в любое время по команде оператора. Автоматически формируется при включении питания. Под его воздействием сбрасываются регистры PC и IR, триггеры разрешения прерывания, подтверждения захвата и др.;

- CLK – выход синхроимпульсов для микропроцессорной системы. Частота этих импульсов в два раза ниже частоты на выводах x1 и x2;

- RESET – выходной сигнал сброса для внешних модулей системы, привязанный к тактовым импульсам CLK, т.е. отличающийся от сигнала по фазе;

- INTR (Interrupt Request) – вход запроса векторного прерывания, вызывающий генерацию строба , если прерывание разрешено программой. Адрес подпрограммы, вызываемой этим входом, выдается внешним устройством. При сбросе прием сигнала запрещается (прерывания запрещены);

- (Interrupt Acknowledge) – выход строба подтверждения векторного прерывания после завершения текущего командного цикла. Используется для чтения вектора прерывания;

- RST 5,5; RST 6,5; RST 7,5 – входы запросов радиального прерывания типа RSTn (n = 5,5; 6,5; 7,5). Начальные адреса подпрограмм обслуживания равны 8n. Приоритеты фиксированы, высший приоритет у входа RST 7,5. Приоритеты всей группы запросов выше приоритета запроса INTR. Запросы маскируемые, причем независимо друг от друга;

- TRAP – вход запроса немаскируемого прерывания, имеющий максимальный приоритет;

- SID, SOD (Serial Input Data, Serial Output Data) – вход и выход последовательной передачи данных. По команде RIM входной бит загружается в старший разряд аккумулятора, по команде SIM выводится из этого разряда;

- HOLD – сигнал запроса захвата шин. Формируется внешним устройством;

- HLDA – сигнал подтверждения захвата (Hold Acknowledge). Является ответом на сигнал HOLD, формируемым в конце текущего машинного цикла. Свидетельствует об отключении МП от системных шин. При этом шины и линии управляющих сигналов , , и ALE переводятся в третье состояние.

Выводы x1 и x2 (рисунок 8), предназначенные для создания совместно с внутренними элементами МП генератора тактовых импульсов, могут быть использованы различными способами (рисунок 9, а). Кварц может быть подключен непосредственно к выводам x1 и x2 как единственный частотно-задающий элемент. Если частота генератора составляет 4 МГц или более, могут понадобиться конденсаторы с рекомендованной емкостью 20 пФ для надежного запуска генератора. Параллельный LC-контур также может быть подключен непосредственно к выводам x1 и x2. При невысоких требованиях к стабильности частоты можно использовать частотнозадающую RC-цепочку. Возможна синхронизация от внешнего генератора ГТИ. При этом рекомендуется включать внешние логические элементы с открытым коллектором, причем при частоте генерации более 6 МГц включаются два логических элемента.

Для образования сигналов синхронизации CLK выход генератора подается на вход T-триггера (рисунок 9, б). Триггер формирует две последовательности противофазных импульсов Ф1 и Ф2 для тактирования внутренних схем МП. Сигнал синхронизации системы CLK синфазен импульсам Ф2. Сигнал ALE формируется как один импульс последовательности Ф1, выделяемый из нее в первом такте (Т1) каждого машинного цикла. Буфер выдачи сигнала ALE во внешние цепи имеет вход разрешения . Частота синхросигналов МП в два раза ниже частоты генератора.

Рисунок 9 – Внешние элементы тактового генератора (а) и формирование синхросигналов (б) в микропроцессоре К1821ВМ85А

Синхронизация и последовательность действий МП К1821ВМ85А

Командный цикл КЦ (рисунок 10, а) начинается с выборки команды (Opcode Fetch, OF). Первый машинный цикл М1 всегда OF, в нем МП получает первый байт команды. После этого могут быть еще один или два машинных цикла типа MR (Memory Read), поскольку команда может быть однобайтной, двухбайтной или трехбайтной.

Если команда трехбайтная, то она хранится в памяти, как показано на рисунке 10, б. Первый байт содержит код операции (КОП), сведения о способе адресации, а если команда однобайтная, то и адрес операнда. Наличие адреса возможно для операций типа «регистр-регистр» с короткими адресами. Для адресации восьми регистров общего назначения достаточны трехразрядные адреса, а для адресации регистровых пар даже двухразрядные. Второй байт содержит младший полуадрес операнда или младший байт операнда, если команда трехбайтная, или непосредственный операнд либо адрес ВУ, если команда двухбайтная. Третий байт содержит старший полуадрес операнда или старший байт непосредственных данных при загрузке пары регистров. Адреса регистров и регистровых пар указаны в таблице 2.

КЦ   b1 N – 2
М1 М2 М3   b2 N – 1
Т1 Т2 Т3 Т4 Т1 Т2 Т3 Т1 Т2 Т3   b3 N
а)   б)  
                         

Рисунок 10 – Циклы и такты микропроцессора К1821ВМ85А (а) и пример размещения команды в памяти микропроцессорной системы (б)

Таблица 2 – Адреса регистров и регистровых пар МП К1821ВМ85А

Регистры Пары регистров
B C D E H L A B D H SP
                     

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

Машинный цикл состоит из тактов, в которых выполняются типовые действия, рассмотренные ниже. Число тактов в различных машинных циклах – 3…6. Большинство машинных циклов содержат три такта. В командном цикле может содержаться от 4 до 18 тактов.

Сигналы, реализующие тот или иной МЦ, генерируются блоком управления МП на основании информации, содержащейся в первом байте команды.

Проиллюстрируем сказанное примером выполнения команды STA b3b2 (Store Accumulator Direct), передающей содержимое аккумулятора в ячейку памяти при прямой адресации, т.е. указании адреса ячейки в самой команде. Для передачи трехбайтной команды в МП требуются три машинных цикла, в первом из которых байт b1 передается в регистр команд IR, в последующих байты b2 и b3 передаются в регистры временного хранения W и Z. После получения всей команды МП выполняет ее, передавая байт из аккумулятора в ячейку памяти, адрес которой поступил в МП. Таким образом, командный цикл состоит из четырех машинных циклов, выполняемых в следующем порядке: OF-MR-MR-MW.

Каждый машинный цикл делится на такты (состояния) – интервалы между одноименными фронтами тактовых импульсов CLK.

Типовые действия, выполняемые в тактах различных машинных циклов:

T1 адрес памяти или ВУ выставляется на АD7…0 и А15…8, генерируется сигнал ALE для фиксации битов АD7…0. На линиях , S1 и S0 выставляется информация, определяющая тип цикла. Проверяется флаг HALT;

T2 проверяются входы READY и HOLD. Программный счетчик инкрементируется, если данный машинный цикл является частью выборки команды. Во всех машинных циклах, кроме цикла BI (освобождения шин), один из управляющих стробов , или переходит из единичного состояния в активное нулевое;

Tw появляется при неготовности памяти или ВУ к обмену (на линии READY низкий уровень напряжения). Состояния линий адресов, данных и управления остаются теми же, что и в конце такта. Сигнал READY проверяется в каждом такте ожидания;

T3 байт команды или данных передается в микропроцессор или из него. Уровень активного управляющего строба изменяется с нулевого на единичный;

T4 декодируется содержимое регистра команд;

T5,6 используются при необходимости для завершения некоторых команд. Системные шины не используются.

Машинный цикл всегда содержит такты T1…T3, иногда имеет большее число тактов, но для чтения или записи требуется только три такта. Временные диаграммы цикла чтения с тактом ожидания приведены на рисунке 11.

Система прерываний

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: