Микропроцессоры и микроконтроллеры

 
 
 
«There are more useful systems developed in languages deemed awful than in languages praised for being beautiful--many more.»
Bjarne Stroustrup
Русский | Українська


Микропроцессоры и микроконтроллеры :: Принципы программирования MSC-51 :: Взаимодействие МК51 с внешней памятью

Взаимодействие МК51 с внешней памятью

Организация доступа к ВПП и ВПД

В микроконтроллерных системах на основе МК51 возможно использование двух типов внешней памяти: постоянной памяти программ - ВПП и оперативной памяти данных - ВПД.

На рис.13.1 (рис. 23 в комплекте или рис.5.1 в пособии) изображены обобщенные временные диаграммы операций с внешней памятью программ, которые иллюстрируют процесс генерации сигналов ALE и PSEN и привязку работы портов Р0, Р2 к этим сигналам.

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

Сигнал PSEN выполняет функцию строба чтения (строба приема в МК) байта команды при обращении к ВПП. Если работа осуществляется с РПП, то PSEN не генерируется. В цикле обращения к ВПД генерация PSEN блокируется (рис.24 в комплекте или рис.13.3). Активный уровень этого сигнала - низкий, то есть "0"!

Обращение к ВПП осуществляется при чтении команды, если (РС) > 0FFFH независимо от значения сигнала #EA, и при любом содержимом PC ((РС)=0...FFFFH), если #EA=0. Обращение к ВПП осуществляется также при выполнении команд MOVC A,@A+DPTR и MOVC A,@A+PC (адрес всегда 16-битовый).

Временные диаграммы рис.13.1 (рис.23 в комплекте) изображают процесс выборки команд из ВПП. Источником адреса во время выборки команды всегда является (PC), причем PCH – (“high”) выдается через порт P2, а PCL – (“low”) - через порт P0. Байт команды принимается через порт P0 по строб-сигналу PSEN.

Схема демультиплексирования информации порта P0 на регистре

Рис. 13.2. Схема демультиплексирования информации порта P0 на регистре

Доступ к ВПД обеспечивается сигналами #RD и #WR, которые выдаются по линиям Р3.7 и Р3.6, если порт 3 выполняет периферийные функции.

Временные диаграммы рис.13.3 (рис.24 в комплекте) иллюстрируют процесс обращения к ВПД посредством команды MOVX для циклов чтения и записи.

Обращение к ВПД осуществляется при реализации:

- команд чтения из ВПД - MOVX A,@DPTR или MOVX A,@Ri;

- команд записи в ВПД - MOVX @DPTR,A или MOVX @Ri,A.

Источником адреса может выступать регистр DPTR ( (DPH) - выводится через Р2, (DPL) - выводится через Р0), или регистр R0 ли R1 (старший байт адреса берется из регистра-фиксатора порта Р2, младший байт адреса - (R0) или (R1) - выводится через порт Р0).

Диаграммы обращения к ВПД при выполнении команд MOVX

Рис. 13.3. Диаграммы обращения к ВПД при выполнении команд MOVX:

1 - младший байт адреса (PCL) ; 2 - прием в МК байта команды MOVX;
3 – выдача (DPL) или (R0) или (R1); 4 - чтение в МК байта данных

В любом случае использования 16-битового адреса старший байт адреса фиксируется в регистре порта Р2 и остается неизменным в течение всего цикла обращения. Выдача старшего байта адреса команды через порт Р2 при чтении команд из ВПП не изменяет информацию в регистре-фиксаторе, которая необходима для доступа к ВПД через команды MOVX @Ri,A и MOVX A,@Ri.

По сигналу ALE в фазе S5 первого МЦ адрес ячейки ВПД, которая выдается через порт Р0, может фиксироваться во внешнем регистре (рис.13.2), поскольку в течение следующих четырех фаз (S6-S3) порт Р0 занят пересылкой байта данных.

Операция с ВПД всегда реализуется во втором МЦ выполнения команды MOVX. При этом генерируется сигнал #RD или #WR, блокируется выдача ALE и PSEN. Данные, которые принимаются, записываются в порт Р0 внутри интервала действия #RD. Данные, которые выдаются, находятся на выводах порта Р0 весь интервал действия сигнала #WR.

Реализация совмещенной внешней памяти программ и данных

На этапе отладки бывает удобно оперативно изменять коды программ. Для реализации этой возможности применяют режим совмещения адресных пространств ВПП и ВПД в общее пространство 64К с физической реализацией ВПП на микросхемах ОЗУ. Для правильного управления доступом к ВП применяют простую логику (рис.13.4). При этом нужно учитывать, что:

1) адресные области программ и данных не должны пересекаться;

2) окончательная версия программы может отличаться от отлаживаемой.

Подобная схема может использоваться в тех системах на основе МК51, где нужны оперативная перезагрузка и модификация прикладных программ в процессе управления объектом.

Управление совмещенной областью ВПП и ВПД

Рис. 13.4. Управление совмещенной областью ВПП и ВПД