Микропроцессорная техника. Тестирование микропроцессорных систем

На схеме мы видим основные элементы простейшего микропроцессорного устройства. Все названия даны в русском и английском вариантах. Причем, если вы и дальше собираетесь заниматься микропроцессорной техникой, будьте готовы к тому, что в реальной практике вы будите встречаться исключительно с английскими обозначениями. Расшифруем эти обозначения:

CPU центральный процессор (центральное процессорное устройство – ЦПУ)

RAM – оперативное запоминающее устройство (ОЗУ)

ROM – постоянное запоминающее устройство (ПЗУ)

Port I / O – порт ввода/вывода

Что такое процессор вы уже немного знаете. ОЗУ и ПЗУ – это два вида памяти. Их можно было бы не разделять. Процессор их и не разделяет и работает с обоими видами памяти одинаково. Но между ними есть одно довольно существенное различие. ОЗУ хранит информацию только при наличии напряжения питания. Классический пример ячейки ОЗУ – это простейший регистр, построенный на D -триггерах. В такой регистр можно записывать информацию и она там будет храниться. Но после выключения питания при последующем включении все D -триггера регистра установятся в случайное положение. Информация будет утеряна. ОЗУ на основе параллельных регистров сейчас почти не применяется. Однако и по сей день не придумано достаточно быстродействующее устройство памяти, не теряющее информации с выключением питания.

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

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

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

На схеме, на рис. 24 изображены три основные шины микропроцессорной системы. Вместе они составляют системную шину. Системная шина состоит из следующих составляющих:

ШД – шина данных (DATA bus )

ША – шина адреса (ADDR bus)

ШУ – шина управления (CONTROL bus )

Шина данных .

Эта шина предназначена для передачи данных от микропроцессора к периферийным устройствам и обратно. Напомню, что периферийными устройствами для процессора являются устройства памяти (ОЗУ и ПЗУ) и порты ввода/вывода. В простых микропроцессорных контроллерах она имеет обычно 8 разрядов. В более сложных – 16, 32, 64 … Количество разрядов всегда кратно восьми. По восьми разрядам передается один байт информации (то есть двоичное восьмиразрядное число). По шестнадцати разрядам можно одновременно передавать два байта. По 32-разрядной шине передача информации может происходить тремя способами: один байт (по младшим восьми разрядам), два байта (по младшим 16) и сразу по 4 байта. Аналогичный принцип используется и в 64-разрядной шине. Таким образом, как видим, байт тоже стал своеобразным стандартом, единицей измерения данных.

Шина адреса.

Предназначена для передачи адреса ко всем периферийным устройствам (как к устройствам памяти, так и к портам ввода/вывода). Количество разрядов адресной шины отличается большим разнообразием. Например, микропроцессор серии К580ИК80 имеет 16 разрядов адреса. Это можно считать минимальным количеством. Процессор Intel 8086, На котором собран родоначальник всех современных персональных компьютеров – IBM PC -XT , имеет 20 разрядов адреса. Современные процессоры имеют до 32 разрядов и больше. От количества разрядов шины адреса зависит, какое количество ячеек памяти может адресовать процессор. Процессор, имеющий шестнадцатиразрядную шину данных может обращаться к 2 16 (то есть к 65536) ячейкам памяти. Это число называется объемом памяти. То есть, по другому можно сказать, что такой процессор имеет объем адресуемой памяти в 65536 байт.

В вычислительной технике используется необычная размерность для измерения объема памяти. Число 1024 (а это 2 10) байт информации принято называть Килобайтом. Почему 1024, а не 1000? Ну во первых потому, что количество ячеек памяти, адресуемых любым микропроцессором всегда является величиной, равной какой либо степени числа два. Например, для адресации 1024 ячеек памяти нужна шина адреса, имеющая ровно 10 разрядов. При этом шина не будет избыточна. Если бы мы захотели иметь только 1000 ячеек памяти, то для того, что бы обеспечить возможность обратиться к любой из них, нам все равно потребовалось бы 10 разрядов адреса, так как при девяти разрядах можно обратиться только к 512 ячейкам. Поэтому никто и ни когда не делал запоминающего устройства с объемом не равным одной из степеней двойки. Логично, что и объем памяти удобнее измерять в величинах, из того же ряда.

Поэтому один килобайт равен 1024 байта. Один мегабайт равен 1024 килобайта. Один гигабайт равен 1024 мегабайту. Ну, дальше наша техника пока еще не пошла. Пока объемы памяти, реально используемой на современных компьютерах, не превышают нескольких гигабайт.

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

Шина управления.

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

RD – сигнал чтения

WR – сигнал записи

MREQ – сигнал, инициализации устройств памяти (ОЗУ или ПЗУ)

IORQ –сигнал инициализации портов ввода/вывода

Кроме того, к сигналам шины управления относятся:

READY – сигнал готовности

RESET – сигнал сброса

И еще несколько специальных сигналов, о которых мы поговорим позже.

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

Рассмотрим подробнее, как работает микропроцессорная система, изображенная на рис. 28. В основном режиме работы, всей микропроцессорной системой управляет центральный процессор (CPU ). При этом он может выполнять четыре основных операции: чтение из ячейки памяти, запись в ячейку памяти, чтение из порта и запись в порт.

Для того, что бы прочитать байт из ячейки памяти, процессор сначала устанавливает на шине адреса адрес нужной ячейки. Затем он устанавливает сигнал MREQ в активное состояние (Лог. 0). Этот сигнал поступает на устройства памяти и служит разрешением для их работы. При этом сигнал IORQ остается равным лог. 1. Поэтому порты ввода/вывода микропроцессорной системы не активны.

В следующий момент времени процессор переводит в активное состояние сигнал RD . Этот сигнал поступает как на устройства памяти, так и на порты ввода/вывода. Однако порты не реагируют на него, так как они отключены высоким уровнем сигнала IORQ . Устройство памяти напротив, получив управляющие сигналы RD и MREQ, выдает на шину данных байт информации из той ячейки памяти, адрес которой поступает на него по шине адреса.

Процесс записи данных в память происходит в следующей последовательности: Сначала центральный процессор выставляет на адресную шину адрес нужной ячейки памяти. Затем на шину данных он выставляет байт, предназначенный для записи в эту ячейку. После этого активизируется сигнал MREQ , разрешающий доступ к модулю памяти. И уже затем процессор устанавливает сигнал WR в активное (лог. 0) состояние. По этому сигналу происходит запись байта в ячейку памяти, адрес которой присутствует на шине адреса.

Некоторые виды памяти работают очень медленно. Они могут не успеть выдать информацию или произвести ее записать так быстро, как это способен сделать центральный процессор. Для согласования работы медленных устройств памяти с быстрыми процессорами существует сигнал READY (готовность). Сразу после того, как процессор установит сигнал чтения или записи в активное состояние, устройство памяти устанавливает сигнал READY в пассивное состояние (лог. 0). Такой уровень сигнала означает, что внешнее устройство не готово, то есть еще не выполнило команду. Сигнал READY поступает на процессор, и он переходит в режим ожидания. Когда устройство памяти выполнит команду, оно установит сигнал в активное состояние (лог. 1). Процессор, получив этот сигнал, возобновляет работу. Сигнал READY применяется и в случае работы с медленными портами ввода/вывода.

Операции чтения и записи с портами ввода/вывода происходят аналогично операциям чтения/записи с ОЗУ. Различие лишь в том, что вместо сигнала MREQ , в активное состояние переходит сигнал IORQ , разрешающий работу портов.

Как видно из схемы (рис. 24), к одной системной шине могут подключаться несколько модулей памяти, а так же несколько портов. Все устройства ко всем шинам подключаются параллельно. Как же происходит, что процессор записывает информацию в тот модуль памяти, в который нужно и при этом он не попадает в другие модули? Для этого в каждый модуль памяти встроен специальный дешифратор. На него подаются сигналы старших разрядов адресной шины. Далее, при помощи внутренних перемычек, для каждого модуля выбирается свой диапазон адресов с таким расчетом, что бы модули занимали разные не пересекающиеся диапазоны. Для того, что бы это было понятнее, предположим, что мы имеем четыре модуля памяти по шестнадцать ячеек в каждом. Для адресации шестнадцати ячеек достаточно четырех разрядов адресной шины. Еще два разряда понадобятся для того, что бы выбирать один из модулей. Поэтому четыре младших разряда шины данных (D 0..D 3) подаются на все модули памяти параллельно и используются для выбора одной из ячеек в модуле. Следующие два разряда (D 4, D 5) подаются на дешифраторы выбора модуля. Такие модули еще называют банками памяти. Перемычки в выбираемых модулях при этом нужно установить так, что бы первый модуль (банк памяти) активизировался тогда, когда разряды D4, D5 примут значение 00 2 . Во втором модуле перемычки должны быть установлены в положение, при котором модуль будет активизироваться если D 5, D 5 примут значение 01 2 . Третий модуль активизируется при D 4, D 5 =10 2 , а четвертый при 11 2 . При таком способе включения модулей памяти первый банк памяти будет занимать в адресном пространстве адреса с 000000 2 по 001111 2 . Второй банк – адреса с 010000 2 по 011111 2 . Третий – с 100000 2 по 101111 2 . И четвертый - с 110000 2 по 111111 2 . Таким образом, процессор сможет обращаться к любой ячейке любого банка памяти. И при этом все модули будут подключены ко всем шинам микропроцессорной системы параллельно.

