Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSoC.doc
Скачиваний:
24
Добавлен:
11.02.2015
Размер:
2.72 Mб
Скачать

2.7. Адресные координаторы

Адресные координаторы преобразуют адреса, по которым микроконтроллер обращается к памяти программ, данных и регистрам специального назначения (SFR), в адреса, допустимые на системной шине системы на кристалле Е5 компании Trisend. Микроконтроллер 8051 поддерживает следующие адресные пространства: внешняя память программ, внешняя память данных, внутренняя прямо адресуемая память, внутренняя косвенно-адресуемая память, внутренняя экспортируемая область регистров специального назначения, как показано на рис.32.

рис. 32 Адресное пространство микроконтроллера 8051

Внешняя память программ и память данных занимают по 64 Кбайт адресного пространства каждая. Память программ предназначена для хранения команд и аргументов, используемых в процессе выборки кода, а память данных - для хранения различных пользовательских данных. Обращение к внешней памяти программ и памяти данных, а также к определяемым пользователем SFR (закрашенные прямоугольники на рис.32) по системной шине может быть осуществлено напрямую.

Внутреннее ОЗУ микроконтроллера состоит из прямо и косвенно-адресуемых областей и содержит такие встроенные регистры, как аккумулятор, регистр В, регистры контроля питанием, таймерами и последовательного порта, доступ к которым может быть осуществлен только внутри микроконтроллера. Обращение к внутренней памяти за пределами микроконтроллера недопустимо, поскольку это может привести к программной несовместимости.

Адресные координаторы преобразуют 8-ми или 16-ти битный логический адрес микроконтроллера в 32-х битный физический адрес системной шины и обеспечивают связь микроконтроллера с внешней памятью.

Координаторы распределены между зонами логических адресов. Каждая из этих зон занимает от 256 байт до 64 Кбайт памяти и ссылается на определенную область физических адресов. Зона начинается с любого логического адреса и занимает объем в соответствии с её размерами. В случае найденного соответствия между адресом, микроконтроллера и адресом, на который ссылается координатор, логический адрес будет преобразован в физический.

Рис. 33 Программная среда FastChip использует внутренние кодовые координаторы и координаторы данных для организации 16 Мб карты памяти.

Координаторы разделены по функциональному назначению: кодовые координаторы преобразуют адрес только кодов, координаторы данных - адрес только данных, а координаторы SFR – адрес SFR. Значение координаторов определяется в конфигурирующих регистрах. Каждый координатор имеет:

  1. 8 бит адреса зоны, значение которого используются для определения соответствия с ожидаемым логическим адресом A{15:8};

  2. 5 бит смещения, которое определяется как логарифм с основанием два от значения размера зоны в байтах;

  3. 24 бита - являются старшими битами физического адреса A{31:8};

  4. один бит разрешения.

Рис.34. Блок-диаграмма принципа работы адресного координатора

Значение смещения (5 бит) определяет количество младших бит логического адреса, которые не будут учитываться в операции сравнения с целевым адресом зоны в координаторе. Ввиду того, что все зоны должны иметь размер от 256 байт и больше, то младшие 8 бит логического адреса в процессе сравнения не учитываются. В таком случае, координатор сравнивает старшие 8 бит логического адреса с 8-ю битами целевого адреса зоны и маскирует в соответствии со значением смещения определенное количество младших бит.

После того, как адреса сравнены при установленном бите разрешения координатора, преобразованный адрес выставляется на системную шину. Младшие биты представленного физического адреса являются маскированными битами логического адреса и занимают адресные линии A{15:0}. Но ввиду того, что зоны имеют минимальный размер 256 байт, младший байт логического адреса неизменно переводиться в младший байт физического адреса. Старшие байты физического адреса представлены немаскированными значениями 24 бит координатора.

В случае несоответствия логического адреса с целевым адресом зоны следующий ниже приоритетом координатор проверяет этот логический адрес. Данный процесс будет повторяться для всех координаторов одного типа (данных или кода) до тех пор, пока для логического адреса не найдется соответствие, которое всегда гарантирует координатор самого низкого приоритета.

Выделенные ресурсы системной шины дешифрируют только 24 адресные линии A{23:0}, поскольку старшие 8 линий A{31:24} могут нести диагностическую информацию, используемую в целях отладки.

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

Маска=2Смещение-1

Поскольку размер зоны варьируется от 256 байт до 64 Кбайт, то значение смещения равно числу от 8 до 16 (т.е. маскируются либо 8, либо 16 младших бит логического адреса).

