Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Шумахер У. Полупроводниковая электроника

.pdf
Скачиваний:
203
Добавлен:
28.03.2015
Размер:
8.01 Mб
Скачать

INFSEMI_2-Text.fm, стр. 252 из 589 (September 3, 2010, 17:05)

252 6. Память

RAS

 

 

 

 

tRAC

 

 

 

 

___

 

tHPC

 

 

CAS

 

 

 

 

 

 

 

Адрес

 

 

 

 

x

y1

y2

y3

y4

Данные

tAA

 

 

 

 

 

 

D1

D2

D3

D4

Рис. 6.15. В микросхемах EDO DRAM данные остаются на выходах даже тогда, когда сигнал CAS становится неактивным.

Большинство процессоров считывают данные из памяти в 4-битном пакетном режиме. Оптимальный режим передачи данных между процессором и модулем памяти достигается в том случае, когда процесс записи или чтения данных занимает не более одного цикла тактового сигнала. Но ни для микросхем, построенных по архитектуре FPM, ни для микросхем архитектуры EDO это невозможно, поскольку в обоих случаях увеличение разрядности шины данных на один бит требует добавления новой адресной линии. А это означает добавление одного или более циклов ожидания между тактовыми импульсами.

Предположим, что данные, которые необходимо считать из модуля памяти, находятся на странице, которая уже была открыта. Тогда для чтения 4-битного пакета при условии, что память работает с тактовым сигналом частотой 66 МГц, потребуются 5/3/3/3 циклов (для памяти с архитектурой FPM) или 5/2/2/2 циклов (для памяти EDO). В обоих случаях первая цифра относится к количеству тактов ожидания доступности первого бита, остальные цифры — количество тактов ожидания для последующих битов.

6.3.2. Синхронная DRAM

Синхронная DRAM (SDRAM) представляет собой усовершенствованную архитектуру, в соответствии с которой работа модуля памяти осуществляется в синхронном режиме с управлением по шине процессора. Это повышает скорость работы и снижает стоимость разработки всей системы в целом.

В модуле SDRAM все входные и выходные сигналы синхронизируются тактовыми импульсами, поступающими по внешней системной шине; считывание сигналов управления осуществляется по нарастающему фронту тактовых импульсов. При использовании такого подхода стало возможным записывать и считывать данные по каждому тактовому импульсу. При этом данные появляются на соответствующих выходах с 10-нс интервалом (при частоте системной шины 100 МГц). Необходимо лишь задать стартовый адрес для считываемого пакета данных; адреса последующих битов в пакете указывать не надо. К сожалению, для модулей SDRAM время считывания первого бита остаётся таким же, как и для модулей FPM и EDO (Рис. 6.16). Это означает, что даже в самом благоприятном случае для 4-битного пакета данных мы будем иметь последовательность циклов считывания 5/1/1/1. Впрочем, уже это позволяет заполнять «быструю» (SRAM) кэш-па- мять микросхемы SDRAM без использования дополнительных тактов ожидания.

Тактовые

импульсы tCLK =10 нс

——– RAS

___

tRAC

 

CAS

 

Адрес

tAA

 

 

 

 

 

 

 

x

y1

 

 

 

Данные

 

 

 

 

 

D1

D2

D3

D4

Рис. 6.16. При работе SDRAM данные появляются на соответствующих выходах с интервалом в 10 нс.

Одна из особенностей применения SDRAM состоит в том, что длина считываемого пакета данных, как и время задержки до появления на выходе микросхемы первого бита данных (так называемая латентность ОЗУ) могут быть запрограммированы с использованием специально предназначенной для этого команды; таким образом, модуль памяти всегда может быть задействован наиболее оптимальным обра-

INFSEMI_2-Text.fm, стр. 253 из 589 (September 3, 2010, 17:05)

6.3. Совершенствование микросхем DRAM с точки зрения их быстродействия 253

зом. Кроме того, SDRAM содержит два или более независимых банка данных, обращение к которым может производиться одновременно. Биты данных, поступающие с выходов различных банков, могут накладываться (по времени) друг на друга, что практически сводит к нулю эффективное время предзаряда при обновлении DRAM и длительность цикла ожидания при первом обращении к памяти. Таким образом, обеспечивается возможность работы с непрерывным потоком данных при осуществлении операций чтения и записи на частоте 133 МГц.

6.3.3.Микросхемы памяти с удвоенной скоростью передачи данных

При работе микросхем памяти с внешним интерфейсом, соответствующим стандарту низковольтной TTL-логики (LVTTL), на частотах выше 150 МГц уровень их энергопотребления, связанный с выполнением операций ввода/вывода данных, возрастает настолько, что оказывается сопоставимым с уровнем энергопотребления устройств стандарта SSTL (сверхбыстродействующей TTL-логики). Для более высоких частот использование интерфейсов LVTTL становится ещё более невыгодным не только с точки зрения повышенного энергопотребления, но и вследствие искажения формы сигнала. Поэтому модули памяти с интерфейсом SSTL всегда пользовались спросом и предлагались к продаже как для SDRAM первых поколений, так и в настоящее время. Однако необходимо заметить, что современные материнские платы рассчитаны на поддержку только SDRAM-памяти с интерфейсом LVTTL.

