МК
Организация внешней памяти МК (Лекция)
ПЛАН ЛЕКЦИИ 1.
Анализ
подключения внешней памяти 2.
Пример
подключения внешней памяти данных к микропроцессору Z80 3.
Пример
подключения внешней памяти данных к микрокронтроллеру семейства x51 4.
Подключения
внешней памяти программ к микрокронтроллеру семейства x51 1. Анализ
подключения внешней памяти
Внешняя память
данных представляет собой одну или несколько самостоятельных микросхем памяти.
Чаще всего используют статическую память с байтовой организацией объемом 2К*8
или 8К*8 бит (1К = 1024). Такие микросхемы; имеют 8 выводов данных (D0-D7), по
которым осуществляется одно-временная запись в микросхему всех 8 бит в выбранную
ячейку памяти или чтение 8 бит из этой ячейки. Далее, в таких микросхемах есть
11 или. 13 адресных входов (А0-А10 или А0-А12), комбинация сигналов на которых
задает адрес ячейки, к которой мы обращаемся. Вход (Write Enable – Разрешение
Записи) определяет характер обращения: если на нем установлена 1, то
осуществляется чтение из выбранной ячейки; при WE = 0 в ячейку будет записана
информация. Вход (Chip Enable - Разрешение
Кристала) активизирует микросхему памяти – когда на ее входе СЕ установлена 1,
она выключена, при СЕ = 0 она допускает запись в нее информации и чтение из нее
записанных данных. Нулевой сигнал на входе (Output Enable – Разрешение
Вывода) включает выходные буферы микросхемы памяти на пропускание информации по
линиям данных D0-D7, единичный сигнал переводит эти линии в третье состояние,
т. е. отключает находящиеся внутри микросхемы ячейки памяти от ее ножек.
Описываемые микросхемы изображены на рисунке 7. Рис.
Обозначение микросхем памяти Работа с подобными
микросхемами должна осуществляться следующим образом. Положим, мы хотим
записать число 145D = 10010001В в ячейку с адресом 84D = 54Н = 1010100В. Для
этого МК должен установить записываемое число на линиях данных D0-D7 микросхемы
(D0=D4=D7=1, D1=D2-D3=D5=D6=0), а адрес ячейки – на адресных линиях
(А2=А4=А6=1, А0=А1=АЗ=А5=0; А7, А8 и последующие старшие адреса вплоть до А10
для микросхем объемом 2К* 8 или до А12 для микросхем 8К*8 также должны быть
установлены в 0). Установив адресную информацию и данные, МК одновременно с
этим или чуть позже должен установить 0 на входе WE микросхемы (будет запись) и 0 на СЕ (знак
того, что мы обращаемся именно к этой микросхеме). Как только после этого на
входе ОЕ микросхемы памяти МК установит 0, осуществится запись числа 145 в ее
84-ю ячейку. Соответственно,
если мы хотим прочитать данные из все той же, к примеру, 84-й ячейки, мы должны,
как и в предыдущем случае, установить адрес ячейки на адресных линиях, и
одновременно с этим или чуть позже установить 1 на входе WE микросхемы (будет чтение) и 0 на СЕ (знак
того, что мы обращаемся именно к этой микросхеме). Как только после этого на
входе ОЕ микросхемы памяти МК установит 0, осуществится чтение числа из выбранной
ячейки, и оно появится на линиях данных D0-D7
микросхемы памяти. Сказанное поясняется временными диаграммами, приведенными на
рисунке далее. Рис.
Диаграммы чтения и замиси микросхем памяти 2. Пример подключения внешней памяти данных
к микропроцессору Z80 У Z80 есть выводы трех так называемых шин – адреса,
данных и управления. Шестнадцать выводов Z80 (А0, Al, А2,..., А14 и
А15) называются адресными выходами, их соединяют с адресными входами микросхем
памяти. Совокупность линий, осуществляющих эти соединения, и есть шина адреса.
Соответственно, шина данных, состоящая из 8 проводников, соединяет выводы
данных микросхем памяти и микропроцессора (у него, как и у микросхем памяти, их
тоже 8, и обозначаются они также– D0, D1,..., D7). Из сигналов управления у Z80 нас интересуют только два – (Read - Чтение) и (Write - Запись).
С их помощью, как показано на рисунке 9, осуществляется управление памятью. Рис. Подключение микросхем памяти к микропроцессору Z80 При обращении к
памяти Z80 формирует на своих
выводах А0-А15 адрес ячейки, к которой будет происходить обращение (запись или
чтение). Как будет показано чуть ниже, соответствующая комбинация сигналов на
А13-А15 сформирует при помощи дешифратора DD3 нулевой сигнал на входе СЕ той или иной микросхемы.
При записи на
выводах данных D0-D7 процессора появится байт, который предстоит
записать в память, и чуть-чуть позже его появления – нулевой сигнал на выходе WR (RD
при этом останется в 1). Как нетрудно догадаться, микросхема DD2 в любом цикле обращения (как чтения, когда RD=0, так и записи, когда WR =0) сформирует нуль на входах ОЕ микросхем
ОЗУ. Соответственно при
чтении выводы данных превращаются во входы, и на них процессор ничего не
выводит, а после установки адреса он переводит в 0 сигнал RD (WR
при этом остается в 1). В каждой из
микросхем памяти есть своя нулевая, первая, вторая и т. д. ячейки, вплоть до
2048-й. Обратите внимание, что входы СЕ микросхем соединены с выходами дешифратора
DD3, в частности СЕ DD4 – с DD3.15, а СЕ DD5 – с DD3.14. На выходе DD3.15 нулевой сигнал возникнет в том случае,
когда на своих трех старших адресных выходах микропроцессор установит
следующую комбинацию сигналов: А15=0, А14=0, А13=0. Соответственно, нуль на DD3.14 появится, если А15=0, А14=0, А13=1.
Следовательно, чтобы вести обмен с 84-й ячейкой микросхемы DD4, микропроцессор должен установить на
адресных выходах комбинацию А0=А1=0; А2=1; А3=0; А4=1; А5=0; А6=1;
А7=А8=А9=А10=А13=А14=А15=0. Поскольку у DD4 отсутствуют входы А11 и А12, и эти адресные
линии к ней не подводятся, то их состояние (нули или единицы) никак не сказывается
на адресе выбираемой ячейки в этой микросхеме. Для определенности положим, что
и они должны быть при обращении к DD4
нулевыми. Таким образом, в изображенной на рисунке 9 системе к 84-й ячейке
микросхемы DD4 микропроцессор
обратится, установив на адресной шине 0000000001010100В=0054Н=84. Другими
словами, 84-я ячейка памяти нашей системы находится именно в DD4. Для обращения к
84-ой ячейки DD5
процессор должен установить на адресной шине 0010000001010100В=2054Н=8276.
Иначе говоря, 84-я ячейка памяти микросхемы DD5 является 8276-й ячейкой системы памяти. 3. Пример подключения внешней памяти данных
к микрокронтроллеру семейства x51 Линии порта Р2
микроконтроллера при обращении к внешней памяти выводят адресные биты А8-А15. Линии порта Р0
представляют мультиплексированную во времени шину адреса/данных. Т.е. линии P0 используются для ввода/вывода информации с
шины данных. Но, кроме того, в первый момент обращения к памяти по этим же
линиям выводятся адреса А0...А7, и одновременно с этим устанавливается в 1 сигнал
на выходе ALE (адреса стробируются
сигналом ALE). Спустя 2 периода
тактового генератора ALE сбрасывается
в 0, и через несколько наносекунд после этого адресная информация пропадает с
линий порта Р0, давая возможность вести по ним обмен данными. А для того, чтобы
использовать адреса А0-А7, применяют 8-разрядный регистр-защелку типа 555ИР22,
информация в котором фиксируется по спаду сигнала на его входе STB. В качестве этого сигнала, как нетрудно
догадаться, используется сигнал ALE
(это основное его назначение). Сказанное иллюстрируется на рисунке 10. Рис. Подключение
микросхем памяти к микроконтроллеру семейства х51 Таким образом,
работа МК с внешней памятью данных осуществляется следующим образом. Прочитав
команду обращения к внешней памяти, микроконтроллер выводит по линиям порта Р2
старшие 8 бит адреса, а по линиям Р0 – младшие. Одновременно с этим он устанавливает
в 1 сигнал на выходе ALE.
Когда эта 1 поступает на вход STB
регистра-защелки DD3,
информация с его входов D0-D7 напрямую поступает на выходы Q0- Q7,
соединенные с младшими 8 линиями шины адреса. Спустя некоторое время ALE устанавливается в 0. Перепад из 1 в 0 на
входе STB DD3 приводит к защелкиванию в регистрах выходов
Q0-Q7 поступающей на них информации, и
защелкнутые младшие 8 бит адреса остаются неизменными на выходах Q0-Q7
до следующего цикла обмена с внешней памятью. Старшие 8 бит, выводимые через
Р2, также не меняются до завершения текущего цикла работы с внешним ОЗУ. Поскольку А0-А7
запомнены в регистре-защелке, они снимаются с выводов порта Р0, и последние
превращаются в выводы шины данных. Если МК записывает данные во внешнее ОЗУ,
записываемый байт выводится им на Р0.0-Р0.7, и устанавливается в 0 сигнал на
его выходе WR (РЗ.6). Появление же
нулевых сигналов на входах WE
и ОЕ, соответствующей микросхемы памяти приводит к записи в нее байта, поданного
на ее входы D0-D7. Нулевой сигнал на ОЕ, формирует микросхема
DD2. Сказанное
иллюстрируется временными диаграммами на рисунке 11. Рис. Временные диаграммы циклов обмена МК с внешней памятью данных В схеме отсутствует
дешифратор, управлявшийся адресами А13-А15. Вместо этого на входы СЕ микросхем
памяти поданы сигналы с А13 и А14. Такое решение возможно, если вы точно знаете,
что в вашей системе не будет использоваться более трех микросхем внешней памяти
(дешифратор DD3 на
рисунке 9 позволял работать с 8-ю микросхемами). При обращении к DD4 МК должен установить следующую комбинацию
старших адресов: А13=0, А14=А15=1. Соответственно для DD5 А13= 1, А14=0, А15= 1. А какая комбинация
потребовалась бы для 3-й микросхемы, если ее вход СЕ соединить с А15? Процесс чтения
информации микроконтроллером аналогичен только что рассмотренному процессу
записи с той лишь разницей, что МК устанавливает в 0 не WR , a RD, и данные на шину
данных поступают не с него, а с соответствующей микросхемы памяти. Описанный способ
выдачи адресной информации по выводам шины данных очень распространен (он
применялся, например, в процессорах 8086/8088, на которых были выполнены первые
IBM PC), и называется мультиплексированием шин
адреса/данных. 4. Подключения внешней памяти программ
к микрокронтроллеру семейства x51 Микроконтроллеры
семейства х51 допускают работу с внешней памятью программ, в качестве которой
выступают микросхемы ПЗУ объемом до 64 кбайт. Их подключение и работа
аналогичны подключению и работе в режиме чтения микросхем памяти данных ОЗУ. В
качестве сигнала чтения используется сигнал вывода вместо сигнала. |
||