prosdo.ru
добавить свой файл
1 2 ... 6 7
3. ОРГАНИЗАЦИЯ МИКРОПРОЦЕССОРНЫХ СИСТЕМ

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

Чтобы можно было выбрать нужную ячейку памяти для записи или считывания информации, каждая ячейка памяти снабжается адресом, представляющим собой двоичный код определенной разрядности, который подается на вход переключателя ячеек - селектора адреса па­мяти и обеспечивает подключение к шине данных памяти выбранной ячейки памяти. Для 8-разрядных микропроцессоров и микроЭВМ используют­ся 16-разрядные двоичные адресные коды, что позволяет адресовать 216 = 65536 ячеек памяти.

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





­ регистров входит в состав микропроцессора (ее мы рассмотрели выше).

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


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

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

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

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

Запоминающие устройства, реализованные на основе БИС, изготав­ливаются:


  • в виде ПЗУ, программируемых на заводе-изготовителе (так называемые масочные ПЗУ);

  • в виде ПЗУ, допускающих однократное про­граммирование потребителем (ППЗУ);

  • в виде ПЗУ, допускающих стирание за­писанной информации и многократную электрическую запись другой информации (РППЗУ);

  • в виде статических и динамических ОЗУ.

В качестве примера на рис. 3.3 показано схемно-графическое изображение микросхемы ОЗУ К565РУ5. К565РУ5 - микросхема динамической памяти, имеющая логическую организацию 64К1бит ячеек памяти, т.е. ее емкость составляет 65536 однобитовых ячеек памяти.

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

На рис. 3.20 обозначены: А0-А7 – адресные входы, D1 – вход записи информации, D0 – выход считывания информации, RAS – выбор микросхемы – выбор строки матрицы памяти, CAS – выбор столбца матрицы памяти, WE – сигнал управления записью информации.

В целях сокращения числа адресных выводов все адресное пространство микросхемы представлено в виде матрицы 88 ячеек памяти. При выборе ячейки памяти сначала на адресные входы подается 8-битный адрес строки матрицы. Этот адрес запоминается во внутреннем регистре адреса. Затем на эти же входы подается адрес столбца матрицы. Подача адреса столбца стробируется сигналом CAS. В результате формируется полный 16-разрядный адрес ячейки памяти.
3.1.2. Взаимодействие памяти с микропроцессором

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


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

В качестве примера на рис. 3.5 показано подключение к системным шинам 8-разрядного микропроцессора микросхемы ОЗУ типа К537РУ10.
Микросхема представляет собой оперативную память статического типа и имеет 2048 (2 К) 8-разряд-ных ячеек памяти. Емкость памяти составляет 2 Кбайт

Входы-выходы данных D0…D7 соединены с линиями шины данных ШД микропроцессора. Для адресации ячеек памяти служат адресные входы микросхемы A0…A10. Эти входы соединены с соответствующими линиями адресной шины. Используемый для адресации 11-разрядный двоичный код позволяет адресовать 2048 ячеек памяти.

Входы-выходы данных D0…D7 соединены с линиями шины данных ШД микропроцессора. Для адресации ячеек памяти служат адресные входы микросхемы A0…A10. Эти входы соединены с соответствующими линиями адресной шины. Используемый для адресации 11-разрядный двоичный код позволяет адресовать 2048 ячеек памяти.

В
ходы-выходы данных D0…D7 соединены с линиями шины данных ШД микропроцессора. Для адресации ячеек памяти служат адресные входы микросхемы A0…A10. Эти входы соединены с соответствующими линиями адресной шины. Используемый для адресации 11-разрядный двоичный код позволяет адресовать 2048 ячеек памяти.

Поскольку адресная шина микропроцессора имеет 16 разрядов, то старшие адреса A11…A15 используются для адресации нескольких микросхем памяти. Для этого введен дешифратор ДШ старших разрядов адреса. В принципе, используя эти разряды (5 бит), можно адресовать 32 микросхемы памяти, обеспечив полный объем памяти 64 Кбайта. В зависимости