Необходимость реализации систем со скоростью передачи 200 Мбит/с и более на один вывод шины данных потребовала новых оптимизированных решений, в том числе связанных с изменением интерфейсных протоколов ввода/вывода. Для того чтобы достичь указанной высокой скорости обмена, было решено, что поддерживать её необходимо только при передаче данных, но не при передаче команд и адресов. Так появились микросхемы SDRAM с удвоенной скоростью передачи данных (Double Data Rate — DDR). Их архитектура такова, что чтение и запись слов данных осуществляется как по нарастающему, так и по спа-

дающему фронту тактового сигнала. Тактовая частота может быть снижена до комфортных 100 МГц; при этом скорость передачи данных будет эквивалентна SDRAM, работающей на частоте 166 МГц.

К тому моменту, когда в 2004 году на рынке появились микросхемы SDRAM нового стандарта DDR2 (соответственно, микросхемы первого поколения начали называть DDR1), в системах с тактовой частотой 200 МГц были достигнуты предельные значения скорости передачи данных, соответствующие 400 Мбит/с на один вывод. Таким образом, по сравнению с обычными SDRAM, микросхемы DDR SDRAM обеспечивают значительное повышение производительности системы при сохранении многих положительных характеристик SDRAM. Такой эволюционных подход к улучшению параметров продукции особенно хорош с точки зрения её массового производства.

6.3.4.Стандартизированные модули памяти для ПК

В настоящее время при использовании микросхем памяти принято не запаивать их непосредственно в системную плату компьютера, а вставлять в специальные разъёмы на системной плате, предназначенные для установки так называемых модулей памяти. Таким образом, пользователь имеет возможность без проблем наращивать объём памяти ПК при его модернизации. Классификация модулей памяти для ПК (Рис. 6.17) включает в себя несколько стандартизированных семейств этих устройств, которые, кроме того, различаются по объёму памяти.

Первыми появились модули памяти SIMM (Single In-line Memory Module), которые были разработаны под 72-контакт- ный плоский разъём с однорядным расположением выводов и поддерживали как 32-битную шину данных без контроля чётности, так и 36-битную шину с контролем чётности. Напряжение питания этих модулей составляло 5 В. Данный стандарт был ориентирован на использование микросхем асинхронной динамической памяти, отвечающих спецификациям FPM или EDO.

Модули DIMM (Dual In-line Memory Module) с двухрядным расположением выводов являются развитием семейства

INFSEMI_2-Text.fm, стр. 254 из 589 (September 3, 2010, 17:05)

254 6. Память

EDO, FPM DRAM

72-выводной

небуферизированный модуль SIMM

 

 

(×32, ×36)

 

 

72-выводной модуль SO-DIMM (×32)

EDO, FPM DRAM, SDRAM

168-выводной

небуферизированный модуль

×64 или ×72 (ECC)

DIMM

 

 

 

 

 

DDR SDRAM

184-выводной

небуферизированный модуль

×64 или ×72 (ECC)

DIMM (DDR SDRAM)

 

 

 

 

 

DDR2 SDRAM

240-выводной

небуферизированный модуль

×64 или×72 (ECC)

DIMM (DDR2 SDRAM)

 

 

 

168-выводной модуль DIMM

 

144-выводной модуль

с выходным регистром

 

SO-DIMM

 

 

 

 

 

 

184-выводной модуль DIMM

 

200-выводной модуль

с выходным регистром

 

SO-DIMM

 

 

 

 

 

 

240-выводной модуль DIMM

 

240-выводной модуль

с выходным регистром

 

SO-DIMM

 

 

 

Рис. 6.17. Стандартизированные модули памяти, предназначенные для использования в ПК.

SIMM. Их можно рассматривать как два модуля SIMM, размещённых на одной печатной плате. Первые модули этого типа имели 168 выводов, по 84 вывода с каждой стороны печатной платы, и шину данных двойной, по сравнению с SIMM, ширины. При этом назначение выводов, расположенных с одной стороны печатной платы модуля, отличается от назначения выводов, расположенных с другой стороны, и выводы не являются взаимозаменяемыми. В составе этих модулей с напряжением питания 3.3 В использовались и асинхронные микросхемы DRAM, и синхронные SDRAM.

Существуют две разновидности модулей DIMM: буферизированные и небуферизированные. В состав буферизированных DIMM включён специальный буфер, через который поступает большинство входных сигналов. Наличие буфера позволяет снизить входную ёмкость модуля почти до 10 пФ, что имеет существенное значение в системах с большим количеством разъёмов DIMM (обычно подобные системы использовались в качестве серверов). Небуферизированные модули DIMM, как не трудно догадаться, буфера не имеют. Взамен этого, они предоставляют возможность использования в них микросхем FPM DRAM и EDO DRAM, а также микросхем синхронной памяти SDRAM.

