Интерфейс внешней памяти в микроконтроллере 8051

Опубликовано: 8 Октября, 2022

Обзор :
Для приложений с минимальным объемом памяти 8051 имеет внутреннюю память для данных и кода. В таком положении. Для некоторых приложений этого объема памяти будет недостаточно. Чтобы расширить объем памяти микроконтроллера 8051, мы должны связать внешнее ПЗУ/СППЗУ и ОЗУ. Мы также понимаем, что ПЗУ служит памятью программ, а ОЗУ служит памятью данных. Давайте посмотрим, как 8051 получает доступ к этой памяти.

Внешняя память программ:

  • Программные выборки по адресам с 0000H по OFFFFH направляются во внутреннее ПЗУ в 8051, когда вывод EA подключен к Vec, а программные выборки по адресам с 1000H по FFFFH направляются во внешнее ПЗУ/СППЗУ. Когда контакт EA заземлен, все адреса, выбранные программой (от 0000H до FFFFH), направляются к нему.

  • ПЗУ/СППЗУ, которое является внешним по отношению к устройству. Как видно на рис. 1, сигнал PSEN используется для запуска вывода внешнего ПЗУ/СППЗУ.
  • Порт 0 используется как мультиплексированный адрес/шина, как показано на рис. 2. В начальном Т-цикле он обеспечивает 8-битный адрес младшего разряда, а позже используется как шина данных. Внешняя защелка и сигнал ALE, предоставляемые 8051, используются для фиксации 8-битного адреса.
  • Удаленное ПЗУ/СППЗУ (постоянное запоминающее устройство/электронно-программируемое ПЗУ/электронно-программируемое ПЗУ/электронная программа). Сигнал PSEN используется для активации выхода внешнего ПЗУ/СППЗУ, как показано на рис. 1.
  • Как видно на рис. 2, порт 0 используется как мультиплексированный адрес/шина. Он предоставляет 8-битный адрес младшего разряда в первом Т-цикле, а затем служит шиной данных. 8-битный адрес фиксируется с помощью внешней защелки и сигнала ALE, выдаваемого 8051.

  • 1Внешнее прерывание 0 — 0003H, Таймер 0 — 000BH, Внешнее прерывание 1 — 0013H, Таймер 1 — 001BH и т. д. Если должно использоваться прерывание, процедура его работы должна находиться в том же месте, что и прерывание. Если прерывание не используется, служебная ячейка может использоваться как память программ общего назначения.

Инструкции по доступу к внешнему ПЗУ/памяти программ:
В этой таблице поясняются инструкции по доступу к внешнему ПЗУ/памяти программ.

Мнемоника Операция
МОВК А, @ А+DPTR Скопируйте содержимое внешнего адреса ПЗУ, сформированного путем добавления A и DPTR, в A
MOVC А, @ А + ПК Эта операция скопирует содержимое внешнего адреса ПЗУ, сформированного путем добавления А и ПК к А.

Интерфейс внешней памяти:

  • 8051 может адресовать до 64 кбайт дополнительной памяти данных. Доступ к внешней памяти данных осуществляется с помощью команды «MOVX».
  • Внутренняя память данных 8051 разделена на три части: нижние 128 байт, верхние 128 байт и SFR. Хотя они являются физически отдельными телами, старшие адреса и SFR используют один и тот же блок адресного пространства, 80H по FFH.
  • Верхнее адресное пространство доступно только через косвенную адресацию, а SFR доступны только через прямую адресацию, как показано в более высоком адресном пространстве, с другой стороны, могут быть достигнуты с использованием прямой или косвенной адресации.
  • На рис. 7 а и б показаны временные сигналы для циклов чтения и записи внешней памяти данных соответственно.

7(а)

7(б)

Инструкции по доступу к внешней памяти данных:
В таблице поясняется инструкция по доступу к внешней памяти данных.

Мнемоника Операция
MOVX А, @Rp В этой операции он скопирует содержимое внешнего адреса в Rp в A.
MOVX А. @DPTR Скопируйте содержимое внешнего адреса в DPTR на A.
MOVX @Rp. А Скопируйте данные из A на внешний адрес в Rp
ДВИГАТЕЛЬ ДПТР, А Скопируйте данные из A на внешний адрес в DPTR.

Важные моменты, которые следует помнить при доступе к внешней памяти:

  • В случае доступа к внешней памяти все внешние данные, перемещаемые с внешней ОЗУ или ПЗУ, включают регистр А.
  • При доступе к внешней памяти R может адресовать 256 байт, а DPTR — 64 кбайт.
  • Инструкция MOV X используется для доступа к внешнему ОЗУ или адресам 1/0.

Примечание -
Следует отметить, что хотя программный счетчик (ПК) будет использоваться затем для доступа к внешнему ПЗУ, он будет увеличен на 1 (чтобы указать на следующую инструкцию) перед тем, как будет добавлен к A для формирования физического адреса внешнего ПЗУ.