от кода на линиях адреса A11…A15 на одном из выходов дешифратора

создается сигнал разрешения работы микросхемы CS0, CS1, CS3 и т.д.

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

Направление передачи информации (запись в ячейку памяти или чтение из ячейки памяти) определяется сигналами на входах управления OE и WE. Для управления этими входами использованы сигналы шины управления: MEMR – чтение из памяти и MEMW – запись в память.

П
ри создании памяти с определенной разрядностью ячейки памяти могут использоваться микросхемы памяти с разной организацией, что приводит к необходимости параллельного использования нескольких микросхем. Пример построения памяти емкостью 64 Кбайт на микросхемах ОЗУ типа К565РУ5, имеющих организацию 64 К1 бит, показан на рис. 3.6.

Для получения 8-битной ячейки памяти параллельно работают 8 микросхем DD1…DD8. Входы записи DI и чтения DO каждой микросхемы объединены и присоединены к соответствующей линии шины данных ШД D7…D0 микропроцессора. Направление передачи данных определяется сигналом WE, формируемым схемой управления из системных сигналов MEMR и MEMW. Поскольку микросхема К565РУ5 для адресации ячейки памяти нуждается в последовательной адресации столбца и строки матрицы памяти, то в схеме предусмотрен мультиплексор MX, который последовательно передает на адресные входы A0…A7 микросхемы либо младший A0…A7, либо старший байт A8…A15 шины адреса ША. Управляется мультиплексор сигналами RAS и CAS, формируемыми схемой управления. Эти сигналы одновременно поступают на входы выбора столбца и строки микросхемы памяти RAS и CAS.

Пример страничной организации постоянной памяти на микросхемах ПЗУ типа К573РФ5 показан на рис. 3.7. Микросхема имеет организацию 2 К1
байт и емкость 2 Кбайт. Младшие линии адресов A0…A10 шины адреса осуществляют выбор ячейки памяти в пределах 2 Кбайт микросхемы. Каждая микросхема может рассматриваться как страница памяти.


С
таршие биты А11…А15 шины адреса подаются на дешифратор ДША, который в общем случае осуществляет преобразование 5-битного кода в 32 сигнала выбора микросхемы. В каждый момент времени активен один из выходов CE0, CE1, CE2,… дешифратора. Сигнал дешифратора поступает на вход CE микросхемы памяти DD1, DD2, DD3,…, разрешая её работу. Таким образом, к шине данных поочередно можно подключать 32 микросхемы памяти и реализовать ПЗУ на 2Кбайта32=64Кбайт. Управляет чтением информации сигнал OE.
3.2. Устройства ввода-вывода информации в МПС
Для ввода данных в микропроцессор и вывода результатов обработки информации используются модули ввода-вывода. Основой модуля ввода-вывода является регистр, разрядность которого соответствует раз­рядности шины данных. Такой регистр называют портом. Если входы регистра подключены к линиям шины данных, а выходы - к внешнему устройству, тогда регистр служит для вывода данных и называется портом вывода. Для ввода информации используются порты ввода.

В каждый момент времени обмен данными возможен только с одним портом ввода или вывода. Для выбора нужного порта служит селектор портов, который в соответствии с кодом адреса, поступившего по адресной шине, выбирает нужный порт и подключает его к шине данных. Естественно, что каждый порт должен иметь свой адрес в виде двоичного кода адреса. Поскольку портов ввода-вывода обычно меньше, чем ячеек памяти, то используются адреса меньшей разрядности, что несколько упро­щает программирование и сокращает объем программы микро­процессора. Для 8-разрядного микропроцессора применяется адрес портов длиной в один байт, что позволяет адресовать 28 = 256 портов ввода-вывода.

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


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

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

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

Контроллер параллельного обмена К580ВВ55 (далее - "контроллер") включает в себя оборудование трех 8-разрядных каналов ввода/вывода (регистр и буферную схему), буфер шины данных, 8-разрядный регистр управления Y и блок управления.

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


Таблица 3.1


A1

