Реферат Курсовая Конспект
Архитектурой - раздел Образование, Структурная Организация И Режимы Работы Омк С Risc...
|
Структурная организация и режимы работы ОМК с RISC
Архитектурой
Общие сведения об ОМК PIC16/17 и их классификация
В 1975 году фирма GI разработала периферийный контроллер (Peripheral Interface Controller или PIC), предназначенный для поддержки ввода-вывода 16-ти разрядного процессора. В нем не требовалась сложная обработка информации, поэтому его набор команд был сильно ограничен, но почти все команды в нём выполнялись за один машинный цикл. Этот контроллер, имевший RISC-архитектуру стал прообразом сегодняшней архитектуры микроконтроллеров PIC [3-6], выпускающихся с конца 80-х годов компанией Arizona Microchip TechnologyLtd., дочерней компанией GI Microelectronics Inc.
Микроконтроллеры семейства PIC объединяют все передовые технологии ОМК: мировое лидерство по гибкой однократно или многократно электрически перепрограммируемой пользователем технологии ППЗУ, минимальное энергопотребление, исключительную производительность, мощную RISC-архитектуру и минимальные размеры корпуса. Эти широкие возможности и низкая стоимость сделали серию микроконтроллеров PIC лучшим выбором для инженерных применений. Более 200 миллионов микроконтроллеров PIC используется в нескольких тысячах приложений по всему миру. Использовать эти микроконтроллеры рекомендуется во всех случаях, когда критично энергопотребление, габариты и стоимость устройства.
Вот только некоторые примеры применений микроконтроллеров PIC:
Ø Компьютеры и периферия: принтеры, плоттеры, сетевые карты, модемы, мыши, сканеры, накопители на гибких и жестких магнитных дисках, CD ROM, мультимедийные устройства и т. п.
Ø Радиотехника (ТНП): CD проигрыватели, аудио системы, системы синтеза речевых сообщений, блоки дистанционного управления, модули телетекста, видеоигры.
Ø Техника связи: модемы, радиомодемы, микро-АТС, автоответчики, АОНы, беспроводные и мобильные телефоны, пейджеры, факс-аппараты.
Ø Промышленные контроллеры: интеллектуальные датчики, схемы управления электродвигателями, промышленные роботы, регуляторы температуры, влажности, давления и др.
Ø Автомобильная электроника: системы управления зажиганием, микроклиматом и впрыском топлива, приборные панели, радарные детекторы, автомобильные сигнализации, комбинированные измерительные приборы.
Ø Бытовая техника: системы сигнализации, измерительные приборы, счетчики воды, газа и электроэнергии, детекторы ионизирующего излучения, игрушки и т.д.
В зависимости от разрядности команд , архитектурных особен-ностей и функциональных возможностей однокристальные микроконт-роллеры (ОМК) PIC делятся на четыре основные группы (семейства) :
1. Семейство простейших ОМК (12р. команды) – PIC 12CXX.
2. Базовое семейство (12 р. команды ) - PIC 16 C5XX.
3. Расширенное семейство (14 р. команды) - PIC 16CXX.
4. Высокопроизводительное семейство (16 р. команды) - PIC 17CXX.
Подавляющее число ОМК, также как и микроконтроллеры серии К1816, имеет традиционную (Фон-Неймановскую или Принстонскую) архитектуру в которой команды и данные передаются по одной шине [2,7]. Архитектура же ОМК PIC основана на концепции раздельных шин и областей памяти для данных и команд (Гарвардская архитектура) [3-6]. Шина и память данных (ОЗУ) имеет ширину 8 бит, а программная шина и память (ПЗУ или ППЗУ) имеет ширину 12, 14 или 16 бит в зависимости от семейства ОМК. Такая концепция обеспечивает простую, но мощную систему команд а двухступенчатый конвейер обеспечивает их одновременную выборку и исполнение. Все команды состоят из одного слова (шириной 12, 14 или 16 бит) и исполняются за один цикл (200 нс при тактовой частоте 20МГц), кроме команд перехода, которые выполняются за два цикла. За счет этого ОМК с RISC-архитектурой типа PIC 16/17 имеют самое высокое быстродействие по сравнению с большинством наиболее распространенных 8-битовы микроконтроллеров аналогичного класса и обеспечивают более чем в 5-10 раз лучшую производительность.
Контрольные испытания показывают [3], что применение ОМК се-рии PIC позволяют уменьшить время отладки в 1,5-2 раза по сравнению с обычными 8- разрядными микроконтроллерами.
Система команд ОМК PIC 12/16/17 включает только 33/35/57 команд и может быть легко и быстро изучена. В конструкцию PIC включено много энергосберегающих особенностей, делающих их на сегодняшний день самыми микропотребляющими (в режиме SLEEP потребляемый ток менее 1 мкА), самым низковольтным по напряжению питания (2В) программируемыми пользователем микроконтроллерами.
Простейшие типы таких ОМК содержат 8-битный таймер-счетчик с 8- битным программируемым предварительным делителем (фактически 16-битный таймер) и 6-20 линий двунаправленного ввода/вывода. Корпус таких ОМК имеет 8(18) выводов. Микроконтроллеры расширенного и высокопроизводительного семейств содержат кроме этого целый ряд дополнительных функциональных узлов и блоков таких, например, как: многоканальные аналого-цифровые преобразователи, разветвленную систему прерываний, блоки управления жидкокристаллическими индикаторами, компараторы, широтно-импульсные модуляторы, параллельные и последовательные интерфейсы типа I2C, RS-232 и т.д., цифровые умножители, дополнительные таймеры-счетчики, увеличенное количество портов ввода/вывода дискретных сигналов и прочее.
Таким образом, ОМК PIC имеют существенные преимущества по сравнению с другими типами микроконтроллеров такого же класса. В настоящее время выпускаются микроконтроллеры с различным объемом постоянной и оперативной памяти, с различными типами тактовых генераторов, с различными быстродействием и конструктивным исполнением, а также с различными функциональными возможностями. Конкретный тип микроконтроллера для решения определенной задачи можно выбрать на основании критериев, рассмотренных ранее в разделе 1, используя соответствующую информацию, приведенную в Приложении А и в справочной литературе [3-7].
В зависимости от технологии изготовления ПЗУ все типы МК разделяются на пять групп:
1.Микроконтроллеры многократно программируемые пользователем, которые, в свою очередь могут быть разделены также на две следующие группы:
1) Микроконтроллеры с ультрафиолетовым стиранием. Эти МК оптимальны для экспериментальных разработок и отладки программ. Необходимую конфигурацию тактового генератора <RC>, <XT>, <HS>, или <LP> устанавливают программным путем. По умолчанию устанавливается тип генератора <RS>. В зависимости от выбранного типа генератора и частоты, напряжение питания должно быть в том же диапазоне, что и для устройств OTP/QTP, рассмотренных ниже.
2) Микроконтроллеры с многократно электрически программируе-мыми пользователем ППЗУ (EEPROM) программ и данных. Эти МК (такие например, как PIC 16C84X или 16F84X) позволяют легко подстраивать программу и данные под конкретные требования даже после завершения ассемблирования и тестирования. Эта возможность может быть использована как для тиражирования, так и для занесения калибровочных данных уже после окончательного тестирования разработанного МКУ. Однако, данные МК имеют ограниченное количество циклов перепрограммирования.
2. Однократно программируемые микроконтроллеры (ОТР). Эти МК могут быть однократно запрограммированы пользователем и применяются в тех случаях, когда нет необходимости часто менять содержание программы или конфигурацию микроконтроллера в разрабо-танном МКУ. Для некоторых типов МК (таких например, как PIC 16C54, PIC 16C55, PIC 16C57 и т.д.) тип генератора задается на заводе-изготовителе и микроконтроллер тестируется только для заданного типа генератора. Для других типов МК (таких, например, как PIC16C52, PIC16C54A, PIC16C58A и т.д.) тип генератора программируется пользователем. Дополнительно можно при этом подключить сторожевой таймер и/или логику защиты программ от считывания. Так же можно запрограммировать 16 специальных битов для идентификации.
3 .Микроконтроллеры, программируемые изготовителем (QTP). Эти МК являются заказными и полностью программируемыми на заводе- изготовителе по заранее предоставленной пользователем информации. То есть, это так же однократно программируемые контроллеры (ОТР) с единственной разницей, что программирование осуществляется не пользователем, а на заводе-изготовителе.
4. Микроконтроллеры, последовательно программируемые изготовителем (SQTP). Это так же заказные однократно программируемые на заводе-изготовителе МК типа QTP, в которых несколько задаваемых пользователем ячеек в каждом микроконтроллере программируются различными серийным номерам. Причем, эти номера могут быть случайными, псевдослучайными или последовательными. Последовательное программирование позволяет каждому МК иметь собственный номер, который может быть использован в качестве пароля, кода доступа или идентификации.
5.Масочные микроконтроллеры (ROM). Эти МК также являются заказными и обеспечивают максимально низкую стоимость при крупно- серийных заказах (например, такими МК являются PIC16CR54, PIC16CR56, PIC16CR57, PIC16CR58 и т.д.).
Однокристальные микроконтроллеры семейства PIC16C5X
Рис.2.5. Организация памяти данных
регистры и регистры общего назначения. Специальные регистры (табл. 2.3) включают в себя регистр таймера/счетчика реального времени (RTCC-TMRO), счетчик команд (PC), регистр состояния (STATUS), регистры ввода/вывода (PORT) и регистр косвенной адресации (FSR). Кроме того, специальные регистры управляют конфигурацией портов ввода-вывода и режимом предварительного делителя.
Регистры общего назначения используются для хранения переменных по усмотрению пользователя.
Таблица 2.3
Описание специальных регистров Р1С16С5Х
Адрес | Название | Бит 7 | Бит 6 | Бит 5 | Бит 4 | БитЗ | Бит 2 | Бит1 | Бит 0 | Значение по вклю- чению питания | Значение по сбросу по MCLR и WDT |
00h | INDF . | Используется значение FSR для доступа к памяти данных (не физический регистр) | -- - - -- - - | -- - - -- - - | |||||||
01h | TMRO | 8-разрядный счетчик/таймер | хххх хххх | uuuu uuuu | |||||||
02h | PCL | Младшие 8 разрядов счетчика команд PC | 1111 1111 | 1111 1111 | |||||||
03h | STATUS | РА2 | РА1 | РАО | ТО | PD | Z | DC | С | 0001 1xxx | 000? ?uuu |
04h | FSR | Регистр косвенной адресации | хххх хххх | uuuu uuuu | |||||||
05h | PORTA | - | - | - | - | РАЗ | RA2 | RA1 | RA0 | -- - - хххх | -- - - uuuu |
06h | PORTB | RB7 | RB6 | RB5 | RB4 | RB3 | RB2 | RB1 | RB0 | хххх хххх | uuuu uuuu |
07h | PORTC | RC7 | RC6 | RC5 | RC4 | RC3 | RC2 | RC1 | RC0 | хххх хххх | uuuu uuuu |
Обозначения:x - не определено, u - не меняется, — - отсутствует, читается как '0',
? - значение зависит от условий сброса.
Примечания:
1. Старшие разряды счетчика команд непосредственно не доступны. Обращение к старшим битам осуществляется через биты РА1, РАО (STATUS<6:5>).
2. Для PIC16C52/54/C54A/CR54/CR54A/CR54B/C56/CR56/C58A/CR58A/CR58B регистр 07h является регистром общего назначения.
3. Заштрихованы физически отсутствующие биты.
При непосредственной (прямой) адресации (рис. 2.6) выбор банка осуществляется с помощью 2-х бит PR0 и RP1, которые находятся в 5 и 6 разрядах регистра косвенной адресации (FSR/Pointer) соответственно. Выбор регистра в банке осушествляется с помощью 5-ти разрядного адреса, поступающего в ОЗУ прямо из кода команды по выделенной для этих целей отдельной шине адреса, которая связывает регистр команд и память данных.
При косвенной адресации (рис. 2.6) используется переключатель косвенной адресации (регистр f0 в памяти данных, который физически не существует) и указатель Pointer (регистр f4 - FSR). Существуют некоторые отличия при осуществлении косвенной адресации для различных типов МК. Так для PIC16C54/C55/C56: биты 0-4 регистра (f4) выбирают один из 32 регистров в режиме косвенной адресации, т.е. когда в команде есть обращение к регистру косвенной адресации (f0). Биты 5-7 не используются и всегда читаются как единицы. Если косвенная адресация
Прямая адресация Косвенная адресация
из кода команды
RP1 RP0 4 0 6 FSR 0
Выбор банка Выбор регистра Выбор банка Выбор регистра
00 01 10 11
Память 0F
данных 10
Банк 0 Банк 1 Банк 2 Банк 3
FSR - Регистр косвенной адресации
Рис.2.14. Общий формат команды
Все команды выполняются в течение одного командного цикла. В двух случаях исполнение команды занимает два командных цикла:
1. Исполнение условной команды.
2. Проверка условия и переход.
Один командный цикл состоит из четырех периодов генератора. Таким образом, для генератора с частотой 4 МГц время исполнения командного цикла будет 1 мкс.
Таблица 2.6
Описание полей команд PIC 16C5Х
Поле | Описание |
f | Адрес регистра |
w | Рабочий регистр |
b | Номер бита в 8-ми разрядном регистре |
k | Константа |
x | Не используется, ассемблер формирует код с х=0 |
d | Регистр назначения: D=0 результат в регистре W D=1 результат в регистре f По умолчанию d=1 |
Label | Имя метки |
TOS | Вершина стека (Top Of Stack) |
PC | Счетчик команд (Program Counter) |
/TO | Тайм-аут (Time Out) |
/PD | Выключение питания (Power Down) |
Dest | Регистр назначения: рабочий регистр W или регистр, заданный в команде |
[ ] | Необязательные параметры |
( ) | Содержание |
? | Присвоение |
< > | Битовое поле |
Є | Из набора |
Таблица 2.7
Система команд Р1С16С5Х.
Мнемокод | Название команды | Цик лы | Код команды (11-бит) | Биты сос тоя- ния | При- меча- ния |
Команды работы с байтами | |||||
ADOWF f,d | Сложение W с f | 0001 lldf ffff | С, DC, Z | 2,4 | |
ANDWF f,d | Логическое И W и f | 0001 0ldf ffff | Z | 2,4 | |
CLRF f | Сброс регистра f | 0000 0llf ffff | Z | ||
CLRW | Сброс регистра W | 0000 0100 0000 | Z |
Продолжение таблицы 2.7
Мнемокод | Название команды | Цик лы | Код команды (11-бит) | Биты сос тоя- ния | При- меча- ния |
COMF f,d | Инверсия регистра f | 0010 0ldf ffff | Z | ||
DECF f,d | Декремент регистра f | 0000 lldf ffff | Z | 2,4 | |
DECFSZ f,d | Декремент f, пропустить команду, если 0 | 1(2) | 0010 lldf ffff | 2,4 | |
INCF f,d | Инкремент регистра f | 0010 l0df ffff | Z | 2,4 | |
INCFSZ f,d | Инкремент f, пропустить команду.если 0 | 1(2) | 0011 lldf ffff | 2,4 | |
IORWF f,d | Логическое ИЛИ W и f | 0001 00df ffff | Z | 2,4 | |
MOVF f,d | Пересылка регистра f | 0010 00df ffff | 2,4 | ||
MOVWF f | Пересылка W в f | 0000 00lf ffff | |||
NOP | Холостая команда | 0000 0000 0000 | |||
RLF f,d | Сдвиг f влево через перенос | 0011 0ldf ffff | С | 2,4 | |
RRF f,d | Сдвиг f вправо через перенос | 0011 00df ffff | С | 2,4 | |
SUBWF f,d | Вычитание W из f | 0000 10df ffff | С, DC, Z | 2,4 | |
SWAPF f,d | Обмен местами тетрад в f | 0011 l0df ffff | 2,4 | ||
XORWF f.d | Исключающее ИЛИ W и f | 0001 l0df ffff | Z | 2,4 | |
Команды работы с битами | |||||
BCF f,b | Сброс бита в регистре f | 0100 bbbf ffff | 2,4 | ||
BSF f,b | Установка бита в регистре f | 0101 bbbf ffff | 2,4 | ||
BTFSC f,b | Пропустить команду, если бит в f равен нулю | 1(2) | 0110 bbbf ffff | ||
BTFSS f,b | Пропустить команду. и если бит в f равен единице | 1(2) | 0111 bbbf ffff | ||
Команды передачи управления и операции с константами | |||||
ANDLW k | Логическое И константы и W | 1110 kkkk kkkk | Z | ||
CALL k | Вызов подпрограммы | 1001 kkkk kkkk | |||
CLRWDT | Сброс сторожевого таймера WDT | 0000 0000 0100 | TO.PD | ||
GOTO k | Переход по адресу | 101k kkkk kkkk |
– Конец работы –
Используемые теги: Архитектурой0.036
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Архитектурой
Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов