Однокристальные микроконтроллеры с RISC-архитектурой. Кравченко В.И
.pdfМ И Н И С Т Е Р С Т В О О Б Р А З О В А Н И Я Р О С С И Й С К О Й Ф Е Д Е Р А Ц И И
В О Р О Н Е Ж С К И Й Г О С У Д А Р С Т В Е Н Н Ы Й Т Е Х Н И Ч Е С К И Й У Н И В Е Р С И Т Е Т
В. И . К р а в ч е н к о
ОД Н О К Р И С Т А Л Ь Н Ы Е М И К Р О К О Н Т Р О Л Л Е Р Ы
С R I S C - А Р Х И Т Е К Т У Р О Й
Ч а с т ь 1 . А р х и т е к т у р а и с и с т е м а к о м а н д
У ч е б н о е п о с о б и е
В о р о н е ж 1 9 9 9
УДК 681.325.5-181.4(075)
Кравченко В.И. Однокристальные микроконтроллеры с RISCархитектурой. Часть 1. Архитектура и система команд: Учеб. пособие. Воронеж: Изд-во ВГТУ, 1999. 77 с.
Учебное пособие ―Однокристальные микроконтроллеры с RISCархитектурой‖ предназначено для использования студентами, обучающимися по специальности 200800 ―Проектирование и технология РЭС‖, в самостоятельной работе и при подготовке к лабораторным занятиям по дисциплине ―Микропроцессоры и микроЭВМ в РЭС‖, а также может быть использовано в курсовом и дипломном проектировании как справочное пособие по перспективной элементной базе САУ и РЭС.
Пособие содержит сведения по архитектуре и системе команд микроконтроллеров (МК) с RISC-архитектурой двух типов: PIC16C84 и PIC16C71. Представлены структурные схемы, распределение адресного пространства памяти программ и данных, описаны назначение и особенности использования специальных регистров и их отдельных битов, рассмотрена специфика функционирования МК в различных режимах. Наличие вопросов для самоконтроля облегчает и углубляет усвоение основного содержания изучаемого материала.
Ил. 23. Табл. 23.
Печатается по решению редакционно-издательского совета ВГТУ.
Научный редактор д-р техн. наук В.М.Шишкин
Рецензенты: канд. техн. наук Н.И.Щукин; кафедра № 10 Военного института радиоэлектроники, заведующий кафедрой профессор Б.Ф.Змий
- Издательство Воронежского государственного технического университета, 1999
ВВЕДЕНИЕ
Микропроцессоры (МП) с архитектурой RISC (Reduced Instruction Set Computers) - с сокращенным набором команд - используют относительно небольшой (сокращенный), по сравнению с обычным МП с CISC - архитектурой, набор наиболее употребительных команд, определенных в результате статистического анализа большого числа программ для основных областей применения МП.
Простота структуры и небольшой набор команд позволяют организовать эффективный конвейер при выполнении программ, поэтому RISC - процессоры в два раза быстрее имеющих ту же тактовую частоту CISC - процессоров с обычной системой команд и значительно производительнее последних, несмотря на больший (в среднем на 30%) объем программ.
Первые экспериментальные RISC-процессоры для ЭВМ появились в 1980 г.г., однако они не нашли широкого применения в ЭВМ. В то же время в дальнейшем, вследствие частичного применения RISC - архитектуры и других усовершенствований, в CISC - процессоре 80486 фирмы Intel удалось поднять производительность в два раза по сравнению с чисто CISC МП 80386.
Особенно эффективным оказалось использование принципов RISC - архитектуры в так называемых МИКРОКОНТРОЛЛЕРАХ (МК) - однокристальных МП, предназначенных в основном для построения на их базе устройств автоматики типа контроллеров и имеющих на одном кристалле все атрибуты микроЭВМ: собственно процессор, схему тактового генератора, интерфейс портов ввода - вывода, таймеры, иногда схемы ЦАП - АЦП и другие элементы. Для устройств такого класса разумное сокращение номенклатуры команд оказывается вообще малозаметным для большинства применений, зато резкое повышение производительности и введение дополнительных сервисных возможностей за счет освобождения места на кристалле делают такие процессоры весьма перспективными.
Технология проектирования микропроцессорных устройств (МПУ) автоматики (приборов, контроллеров) включает две компоненты: создание аппаратной и программной частей, причем от 60% до 90% трудозатрат приходится на создание и отработку программной части.
Специфика программирования МПУ заключается в необходимости знания пользователем архитектуры конкретного типа МП, то - есть, структурной схемы МП, выполненной на уровне программно - доступных узлов. Знания архитектуры
2
особенно актуальны для пользователей однокристальных МК. В таких МК как
правило содержится множество ―специальных‖ регистров, требующих их программной установки (настройки), нередко побитной, и далее проверки и переустановки в процессе работы программы.
Следует отметить, что наиболее эффективным способом программирования МП является использование машинно-ориентированного языка Ассемблера, сочетающего в себе некоторые черты и возможности языков высокого уровня (ЯВУ), но учитывающего специфическую архитектуру и систему команд конкретного МП и позволяющего сократить объем программы (уменьшить объем потребной памяти, повысить быстродействие программы) на 30% по сравнению с вариантом использования ЯВУ для программирования МП.
Данное пособие по сути является руководством для начинающих пользователей PIC - процессоров с RISC - архитектурой типов PIC16C84 и PIC16C71
изадумано к изданию в двух частях:
-Часть 1 - Архитектура и система команд - включает сведения по архитектуре МК, распределению адресного пространства памяти программ и данных, назначению и специфике использования специальных регистров и их отдельных битов, а также сведения по системе команд и особенностям функционирования МК в различных режимах.
-Часть 2 - Введение в программирование на языке Ассемблер - содержит краткое описание языка Ассемблера для МК указанных типов, а также примеры простейших программ и указания по использованию аппаратных и программных отладочных средств и средств программирования, позволяющие получить практические навыки в программировании МК.
Руководство предназначено для студентов радиоэлектронных специальностей для самостоятельного изучения и применения МК в курсовом и дипломном проектировании, а также может быть полезно инженерамразработчикам для начального знакомства с PIC - процессорами.
3
1. СЕМЕЙСТВО 8-БИТНЫХ МИКРОКОНТРОЛЛЕРОВ PIC16/17
Фирма MICROCHIP выпускает три типа 8 - битных КМОП микрокон-
троллеров, известных как PIC16C5x, PIC16Cxx и PIC17Cxx. Все микроконтроллеры выполнены по RISC-технологии, имеют схему запуска по включению питания, программируемый сторожевой таймер, бит защиты от считывания, допустимый ток по каждому выходу до 20 мА и низкое энергопотребление - 2 мА при питании 5 В на тактовой частоте 4 МГц; 15 мкА при питании 3 В на тактовой частоте 32 кГц и менее 3 мкА в режиме ожидания. Ниже приведены сравнительные характеристики указанных типов PIC - процессоров.
PIC16C5x:
12 - разрядные команды, 33 инструкции, глубина стека 2, прерывания отсутствуют (табл. 1.1).
|
|
|
Таблица 1.1 |
|
|
|
|
|
|
|
Память |
Память |
Число |
Тактовая |
|
программ |
данных |
входов |
частота |
|
(слов) |
(байт) |
выходов |
(МГц) |
|
|
|
|
|
PIC16C54 |
512 |
25 |
12 |
20 |
|
|
|
|
|
PIC16C55 |
512 |
25 |
20 |
20 |
|
|
|
|
|
PIC16C56 |
1024 |
25 |
12 |
20 |
|
|
|
|
|
PIC16C57 |
2048 |
72 |
20 |
20 |
|
|
|
|
|
PIC16Cxx
14 - разрядные команды, 35 инструкций, глубина стека 8, внутренние и внешние прерывания, 8 - битный АЦП для PIC71/73/74, электрически перепрограммируемые память программ и данных (64 байта) для PIC16C84 (табл. 1.2).
PIC17Cxx:
16 - разрядные команды, 55 инструкций, глубина стека 16, внутренние и внешние прерывания, режимы микроконтроллера и микропроцессора (табл.
1.3).
4
Таблица 1.2
|
Тип МК |
|
Программ |
Память |
|
Число |
|
Тактовая |
||||
|
|
|
(слов) |
данных |
|
входов |
|
частота |
||||
|
|
|
|
|
(байт) |
|
выходов |
|
(МГц) |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PIC16C64 |
2048 |
|
128 |
|
|
33 |
|
|
20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PIC16C71 |
1024 |
|
36 |
|
|
13 |
|
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PIC16C84 |
1024 |
|
36+64 |
|
|
13 |
|
|
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 1.3 |
||||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
Память |
|
Память |
|
Число вхо- |
|
Тактовая |
|
||
|
|
|
программ |
|
данных |
|
дов выхо- |
|
|
частота |
|
|
|
|
|
(слов) |
|
(байт) |
|
|
дов |
|
|
(МГц) |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
PIC17C42 |
|
2048 |
|
256 |
|
33 |
|
25 |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
Эффективный набор 14 - разрядных команд (35 инструкций), глубина стека 8, внутренние таймеры, внутренние и внешние прерывания, 8 - битный АЦП для PIC16C71 (4 канала) и PIC16C74 (8 каналов), электрически перепрограммируемая память программ и энергонезависимая память данных (64 байта
NVRAM) для PIC16C84, память программ 1024 слов для PIC16C71, PIC16C84 и
4096 слов для PIC16C74, память данных (ОЗУ или регистры общего назначе-
ния - РОНы): 36 байт для PIC16C71, PIC16C84 (плюс 64 байта NVRAM) и 192 байта для PIC16C74, 13 линий ввода/вывода для PIC16C71, PIC16C84 и 33 ли-
нии для PIC16C74 - предопределяют успешное применение МК типа PIC16Cxx для самого широкого спектра приложений.
Малые размеры корпусов как для обычного, так и для поверхностного монтажа, широкодиапазонное климатическое исполнение, низкая цена, экономичность, наличие дежурного режима с микромощным потреблением (SLEEP), быстродействие, гибкость ввода-вывода, простота программирования и использования, наличие отладочных средств и комплексов развития с программными эмуляторами на базе ПЭВМ (IBM любого типа) делают
применение PIC16Cxx привлекательным даже в тех областях, где микропроцессоры ранее не применялись, например, носимые радиостанции, пейджеры, сторожевые устройства, автоматика автомобилей, бытовая техника и т.д.
В данном руководстве подробно описываются два типа PIC - процес-
5
соров: PIC16C84 и PIC16C71. Такой выбор обусловлен наличием у этих МП некоторых замечательных свойств, выгодно отличающих их от PIC16C5x, и относительно низкой стоимостью по сравнению с более сложными PIC17Cxx.
2.МИКРОКОНТРОЛЛЕР ТИПА PIC16C84
2.1.Общие сведения
PIC16C84 относится к семейству КМОП микроконтроллеров с RISC - архитектурой. Отличается тем, что имеет внутреннюю 1K x 14 бит память EEPROM для программ, 8 - битовые данные и 64 байт EEPROM памяти данных, низкую стоимость и высокую производительность. Все команды состоят из одного слова (14 бит шириной) и исполняются за один цикл (400 нс при 10 МГц), кроме команд перехода, которые выполняются за два цикла (800 нс). PIC16C84 имеет систему прерываний, работающую от четырех источников, и восьмиуровневый аппаратный стек. Периферия включает в себя 8 - битный таймер/счетчик с 8 - битным программируемым предварительным делителем (фактически 16 - битный таймер) и 13 линий двунаправленного ввода/вывода. Высокая нагрузочная способность (25 мА max втекающий ток, 20 мА max вытекающий ток) линий ввода/вывода упрощают внешние драйверы и, тем самым, уменьшают общую сложность системы. Разработки на базе контроллеров PIC16C84 поддерживаются ассемблером, программным симулятором, внутрисхемным эмулятором (фирмы Microchip) и программатором.
Cледует добавить, что встроенный автомат программирования EEPROM кристалла PIC16C84 позволяет легко подстраивать программу и данные под конкретные требования даже после завершения ассемблирования и тестирования, без изъятия микросхемы из платы. Эта возможность может быть использована как для тиражирования, так и для занесения калибровочных данных уже после окончательного тестирования.
2.2. Характеристики PIC16C84
—35 простых команд;
—все команды выполняются за один цикл (400ns), кроме команд перехода - 2 цикла;
6
—рабочая частота 0 Гц ... 10 МГц (min 400 нс цикл команды);
—14 — битовые команды;
—8 — битовые данные;
—1024 х 14 бит электрически перепрограммируемой программной памяти на кристалле (EEPROM);
—36 х 8 регистров общего назначения (ОЗУ);
—15 специальных аппаратных регистров SFR;
—64 x 8 ячеек электрически перепрограммируемой EEPROM - памяти
для данных;
—восьмиуровневый аппаратный стек;
—прямая, косвенная и относительная адресация данных и команд;
—четыре источника прерывания:
внешний вход INT; переполнение таймера RTCC;
прерывание при изменении сигналов на линиях порта B; по завершению записи данных в память EEPROM.
Периферия Ввод/Вывод
—13 линий ввода-вывода с индивидуальной настройкой (втекающий/ вытекающий ток достаточен для управления светодиодами: max втекающий ток - 25 мА, max вытекающий ток - 20 мА);
—8 - битный таймер/счетчик RTCC с 8 - битным программируемым предварительным делителем;
—автоматический сброс при включении, таймер включения при сбросе, таймер запуска генератора, Watchdog - таймер WDT c собственным встроенным генератором, обеспечивающим надежность работы;
—EEPROM - бит секретности для защиты кода;
—экономичный режим SLEEP;
—выбираемые пользователем биты для установки режима возбуждения встроенного генератора: RC генератор (RC), обычный кварцевый резонатор (XT), высокочастотный кварцевый резонатор (HS), экономичный низкочастотный кристалл (LP);
—встроенное устройство программирования EEPROM - памяти программ и данных (используются две ножки для программирования).
7
КМОП технология
—экономичная высокоскоростная КМОП EPROM - технология;
—статический принцип в архитектуре;
—широкий диапазон напряжений питания и температур:
коммерческий: 2.0 ... 6.0 В, 0...+70С
промышленный: 2.0 ... 6.0 В, - 40...+70С
автомобильный: 2.0 ... 6.0 В, - 40...+125С
— низкое потребление:
3 мА типично для 5В, 4МГц
50мкА типично для 2В, 32КГц
2.3.Архитектура PIC16C84
Архитектура микроконтроллера основана на концепции раздельных шин и областей памяти для данных и для команд (Гарвардская архитектура). Шина данных и память данных (ОЗУ) - имеют ширину 8 бит, а программная шина и программная память (ПЗУ) имеют ширину 14 бит. Такая концепция обеспечивает простую, но мощную систему команд, разработанную так, что битовые, байтовые и регистровые операции работают с высокой скоростью и с перекрытием по времени выборок команд и циклов выполнения (рис. 2.1).
Четырнадцатибитовая ширина программной памяти обеспечивает выборку 14 - битовой команды в один цикл. Двухступенчатый конвейер обеспечивает одновременную выборку и исполнение команды. Все команды выполняются за один цикл, исключая команды переходов. В PIC16C84 программная память объемом 1К х 14 расположена внутри кристалла. Исполняемая программа может находиться только во встроенном ПЗУ.
2.4. Tипы корпусов и исполнений
Тип корпуса указывается в Маркировке при заказе микросхем. Корпуса бывают только с 18 Выводами.
PDIP — Обычный пластмассовый двухрядный корпус.
SOIC — Малогабаритный DIP корпус для монтажа на поверхность.
8
1
S t a c k |
1 |
|
|
|
|
|
|
|
|
|
|
S t a c k |
8 |
|
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A L U |
|
|
|
|
2 |
|
|
|
|
|
|
|
4 |
|
||
|
|
|
|
|
|
|
|
|
|
||
P C |
|
|
|
|
|
|
|
|
R |
e g is t e r |
|
|
|
|
|
|
|
|
|
||||
1 3 b i t |
|
W - r e g |
|
S t a t u s |
|
|
f ile |
||||
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
E E P R O M |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
p r o g . M E M |
|
|
|
|
|
8 - b i t D a t a B u s |
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
1 0 2 4 x 1 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
|
|
|
|
|
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
R T C C |
|
|
O p t io n R e g . |
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
T R I S A |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
R A |
|
|
|
P o r t R A 0 - R A 3 |
|
|
|
|
|
|
|
|
|
|
|
1 0 |
|
|
|
|
|
R T C C |
|||||||||||
|
|
|
|
|
|
|
4 - b i t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
W D T /R T C C |
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
P r e s c a le r |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
W |
a t c h D |
o g |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
T R I S B |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
T im e r |
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
O S C 1 |
||||
R B |
|
|
|
P o r t R B 0 - R B 7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 5 |
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
8 - b i t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
O |
s c ila t o r |
|
|
|
O S C 2 |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
S le e p |
|
T im in g & |
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C o n r o l |
|
|
|
M C L R |
||||||
|
|
|
|
1 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
E E P R O M |
|
|
|
|
|
|
|
|
|
D is a b l e |
|
|
|
|
O s c . S e le c t |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
D a t a M e m o r y |
|
|
|
|
|
|
|
|
1 6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
6 4 x 8 |
|
|
|
|
|
|
C o n f ig u r a t io n E E P R O M |
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
Р и с . |
2 . 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Пояснения к рис. 2.1:
1 — Стековая память; 2 — Программный счетчик (PC); 3 — Арифмети- ко-логическое устройство (АЛУ) с неявно адресуемым POНом (W) и
9