A0

Адресуемый объект

Примечание

0

0

Канал А




0

1

Канал B




1

0

Канал С




1

1

Регистр управления

Только запись


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

При подаче сигнала SR все регистры контроллера, в том числе и регистр управления Y, устанавливаются в состояние 00h.

В каждый момент времени процессор может поддерживать связь только с одним каналом, в зависимости от состояния линий A[1:0] (см. табл. 6.1). Функцию каждого канала и режим его работы определяет состояние управляющего слова Y, помещенного в регистр управления.

Каналы контроллера могут работать в одном из трех режимов:

  • Режим "0" - синхронный однонаправленный ввод/вывод;

  • Режим "1" - асинхронный однонаправленный ввод/вывод;


Рис.3.9. Внутренняя структура контроллера К580ВВ55

  • Режим "2" - асинхронный двунаправленный ввод/вывод.


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

В режиме "0"
контроллер может работать как четыре порта ввода/вывода: A[7:0], B[7:0], C[7:4], C[3:0], причем каждый порт может быть независимо запрограммирован на ввод или на вывод. При этом к порту, определенному как выходной, нельзя обращаться по чтению (будет прочитан "обрыв" - FFh), а на входной порт нельзя выводить информацию.


В стробируемом однонаправленном режиме "1" могут работать только каналы A
и B, причем соответствующие линии (см. ниже) канала C придаются каналам A и B для передачи управляющих сигналов. Как и в режиме "0", каналы A и B программируются на ввод или вывод (независимо).

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

Рис. 3.10. Подключение контроллера ВВ55 с системной шине

Выбор режимов каналов и направления передачи данных в них осуществляется загрузкой в регистр Y управляющего слова, формат которого представлен на Рис.3.11.


1

D6

D5

D4

D3

D2

D1

D0





Режим А

00 -”0”

01 -”1”

1х -”2”

Направление А

Направление

С[7:4]


Режим

B

0-“0”

1-”1”

Направление

B

Направление

C[3:0]


Направление:

1 - ввод

0 - вывод

Рис.3.11. Формат управляющего слова. .ВВ55

Загрузка управляющего слова осуществляется путем записи его в регистр Y по адресу A[1:0] = 11, причем в старшем (D7) разряде такого слова должна стоять логическая единица.

Если при записи по адресу 11 D7 = 0, то такое слово не будет воспринято, как управляющее и не будет помещено в регистр Y. Такие действия обеспечивают установку или сброс одного разряда регистра C, причем номер изменяемого разряда записывается в разрядах D[3:1], а значение записываемого бита - в D0. Состояние разрядов D[6:4] - безразлично (Рис.3.12).

7

6

5

4

3

2

1

0

0

х

х

х

Номер разряда С

0/1

В разряде 0 - значение устанавливаемого бита порта С

Рис.3.12. Управление битами канала C


Рассмотрим подробнее работу контроллера в различных режимах.

Режим "0". При работе в этом режиме на вывод информация, поступающая с системной шины DB, запоминается в буферном регистре канала, адресуемого A[1:0] и сразу же передается на его выход. При вводе информации данные с линий соответствующего канала, минуя регистр, поступают через буфер данных на системную шину данных DB.

В режиме "0" канал C может быть разбит на два подканала, один из которых запрограммирован на ввод, а другой - на вывод. Обращение к обоим подканалам осуществляется по адресу A[1:0] = 10, причем в цикле ввода на DB подключаются только 4 входные линии, на остальных четырех - код 1111. При выводе информация с DB попадает только в 4 разряда регистра канала C, объявленные как выходные.

Режим 1 обеспечивает однонаправленную асинхронную передачу информации между МП и ВУ. При этом каналы A и B используются как регистры данных, а канал C - для приема и формирования сигналов, сопровождающих асинхронный обмен, причем каждый разряд канала C имеет строго определенное функциональное назначение. В Таблица 3.2 показано использование линий канала C для передачи управляющих сигналов в режимах "1" и "2".

Таблица 3.2


Разряд

