Форма входа

Поиск



Счетчик посетителей

Рейтинг@Mail.ru

Разработано jtemplate модули Joomla

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

В данной статье рассматривается типовая архитектура микропроцессорного устройства и ее основные элементы: шины данных, адреса, управления, память, порты ввода/вывода.

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

CPU - центральный процессор (центральное процессорное устройство - ЦПУ)
RAM - оперативное запоминающее устройство (ОЗУ)
ROM - постоянное запоминающее устройство (ПЗУ)
Port I/O - порт ввода/вывода

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

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

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

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

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

ШД - шина данных (DATA bus)
ША - шина адреса (ADDR bus)
ШУ - шина управления (CONTROL bus)

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

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

В вычислительной технике используется необычная размерность для измерения объе-ма памяти. Число 1024 (а это 210) байт информации принято называть Килобайтом. Поче-му 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, разрешающий работу портов.

Как видно из схемы типового микропроцессорного устройства, к одной системной шине могут подключаться несколько модулей памяти, а так же несколько портов. Все устройства ко всем шинам подключаются параллельно. Как же происходит, что процессор записывает информацию в тот модуль памяти, в который нужно и при этом он не попадает в другие модули? Для этого в каждый модуль памяти встроен специальный дешифратор. На него подаются сигналы старших разрядов адресной шины. Далее, при помощи внутренних перемычек, для каждого модуля выбирается свой диапазон адресов с таким расчетом, что бы модули занимали разные не пересекающиеся диапазоны. Для того, что бы это было понятнее, предположим, что мы имеем четыре модуля памяти по шестнадцать ячеек в каждом. Для адресации шестнадцати ячеек достаточно четырех разрядов адресной шины. Еще два разряда понадобятся для то-го, что бы выбирать один из модулей. Поэтому четыре младших разряда шины данных (D0..D3) подаются на все модули памяти параллельно и используются для выбора одной из ячеек в модуле. Следующие два разряда (D4, D5) подаются на дешифраторы выбора модуля. Такие модули еще называют банками памяти. Перемычки в выбираемых модулях при этом нужно установить так, что бы первый модуль (банк памяти) активизировался то-гда, когда разряды D4, D5 примут значение 002. Во втором модуле перемычки должны быть установлены в положение, при котором модуль будет активизироваться если D5, D5 примут значение 012. Третий модуль активизируется при D4, D5 =102, а четвертый при 112. При таком способе включения модулей памяти первый банк памяти будет занимать в адресном пространстве адреса с 0000002 по 0011112. Второй банк - адреса с 0100002 по 0111112. Третий - с 1000002 по 1011112. И четвертый - с 1100002 по 1111112. Таким образом, процессор сможет обращаться к любой ячейке любого банка памяти. И при этом все модули будут подключены ко всем шинам микропроцессорной системы параллельно. В современных микроконтроллерах все элементы микропроцессорной системы: вся память (ОЗУ и ПЗУ), шины данных, шины адреса, шины управления порты ввода вывода, да и сам центральный процессор находятся внутри одной микросхемы - микроконтроллера. Поэтому никаких перемычек переставлять уже не приходится. Однако структура микропроцессорной системы с тех пор не изменилась.

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

Игра