В начало

Организация внешней памяти МК (Лекция)

ПЛАН ЛЕКЦИИ

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 кбайт. Их подключение и работа аналогичны подключению и работе в режиме чтения микросхем памяти данных ОЗУ. В качестве сигнала чтения используется сигнал вывода вместо сигнала.

Mad Max
Mad Max


Saints Row: Gat out of Hell
Saints Row: Gat out of Hell


XCOM-2
XCOM-2