|
В начало
Лекция. Организация внешней памяти МК
ПЛАН
ЛЕКЦИИ 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. Рис. 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 микросхемы памяти.
Сказанное поясняется временными диаграммами, приведенными на рисунке 8. Рис. 8.
Диаграммы чтения и замиси микросхем памяти 2. Пример
подключения внешней памяти ДАННЫХ У Z80 есть выводы трех так называемых шин – адреса,
данных и управления. Шестнадцать выводов Z80 (А0, Al, А2,..., А14 и
А15) называются адресными выходами, их соединяют с адресными входами микросхем
памяти. Совокупность линий, осуществляющих эти соединения, и есть шина адреса.
Соответственно, шина данных, состоящая из 8 проводников, соединяет выводы
данных микросхем памяти и микропроцессора (у него, как и у микросхем памяти, их
тоже 8, и обозначаются они также– D0, D1,..., D7). Из сигналов управления у Z80 нас интересуют только два – (Read - Чтение) и (Write - Запись).
С их помощью, как показано на рисунке 9, осуществляется управление памятью. Рис. 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. Пример подключения внешней памяти ДАННЫХ Линии
порта Р2 микроконтроллера при обращении к внешней памяти выводят адресные биты
А8-А15. Далее, сигнал формируется на Р3.7, a – на Р3.6. Линии
порта Р0 представляют мультиплексированную во времени шину адреса/данных. Т.е.
линии P0 используются для ввода/вывода информации с шины данных.
Но, кроме того, в первый момент обращения к памяти по этим же линиям выводятся
адреса А0...А7, и одновременно с этим устанавливается в 1 сигнал на выходе ALE
(адреса стробируются сигналом ALE). Спустя 2 периода
тактового генератора ALE сбрасывается в 0, и через несколько наносекунд после
этого адресная информация пропадает с линий порта Р0, давая возможность вести
по ним обмен данными. А для того, чтобы использовать адреса А0-А7, применяют
8-разрядный регистр-защелку типа 555ИР22, информация в котором фиксируется по
спаду сигнала на его входе STB. В качестве этого сигнала,
как нетрудно догадаться, используется сигнал ALE (это основное его
назначение). Сказанное иллюстрируется на рисунке 10. Рис.
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. Рис. 11. Временные диаграммы циклов обмена МК с внешней
памятью данных В
отличие от схемы на рисунке 9 в схеме на рисунке 10 отсутствует дешифратор,
управлявшийся адресами А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. Подключения внешней памяти ПРОГРАММ Микроконтроллеры
семейства х51 допускают работу с внешней памятью программ, в качестве которой
выступают микросхемы ПЗУ объемом до 64 кбайт. Их подключение и работа
аналогичны подключению и работе в режиме чтения микросхем памяти данных ОЗУ. В
качестве сигнала чтения используется сигнал вывода вместо сигнала. |
|