В заключение этой главы необходимо сказать о еще одном элементе, обязательно присутствующем в любой микропроцессорной системе. Это тактовый генератор. На рис. 24 тактовый генератор для простоты не показан. Каждая операции в микропроцессорной системе разделена на несколько тактов. Тактовый генератор вырабатывает прямоугольные импульсы, которые поступают на специальный вход микропроцессора, а иногда и на некоторые другие микросхемы микропроцессорной системы. Эти импульсы синхронизирует все процессы, происходящие в микропроцессорной системе и, в конечном счете, определяют быстродействие всей системы. У микроконтроллеров AT 89C 2051 и аналогичных ему, тактовый генератор входит в состав самой микросхемы контроллера.

Московский государственный инженерно-физический институт

(технический университет)

Факультет Автоматики и электроники

ОСНОВЫ МИКРОПРОЦЕССОРНОЙ ТЕХНИКИ

1. Общая структура и принципы функционирования

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

2. Система команд микропроцессоров и способы адресации операндов

3. Реализация и организация памяти

4. Классификация микропроцессоров, основные варианты их архитектуры и структуры

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

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

4. Общая структура и принципы функционирования

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

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

DIV_ADBLOCK273">

Постоянное запоминающее устройство (ПЗУ) служит для хранения констант и стандартных (неизменяемых) программ. В ПЗУ обычно записываются программы начальной инициализации (загрузки) систем, тестовые и диагностические программы и другое служебное программное обеспечение , которое не меняется в процессе эксплуатации систем. В микропроцессорных системах, управляющих определенными объектами с использованием фиксированных или редко изменяемых программ, для их хранения также обычно используется ПЗУ (память ROM – Read-Only Memory) или репрограммируемое ПЗУ (память EPROM – Electrically Programmable Read-Only Memory или флеш-память).

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

Данная структура соответствует архитектуре Фон-Неймана, предложенной этим ученым в 40-х годах для реализации первых моделей цифровых ЭВМ. Ниже будут рассмотрены и другие варианты процессорных архитектур.

Системная шина содержит несколько десятков (в сложных системах более 100) проводников, которые в соответствии с их функциональным назначением подразделяются на отдельные шины - адреса А, данных D и управления C. Шина A служит для передачи адреса, который формируется микропроцессором и позволяет выбрать необходимую ячейку памяти ОЗУ (ПЗУ) или требуемое ИУ при обращении к внешнему устройству. Шина D служит для выборки команд, поступающих из ОЗУ или ПЗУ в УУ микропроцессора, и для пересылки обрабатываемых данных (операндов) между микропроцессором и ОЗУ или ИУ (внешним устройством). По шине C передаются разнообразные управляющие сигналы, определяющие режимы работы памяти (запись или считывание), интерфейсных устройств (ввод или вывод информации) и микропроцессора (запуск, запросы внешних устройств на обслуживание, информация о текущем режиме работы и другие сигналы).

Разрядность шины данных D обычно соответствует разрядности операндов, обрабатываемых микропроцессором. Поэтому шина D содержит 8, 16 или 32 линии для передачи соответствующих разрядов данных и команд. В ряде последних моделей микропроцессоров используется шина D с расширенной разрядностью, чтобы обеспечить одновременную передачу нескольких команд или операндов. Например, 32-разрядные микропроцессоры Pentium имеют 64-разрядную шину данных.

Разрядность шины адреса A определяет максимальный объем адресуемой процессором внешней памяти. Например, 16-разрядная шина A обеспечивает адресацию памяти объемом до 64 Кбайт, а 32-разрядная шина – до 4 Гбайт. Процессоры Pentium II, Pentium III, Pentium 4 имеют 36-разрядную шину адреса, обеспечивающую обращение к памяти объемом до 64 Гбайт. Отметим, что в ряде микропроцессоров, например в Pentium, вместо младших разрядов адреса формируются сигналы выборки соответствующих байтов (сигналы байтной выборки BEi, где i – номер байта), которые позволяют организовать хранение байтов в отдельных банках памяти.

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

В некоторых системах для уменьшения числа необходимых линий связи и соответствующих выводов и контактов используется мультиплексирование линий адреса и данных. В таких системах для передачи адреса и данных используются одни и те же линии связи, на которые сначала выдается адрес, а затем поступают данные. Например, 16-разрядные микроконтроллеры семейства MCS-196, выпускаемые компанией Intel, имеют мультиплексированную 16-разрядную шину адреса-данных AD. Обмен информацией по мультиплексированной шине AD требует введения отдельного регистра для хранения адреса в процессе пересылки данных. При этом требуется также дополнительное время для реализации обмена, что несколько снижает производительность системы.

Разрядность шины управления С определяется организацией работы системы, возможностями реализации различных режимов ее функционирования, используемыми методами контроля микропроцессора и других устройств. Поэтому набор передаваемых по шине C управляющих сигналов является индивидуальным для каждой модели микропроцессора. Имеется ряд управляющих сигналов, которые используются в большинстве микропроцессорных систем. К ним относятся сигналы начального запуска (RESET), сигналы, задающие режим работы памяти (чтение – RD, запись - WR), сигналы, необходимые для реализации прерываний и ряд других. В простых системах для передачи управляющих сигналов может использоваться всего несколько линий, а в сложных системах число этих линий составляет несколько десятков.

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

Выполнение основной программы;

Вызов подпрограммы;

Обслуживание прерываний и исключений;

Прямой доступ к памяти.

Рассмотрим основные принципы реализации этих режимов.

Выполнение основной программы.

В этом режиме процессор выбирает из ОЗУ очередную команду программы и выполняет соответствующую операцию. Команда представляет собой многоразрядное двоичное число (рис. 1.2), которое состоит из двух частей (полей) – кода операции КОП и кода адресации операндов КАД. Код операции КОП задает вид операции, выполняемой данной командой, а код адресации КАД определяет выбор операндов (способ адресации), над которыми производится заданная операция. В зависимости от типа микропроцессора команда может содержать различное число разрядов (байтов). Например, команды процессоров Pentium содержат от 1 до 15 байтов, а процессоры с RISC-архитектурой обычно используют фиксированный 4-байтный формат для любых команд.

Код операции (КОП)

Код адресации операндов (КАД)

Рис. 1.2. Формат типовой команды микропроцессора

Для хранения адреса очередной команды служит специальный регистр процессора – программный счетчик PC (Program Counter), содержимое которого автоматически увеличивается на 1 после выборки следующего байта команды. Таким образом, обеспечивается последовательная выборка команд в процессе выполнения программы. При выборке очередной команды содержимое PC поступает на шину адреса, обеспечивая считывание из ОЗУ следующей команды выполняемой программы. При реализации безусловных или условных переходов (ветвлений) или других изменений последовательности выполнения команд выполняется загрузка в PC нового содержимого, в результате чего производится переход к другой ветви программы или подпрограмме.

В процессорах Pentium и других моделях микропроцессоров компании Intel (8086, 80186, 80286, 386, 486), реализуется сегментная организация памяти. При этом адрес выбираемой команды определяется содержимым двух регистров – указателя команды EIP , указывающего положение команды в сегменте программ, и сегментного регистра CS , который задает начальный (базовый) адрес этого сегмента. Регистры EIP и CS выполняют в этих микропроцессорах функции программного счетчика PC :

(EIP) + (CS) = адрес очередной команды (PC).

Различные команды передачи управления реализуются путем изменения содержимого регистров EIP и CS .

Принятая из ОЗУ команда поступает в регистр команд, входящий в состав УУ процессора. Затем производится дешифрация команды, в процессе которой определяется вид выполняемой операции (расшифровка КОП) и формируется адрес необходимых операндов (расшифровка КАД). В соответствии с кодом поступившей команды УУ процессора генерирует последовательность микрокоманд , обеспечивающих выполнение заданной операции. Каждая микрокоманда выполняется в течении одного машинного такта - периода тактовых импульсов Tt , который задается тактовой частотой микропроцессора Ft = 1/Tt. Тактовые импульсы с частотой Ft формируются генератором тактовых импульсов (ГТИ), который входит в состав микропроцессора или реализуется в виде внешнего устройства, подключаемого к соответствующему входу микропроцессора. Величина Tt определяет время выполнения отдельных микрокоманд, последовательность которых обеспечивает получение необходимого результата операции (поступившей команды).

