Шумахер У. Полупроводниковая электроника
.pdfINFSEMI_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 имеет своё назначение: |
цесса исполнения машинных команд и по- |