logo
КС-ZAO / Лекции ЦЭВМруский вариант11

§7.4.Доступ к внешней памяти

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

При обращении к памяти программ всегда используют 16-разрядную адресацию, в то время как адресация памяти данных может быть либо 16-разрядной (MOVX @DPTR) либо 8-разрядной (MOVX @Ri).

Когда используется 16-разрядная адресация, старший байт адреса передается через порт Р2, где он удерживается на время цикла чтения или записи..Обратите внимание, что выходные схемы порта 2 используют сильную нагрузку во время наличия на них 1-иц. Это происходит во время выполнения команды MOVX @DPTR. В это время регистр порта Р2 (специальный функциональный регистр - СФР) не содержит 1s и содержимоеСФР порта Р2 не меняется. Если же следующий цикл чтения/записи внешней памяти не следует сразу за предыдущим, то неизмененое содержимоеСФР порта Р2 сохраняется и в следующем цикле.

При использовании 8-битной адресации (MOVX @Ri) содержимоеСФРпорта Р2 остается на выводах Р2 на протяжении всего цикла обращения к внешней памяти.Это облегчает страничную организацию памяти.

В любом случае, младший байт мультиплексируется во времени с байтом данных через порт Р0. Сигнал ADDR/DATA управляет обоими полевыми транзисторами в выходных буферах порта Р0. Поэтому в данном случае выводы порта Р0 не являются выходами с открытым стоком и не требуют внешнего напряжения. Сигнал ALE (Address Latch Enable) может быть использован для ввода адресного байта во внешний регистр. Адресный байт устанавливается при отрицательном переходе ALE (переход с высокого уровня на низкий). Затем, в цикле записи, байт данных записывается в порт Р0 сразу после установки сигнала WR#, и остается там пока сигнал WR# не будет снят. В цикле чтения, входящий байт принимается портом Р0 сразу после дезактивации строба чтения.

Во время любого обращения к внешней памяти, ЦП (Центральный Процессор) записывает 0FFH в регистр порта Р0 (специальный функциональный регистр-СФР), поэтому стирание любой информации может быть блокированоСФРпорта Р0. Если пользователь записывает в порт Р0 во время обращения к внешней памяти, то входящий байт кода разрушается. Поэтому не следует записывать что-либо в порт Р0, если используется внешняя програмная память.

Внешняя програмная память доступна в двух случаях:

  1. Когда активен сигнал EA#;

  2. Когда программный счетчик (РС) содержит номер, больший чем 0FFFH(1FFFH для 8052).

Это требует, чтобы в версии микросхемы без ПЗУ сигнал EA# был всегда на низком логическом уровне, т.к. только тогда можно будет обращатся к нижним 4K (8K для 8032) памяти программ внешней памяти.

Когда ЦП работает в режимевнешней програмной памяти, все 8 бит порта Р0 выделяются для функций вывода, и не могут быть использованы для ввода/вывода общего назначения. Во времядоступа к внешним программамони выводят старший байт программного счетчика. При этом порт Р2 используетсильную нагрузку для вывода единичных битов PC.