Для выполнения каждой поступившей команды требуется определенное количество командных циклов и тактов. Командным циклом называется промежуток времени, требуемый для выполнения обращения к ОЗУ или внешнему устройству с помощью системной шины. Обычно реализация такого цикла занимает от 2 до 4 системных тактов (периодов синхросигналов шины), которые требуются для установки требуемого адреса, выдачи сигналов, определяющих вид цикла – чтение или запись, получения сигнала готовности к обмену (от памяти или внешних устройств) и собственно передачи данных или команд. При современной технологии изготовления системных плат частота синхросигналов шины обычно составляет десятки Мгц (типичные значения 25, 33, 50, 66, 75, 100, 133 МГц).

При выполнении каждой команды в первых тактах производится ее выборка из ОЗУ по адресу, который задается содержимым программного счетчика PC . Последующая дешифрация выбранной команды определяет необходимое число циклов для ее выполнения. Если для выполнения команды не требуется считывание операндов из памяти (внешних устройств) или запись в память (вывод на внешние устройства) результатов операции, то такая команда выполняется за один цикл. При считывании операндов из памяти (внешних устройств) или записи результата в память (вывод на внешние устройства) требуется выполнения дополнительных циклов чтения (ввода) или записи (вывода). В зависимости от разрядности обрабатываемых операндов и разрядности используемой системной шины число циклов, необходимых для выполнения команд может быть различным: от 1 (выборка команды) до 4-5 (зависит от команды, разрядности шин и операндов).

Машинным (процессорным) тактом в микропроцессорных системах является длительность периода тактовых сигналов Tt, которая задается тактовой частотой микропроцессора Ft = 1/Tt. При выполнении операций, не требующих обращений к системной шине, эта частота определяет производительность микропроцессора. Для современных микропроцессоров частота Ft достигает 1 ГГц и более (последние модели микропроцессоров Pentium, AMD K7, Alpha и другие). Таким образом, обработка информации внутри процессора (без обращения к системной шине) производится значительно быстрее, чем обмен по шине. Если тактовая частота микропроцессора отличается от частоты обмена по системной шине, то вывод данных на шину реализуется с помощью промежуточной буферной памяти, в которой хранятся данные, посылаемые микропроцессором на системную шину. Данные выбираются из буферной памяти и поступают на системную шину с частотой, соответствующей скорости обмена по этой шине.

Текущее состояние процессора при выполнении программы определяется содержимым регистра состояния SR (State Register, в микропроцессорах Pentium данный регистр называется EFLAGS ). Этот регистр содержит биты управления , задающие режим работы процессора, и биты признаков (флаги) , указывающие характеристики результата выполненной операции:

N – признак знак (старший бит результата), N=0 при положительном результате, N=1 при отрицательном результате;

С – признак переноса , C=1, если при выполнении операции образовался перенос из старшего разряда результата;

V – признак переполнения , V=1, если при выполнении операций над числами со знаком произошло переполнение разрядной сетки процессора;

Z – признак нуля , Z=1, если результат операции равен нулю.

Некоторые микропроцессоры фиксируют также другие виды признаков: признак четности результата, признак переноса между тетрадами младшего байта. Специальные виды признаков устанавливаются по результатам операций над числами, представленными в формате с «плавающей точкой».

Вызов подпрограммы

Обращение к подпрограмме реализуется при поступлении в микропроцессор специальной команды CALL (в некоторых процессорах эта команда имеет мнемоническое обозначение JSR – Jump-to-SubRoutine), которая указывает адрес первой команды вызываемой подпрограммы. Этот адрес загружается в PC , обеспечивая в следующем командном цикле выборку первой команды подпрограммы. Предварительно выполняется процедура сохранения в специальном регистре или ячейке памяти текущего содержимого PC , где хранится адрес следующей команды основной программы, чтобы обеспечить возвращение к ней после выполнения подпрограммы. Возврат к основной программе реализуется при поступлении команды RETURN (мнемоническое обозначение RET ), завершающей подпрограмму. По этой команде сохранявшееся содержимое PC снова загружается в программный счетчик, обеспечивая выполнение команды, которая в исходной программе следовала за командой CALL .

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

https://pandia.ru/text/78/380/images/image003_87.gif" width="545" height="217 src=">

Рис.1.4. Варианты реализации стека: регистровый стек (а) и

стек, реализуемый в ОЗУ (б)

Регистровый стек (рис.1.4,а) реализуется с помощью реверсивных сдвиговых регистров. Каждая команда CALL вызывает ввод в стек очередного содержимого PC . По команде RETURN направление сдвига изменяется, и производится извлечение из стека последнего поступившего содержимого PC . Таким образом, обеспечивается выполнение вложенных подпрограмм. Возможное число вложенных подпрограмм определяется глубиной стека, то есть разрядностью используемых регистров сдвига. Если число вложений превышает глубину стека, первые из введенных в стек значений PC теряются, то есть возврат к основной программе не будет обеспечен. Поэтому при использовании регистрового стека необходим строгий контроль за числом вложений. Такая реализация стека применяется в системах, решающих задачи с ограниченным числом вложенных подпрограмм (обычно не более 10-20).

Значительно более широкие возможности вложения подпрограмм обеспечивает реализация стека в ОЗУ (рис.1.4,б). В этом случае часть ОЗУ выделяется для работы в качестве стека. Адресация к ячейкам стека производится с помощью специального регистра – указателя стека SP (Stack Pointer), который вводится в состав УУ процессора. Регистр SP содержит адрес верхней заполненной ячейки стека, в которой хранится значение PC , записанное при выполнении команды CALL . При поступлении новой команды CALL содержимое SP автоматически уменьшается на 1, адресуя следующую, еще незаполненную ячейку стека. Полученный адрес (SP-1) выдается на шину A, а на шину данных D поступает содержимое PC , которое должно сохраняться в стеке. Таким образом, производится последовательное заполнение ячеек стека «снизу-вверх», при этом SP всегда адресует вершину стека. По команде RETURN текущее содержимое SP выдается на шину A, и по шине D производится считывание с вершины стека последнего записанного значения PC . После этого содержимое SP увеличивается на 1, адресуя предыдущее значение PC , хранящееся в стеке. Так как ОЗУ обычно имеет значительный объем, то для размещения стека можно выделить достаточно большое количество ячеек памяти, обеспечивая необходимый уровень вложения подпрограмм.

Обслуживание прерываний и исключений

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

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

DIV_ADBLOCK283">

Программные прерывания реализуются при поступлении специальных команд (INTn , INT 3, INTO для микропроцессоров Pentium, TRAPn для микропроцессоров семейства MC68000 и другие). Эти команды вызывают переход к выполнению стандартных подпрограмм обслуживания, для размещения которых выделяются определенные позиции в ОЗУ. Таким образом, при вызове подпрограмм обслуживания реализуется обращение к фиксированным адресам.

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

Запросы маскируемых прерываний обслуживаются только в том случае, если соответствующий бит управления I в регистре состояния SR , который называется маской прерываний , имеет значение 1. В процессорах Pentium это бит IF в регистре EFLAGS . С помощью специальных команд значение этого бита может быть установлено в 1 или сброшено в 0. Таким образом, можно разрешить или запретить обслуживание поступивших аппаратных прерываний при выполнении определенных программ или их фрагментов. При одновременном поступлении нескольких запросов обслуживание реализуется в соответствии их приоритетом. В ряде микропроцессорных систем для обеспечения приоритетного обслуживания запросов от многих внешних устройств включаются специальные микросхемы – контроллеры прерываний. Некоторые типы микропроцессоров имеют внутренние контроллеры для организации приоритетных прерываний.

Немаскируемые запросы прерывания обслуживаются в первоочередном порядке и не могут быть маскированы. Обычно микропроцессор имеет один вход для подачи немаскируемых запросов, которые формируются при возникновении каких-либо аварийных ситуаций. Чаще всего этот вход используется для контроля напряжения питания. Если напряжение питания выходит за допустимые пределы, то специальный датчик вырабатывает немаскируемый запрос прерывания, поступающий в микропроцессор. При этом источник питания должен некоторое время (порядка 10 мс) сохранять необходимый уровень напряжения питания, в течение которого микропроцессор выполняет подпрограмму перезаписи на магнитный диск информации, достаточной для продолжения прерванной программы после восстановления нормального режима питания.

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

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

Прямой доступ к памяти.