канала С

Режим 1

Режим 2

Ввод

Вывод

0

ГТВ В

ГТВ В

-

1

ППР В

КГТ В\


-

2

СТР В\

ППРД В\

-

3

ГТВ А

ГТВ А

ГТВ А

4

СТР А\

-

СТР А\

5

ППР А

-

ППР А

6

-

ППРД А\

ППРД А\

7

-

КГТ А\

КГТ А\

В Таблица 3.2 использованы следующие обозначения:

СТР - строб записи в регистр канала (вход);

ППР - подтверждение приема (выход);

ГТВ - готовность (выход), может использоваться в качестве запроса на прерывание;

ППРД - подтверждение передачи (вход);

КГТ - канал готов к обмену (выход).

Символ "\" после имени сигнала обозначает, как и ранее, что активный уровень этого сигнала - низкий.

ВУ, будучи готовым выдавать информацию в контроллер, выставляет стробирующий сигнал, поступающий на вход СТР (C2 - для канала A, C4 - для B). По спаду строба байт данных с входных линий A или B "защелкивается" в регистр соответствующего канала. При этом контроллер формирует управляющий сигнал ППР (подтверждение приема), который высоким уровнем запрещает ВУ вырабатывать новый строб.


Информация, попавшая в регистр канала, должна быть передана в МП. Контроллер вырабатывает по фронту СТР при ППР = 1 сигнал ГТВ, который поступает в качестве запроса на прерывание в подсистему прерываний и инициирует процедуру чтения байта из канала. Сигнал ГТВ формируется контроллером только при условии установления в "1" внутреннего триггера разрешения прерывания по каналу (разряды 2 и 4 регистра порта C для каналов A и B соответственно). Эти триггеры могут быть установлены и сброшены программно с помощью команд установки/сброса разряда порта C.

МП может не сразу удовлетворить запрос контроллера, т.к. занят обслуживанием более приоритетного запроса. В этом случае контроллер поддерживает активный уровень на выходе ГТВ и высокий уровень на ППР, запрещая выработку нового строба. Промежуток времени t1 (Error: Reference source not found) может быть произвольно большим и характеризует время ожидания реакции МП.

При появлении сигнала RD\ по соответствующему адресу содержимое регистра канала передается на шину данных DB и далее - в МП. По спаду RD\ снимается запрос ГТВ, а по фронту RD\ снимается ППР и ВУ получает возможность формировать новый строб записи данных. Промежуток времени t2 характеризует быстродействие ВУ и может, как и t1, иметь произвольную длительность.

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


По стробу WR\ производится запись байта с системной шины данных в регистр канала. Одновременно снимается сигнал запроса на прерывание ГТВ. По фронту WR\ контроллер посылает на ВУ сигнал КГТ\, подтверждая, что данные для ВУ записаны в регистр и присутствуют на выводах канала. После получения КГТ ВУ начинает прием данных (отрезок времени t2), а закончив прием - формирует сигнал подтверждения передачи ППРД\. Получив ППРД\, контроллер формирует для МП сигнал ГТВ, сообщая, что можно выводить следующий байт данных. Время ожидания реакции МП - отрезок t1. Программная установка/сброс триггеров разрешения формирования сигналов ГТВ осуществляется с помощью команд переключения разрядов C6 и C2 - соответственно для каналов A и B.

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

В режиме "1", как и в режиме "0", недопустимо обращение по чтению к каналу, объявленному выходным и по записи к входному каналу. Для организации двунаправленного обмена предназначен режим "2", в котором может работать только канал A, которому для передачи управляющих сигналов придается 5 линий порта C (см. Таблица 3.). Канал B может при этом работать в режиме "1" - совместно с оставшимися линиями порта C, или в режиме "0", тогда C[2:0] будут работать тоже в "0"-режиме.

Направление передачи по каналам B и C определяется разрядами управляющего слова Y.

Процедуры ВВОД и ВЫВОД в режиме "2" осуществляются аналогично соответствующим процедурам в режиме "1".




следующая страница >>