Все перечисленные выше модули были разработаны под один и тот же тип разъёма, что означало их взаимозаменяемость (если это поддерживалось материнской платой); в ряде случаев они даже могли использовать-

ся совместно в смешанных наборах. Таким образом, производители ПК имели возможность обеспечить необходимую гибкость в комплектации своей продукции, даже на этапе её поставки потребителям. В небуферизованных модулях DIMM впервые была реализована функция SPD (Serial Presence Detect — обнаружение присутствия последовательности). В состав модуля памяти включается дополнительная энергонезависимая память EEPROM с интерфейсом последовательного доступа к данным, содержащая все сведения о модуле (объём памяти, её организация, электрические характеристики микросхем и т.п.). Эти данные могут быть считаны и обработаны процессором, что даёт возможность контроллеру памяти выбрать оптимальный режим работы с установленными на процессорную плату модулями DIMM. С появлением модулей, поддерживающих функцию SPD, стала возможной и практическая реализация оптимизированного режима plug&play.

Для КПК и ноутбуков выпускаются специальные малогабаритные модули SODIMM (Small Outline DIMM). В переносных компьютерах с 64-битной шиной данных используется семейство SO-DIMM с 144-контактным разъёмом. Модули этого семейства могут комплектоваться как микросхемами EDO DRAM, так и микросхемами SDRAM. Благодаря своим небольшим размерам (67.5 мм в длину и 25.4 мм в высоту), эти модули очень быстро нашли применение практически во всех моделях портативных компьютеров.

INFSEMI_2-Text.fm, стр. 255 из 589 (September 3, 2010, 17:05)

6.3.Совершенствование микросхем DRAM с точки зрения их быстродействия 255

Всоставе модулей DIMM также могут

использоваться и микросхемы DDR SDRAM. В этом случае количество выводов буферизированных и небуферизированных модулей равно 184, а модули SO-DIMM имеют 200 выводов. На Рис. 6.18 показан модуль SO-DIMM с установленными в него микросхемами DDR-SDRAM, которые обеспечивают скорость передачи данных 266 Мбит/с и имеют общий объём памяти

512Мбайт.

Вмодулях, предназначенных для размещения микросхем памяти следующего поколения (DDR2), количество выводов возросло до 200 для обычных модулей и до 240 для SO-DIMM. Это связано с увеличением количества сигналов (в первую очередь, сигналов стробирования данных), необходимых для обслуживания протоколов безопасной передачи данных.

Рис. 6.18. Модули SO-DIMM, применяющиеся в переносных компьютерах. На рисунке показан модуль, объём памяти которого составляет 512 Мбайт.

Более подробные сведения о рассмотренных выше приборах и модулях можно найти в доступных широкому кругу пользователей спецификациях микросхем производства компании Infineon.

INFSEMI_2-Text.fm, стр. 256 из 589 (September 3, 2010, 17:05)

2567. МИКРОКОНТРОЛЛЕРЫ7. Микроконтроллеры

7.1. Введение

Давным-давно, в семидесятые годы прошлого века, первые микропроцессоры, едва только появившись на рынке, сразу же нашли применение в системах автоматического управления. Конечно, они использовались совместно с дополнительными модулями, такими как микросхемы ОЗУ (RAM), микросхемы ПЗУ (ROM) и различные устройства ввода/вывода, включая интерфейсы UART или USART. Первоначально все эти компоненты размещались на общей печатной плате с микропроцессором, образуя в совокупности некий блок управления.

Дальнейшие попытки разработчиков разместить как можно большее количество этих периферийных компонентов на одном кристалле с процессором привели в итоге к созданию полнофункционального однокристального микроконтроллера. К концу 1970-х годов в массовом производстве находилось уже несколько типов таких восьмибитных устройств, снабжённых встроенным ОЗУ, контроллером последовательного интерфейса, таймерами и (опционально) ПЗУ. В 1980 году на рынок вышел микроконтроллер Intel 8051, который практически сразу же стал стандартом де-факто для 8-битных устройств. Он и в настоящее время продолжает выпускаться в самых различных модификациях (подробнее о них см. ниже в разделе 7.2).

Главной движущей силой в дальнейших разработках микроконтроллеров стало стремление обеспечить более высокую сложность и быстродействие при улучшенном соотношении цена/эффективность. В настоящее время для большинства высокопроизводительных систем стандартом является использование 16-битных микроконтроллеров, которые выпускаются во всём мире в огромных количествах (они подробно описаны в разделе 7.3). Ну, а в самых сложных областях применения существует всё более явная тенденция к использованию контроллеров с 32-битной шиной данных (подробнее о них см. в разделе 7.4).

7.2. Восьмибитные микроконтроллеры

7.2.1. Введение