Режим прямого доступа к памяти DMA (Direct Memory Access) используется, если необходимо произвести пересылку значительного массива информации между ОЗУ и каким-либо внешним устройством, которое подает в систему соответствующий запрос. Реализация такой пересылки с помощью с помощью соответствующей программы обмена требует выполнения отдельной команды пересылки для передачи каждого байта или слова. При этом необходим определенный объем памяти для хранения программы и требуется значительное время для ее выполнения.

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

Передача сигналов запроса и подтверждения прямого доступа к памяти между микропроцессором и контроллером DMA производится по соответствующим линии шины управления C.

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

2. Система команд микропроцессоров и способы адресации операндов

Большинство микропроцессоров выполняют обработку следующих типов целочисленных данных:

Слова (16 разрядов),

Двойные слова (32 разряда).

Некоторые типы микропроцессоров обрабатывают также четверные слова (64 разряда), двоично-десятичные числа BCD (Binary Coded Decimal, представление одного десятичного разряда с помощью тетрады из 4-х битов, которая называется полубайтом или нибблом), строки символов. В состав современных высокопроизводительных микропроцессоров входят также блоки, производящие обработку чисел, представленных в формате с плавающей точкой (блоки FPU – Floating Point Unit), и выполняющие обработку видео - и аудиоданных, для которых используются специальные форматы представления.

Обрабатываемые данные - операнды могут располагаться в регистрах или памяти (ОЗУ, ПЗУ или кэш-памяти). Выборка операнда – байта, слова или двойного слова, производится в соответствии с заданным в команде номером (именем) регистра или адресом соответствующей ячейки памяти.

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

Начиная с младшего байта (“Little-Endian),

Начиная со старшего байта (“Big-Endian”).

При использования размещения “Little-Endian” младший байт располагается в ячейке памяти с меньшим адресом (рис. 1.6,а). Данный вариант размещения реализуется в микропроцессорах, выпускаемых компаниями Intel, AMD, Hitachi и рядом других производителей. При размещении “Big-Endian” старший байт располагается в ячейке с меньшим адресом (рис. 1.6,б). Такое расположение байтов обеспечивают микропроцессоры компании Motorola, ряд моделей микропроцессоров, выпускаемых IBM и некоторыми другими компаниями. При обращении к памяти микропроцессор адресует ячейку с меньшим адресом, поэтому при размещении “Little-Endian” команда или операнд выбираются, начиная с младшего байта, а при размещении “Big-Endian” – со старшего байта. По этой причине непосредственный перенос программного обеспечения между системами, использующими микропроцессоры с разными вариантами размещения байтов, оказывается практически невозможным. Чтобы решить эту проблему, некоторые современные микропроцессоры, например, семейства PowerPC, реализуют оба возможных варианта размещения и адресации байтов – “Little-Endian” или “Big-Endian”. Выбор необходимого варианта задается программно.

Младший байт

Старший байт

Младший байт

Старший байт

Старший байт

Младший байт

Старший байт

Младший байт

Рис.1.6. Адресация байтов в слове и двойном слове при размещениях

Основные определения:

Электронная система - в данном случае это любой электронный узел, блок, прибор или комплекс, производящий обработку информации.

Задача - это набор функций, выполнение которых требуется от электронной системы.

Быстродействие - это показатель скорости выполнения электронной системой ее функций.

Гибкость - это способность системы подстраиваться под различные задачи.

Избыточность - это показатель степени соответствия возможностей системы решаемой данной системой задаче.

Интерфейс - соглашение об обмене информацией, правила обмена информацией, подразумевающие электрическую, логическую и конструктивную совместимость устройств, участвующих в обмене. Другое название - сопряжение.

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

Характерная особенность традиционной цифровой системы состоит в том, что алгоритмы обработки и хранения информации в ней жестко связаны со схемотехникой системы. То есть изменение этих алгоритмов возможно только путем изменения структуры системы, замены электронных узлов, входящих в систему, и/или связей между ними. Например, если нам нужна дополнительная операция суммирования, то необходимо добавить в структуру системы лишний сумматор. Или если нужна дополнительная функция хранения кода в течение одного такта, то мы должны добавить в структуру еще один регистр. Естественно, это практически невозможно сделать в процессе эксплуатации, обязательно нужен новый производственный цикл проектирования, изготовления, отладки всей системы. Именно поэтому традиционная цифровая система часто называется системой на «жесткой логике».

Рис. 1.1. Электронная система.

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

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

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

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

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

Рис. 1.2. Программируемая (она же универсальная) электронная система.

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

Кроме того, универсальность, как правило, приводит к существенному снижению быстродействия. Оптимизировать универсальную систему так, чтобы каждая новая задача решалась максимально быстро, попросту невозможно. Общее правило таково: чем больше универсальность, гибкость, тем меньше быстродействие. Более того, для универсальных систем не существует таких задач (пусть даже и самых простых), которые бы они решали с максимально возможным быстродействием. За все приходится платить.

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

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

1.1. Что такое микропроцессор?

Ядром любой микропроцессорной системы является микропроцессор или просто процессор (от английского processor). Перевести на русский язык это слово правильнее всего как «обработчик», так как именно микропроцессор - это тот узел, блок, который производит всю обработку информации внутри микропроцессорной системы. Остальные узлы выполняют всего лишь вспомогательные функции: хранение информации (в том числе и управляющей информации, то есть программы), связи с внешними устройствами, связи с пользователем и т.д. Процессор заменяет практически всю «жесткую логику», которая понадобилась бы в случае традиционной цифровой системы. Он выполняет арифметические функции (сложение, умножение и т.д.), логические функции (сдвиг, сравнение, маскирование кодов и т.д.), временное хранение кодов (во внутренних регистрах), пересылку кодов между узлами микропроцессорной системы и многое другое. Количество таких элементарных операций, выполняемых процессором, может достигать нескольких сотен. Процессор можно сравнить с мозгом системы.

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

Рис. 1.3. Информационные потоки в микропроцессорной системе.

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

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

Для выполнения команд в структуру процессора входят внутренние регистры, арифметико-логическое устройство (АЛУ, ALU - Arithmetic Logic Unit) , мультиплексоры, буферы, регистры и другие узлы. Работа всех узлов синхронизируется общим внешним тактовым сигналом процессора. То есть процессор представляет собой довольно сложное цифровое устройство (рис. 1.4).

Рис. 1.4. Пример структуры простейшего процессора.

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

1.2. Шинная структура связей

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

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

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

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

Рис. 1.6. Шинная структура связей.

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

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

Типичная структура микропроцессорной системы приведена на рис. 1.10. Она включает в себя три основных типа устройств:

процессор;

память, включающую оперативную память (ОЗУ, RAM - Random Access Memory) и постоянную память (ПЗУ, ROM -Read Only Memory), которая служит для хранения данных и программ;

устройства ввода/вывода (УВВ, I/O - Input/Output Devices), служащие для связи микропроцессорной системы с внешними устройствами, для приема (ввода, чтения, Read) входных сигналов и выдачи (вывода, записи, Write) выходных сигналов.

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

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

шина адреса (Address Bus);

шина данных (Data Bus);

шина управления (Control Bus);

шина питания (Power Bus).

Шина адреса служит для определения адреса (номера) устройства, с которым процессор обменивается информацией в данный момент. Каждому устройству (кроме процессора), каждой ячейке памяти в микропроцессорной системе присваивается собственный адрес. Когда код какого-то адреса выставляется процессором на шине адреса, устройство, которому этот адрес приписан, понимает, что ему предстоит обмен информацией. Шина адреса может быть однонаправленной или двунаправленной.

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

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

Наконец, шина питания предназначена не для пересылки информационных сигналов, а для питания системы. Она состоит из линий питания и общего провода. В микропроцессорной системе может быть один источник питания (чаще +5 В) или несколько источников питания (обычно еще –5 В, +12 В и –12 В). Каждому напряжению питания соответствует своя линия связи. Все устройства подключены к этим линиям параллельно.

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

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

Таким образом, в микропроцессорной системе все информационные коды и коды команд передаются по шинам последовательно, по очереди. Это определяет сравнительно невысокое быстродействие микропроцессорной системы. Оно ограничено обычно даже не быстродействием процессора (которое тоже очень важно) и не скоростью обмена по системной шине (магистрали), а именно последовательным характером передачи информации по системной шине (магистрали).

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

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

1.3. Режимы работы микропроцессорной системы