Различные системные ресурсы занимают адресные пространства, состоящие из нескольких несмежных участков в 4-х Гбайтовом пространстве, доступном через конфигурируемую системную шину. Программная среда FastChip автоматически формирует 16 Мбайтовую карту памяти, как показано в таблице 20 и на рис.33. Эта карта памяти представляет полные 4 Гбайт, поскольку старшие 8 бит физического адреса имеют значения, представленные в табл.23 и используемые в целях отладки.

Адреса размещенные в системных ресурсах Таблица 20

Физическое адресное пространство

Адресная зона 8051 (байты)

Описание

Замечания

0 – 0xFFFF

Внутренняя ROM

Доступен после системного сброса

0x1_0000 –0x1_FFFF

Зависит от устройства

Внутренняя XDATA RAM

TE502=8K, TE505=16K,

TE512=32K, TE520=40K,

TE532=64K

0x2_0000 –0x02_FFFF

256 или 4К

CRU– системные регистры конфигурации

0x3_0000 –0x7_FFFF

Не доступен

зарезервирован

Доступен только при отладке

0x10_0000 –0x7F_FFFF

Определяется только пользователем

“Программные” модули КЛМ, внешние устройства, внешняя память и экспортируемые SFR

Внешние устройства или блоки памяти, связанные с выводом CE, должны также использовать это адресное пространство.

0x80_0000 –0xFF_FFFF

<= 64K

Внешняя память

Подключенный через MIUпорт

Кодовые координаторы

Предназначены для переадресации в процессе выборки кода. Существует всего три кодовых координатора, включая кодовый координатор для инициализационных программ, хранящихся во встроенном на кристалле ПЗУ, и два полностью программируемых координатора, как показано в таблице 21.

Кодовые координаторы Таблица 21

Координатор

Приоритет

Доступ

С2

1

Произвольный

С1

2

Произвольный

С0 (ROM)

3

Всегда доступен

С0 – кодовый координатор ПЗУ

Имеет самый низкий приоритет. В случае системного сброса микроконтроллер всегда может обратиться к внутреннему ПЗУ. Размер ПЗУ составляет 1 Кбайт, и в памяти программ ПЗУ реализовано в 64 копиях, повторяющих 1 Кбайт.

По окончании программы инициализации другие два кодовых координатора C1 и С2 могут быть запрограммированы на перерегулирование координатора С0.

Кодовый координатор С0 имеет два регистра CMAP0_TAR и CMAP0_ALT, которые находятся в памяти регистров конфигурирующего назначения. В процессе преобразования логического адреса в физический через координатор С0, старший байт физического адреса A{31:24} будет содержать значение одного из регистров, т.е. содержать код операции либо операнд. Это предусмотрено в целях отладки, когда выборки кода операции и операнда различимы. С0 всегда активизирован.

С0 целевой адрес операнда (координатор ПЗУ)

Мнемоника: CMAP0_TAR Адрес:FF00H

С0 целевой адрес кода операции (координатор ПЗУ)

Мнемоника: CMAP0_ALTАдрес:FF01H

С1 и С2 – полностью программируемые кодовые координаторы

Координатор С2 имеет самый высокий приоритет среди других кодовых координаторов. С1 и С2 могут быть разрешены в индивидуальном порядке. Системный сброс приводит к сбросу битов разрешения координаторов С1 и С2, в то время как С0 остается всегда разрешенным. Программная среда FastChip самостоятельно определяет значения для этих координаторов, но пользователь может внести изменения в соответствующие регистры.

C1 целевой адрес (младший байт)

Мнемоника: CMAP1_TAR0 Адрес:FF02H

C1 целевой адрес (средний байт)

Мнемоника: CMAP1_TAR1 Адрес:FF03H

C1 целевой адрес операнда

Мнемоника: CMAP1_TAR2 Адрес:FF04H

С1 целевой адрес кода операции

Мнемоника: CMAP1_ALTАдрес:FF07H

С1 адрес исходной зоны

Мнемоника: CMAP1_SRCАдрес:FF05H

С1 контрольный регистр

Мнемоника: CMAP1_CTLАдрес:FF06H

C2 целевой адрес (младший байт)

Мнемоника: CMAP2_TAR0 Адрес:FF08H

C2 целевой адрес (средний байт)

Мнемоника: CMAP2_TAR1 Адрес:FF09H

C2 целевой адрес операнда

Мнемоника: CMAP2_TAR2 Адрес:FF0AH

С2 целевой адрес кода операции

Мнемоника: CMAP2_ALTАдрес:FF0DH

С2 адрес исходной зоны

Мнемоника: CMAP2_SRCАдрес:FF0BH

С2 контрольный регистр

Мнемоника: CMAP2_CTLАдрес:FF0CH

Координаторы данных

Предназначены для преобразования адреса команд доступа к данным. Всего существуют 6 координаторов данных, как показано в таблице 22 (расположены в порядке приоритета). Координатор D0 отвечает за доступ к внутренней СОЗУ. D1, D2, D4 и D5 полностью программируемы, а D3 предназначен для блока конфигурирующих регистров.

Координаторы данных Таблица 22

Координатор

Приоритет

Уровень разрешения

D3 (CRU)

1

Всегда разрешен

D5

2

Дополнительный

D4

3

Дополнительный

D2

4

Дополнительный

D1

5

Дополнительный

D0(ОЗУ)

6

Всегда разрешен

D0 – координатор данных ОЗУ

Имеет самый низкий приоритет переадресации команд доступа к данным. Внутренняя системная память ОЗУ является всегда доступной для микроконтроллера после системного сброса и имеет размер и конфигурацию в зависимости от микросхемы.

Например, ТЕ520 имеет ОЗУ 40 Кбайт. «Нижние» 32 Кбайт размещены в пределах адресного пространства 0000h – 7FFFh. Четыре копии «верхних» 8 Кбайт размещены по адресам 8000h, А000h, C000h и E000h, и D0 ссылается на них, если нет другого активного координатора, использующего эти области памяти.

Если координаторы D1 и D2 разрешены, то они способствуют перераспределению ОЗУ. Координатор D3 используется при обращении к конфигурирующим регистрам и имеет один программируемый регистр DMAP0_TAR, значение которого выставляется на старших адресных линиях КСМ A{31:24}. D3 всегда разрешен.

D0 целевой адрес (RAM координатор)

Мнемоника: DMAP1_TARАдрес:FF0EH

D1, D2, D4, D5 – полностью программируемые адресные координаторы данных

Координатор D5 имеет самый высокий приоритет среди всех координаторов данных, кроме D3. D5, D4, D2 и D1 могут быть разрешены в индивидуальном порядке и запрещены после системного сброса. Среда FastChip самостоятельно определяет значения регистрам, но пользователь может их модифицировать.

D1 целевой адрес (младший байт)

Мнемоника: DMAP1_TAR0 Адрес:FF0FH

D1 целевой адрес (средний байт)

Мнемоника: DMAP1_TAR1 Адрес:FF10H

D1 целевой (старший байт)

Мнемоника: DMAP1_TAR2 Адрес:FF11H

D1 адрес исходной зоны

Мнемоника: DMAP1_SRCАдрес:FF12H

D1 контрольный регистр

Мнемоника: DMAP1_CTLАдрес:FF13H

D2 целевой адрес (младший байт)

Мнемоника: DMAP2_TAR0 Адрес:FF14H

D2 целевой адрес (средний байт)

Мнемоника: DMAP2_TAR1 Адрес:FF15H

D2 целевой (старший байт)

Мнемоника: DMAP2_TAR2 Адрес:FF16H

D2 адрес исходной зоны

Мнемоника: DMAP2_SRCАдрес:FF17H

D2 контрольный регистр

Мнемоника: DMAP2_CTLАдрес:FF18H

D4 целевой адрес (младший байт)

Мнемоника: DMAP4_TAR0 Адрес:FF80H

D4 целевой адрес (средний байт)

Мнемоника: DMAP4_TAR1 Адрес:FF81H

D4 целевой (старший байт)

Мнемоника: DMAP4_TAR2 Адрес:FF82H

D4 адрес исходной зоны

Мнемоника: DMAP4_SRCАдрес:FF83H

D4 контрольный регистр

Мнемоника: DMAP4_CTLАдрес:FF84H

D5 целевой адрес (младший байт)

Мнемоника: DMAP5_TAR0 Адрес:FF85H

D5 целевой адрес (средний байт)

Мнемоника: DMAP5_TAR1 Адрес:FF86H

D5 целевой (старший байт)

Мнемоника: DMAP5_TAR2 Адрес:FF87H

D5 адрес исходной зоны

Мнемоника: DMAP5_SRCАдрес:FF88H

D5 контрольный регистр

Мнемоника: DMAP5_CTLАдрес:FF89H

D3 – адресный координатор конфигурирующих регистров

Имеет самый высокий приоритет. Конфигурирующие регистры всегда доступны микроконтроллеру. Для координатора D3 можно определить смещение в 4 Кбайт или 256 байт. После системного сброса для D3 устанавливается смещение в 4 Кбайт. Это означает, что координатор ссылается на верхние 4 Кбайт пространства данных между адресами F000H и FFFFH включительно. По окончании программы инициализации, зона данных координатора D3 уменьшится до 256 байт.

Начальный адрес координатора D3 должен быть привязан к 4-х Кб адресным границам. Все регистры адресных координаторов доступны через D3. D3 всегда разрешен.

D3 целевой адрес

Мнемоника: DMAP3_TAR Адрес:FF19H

D3 адрес исходной зоны

