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

 
 
 
«Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать.»
Brian W. Kernighan.
Русский | Українська


Микропроцессоры и микроконтроллеры :: Принципы программирования 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. Управление совмещенной областью ВПП и ВПД