Как уже отмечалось, микропроцессорная система обеспечивает большую гибкость работы, она способна настраиваться на любую задачу. Гибкость эта обусловлена прежде всего тем, что функции, выполняемые системой, определяются программой (программным обеспечением, software), которую выполняет процессор. Аппаратура (аппаратное обеспечение, hardware) остается неизменной при любой задаче. Записывая в память системы программу, можно заставить микропроцессорную систему выполнять любую задачу, поддерживаемую данной аппаратурой. К тому же шинная организация связей микропроцессорной системы позволяет довольно легко заменять аппаратные модули, например, заменять память на новую большего объема или более высокого быстродействия, добавлять или модернизировать устройства ввода/вывода, наконец, заменять процессор на более мощный. Это также позволяет увеличить гибкость системы, продлить ее жизнь при любом изменении требований к ней.

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

Практически любая развитая микропроцессорная система (в том числе и компьютер) поддерживает три основных режима обмена по магистрали:

программный обмен информацией;

обмен с использованием прерываний (Interrupts);

обмен с использованием прямого доступа к памяти (ПДП, DMA - Direct Memory Access).

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

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

Рис. 1.11. Программный обмен информацией.

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

В общем случае организовать реакцию на внешнее событие можно тремя различными путями:

с помощью постоянного программного контроля факта наступления события (так называемый метод опроса флага или polling);

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

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

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

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

Во втором случае в режиме прерывания процессор, получив запрос прерывания от внешнего устройства (часто называемый IRQ - Interrupt ReQuest), заканчивает выполнение текущей команды и переходит к программе обработки прерывания. Закончив выполнение программы обработки прерывания, он возвращается к прерванной программе с той точки, где его прервали (рис. 1.12).

Здесь важно то, что вся работа, как и в случае программного режима, осуществляется самим процессором, внешнее событие просто временно отвлекает его. Реакция на внешнее событие по прерыванию в общем случае медленнее, чем при программном режиме. Как и в случае программного обмена, здесь все сигналы на магистрали выставляются процессором, то есть он полностью контролирует магистраль. Для обслуживания прерываний в систему иногда вводится специальный модуль контроллера прерываний, но он в обмене информацией не участвует. Его задача состоит в том, чтобы упростить работу процессора с внешними запросами прерываний. Этот контроллер обычно программно управляется процессором по системной магистрали.

Рис. 1.12. Обслуживание прерывания.

Естественно, никакого ускорения работы системы прерывание не дает. Его применение позволяет только отказаться от постоянного опроса флага внешнего события и временно, до наступления внешнего события, занять процессор выполнением каких-то других задач.

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

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

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

Рис. 1.13. Обслуживание ПДП.

Рис. 1.14. Информационные потоки в режиме ПДП.

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

Если в системе уже имеется самостоятельный контроллер ПДП, то это может в ряде случаев существенно упростить аппаратуру устройств ввода/вывода, работающих в режиме ПДП. В этом, пожалуй, состоит единственное бесспорное преимущество режима ПДП.

1.4. Архитектура микропроцессорных систем

До сих пор мы рассматривали только один тип архитектуры микропроцессорных систем - архитектуру с общей, единой шиной для данных и команд (одношинную, или принстонскую, фон-неймановскую архитектуру). Соответственно, в составе системы в этом случае присутствует одна общая память, как для данных, так и для команд (рис. 1.15).

Рис. 1.15. Архитектура с общей шиной данных и команд.

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

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

Рассмотрим некоторые достоинства и недостатки обоих архитектурных решений.

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

Рис. 1.16. Архитектура с раздельными шинами данных и команд.

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

В чем же преимущество архитектуры с двумя шинами (гарвардской)? В первую очередь, в быстродействии.

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

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

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

1.5. Типы микропроцессорных систем

Диапазон применения микропроцессорной техники сейчас очень широк, требования к микропроцессорным системам предъявляются самые разные. Поэтому сформировалось несколько типов микропроцессорных систем, различающихся мощностью, универсальностью, быстродействием и структурными отличиями. Основные типы следующие:

микроконтроллеры - наиболее простой тип микропроцессорных систем, в которых все или большинство узлов системы выполнены в виде одной микросхемы;

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

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

компьютеры (в том числе персональные) - самые мощные и наиболее универсальные микропроцессорные системы.

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

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

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

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

Наконец, компьютеры и самые распространенные из них - персональные компьютеры - это самые универсальные из микропроцессорных систем. Они обязательно предусматривают возможность модернизации, а также широкие возможности подключения новых устройств. Их системная шина, конечно, доступна пользователю. Кроме того, внешние устройства могут подключаться к компьютеру через несколько встроенных портов связи (количество портов доходит иногда до 10). Компьютер всегда имеет сильно развитые средства связи с пользователем, средства длительного хранения информации большого объема, средства связи с другими компьютерами по информационным сетям. Области применения компьютеров могут быть самыми разными: математические расчеты, обслуживание доступа к базам данных, управление работой сложных электронных систем, компьютерные игры, подготовка документов и т.д.

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

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

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

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

1.1 Определение микропроцессора

В начале 70-х годов успехи технологии в микроэлектронике привели к созданию новой элементной базы электроники - микроэлектронных больших интегральных схем (БИС) {модуль 1 глава 1.6.3} . По степени интеграции (количеству активных элементов: диодов и транзисторов) интегральные схемы (ИС) условно подразделяются на ИС малой степени интеграции - до 100 активных элементов, средней степени интеграции (СИС) - до 1000 активных элементов, БИС - свыше 1000 активных элементов, СБИС - свыше 10000 элементов. Выпуск новой БИС при современном уровне автоматизации проектирования - очень сложный и дорогой процесс из-за больших первоначальных затрат на разработку ее логической структуры и топологии, изготовления фотошаблонов и технологической подготовки производства. Это 0,5-1 год работы большого коллектива. Поэтому изготовление БИС экономически оправдано при их выпуске, исчисляемом десятками-сотнями тысяч штук в год. Выпускать специализированные БИС для каждого конкретного применения практически не реально. В результате поиска областей массового применения микросхем с высоким уровнем интеграции их разработчиками была предложена идея создания одной универсальной БИС или некоторого набора БИС, специализация которых для каждого конкретного случая применения достигается не схемно, а программно. Так появились стандартные универсальные элементы - микропроцессорные БИС со структурой, аналогичной структуре ЭВМ.

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


1.2 Технология изготовления МП БИС

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

БИС, изготавливаемые по биполярной технологии, различаются по схематическим способам реализации. В основном применяется транзисторно-транзисторная логика с диодами Шоттки (ТТЛШ) и эмиттерно-связанная логика (ЭСЛ). В логике ТТЛШ используются биполярные n-p-n транзисторы, дополненные диодами Шоттки (ДШ). ДШ представляет собой выпрямительный контакт на границе металл-полупровод­ник Al-nSi. В металле и кремнии основные носители одного и того же типа - электроны, а неосновных носи­телей нет. ДШ открываются при U=0,1-0,3 В и имеют крутую вольт-амперную характеристику. Они под­ключаются параллельно коллекторному переходу n-p-n транзистора и образуют транзистор Шоттки, изготав­ливаемый в едином технологическом процессе. Применение ДШ значительно повышает быстродействие транзистора, так как устраняется насыщение коллекторного перехода и нет рассасывания зарядов в нем.

Первое поколение

4004 – 1971 г.

История МП началась в 1971 году, когда фирма INTEL (ее название произошло от слов Integrated Elecronics) выпустила первый МП i4004, изготовленный по p-МОП техно­логии с разрешением 10 мкм. Он имел разрядность данных 4 бита, способность адресовать 640 байт памяти, тактовую частоту f=108 кГц и выполнял 60 тыс.оп./сек. Такой процессор уже мог работать в качестве вычислительного ядра калькулятора. Он содержал 2300 транзисторов.

8008 – 1972 г.

В 1972 г. появился первый усовершенствованный восьмиразрядный МП i8008, изготов­ленный также по р-МОП технологии. Он был размещен в корпусе c 16-ю выводами. Выполнял 48 команд, адресовал 16 Кб памяти, f=800 КГц. Имел 7 внутренних 8-разрядных регистра и 7-уровневый внутренний стек.

Второе поколение

8080 – 1974 г.

В 1974 г. появился МП i8080, изготовленный по n-МОП технологии с разрешением 6 мкм, что позволило разместить в кристалле 6000 транзисторов. Процессор требовал трех источников питания (+5,+12,-5 В) и сложной двухтактной синхронизации с частотой 2 МГц. Его полный аналог российского производства КР580ВМ80 подробно рассмотрен выше. В это же время фирмой Motorola был выпущен МП М6800, отличающийся от i8080 тем, что имел одно напряжение питания, более мощную систему прерываний, содержал два аккумулятора, но не имел РОН. Данные для обработки извлекались из внешней памяти и потом возвращались туда же. Команды работы с памятью короче и проще чем в ВМ80, но пересылка занимает больше времени. Преимуществ во внутренней структуре М6800 не выявилось и до настоящего времени. Остались два конкурирующих семейства Intel и Motorola. Однако большую часть как мирового, так и российского рынка занимает продукция фирмы Intel.