Мнемоника: DMAP3_SRCАдрес:FF1АH

D3 контрольный регистр

Мнемоника: DMAP3_CTLАдрес:FF1ВH

В регистре DMAP3_CTL бит BLOCKSIZE определяет размер смещения. Если BLOCKSIZE=1, то смещение составляет 4 Кбайт (устанавливается автоматически при включении питания); если BLOCKSIZE=0, то - 256 байт.

Адресный координатор, экспортирующий SFR - SFR координатор

Конфигурируемая система на кристалле предоставляет пользователю возможность создания собственных периферийных устройств с использованием встроенной на кристалле конфигурируемой логической матрицы. Это устройство может быть размещено как во внешней памяти данных, так и в памяти SFR. Если устройство размещено в памяти SFR, то контрольные регистры, встроенные в логическую матрицу, занимают регистры в памяти микроконтроллера.

Координатор регистров специального назначения снабжен специальным программируемым регистром XMAP_ALT. При обращении к внешним SFR на адресные линии A{31:24} системной шины выставляется содержимое этого регистра или регистра XMAP_TAR_2 в случае команды latch или pin. Это предусмотрено в целях отладки, когда команды обращения к внешним SFR различимы. В случае системного сброса, бит разрешения координатора сбрасывается.

В сверхоперативной памяти микроконтроллера размещены 128 адресуемых ячеек, предназначенных для размещения регистров специального назначения (см. табл.30). Среда FastChip предотвращает размещение модуля, реализованного в логической матрице, по адресам внутренних SFR, уже используемых микроконтроллером.

При обращении к внешнему экспортируемому SFR на системную шина выставляется 32 битный физический адрес, старший байт которого отображает содержимое одного из регистров XMAP_TAR_2 или XMAP_ALT. Следующие два байта в адресе – содержимое регистров XMAP_TAR_1 и XMAP_TAR_0 соответственно, а последний байт – это младший байт логического адреса микроконтроллера A{7:0}.

Устройство, реализованное в логической матрице, с экспортируемыми регистрами специального назначения может быть также доступно через ссылки внешнего запоминающего устройства, расположенные в координаторах данных. Размещение регистров программного модуля в памяти SFR микроконтроллера способствует быстрому и более простому доступу с использованием команд прямой ссылки. Этот метод также позволяет пользователю применять команды по манипулированию битами этих регистров. Однако значения регистров этого координатора обычно никогда не модифицируются, и их значения загружаются в процессе инициализации.

SFR export целевой адрес (младший байт)

Мнемоника: XMAP TAR 0 Адрес:FЕ20H

SFR export целевой адрес (средний байт)

Мнемоника: XMAP TAR 1 Адрес:FЕ21H

SFR export целевой адрес (LATCH-команда)

Мнемоника: XMAP TAR 2 Адрес:FЕ22H

SFR export целевой адрес ( PIN-команда)

Мнемоника: XMAP ALT Адрес:FЕ24H

Предусмотренные значения старшего байта адреса координаторов

В таблице 23 представлены принятые по умолчанию значения старших адресных битов для каждого из координаторов. Эти значения загружаются в соответствующие регистры в процессе инициализации.

Программная среда FastChip использует их при назначении 32-х битного физического адреса для адресных селекторов логической матрицы. Значения, представленные по умолчанию в таблице 23, и значения регистров адресных координаторов позволяют селекторам логической матрицы выборочно реагировать на различные типы команд.

Например, если устройство FLASH памяти подключено к MIU (устройство сопряжения с внешней памятью), то по некоторому адресу можно обратиться как к сегменту кода или данных. В процессе обычных операций сегмент Flash памяти используется для хранения кода, а в процессе программирования Flash память расценивается как сегмент данных. Различие между кодом и данными отмечено в старшем байте адреса и используется при доступе к одному и тому же физическому адресу.

В другом примере, предположим, что адресный селектор используется для активизации внешней памяти ПЗУ, на которую ссылается кодовый адресный координатор С1. Селектору необходимо реагировать как на выборку операнда, так и на выборку кода операции. В виду того, что регистры координатора имеют следующие значения CMAP1_TAR_2=00101000В (операнд) и CMA1_ALT=000010000В (код), то среда FastChip запрограммирует старший байт регистра маски селектора значением 0010000, делающим способным селектор реагировать на обе выборки кода операции и операнда.

Значения адресных координаторов также используется блоком внутрисхемной отладки, чтобы различать выборки кода операций и операнда при доступе к памяти.

Необходимость различать команды latch и pin возникает, если проектировщик выбирает 8051-совместимые порты ввода-вывода из модульной библиотеки программной среды. Для адресных селекторов логической матрицы нет никакой необходимости различать команды latch и pin.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]