Декодирование адреса памяти:
Мы знаем, что память для чтения/записи состоит из массива регистров, в котором каждый регистр имеет уникальный адрес: длина слова в битах.

Пример-1:
Если память имеет 12 строк адреса и 8 строк данных, то количество регистров/ячеек памяти = 2^N= Длина слова = Мбит = 8 бит.

Пример-2:

  • Если память имеет 8192 ячейки памяти, то она имеет :3 адресных строки.
Объем памяти Адресная строка обязательна
1 К = 1024 ячейки памяти 10
2 К = 2048 ячеек памяти 11
4 К = 4096 ячеек памяти 12
8K= 8192 ячейки памяти 13
16 К = 16384 ячейки памяти 14
32 К = 32768 ячеек памяти 15
64 К = 65536 ячеек памяти 16
  • Микросхема памяти имеет 11 адресных линий A10-A0, одну линию выбора микросхемы (CS) и две линии управления, как видно из таблицы. Чтобы включить буфер вывода, нажмите RD, а чтобы включить буфер ввода, нажмите WR.
  • Адресные строки декодируются с помощью внутреннего декодера: (b) отображает логическую схему 4096 (4 КБ) регистра EPROM (Erasable Programmable Read-Only Memory).
  • Он имеет в общей сложности 12 адресных блоков. Один сигнал выбора стружки (CS) и один управляющий сигнал считывания (A11-A0). СППЗУ не нуждается в сигнале (WR), так как это память только для чтения.
  • Модули памяти и 1/0 используются в структуре микропроцессора/микроконтроллера. Поскольку шины данных, адресов и управления являются общими для всех устройств, микропроцессор может одновременно обмениваться данными (чтение/запись) только с одним устройством.
  • Очень важно декодировать адрес микропроцессора/микроконтроллера, чтобы соединиться с памятью или устройствами ввода/вывода. Стратегии декодирования адресов описаны в следующем разделе.
  • Интерфейс памяти требует следующих компонентов.
  1. Выберите чип.
  2. Определить регистр.
  3. Включите соответствующий буфер.

Методы декодирования адреса:

  • Абсолютное декодирование/Полное декодирование
  • Линейное декодирование/частичное декодирование

Техника-1 :
Абсолютное декодирование –

  • В этом методе все старшие адресные строки декодируются для выбора микросхемы памяти, и микросхема памяти выбирается только для логических уровней, определенных в этих старших адресных строках, и никакие другие логические уровни не будут выбирать микросхему.
  • Интерфейс памяти с полным кодированием показан на рис. 11.22. В массивных структурах памяти эта стратегия адресации обычно используется.

Карта памяти –

ИС памяти А15 А14 А13 А12 А11 А10 А9 А8 А7 А6 А5 А4 А3 А2 А1 А0 Адрес
Начальный адрес СППЗУ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000ч
Конечный адрес СППЗУ 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 03FFH
Начальный адрес оперативной памяти 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 2000 ч
Конечный адрес ОЗУ 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 23FFH

Техника-2 :
Линейное декодирование –

  • Отдельные адресные линии высокого порядка могут использоваться для выбора микросхем памяти в компактных системах, что устраняет необходимость в аппаратном обеспечении для декодирования логики. Линейное декодирование является термином для этого метода.
  • Адресация ОЗУ с использованием метода линейного кодирования показана на рис. 10. Частичное декодирование — другое название этого процесса.
  • Это снижает стоимость кодирования и схемы, но имеет тот недостаток, что требуется несколько адресов (теневых адресов).
  • Адресация ОЗУ с использованием метода линейного кодирования показана на рисунке 10. После инверсии линия А представляет собой линию, присоединенную к сигналу выбора микросхемы СППЗУ, а затем к сигналу выбора микросхемы ОЗУ. В результате EPROM выбирается, когда состояние линии A равно «пусто», а RAM выбирается, когда состояние линии A15 равно «один». Поскольку другие адресные линии не используются для генерации сигналов выбора фишек, их статус не принимается во внимание.

Карта памяти –

ИС памяти А15 А14 А13 А12 А11 А10 А9 А8 А7 А6 А5 А4 А3 А2 А1 А0 Адрес
Начальный адрес СППЗУ 0 Икс Икс Икс Икс Икс 0 0 0 0 0 0 0 0 0 0 0000ч
Конечный адрес СППЗУ 0 Икс Икс Икс Икс Икс 1 1 1 1 1 1 1 1 1 1 03FFH
Начальный адрес оперативной памяти 1 Икс Икс Икс Икс Икс 0 0 0 0 0 0 0 0 0 0 8000 ч
Конечный адрес ОЗУ 1 Икс Икс Икс Икс Икс 1 1 1 1 1 1 1 1 1 1 83FFH

РЕКОМЕНДУЕМЫЕ СТАТЬИ