Следующим стал процессор i8085 (f=5МГц, 6500 транзисторов, 370 тыс.оп./с., 3-мкм технология). Он сохранил популярную регистровую архитектуру i8080 и программную совместимость, но в него добавили порт последовательного интерфейса, тактовый генератор и системный контроллер. Напряжение питания одно: +5В.

Z80 – 1977 г.

Часть разработчиков фирмы Intel, не согласных с рядом решений руководства, перешли в фирму Zilog и в 1977 г. создали МП Z80 (российский аналог К1810ВМ80). Этот МП был использован в английском компьютере "Спектрум" фирмы Sincler ,который считался лучшим представителем 8-разрядных МП 2-го поколения.

Третье поколение

8086 – 1978 г.

Это поколение МП фирмы Intel заложило основу современных персональных компьютеров. В 1978 г. был выпущен 16-разрядный процессор i8086. Его данные: f=5 МГц, производительность 330 тыс.оп./с., технология 3мкм, 29 тыс. транзисторов. В нем начала использоваться сегментация памяти и новая схема кодирования команд.

8088 – 1979 г.

Однако слишком сложная и дорогая технология производства этого процессора вынудила фирму Intel c 1979 г. некоторое время выпускать несколько упрощенный вариант под названием i8088, шина данных которого была только 8 бит. Именно этот процессор фирма IBM выбрала для своего первого персонального компьютера модели IBM PC/XT.

80186 – 1980 г.

В 1980 г. создан МП i80186. В нем, по сравнению с i8086, дополнительно включены два независимых скоростных канала ПДП, программируемый контроллер прерываний, генерируются сигналы выбора 7 периферийных устройств. Имеется 16 внутренних программируемых таймеров, два из них имеют выход наружу, остальные могут создавать временные задержки. Очередь команд - 6 байтов (в i8088 - 4 байта). Имеется 10 дополнительных команд, ускоряющих выполнение программ по сравнению с i8086. Однако широкого применения в компьютерах данный процессор не получил.

Четвертое поколение

80286 – 1982 г.

В 1982 г. появился процессор i80286, который был использован фирмой IBM в компьютере PC/AT (AT - Advanced Technology - перспективная технология). Он уже имел 134 тыс. транзисторов (технология 1,5 мкм) и адресовал до 16 Мб физической памяти. Он мог работать в двух режимах: реальном и защищенном. В реальном режиме i80286 работает как i8086 с повышенным быстродействием (f до 20 МГц). Память рассматривается как некоторое число сегментов, каждый из которых содержит 2 16 байт. Сегменты начинаются с адресов, кратных 16 (младшие 4 адресных бита всегда равны 0). Сегменты могут задаваться в программах произвольно. Адреса сегментов хранятся в сегментных регистрах. В защищенном режиме старший адрес сегмента не вычисляется путем добавления 4-х младших нулей, а извлекается из таблиц, индексируемых с помощью сегментных регистров. Это позволяет работать с большими массивами информации, объем которых превышает объем физической памяти. Если физическая память полностью загружена, то непоместившиеся данные располагаются на винчестере. Кроме того, в защищенном режиме возможна поддержка мультизадачного режима. Для этой цели была создана операционная система OS/2.

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

Пятое поколение

80386 – 1985 г.

Первым его представителем был 32-х разрядный МП i80386DX, содержащий 275 тыс. транзисторов, технология 1,5 мкм, адресуемая физическая память 4 Гб. Появились новые регистры, новые 32-битные операции.

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

После сброса или подачи напряжения питания МП переходит в реальный режим и работает как очень быстрый i8086, но, по желанию программиста, с 32-мя разрядами. Все действия: адресация, обращение к памяти, обработка прерываний выполняется как в i8086. Второй режим - защищенный, включается загрузкой в регистр управления определенного слова состояния. В этом случае МП работает как i80286 в защищенном режиме. Реализуется многозадачность, защита памяти с помощью четырехуровневого механизма привилегий и ее страничной организации. МП работает как несколько виртуальных процессоров с общей памятью, каждый из которых может быть в режимах i8086, i80286 или i80386.

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

80386 SX – 1988 г.

В 1988 г. появился процессор i80386SX, который заполнил промежуток между уже устаревшим процессором i80286 и очень дорогим процессором i80386DX. Замена на материнской плате устаревшего процессора i80286 на i80386DX невозможна из-за большей ширины шины данных последнего. Процессор i80386SX такую замену позволяет. Внутренние процессы в i80386SX происходят также как в i80386DX, но связь с "внешней средой" осуществляется только через 16-разрядную шину. В результате, общение происходит в 2 шага по 16 бит, что замедляет работу примерно на 10%. Другое ограничение процессора i80386SX - 24-разрядная адресная шина,что ограничивает размер оперативной памяти до 16Мб. Вслед за рассмотренным МП i80386SX фирма Intel создала и поставила на рынок процессор i80386SL с тактовой частотой 33 МГц, построенный на КМОП структурах, которые обеспечивают минимальный расход электроэнергии. Благодаря этому стали развиваться персональные компьютеры типа Notebook, работающие от батареи.

Шестое поколение

80486 – 1989 г.

Оно появилось в 1989 г. как МП i80486DX. В отличие от МП предыдущих поколений этот МП не представляет что-то принципиально новое.В нем в одном кристалле были скопированы процессор i80386, сопроцессор i80387 и первичный кэш емкостью 8 Кбайт.

Примечание.

Несмотря на доставшуюся от МП i80386 32-разрядную архитектуру, в результате совмещения процессора, сопроцессора и кэша на одном кристалле и других усовершенствований,i80486 при той же тактовой частоте производит вычисления в 3-4 раза быстрее, чем его предшественник.

Фирма Intel все время совершенствовала этот процессор, и были выпущены МП i80486DX2, в котором внешняя тактовая частота удваивается собственным кварцем микросхемы, и i80486DX4, в котором частота умножается на 3. В этих процессорах все команды, для которых не нужна передача данных на внешнюю шину, выполняются в 2 -3 раза быстрее. Только время, затрачиваемое на доступ к оперативной памяти и более медленная периферия снижают скорость работы. Кроме того, в i80486DX4 кэш память увеличена до 16 Кбайт.

Поколения Pentium

Pentium P5 – 1993 г.

В 1993 г. появился i80586, которому было дано имя Pentium (P5). Это был 32 разрядный процессор с внешней тактовой частотой 66 МГц, построенный по субмикронной технологии с КМОП структурой (0,8 мкм), содержащей 3,1 млн. транзисторов. Pentium имеет два 32-битных адресных пространства (логическое и физическое), 64 - разрядную шину данных, 2 конвейерные линии обработки команд, работающие параллельно. Одновременно выполняются два набора команд. Кэш память объемом 16 Кбайт разделена: 8 Кбайт - кэш команд и 8 Кбайт - кэш данных. Содержится новый блок вычислений с плавающей точкой, в котором операции выполняются в 4-8 раз быстрее, чем в i80486.

Р54, Pentium Pro – 1994 г.

В 1994 г. появились процессоры Pentium второго поколения (P54). При почти том же числе транзисторов они выполнялись по технологии 0,6 мкм, что позволило снизить потребляемую мощность. Напряжение питания снижено до 3,3 В. Применено внутреннее умножение частоты. При этом интерфейсные схемы вешней системной шины работают на частотах 50,60,66 МГц, а ядро процессора работает на более высокой частоте (75,90,100,120,133, 150, 166 и 200 МГц). Разделение частот позволяет реализовать достижения технологии изготовления МП, существенно опережающие возможности повышения производительности памяти. Коэффициент умножения (1,5;2;2,5;3)задается комбинацией уровней сигналов на двух управляющих входах. Процессоры с различными значениями f, указанными в маркировке на корпусе, изготавливают по одним и тем же шаблонам. Маркировка частоты наносится после жестких выбраковочных испытаний. В зависимости от астоты, на которой МП полностью прошел выходной контроль.

Параллельно с Pentium развивался и процессор Pentium Pro. Его главное отличие принципа организации вычисления - динамическое исполнение. При этом внутри процессора инструкции могут исполняться не в том порядке, который предполагает программа. Это повышает производительность без увеличения частоты f. Кроме того, применена архитектура двойной независимой шины, повышающая суммарную пропускную способность. Одна шина - системная, служит для общения ядра с основной памятью и интерфейсными устройствами. Другая предназначена исключительно для обмена со вторичным кэшем объемом 256 Кбайт (512 Кбайт), интегрированным в корпусе МП. Для уменьшения нагрева кристалла предусмотрена возможность мгновенного снижения потребляемой мощности приблизительно в 10 раз путем прекращения тактирования большинства узлов процессора. В это состояние МП переходит по сигналу от внутреннего датчика температуры, а также при выполнении команды HALT.