Семейство 8-битных микроконтроллеров C500 производства компании Infineon с точки зрения архитектуры и программного обеспечения полностью совместимо со всеми стандартными микроконтроллерами семейства 8051. Наиболее полная совместимость «вверх» осуществляется с микроконтроллерами SAB 80C52/80C32. Будучи построенными на основе той же процессорной архитектуры, что и SAB 80C52/80C32, микроконтроллеры семейства C500 имеют более развитый набор встроенных периферийных устройств, наилучшим образом адаптированных к сфере их применения и отличающихся повышенной надежностью функционирования.

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

7.2.2. Организация памяти

Ресурсы памяти микроконтроллеров семейства С500 разделяются на память данных и память программ, которые, в свою очередь, могут быть как внутренними (размещёнными в том же полупроводниковом кристалле, что и ядро микроконтроллера), так и внешними. Принцип разделения памяти микроконтроллеров этого семейства типичен для процессоров гарвардской архитектуры, в соответствии с которой, как известно, данные и программы хранятся в различных областях памяти. Обращение к периферийным устройствам, размещённым на кристалле, реализовано через регистры специальных функций (Special Function Register — SFR).

Доступные области памяти имеют различные размеры. Как указано в Табл. 7.1, существуют три различных типа памяти и шесть возможных областей физического размещения памяти различных типов.

 

 

 

INFSEMI_2-Text.fm, стр. 257 из 589 (September 3, 2010, 17:05)

 

 

7.2. Восьмибитные микроконтроллеры 257

 

 

 

 

 

 

Таблица 7.1. Распределение памяти микроконтроллера С500

 

 

 

 

 

 

 

Тип памяти

Размещение

 

Объём памяти

 

 

 

 

 

 

Память программ

Внешняя

 

Максимум 64 Кбайт

 

 

 

 

 

 

 

 

 

Внутренняя: ПЗУ, EPROM

 

Зависит от версии: от 2 до 64 Кбайт

 

 

 

(СППЗУ)

 

 

 

 

 

 

 

 

 

Оперативная память

Внешняя

 

Максимум 64 Кбайт

 

 

 

 

 

 

 

 

 

Внутренняя расширенная

 

Зависит от версии: от 256 байт

 

 

 

(XRAM)

 

до 3 Кбайт

 

 

 

 

 

 

 

 

 

Внутренняя

 

128 или 256 байт

 

 

 

 

 

 

Регистры специальных

Внутренняя

 

128 или 256 байт

 

функций

 

 

 

 

 

 

 

 

 

 

 

 

Память программ

Память программ микроконтроллеров семейства С500 может размещаться: в модуле внешней памяти, во внутренней памяти (встроенное ПЗУ) или частично во внутренней памяти, а частично во внешней. Если на выводе EA (управления внешним доступом) микроконтроллера присутствует сигнал НИЗКОГО уровня, то С500 будет всегда исполнять программу, находящуюся во внешней памяти.

Если та или иная модификация микроконтроллера С500 не имеет встроенного ПЗУ, то единственным местом, где может физически размещаться исполняемая программа, является внешняя память. В случае, когда микроконтроллер имеет внутреннее ПЗУ, обычно именно оно и используется для хранения программы. Для того чтобы задействовать внутреннее ПЗУ, необходимо подать на вход EA процессора сигнал ВЫСОКОГО уровня. При соблюдении этого условия микроконтроллер исполняет команды из внутреннего ПЗУ до тех пор, пока адреса этих команд не выходят за верхнюю границу адресного пространства указанного ПЗУ. Если адрес, находящийся в счётчике команд (PC), превышает верхнюю границу адресов внутреннего ПЗУ (например, при выполнении команды JUMP), то будет выполнена команда, расположенная во внешней памяти. Когда же адрес исполняемой команды вновь окажется в диапазоне адресов внутреннего ПЗУ, команда снова будет считана из этой области памяти.

На Рис. 7.1 приведены типичные конфигурации памяти программ для процессоров семейства С500, как при EA = 0, так и при EA = 1. Верхняя граница адресного пространства ПЗУ, показанная на Рис. 7.1, со-

ответствует модификациям микроконтроллера С500 с 8 Кбайт внутренней памяти программ. У других контроллеров этого семейства, с иным объёмом внутреннего ПЗУ, граница соответствующим образом смещена.

 

__

__

 

EA = 1

 

 

EA = 0

FFFFh

 

FFFFh

 

Внешняя

Внешняя

 

 

 

 

память

 

 

память

 

программ

 

 

программ

2000h

 

Граница адресного

 

1FFFh

 

 

ПЗУ

 

Внутренняя

пространства

 

 

 

 

 

память

 

 

 

0000h

программ

0000h

 

 

 

Положение границы области адресов ПЗУ зависит от версии микроконтроллера семейства C500.

Рис. 7.1. Конфигурация ПЗУ (на примере микроконтроллера С501).

Память данных

Память данных микроконтроллеров семейства С500 подразделяется на внешнюю

ивнутреннюю области. Для внутренней памяти данных используется 8-битный адрес, при обращении к внешней памяти данных