Pentium MMX – 1997 г.

В 1997 г. выпущен процессор Pentium ММХ (Р55С). Технология ММХ представляет собой наиболее существенное улучшение архитектуры процессоров Intel с момента появления i80386. Кристалл Pentium ММХ имеет площадь на 50 % больше чем классический Pentium. Буферные схемы выходных цепей микросхемы работают при напряжении 3,3 В, внутренняя схема - 2,8 В для настольных и 2,45 В для портативных моделей компьютера.

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

Сущность технологии ММХ состоит в появлении в процессоре 8 новых виртуальных 64-разрядных регистров и 57 новых команд для решения задач мультимедиа. Восемь новых регистров являются виртуальными потому, что физически эти регистры являются регистрами сопроцессора. Таким образом сохраняется совместимость с предыдущими поколениями программ.

Pentium II – 1997 г.

В мае 1997 г. на рынке появился Pentium II, изготовленный по 0,3 мкм технологии. Он представляет собой слегка урезанный вариант ядра Pentium Pro с более высокой внутренней тактовой частотой, в которое ввели поддержку ММХ. В этом процессоре применена новая технология - кристалл с ядром процессора и набор кристаллов статической памяти и дополнительных схем, реализующих вторичный кэш, размещены на небольшой печатной плате - картридже. Все кристаллы закрыты общей крышкой и охлаждаются специальным вентилятором.

Внутренняя тактовая частота 233,266,300 МГц, внешняя осталась 66,6 МГц.

Процессор имеет дополнительные режимы пониженного энергопотребления:
1. Sleep ("Спящий режим"), когда он не тактирует свои внутренние узлы, кроме схемы умножителя частоты.
2. Deep sleep ("Глубокий сон"). Возникает при снятии внешних тактовых импульсов. В этом режиме процессор не выполняет никаких функций и потребляемый ток определяется только токами утечки.

Pentium III – 1999 г.

В 1999 г. появился процессор Pentium III с тактовой частотой 600 МГц, содержащий 9,5 млн. транзисторов. По заявлению компании Intel этот процессор позволит получать из Интернет аудио- и видеоинформацию, а также трехмерную графику высочайшего качества. По прогнозам компаний-производителей дальнейшее развитие технологии производства МП будет идти в направлении увеличения плотности транзисторов на кристалле, роста числа слоев металлизации и повышении тактовой частоты, наряду с уменьшением напряжения питания и удельной(на один транзистор) потребляемой электрической и выделяемой тепловой энергии. В настоящее время выпускается процессор Pentium IV тактовая частота которого достигла 3000 МГц.

Технологический предел линейных размеров транзисторов на кристалле, обусловленный физическими ограничениями, составляет около 0,05 мкм. На пути дальнейшей минимизации кроме физических ограничений имеются и экономические. Для каждого следующего поколения микросхем стоимость технологии удваивается. В 1986 г. i80386 выпускался на заводе стоимостью 200 млн. долларов. В настоящее время завод компании Intel стоит 2,4 млрд. долларов. Следовательно, завод, производящий микросхемы по технологии 0,25 мкм будет стоить 10 млрд.долларов. Возрастают сроки изготовления МП. Так процессор Pentium производится за 6 месяцев, а более новый Pentium Pro - за 9 месяцев. Смена поколений МП происходит каждые 2-3 года. С каждым поколением линейные размеры элементов уменьшаются примерно в 1,5 раза. В 2000 г. ширина проводников составляла 0,2 мкм, а в 2006 г. достигла 0,1 мкм, тактовая частота уже превысила 2000 МГц.

Вышеприведенные краткие данные о развитии МП на примере продукции фирмы Intel показывают, как стремительно развивается и совершенствуется производство МП. Ни одна отрасль техники не развивается столь быстро. Об этом очень образно выразился основатель фирмы Intel Гордон Мур: "Если бы автомобилестроение развивалось со скоростью полупроводниковой промышленности, то сегодня "Роллс-Ройс" стоил бы 3 доллара, мог бы проехать полмиллиона миль на одном галлоне бензина и было бы дешевле его выбросить, чем платить за парковку".

В приведенном обзоре рассмотрены процессоры только фирмы Intel. Необходимо отметить, что аналогичный путь развития проходит и технология других фирм, выпускающих процессоры, таких как AMD, Cyrix, Motorola и других. Но ведущим "законодателем мод" в этой борьбе за качество остается Intel.


9 Микропроцессоры и микроЭВМ в информационно-измерительной аппаратуре

9.1 Основные функции МП в измерительной аппаратуре

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

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

МП расширяет измерительные возможности приборов за счет использования косвенных и совокупных измерений. При косвенных измерениях измеряется не искомый параметр, а другие параметры, с которыми искомый связан функциональной зависимостью. Например, мощность может быть определена путем измерения напряжения и сопротивления и рассчитана по формуле P=U 2 /R. При использовании метода совокупных измерений одновременно измеряется несколько одноименных физических величин, при которых искомые значения величин находятся путем решения системы уравнений. МП при этом программируется на реализацию необходимых аналитических зависимостей.


9.2 Примеры использования МП в измерительной аппаратуре

9.2.1 Микропроцессорный цифровой частотомер

Для измерения высоких частот используется прямой метод, в котором выбирается определенный интервал времени и подсчитывается число периодов исследуемого сигнала. Точность измерения повышается с увеличением числа периодов N. На низких частотах это потребовало бы слишком большой интервал времени. Поэтому на низких частотах используется косвенный метод. Ширина временных ворот выбирается кратной периоду исследуемого сигнала qT x , ворота заполняются импульсами генератора известной частоты F сч, и подсчитывается число импульсов n. Оба метода иллюстрирует рис.9-1


Рис.9-1 Временные диаграммы процесса измерения частоты.

Здесь:
а - измеряемый сигнал;
б - сигнал, преобразованный в последовательность импульсов;
в - временной интервал при косвенном измерении;
г - импульсы заполнения при косвенном измерении;
д - временной интервал при прямом измерении;
е - пачка импульсов при прямом измерении.

На рис.9-2 приведена структурная схема прибора для измерения частоты сигнала прямым и косвенным методом под управлением МП, в которой отмечены точки, соответствующие временным диаграммам.


Рис.9-2

Прямой метод

При А 0 =1 реализуется прямой метод измерения. Мультиплексоры выбирают входы х 1 . МП создает временные ворота длительностью Т. Если счетчик в этом интервале насчитал N импульсов, то Т=nT x ,или T=n/F x ,отсюда F x =n/T.

Косвенный метод

При А 0 =0 выбираются х 0 входы мультиплексоров, и реализуется косвенный метод измерения. Формирователь временных ворот содержит делитель частоты с коэффициентом пересчета q=2 к, где k выбирается так, чтобы получить число имульсов (график г), обеспечивающее требуемую точность измерения F x . В интервале qT x уложилось n импульсов qT x =nT сч или q/F x =n/F сч, поэтому F x =qF сч /n.


9.2.2 Широкодиапазонный частотомер

В нем используется гетеродинный метод понижения частоты измеряемого сигнала. Если смешать измеряемый сигнал F изм с сигналом гетеродина (вспомогательного генератора) F 1 , то в результате образуются сигналы с частотами F изм +nF 1 и F изм -nF 1 . Для понижения частоты используется вариант F изм -nF 1 =F пр, где F пр - промежуточная частота, выделяемая следующим блоком.


Рис.9-3

ПСЧ - программируемый синтезатор частоты (гетеродин).
УПЧ - усилитель промежуточной частоты.
ЦЧ - цифровой частотомер типа рис.9-2

При работе МП изменяет F синт до значения F" синт, при котором

F изм -F" синт =F пр. Тогда F изм =F пр +nF" синт.


9.2.3 Измерительный генератор с МП управлением

Наиболее часто используются функциональные генераторы, вырабатывающие сигналы различной формы (треугольные, прямоугольные, синусоидальные и другие) с нормируемыми метрологическими характеристиками. Частотный дипазон таких генераторов 10 -6 Гц - 50*10 6 Гц. На рис.9-4 показана структурная схема такого генератора.


Рис.9-4

Здесь БС - программируемый блок счетчиков, ГТИ - программируемый генератор тактовых импульсов.

После ввода оператором функции f(t) для генерирования сигнала той же формы, МП вычисляет отсчеты f(t i) на интервале одного периода с заданной частотой выборки. Отсчеты записываются в ОЗУ. Выходной сигнал ГТИ поступает на БС, где формируется адрес ОЗУ.


9.2.4 Цифровые фильтры

Цифровой фильтр - устройство, осуществляющее пробразование одного дискретного сигнала x n в другой дискретный сигнал y n , причем сами сигналы x n и y n представляют собой двоичные цифровые коды.