ивнутренней расширенной памяти XRAM используются как 8-битные, так и 16-бит- ные адреса.

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

INFSEMI_2-Text.fm, стр. 258 из 589 (September 3, 2010, 17:05)

258 7. Микроконтроллеры

FFh

 

 

 

 

 

 

 

 

 

FFh

 

7Fh

 

 

 

 

 

 

 

 

 

F8h

FF

FE

FD

FC

FB

FA

F9

F8

 

 

 

Область адресов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ОЗУ

 

 

 

 

F0h

F7

F6

F5

F4

F3

F2

F1

F0

 

 

Верхняя область

30h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

адресов внутреннего

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2Fh

 

 

 

 

 

 

 

 

 

E8h

EF

EE

ED

EC

EB

EA

E9

E8

 

 

ОЗУ, 128 байт

7F

7E

7D

7C

7B

7A

79

78

 

 

 

 

 

 

 

 

 

 

 

(косвенная адресация) 1)

2Eh

77

76

75

74

73

72

71

70

E0h

E7

E6

E5

E4

E3

E2

E1

E0

 

 

 

2Dh

6F

6E

6D

6C

6B

6A

69

68

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2Ch

67

66

65

64

63

62

61

60

D8h

DF

DE

DD

DC

DB

DA

D9

D8

 

 

 

 

80h

 

2Bh

5F

5E

5D

5C

5B

5A

59

58

 

 

 

 

 

 

 

 

 

 

 

D0h

D7

D6

D5

D4

D3

D2

D1

D0

 

 

2Ah

57

56

55

54

53

52

51

50

 

7Fh

 

 

 

 

 

 

 

 

 

 

 

 

 

 

29h

4F

4E

4D

4C

4B

4A

49

48

 

 

 

 

 

 

 

 

 

 

 

 

C8h

CF

CE

CD

CC

CB

CA

C9

C8

 

 

 

28h

47

46

45

44

43

42

41

40

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Нижняя область

27h

3F

3E

3D

3C

3B

3A

39

38

C0h

C7

C6

C5

C4

C3

C2

C1

C0

 

 

 

 

26h

37

36

35

34

33

32

31

30

 

 

 

 

 

 

 

 

 

 

 

адресов внутреннего

B8h

BF

BE

BD

BC

BB

BA

B9

B8

 

 

ОЗУ, 128 байт

25h

2F

2E

2D

2C

2B

2A

29

28

 

 

 

 

 

 

 

 

 

 

(косвенная и

24h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

27

26

25

24

23

22

21

20

B0h

B7

B6

B5

B4

B3

B2

B1

B0

 

 

прямая адресация)

23h

1F

1E

1D

1C

1B

1A

19

18

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

22h

17

16

15

14

13

12

11

10

A8h

AF

AE

AD

AB

AC

AA

A8

A9

 

00h

 

 

 

21h

0F

0E

0D

0C

0B

0A

09

08

 

 

 

 

 

 

 

 

 

 

 

 

A0h

A7

A6

A5

A4

A3

A2

A1

A0

 

 

 

20h

07

06

05

04

03

02

01

00

 

 

 

 

 

 

 

 

 

 

 

 

1Fh

Банк регистров 3

98h

9F

9E

9D

9B

9C

9A

98

99

 

 

 

18h

 

 

 

 

 

 

 

 

 

 

 

 

17h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

90h

97

96

95

94

93

92

91

90

 

 

 

Банк регистров 2

 

 

 

10h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

88h

8F

8E

8D

8B

8C

8A

88

89

 

 

 

0Fh

Банк регистров 1

 

 

 

 

 

 

 

 

 

 

 

 

08h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

80h

87

86

85

84

83

82

81

80

 

 

 

07h

 

 

 

R7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

06h

 

 

 

R6

 

 

Адреса внутренних регистров

 

 

 

 

 

 

 

регистров

 

 

 

05h

 

 

 

R5

 

 

 

 

 

 

 

 

 

 

 

 

специального назначения,

 

 

 

 

 

 

 

 

 

 

 

04h

 

 

 

R4

 

 

 

 

128 байт (прямая адресация)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

03h

 

 

 

R3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

02h

 

 

 

R2

 

 

Банк

 

 

 

 

 

 

 

 

 

 

 

 

 

01h

 

 

 

R1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

00h

 

 

 

R0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1) Опционально. Наиболее простые модели микроконтроллеров

семейства C500 работу с этой областью адресов внутреннего ОЗУ не поддерживают.

16 байт содержат 128 бит, каждый из которых может быть адресован независимо от остальных

Рис. 7.2. Структура внутреннего ОЗУ микроконтроллера C500.

то текущее содержимое внутренней памяти данных остаётся неизменным как в процессе, так и после подачи сигнала RESET. Кроме того, содержимое внутренней памяти XRAM сохраняется неизменным и в режиме пониженного энергопотребления.

Внутренняя память данных

Адресное пространство внутренней памяти данных состоит из трёх блоков, обращение к которым осуществляется независимо: нижние 128 байт внутреннего ОЗУ данных, верхние 128 байт внутреннего ОЗУ данных и 128 байт области регистров специальных функций (SFR).

Кроме того, нижняя область ОЗУ данных и область регистров специального назначения содержат по 128 бит памяти данных каждая, содержимое которой 3может быть изменено с помощью специальных команд

побитно и независимо от содержимого остальных ячеек ОЗУ.

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

На Рис. 7.2 представлена структура трёх основных областей внутреннего ОЗУ. Нижняя область адресов ОЗУ данных (00h…7Fh) может быть адресована непосредственно (например, MOV A,адрес) или косвенно (например, MOV A,@R0, где адрес содержится в регистре R0). Адреса 20h…2Fh выделены под специальную область ячеек памяти, которая имеет объём 128 бит (16 байт). В этой области ОЗУ данных поддерживается прямая адресация к каждому из битов, значения которых могут устанавливаться независимо от других. Соответственно, нулевой бит байта этой области

INFSEMI_2-Text.fm, стр. 259 из 589 (September 3, 2010, 17:05)

 

 

 

 

 

 

7.2. Восьмибитные микроконтроллеры

259

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ОЗУ, расположенного по адресу 20h, имеет

FFFFh

 

 

 

 

 

 

 

 

 

FFFFh

адрес 00h, а седьмой бит байта внутреннего

 

 

 

 

 

Внутренняя

 

 

 

 

 

 

 

 

 

 

 

ОЗУ данных, расположенного по адресу

FEFFh

 

 

 

 

 

 

XRAM

 

FF00h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2Fh, имеет адрес 7Fh. Нижние 32 адреса

 

 

 

 

 

 

 

 

 

 

 

 

 

нижней области внутреннего ОЗУ данных

 

 

 

 

XRAM расположена в области

отведены под четыре группы по восемь ре-

 

 

 

 

 

 

 

 

адресов, относящейся

гистров

общего

назначения

(General

 

 

 

 

 

 

Внешняя

 

к верхней части адресного

Purpose Register — GPR). В каждый момент

 

 

память

 

пространства внешнего ОЗУ.

времени может быть задействована только

 

 

данных

 

 

 

 

 

 

 

 

 

 

 

 

(ОЗУ)

 

 

 

 

 

 

 

 

 

 

одна группа регистров.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Поскольку область SFR и верхняя об-

 

 

 

 

 

 

 

 

 

 

 

 

 

ласть внутреннего ОЗУ имеют один и тот же

 

 

 

 

 

 

 

 

 

 

 

 

 

диапазон адресов (80h…FFh), для обраще-

0000h

 

 

 

 

 

 

 

 

 

 

 

ния к ним необходимо использовать раз-

Рис. 7.3. Схема размещения XRAM в адресном

личные механизмы доступа. В этих целях

пространстве микроконтроллера (в данном

обращение к верхней части области адресов

примере объём памяти XRAM составляет

внутреннего ОЗУ

может осуществляться

 

 

 

 

256 байт).

 

 

 

 

 

 

 

только через механизм косвенной адреса-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ции, а обращение к регистрам специальных

Внешняя память данных

 

 

 

 

 

 

 

функций (SFR) — только с использованием

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

команд прямой адресации. Регистры обще-

В

 

микроконтроллерах

семейства

 

C500

го назначения, в адресе которых значение

предусмотрена

возможность

обращения к

битов 0…2 равно нулю (т.е. регистры, рас-

64-Кбайт внешней памяти данных с помо-

положенные по адресам 80h, 88h, 90h,

щью команд, использующих 8- и 16-битную

…F8h), могут быть адресованы побитно.

косвенную адресацию. 16-битная адресация

Внутренняя память XRAM

 

внешней памяти осуществляется командой

 

MOVX с использованием регистра-указателя

 

 

 

 

 

 

 

В некоторых микроконтроллерах се-

данных (DPTR) в качестве адресного 16-бит-

мейства С500 имеется дополнительная об-

ного регистра. При 8-битной адресации ко-

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

манда MOVX используется в сочетании с ре-

называется

расширенной

памятью

гистрами общего назначения R0/R1.

 

 

 

(XRAM). Её адресное пространство распо-

7.2.3. Область регистров специальных

ложено в верхней части области адресов

внешней памяти данных, но физически па-

 

 

функций

 

 

 

 

 

 

 

 

мять XRAM размещена на том же самом

За исключением счётчика команд и че-

кристалле, что

и

процессор. Поскольку

тырёх банков

регистров

общего

назначе-

XRAM используется аналогично внешней

ния,

 

все регистры микроконтроллера се-

памяти данных, обращение к ней осуществ-

 

мейства С500 расположены в отдельной об-

ляется при помощи тех же команд.

 

 

ласти памяти, называемой областью регис-

 

На Рис. 7.3

приведена схема размеще-

 

тров

 

специального

назначения

 