Аналоговый фильтр представляет собой частотно избирательную цепь, осуществляющую некоторое линейное преобразование над непрерывным входным сигналом U 1 (t) в непрерывный выходной сигнал U 2 (t). В отличие от него, цифровой фильтр выполняет преобразование входной цифровой последовательности x(nT) в выходную цифровую последовательность y(nT). Рассмотрим преобразование аналогового фильтра в цифровой на примерах простейших фильтров.

Простейший аналоговый фильтр ВЧ представляет собой RC-цепь (рис 9-5).


Рис.9-5

Определим соотношение между входным и выходным напряжением.

U 2 (t)=i(t)*R=RC*d(U 1 -U 2)/dt (1)

Представим U 1 (t) и U 2 (t) соответствующими цифровыми последовательностями U 1 =x(nT) и U 2 =y(nT), тогда:

Подставив (2) в (1), получим:

Обозначим

.

Полученное выражение определяет алгоритм расчета выходного сигнала фильтра Y n на n-ом шаге квантования в зависимости от его значения на предыдущем n-1 -ом шаге, значений входного сигнала X n , X n -1 и шага дискретизации τ. Определим переходную характеристику фильтра ВЧ.

Если выбрать шаг дискретизации τ=1, то получим

X(nT)=1 при n>=0,X(nT)=0 при n<0.

При более мелком шаге τ=0,125 имеем

При использовании аналогового фильтра решение его дифференциального уравнения дает

На рис.90-6 приведены значения выходного сигнала, рассчитанного по формулам (3), (4) и (5) и соответствующие графики.


Рис.9-6

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

Простейший аналоговый фильтр НЧ, изображен на рис 9-7.


Рис 9-7

Он описывается уравнением:

Перейдем к приращениям:

и, окончательно:

Можно показать, что и в этом случае при уменьшении τ, переходная характеристика цифрового фильтра неограниченно приближается к переходной характеристике аналогового фильтра.

В цифровых фильтрах все сводится к операциям умножения на некоторые коэффициенты и сложения. Вышерассмотренные фильтры являются фильтрами первого порядка. Лучшие результаты дают фильтры более высоких порядков, в которых для вычисления выходной величины Y n используются значения х и у, задержанные на несколько шагов.

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


10 Тестирование микропроцессорных систем

10.1 Тестирование статическими сигналами

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


10.2 Автодиагностика микропроцессорных систем

Автодиагностика - это встроенная диагностика, основанная на использовании внутренних диагностических программ. Эти программы могут быть самозапускаемыми или вызываемыми пользователем системы. Они закладываются при проектировании микропроцессорной системы.


10.3 Логические анализаторы

Тестирование статическими сигналами - это медленный и не всегда применимый процесс. Более универсальным является применение специальных приборов - логических анализаторов.


10.3.1 Анализаторы логических состояний (синхронный режим)

Они выпускаются 8-, 12-, 16- и 32-х разрядными. Выходная информация выдается в виде таблиц единиц и нулей, восьмеричных или шестнадцатиричных кодов. Анализатор подключается к тестируемой шине, и на табло или дисплей выдается таблица n состояний шины, начиная с заданного состояния, или n предшествующих состояний. Строятся подобные анализаторы по структурной схеме рис.10-1.


Рис.10-1

К0-К15 - компараторы входных сигналов;
R - потенциометр для установки уровня компарирования;
KC - компаратор слов;
Кл - клавиатура ввода слова;
ФУС - формирователь управляющего сигнала;
Рг0-Рг15 - сдвиговые регистры {модуль 2 глава 7.2} для записи 16-ти значений i-го входа;
f:n - делитель частоты; БПр - блок преобразования.

В начале работы логического анализатора на клавиатуре набирается слово, начиная с которого производится анализ. При совпадении кода на выходах К0-К15 и набранного кода КС выдает импульс, под воздействием которого ФУС формирует управляющие сигналы УС1 и УС2. При поступлении каждого тактового импульса ТИ на выходе счетчика - делителя появляется счетный импульс УС1*ТИ. После поступления n тактовых импульсов конъюнктор &2 закрывается, и запись в регистры прекращается. Блок преобразования из n выходных значений регистров Рг0-Рг15 формирует на экране дисплея таблицу, содержащую n строк.


10.3.2 Анализаторы логических временных диаграмм (асинхронный режим)

Такие анализаторы сканируют входные сигналы с частотой, значительно превосходящей частоту сигналов. Это позволяет не только определять наличие или отсутствие сигнала в каждом тактовом периоде, но и исследовать динамику изменения, обнаруживать искажения фронта, кратковременные пики, провалы и т.д. Анализаторы асинхронного режима тактируются значительно большей внутренней частотой. Выпускаются приборы с f=20, 50, 100, 200 МГц. В них применяются дополнительные триггерные схемы фиксации ложных импульсов до 5 нс, что позволяет значительно легче обнаруживать такие импульсы.


10.4 Внутрисхемные эмуляторы

Эмуляция - процесс, в котором одна система используется для воспроизведения свойств другой системы. Для организации эмуляции различных компонентов разрабатываемого микропроцессорного устройства используются внутрисхемные эмуляторы. Они предназначены для организации комплексной отладки разработки. Промышленность выпускает эмуляторы в виде автономных приборов. Они эмулирют поведение микропроцессора, запоминающих устройств, периферийных устройств.

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


10.5 Сигнатурный анализ

Сигнатура - это число состоящее из 4-х знаков шестнадцатиричного кода и условно, но однозначно характеризующее определенный узел контролируемого устройства. Сигнатура определяется на заводе - изготовителе прибора и указывается в отдельных точках схемы (рис.10-2) или в инструкции к прибору.

Рис.10-2 Сигнатуры, указываемые на схеме устройства

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


Рис.10-3

Вероятность получения одинаковых сигнатур для двух двоичных последовательностей, отличающихся друг от друга одним битом, равна нулю, а отличающихся несколькими ошибочными битами равна 0,00001526. Иначе говоря, достоверность обнаружения ошибки >=99,998%. Проверка отдельных узлов устройства сводится к определению сигнатуры на выходе узла. Если она совпадает с заводской - узел исправен.


11 Обеспечение помехозащищенности микропроцессорных систем

11.1 Подавление помех по первичной питающей сети

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


Рис.11-1

Для подавления кратковременных помех устанавливается сетевой фильтр рис.11-2.


Рис.11-2

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


11.2 Подавление сетевых помех в блоке питания

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

Методы подавления:
1. Первичная и вторичная обмотки силового трансформатора располагаются на разных катушках. Это значительно уменьшает межобмоточную емкостную связь, но снижает кпд трансформатора.
2. Обмотки располагаются на одной катушке, но разделяются экраном из медной фольги толщиной не менее 0,2 мм, который соединяется с корпусной землей. Экран ни в коем случае не должен быть короткозамкнутым!
3. Первичная обмотка полностью заключается в экран (не короткозамкнутый), который заземляется.
4. Первичная и вторичная обмотки заключаются в отдельные экраны, и между ними размещается разделительный экран. Все экраны заземляются. Параллельно первичной обмотке подключается цепочка из последовательно соединенных С=0,1 мкФ и R=100 Ом для гашения энергии в момент выключения.

11.3 Правила заземления

В конструктивно-законченных блоках всегда имеются два типа шин «земли» - корпусная и схемная.

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

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

Наименьшие взаимные помехи получаются в том случае, когда схемные шины «земли» объединяются в одной точке, а корпусные - в другой точке (рис.11-3). Расстояние между точками подбирается экспериментально. В некоторых случаях точка А может не подключаться к шине земли помещения.


Рис.11-3


11.4 Подавление помех по цепям вторичного электропитания

В моменты переключения интегральных схем и в двухтактных выходных схемах возникают большие броски тока. Из-за конечной индуктивности шин питания на платах они вызывают импульсы напряжения. Если шины тонкие, и нет развязывающих емкостей, то на «дальнем» конце шины возникают импульсы с амплитудой до 2В! Уровень таких импульсов соответствует логической единице, что вызывает сбои. Для устранения этого эффекта необходимо выполнить следующие рекомендации:
1. Шины питания и земли на платах должны иметь минимальную индуктивность. Для этого им придается решетчатая структура, покрывающая всю свободную поверхность платы.
2. Подключение внешних шин питания и земли к плате производится через несколько контактов, равномерно распределенных на разъеме.
3. Производится подавление помех вблизи мест их возникновения. Для этого около каждой ТТЛ схемы устанавливается конденсатор С=0,02 мкФ для устранения высокочастотных помех, и на группу из 10-15 схем дополнительно устанавливается электролитический конденсатор С=100 мкФ.