(см.

ния в адресном пространстве стандартного

 

 

Рис. 7.2). Как правило, область регистров

для семейства

микроконтроллеров С500

специальных

функций

 

имеет

размер

модуля XRAM с объёмом памяти 256 байт.

 

128 байт, обращение к которым осущест-

 

В зависимости от конкретной модифи-

 

вляется путём прямой адресации. Те регист-

кации микроконтроллера семейства С500,

ры, для которых значения битов 0…2 в бай-

размер области XRAM, расположенной на

те адреса равны нулю (это адреса 80h, 88h,

его кристалле, может варьироваться в диа-

90h, …F8h), могут быть адресованы побитно

пазоне 128 байт…3 Кбайт. У памяти XRAM

(см. Рис. 7.2). Так, например, регистр SFR с

есть ещё одно интересное свойство — она

байтовым адресом 80h содержит независи-

может быть активирована или отключена.

мо

программируемые

биты

с

адресами

В последнем случае область адресов XRAM

80h…87h. Диапазон адресов этих независи-

можно

использовать для адресации вне-

мо программируемых битов SFR (всего их

шнего ОЗУ.

128) составляет 80h…FFh.

 

INFSEMI_2-Text.fm, стр. 260 из 589 (September 3, 2010, 17:05)

260 7. Микроконтроллеры

7.2.4. Архитектура ЦПУ

 

 

микроконтроллера периферийных модулей

На Рис. 7.4 изображена типичная архи-

зависит от его назначения. Стандартный

набор включает в себя последовательный

тектура микроконтроллера семейства С500,

интерфейс, блок таймеров, модуль захвата и

включающая в себя его основные функцио-

сравнения, АЦП, сторожевой таймер и

нальные модули. Те из них, которые на ри-

блок умножения/деления. Внешние сигна-

сунке выделены серой «заливкой», являются

лы для этих встроенных периферийных уст-

базовыми и обязательно входят в состав лю-

ройств могут поступать по многофункцио-

бого из микроконтроллеров семейства С500.

нальной шине параллельного ввода/вывода

Наличие

остальных

модулей,

например

либо через специально зарезервированные

XRAM или периферийных устройств, а так-

для этого выводы микроконтроллера.

же объём памяти ПЗУ/ОЗУ зависит от конк-

Арифметический блок, в состав которого

ретной модификации микроконтроллера.

входят АЛУ (арифметико-логическое уст-

Основой функциональной схемы явля-

ройство), регистр А, регистр В и регистр

ется центральное процессорное устройство

PSW, предназначен для реализации различ-

(ЦПУ) — ядро микроконтроллера семей-

ных алгоритмов обработки входных дан-

ства С500. ЦПУ состоит из декодера ко-

ных. Он сочетает в себе широкие возмож-

манд, арифметического блока, блока регис-

ности обработки команд двоичной и двоич-

тров и блока контроля исполнения про-

но-десятичной арифметики и мощные

граммы.

Модуль управления

генерирует

средства проведения операций с битовыми

сигналы

управления всеми

внутренними

переменными. Эффективность использова-

функциональными

блоками

микроконт-

ния памяти программ обеспечивается тем,

роллера. Выводы порта 0 и порта 2 необхо-

что 44% команд микроконтроллера являют-

димы для обеспечения доступа к внешней

ся однобайтными, 41% команд — двухбайт-

памяти программ (ПЗУ) и внешнему ОЗУ,

ными и только 15% команд имеют длину в

используются они и в режиме эмуляции.

три байта. АЛУ под управлением декодера

Модуль внешнего управления отвечает за

команд может обрабатывать 8-битные сло-

обработку внешних сигналов управления и

ва, поступающие из одного или двух источ-

за генерацию тактового сигнала.

 

 

ников, обеспечивая 8-битный результат.

Блок управления доступом к памяти осу-

АЛУ может осуществлять следующие ариф-

ществляет управление встроенными ресур-

метические операции: сложение, вычита-

сами памяти микроконтроллера. Внутрен-

ние, умножение, деление, инкрементирова-

нее ОЗУ также включает в себя регистры

ние, декрементирование, выравнивание и

общего назначения. Запросы на прерыва-

сравнение результата сложения двоично-

ния от периферийных устройств обрабаты-

десятичных величин.

ваются

модулем обработки

прерываний.

 

«Ассортимент» интегрированных в состав

 

Контроллер

Внутреннее

шина

XRAM

 

Последовательный

прерываний

ОЗУ

 

 

Базовые

-Параллель портный

 

 

Адресная

 

 

 

 

 

порт

 

 

 

функциональные

 

 

 

 

 

 

 

 

 

блоки

 

Процессорное

 

ПЗУ

 

 

 

ядро C500

 

 

 

 

 

 

 

Таймеры

(1 или 8 регистров-

 

 

 

Периферийная шина

 

 

 

 

Параллельпортный

 

 

 

 

 

указателей данных)

 

 

 

 

 

Сигналы

 

Блок управления

 

 

 

 

доступом к памяти

 

 

 

управления

 

 

 

АЦП

 

Модуль

 

 

 

 

 

 

 

___

 

 

управления

 

 

 

 

 

 

RST

 

 

 

 

 

Блок умножения/

 

 

данных

управление

__

 

 

EA

деления

 

 

 

Внешнее

____

 

 

 

PSEN

 

Порт 0/Порт 2

Шина

 

ALE

Сторожевой таймер

 

XTAL

 

 

 

Рис. 7.4. Блок-схема микроконтроллера семейства С500.

 

 

 

 

INFSEMI_2-Text.fm, стр. 261 из 589 (September 3, 2010, 17:05)

 

 

 

7.2. Восьмибитные микроконтроллеры 261

 

 

 

 

 

Кроме того, поддерживаются следующие

два бита отображают текущий выбор банка

логические операции: И, ИЛИ, Исключаю-

регистров, два других — состояние флагов

щее ИЛИ, дополнение до двух, цикличес-

переноса, пятый бит используется как флаг

кий сдвиг (вправо, влево), а также операции

переполнения при проведении арифмети-

перестановки полубайтов (тетрад) в байте.

ческих операций, шестой бит — это флаг

Он также содержит двоичный процессор,

чётности содержимого аккумулятора и, на-

который реализует

следующие битовые

конец, два последних используются как

операции: установка бита в логическую 1,

флаги общего назначения.

 

 

установка бита в логический 0, формирова-

Указатель стека (SP)

 

 

ние дополнения до двух (что для битовой

 

 

 

 

 

 

переменной эквивалентно инверсии), пере-

Размерность указателя стека — 8 бит. Он

ход, если значение битовой переменной не

инкрементируется перед тем, как данные из

равно логической 1, переход, если значение

рабочих регистров будут сохранены с помо-

битовой переменной равно логической 1 с

щью команд PUSH или CALL, и декремен-

очисткой (значение переменной устанавли-

тируется после исполнения команд POP

вается равным 0), а также сдвиг с перено-

или RET (RETI),

восстанавливающих ис-

сом или без переноса.

 

ходное состояние регистров. Таким обра-

 

Битовые операции Логическое И и Логи-

зом, значение указателя стека всегда соот-

ческое ИЛИ могут проводиться с любыми

ветствует адресу последнего значащего бай-

индивидуально адресуемыми битами (или

та в стеке. Сам стек может находиться в лю-

их дополнениями, если это применимо) и

бом удобном месте в границах внутренней

флагом переноса; результат операции со-

памяти микропроцессора. Необходимо, од-

храняется во флаге переноса.

нако, помнить, что после перезагрузки

 

Модуль управления определяет, в какой

микроконтроллера указатель

стека всегда

последовательности будут выполняться ко-

содержит адрес 07h. Поэтому стек начина-

манды, хранящиеся в памяти программ

ется не со «дна» (с нулевого адреса) нулево-

микроконтроллера.

Шестнадцатибитный

го банка регистров, а на 08h выше него.

счетчик команд (PC) содержит адрес следу-

Значение указателя стека (SP) может быть

ющей исполняемой

команды. Используя

прочитано или

записано

программным

логику условных переходов, процессор мо-

способом.

 

 

 

жет изменять порядок исполнения команд

Регистр-указатель данных

 

 

в зависимости от внутренних или внешних

 

 

условий.

 

Восьмибитный доступ к внутренней опе-

 

 

 

Аккумулятор

 

ративной памяти XRAM или к внешнему

 

ОЗУ микроконтроллера C500 реализован с

 

На функциональных схемах регистр-ак-

 

использованием регистра-указателя данных

кумулятор полагается обозначать как ACC.

(DPTR) в качестве 16-битного адресного

Однако в ассемблерных командах он обоз-

регистра. Как правило, микроконтроллеры

начается просто А.

 

семейства С500 имеют один указатель дан-

Регистр В

 

ных, но некоторые микроконтроллеры это-

 

го семейства предоставляют программисту

 

 

 

 

Регистр В используется при умножении

возможность использования до восьми ре-

или делении как в качестве источника од-

гистров-указателей данных. Это значитель-

ного из операндов, так и в качестве места,

но облегчает поддержку языков высокого

куда помещается результат умножения или

уровня, которые хранят большие массивы

деления. При выполнении других команд

данных во внешней памяти микроконтрол-

он используется для хранения промежуточ-

лера.

 

 

 

ных результатов.

 

Эмулирование работы

 

 

 

 

 

 

 

Слово состояния программы (PSW)

микроконтроллера с использованием

 

Слово состояния программы содержит

технологии Enhanced Hooks

 

 

 

 

 

 

 

несколько информационных битов, харак-

Концепция эмуляции Enhanced Hooks —

теризующих текущее состояние ЦПУ. Каж-

это шаг вперёд с точки зрения отладки про-

дый из битов PSW имеет своё назначение:

цесса исполнения машинных команд и по-

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