История создания PIC –контроллеров.
Прообразом контроллеров семейства PIC с RISC –архитектурой послужил периферийный контроллер ( Peripheral Interface Controller — PIC), разработанный в 1975 году отделением компании General Instrument Microelectronics Inc для поддержки ввода–вывода 16–разрядного процессора. Поскольку к контроллеру не предъявлялось высоких требований по обработке данных, он имел ограниченный набор команд, при этом почти все команды в нем выполнялись за один машинный цикл. Другая особенность контроллера — использование Гарвардской архитектуры, основанной на разделении шин и областей памяти для данных и команд.
Позже отделение компании General Instrument выделилось в самостоятельную фирму ( Microchip Technology Ltd .), которая в конце 1980–х годов разработала и изготовила первые модели микроконтроллеров семейства Р1С16С5х. Дальнейшее развитие и совершенствование контроллеров шло по пути расширения состава периферийных устройств и набора команд, совершенствования технологии и улучшения характеристик. За прошедшие годы фирмой выпущено несколько семейств PIC, каждое из которых постоянно пополняется новыми моделями (версиями).
Обзор PIC– контроллеров.
В настоящее время фирма Microchip выпускает пять семейств микроконтроллеров:
● PIC 16 C 5 X включает недорогие контроллеры с минимальным набором периферийных устройств:
● Р I С12Сххх содержит МК в миниатюрном 8–выводном корпусе со встроенным тактовым генератором и модулем 8–разрядного АЦП (для некоторых моделей);
● Р I С16х/7х/8х/9х объединяет МК с развитой периферией (таймеры–счетчики с опциями захвата/сравнения, широтно–импульсные модуляторы, аналоговые компараторы, АЦП, контроллеры последовательных интерфейсов);
● Р IC 17С4х/5хх включает высокопроизводительные МК с расширенной системой команд и обширной периферией. Микроконтроллеры этого семейства имеют встроенный аппаратный умножитель 8 r 8, выполняющий операцию умножения за один машинный цикл;
● Р I С18Сххх — новое семейство с оптимизированным под использование Си–компилятора RISC –ядром и частотой внутренней шины до 10 МГц.
Потребителям предоставляются три модели микроконтроллеров семейства PICMicro с различными сочетаниями характеристик и свойств.
Младшие модели.
К ним относятся МК серии 16С5х и 8–выводные МК серии 12С5хх, которые реализуют нижний уровень возможностей микроконтроллеров семейства PICMicro и используются для создания небольших и простых приложений. Они выполняют подмножество команд старших моделей и программно совместимы с ними. Младшие модели сыграли большую роль в развитии семейства PICMicro . Однако ограниченные возможности обработки прерываний, малый объем доступной памяти программ и RAM , отсутствие внутрисистемного программирования и портов ввода/вывода с расширенными функциями, снижение стоимости технологических затрат явились причинами перехода к моделям микроконтроллеров среднего уровня, которые продавались по такой же (и даже более низкой) цене, как и МК младших моделей.
Средние модели.
Модели среднего уровня образуют законченную линию микроконтроллеров (серия 16Схх) с множеством различных функций и получили наиболее широкое распространение. Они имеют такую же базовую архитектуру, как микроконтроллеры младших моделей, но существенно отличаются возможностями обработки прерываний.
Старшие модели.
Микроконтроллеры старших моделей (серии 17Схх) разрабатывались для взаимодействия с другими цифровыми устройствами. Поэтому в них отсутствуют имеющиеся в моделях среднего уровня АЦП и устройства для подключения датчиков. В контроллерах используются 16–битные команды, способные адресовать по 128К байт памяти программ и памяти данных (64К слов по 16 бит). Для чтения/записи памяти программ в МК используется модифицированное ядро центрального процессора, позволяющее различным командам обращаться ко всем регистрам процессора. Это повышает гибкость микроконтроллеров и расширяет области их применения. Младшие и средние модели такой возможностью не обладают. Кроме того, в старших моделях PICMicro имеется несколько векторов прерываний, в то время как в микроконтроллерах среднего уровня используется только один вектор прерывания.
Ссылки
16-бит MSP430 • MCS-96 • MCS-296 • PIC24 • MAXQ • Nios • 68HC12 • 68HC16 32-бит ARM • MIPS • AVR32 • PIC32 • 683XX • M32R • SuperH • Nios II • Am29000 • LatticeMico32 • MPC5xx • PowerQUICC • Parallax Propeller Производители Analog Devices • Atmel • Silabs • Freescale • Fujitsu • Holtek • Hynix • Infineon • Intel • Microchip • Maxim • Parallax • NXP Semiconductors • Renesas • Texas Instruments • Toshiba • Ubicom • Zilog • Cypress • Интеграл • Миландр Компоненты Регистр • Процессор • SRAM • EEPROM • Флеш-память • Кварцевый резонатор • Кварцевый генератор • RC-генератор • Корпус Периферия Таймер • АЦП • ЦАП • Компаратор • ШИМ-контроллер • Счётчик • LCD • Датчик температуры • Watchdog Timer Интерфейсы CAN • UART • USB • SPI • I²C • Ethernet • 1-Wire FreeRTOS • μClinux • BeRTOS • ChibiOS/RT • eCos • RTEMS • Unison • MicroC/OS-II • Nucleus • Contiki Программирование JTAG • • Программатор • Ассемблер • Прерывание • MPLAB • AVR Studio • MCStudio Эта статья или раздел носит выраженный рекламный характер.
Это не соответствует правилам Википедии. Вы можете помочь проекту, исправив текст согласно стилистическим рекомендациям Википедии.
Характеристики контроллеров.
Следует отметить, что различный аппаратный состав и характеристики имеют не только микроконтроллеры разных семейств, но и модели (версии) одного семейства. Однако общим для большинства моделей контроллеров является:
● RISC –архитектура (с двухступенчатым конвейером), обеспечивающая выполнение большинства команд процессора за один машинный цикл;
● Гарвардская архитектура (с раздельными шинами данных и программ), обеспечивающая одновременный доступ к памяти данных и программ;
● КМОП технология, обеспечивающая:
• полностью статический режим работы, при котором остановка тактового генератора не приводит к потере логических состояний внутренних узлов;
• широкий диапазон напряжений питания (2…6 В) и температур (–40…+70 °С);
• малое энергопотребление;
● наличие таймера–счетчика с программируемым предварительным делителем, сторожевого таймера с встроенным R С–генератором, таймера–счетчика реального времени — ТМ R 0, регистра состояния — STATUS ; регистра косвенной адресации — FSR и др.
● прямой и косвенный режимы адресации; режим пониженного энергопотребления.
В качестве примера в табл. 6.1.1 приведены показатели МК средних моделей.
Содержание
- 1 8-битовые микроконтроллеры 1.1 8-битовые микроконтроллеры PIC10/12/16 1.1.1 Архитектура базового (BASELINE) семейства
- 1.1.2 Архитектура среднего (MID-RANGE) семейства
- 2.1 16-битовые микроконтроллеры PIC24F и PIC24H
Достоинства контроллеров.
К достоинствам микроконтроллеров PIC следует отнести:
● высокую производительность, которая позволяет реализовывать различные устройства, работающие в реальном времени с большими скоростями (системы управления автомобильными и электрическими двигателями, видеоигры и др.). В частности, производительность Р I С16С5х при частоте тактирования в 20 МГц составляет 5 MIPS (Million Instruction Per Second — миллионов инструкций в секунду). Высокая производительность достигается благодаря использованию:
• RISC –процессора, большинство команд которого выполняется за один машинный цикл (команды перехода и операции табличного чтения выполняются за два цикла);
• двухступенчатого конвейера, совмещающего выполнение текущей команды с выборкой из памяти следующей команды;
• Гарвардской архитектуры, обеспечивающей одновременное считывание команд (12, 14 или 16 бит) и данных (8 или 1 бит);
● малое энергопотребление, открывающее широкие возможности для создания устройств с батарейным питанием, питанием от телефонной линии, солнечных батарей (мобильные телефоны, электронные сторожа и др.). Для микроконтроллеров PIC 17, имеющих широкий набор аппаратных средств, потребление тока составляет:
• менее 5 мА при 5 В, 4 МГц;
• 100 мкА при 4,5 В, 32 кГц;
• менее 1 мкА при 5 В в режиме ожидания;
● мощную поддержку разработок, которую осуществляет фирма Microchip .
В качестве средств поддержки разработчику приложений предоставлены ассемблер MPASM и макроассемблер, симулятор MPSIM, интегрированная система отладки для Windows MPLAB, программный, внутрисхемный и отладочный эмуляторы, универсальный программатор и компилятор С. Кроме того, имеются библиотеки для работы с фиксированной и плавающей точкой, с последовательным интерфейсом и с аналого–цифровым преобразователем, а также большое количество документированных примеров применения микроконтроллеров PIC в различных областях с исходными текстами. Обилие средств поддержки разработчика способствует сокращению сроков создания приложений;
● совместимость, проявляющуюся в том, что программы для микроконтроллеров более ранних семейств PIC16C5X и PIC16CXX могут быть легко перенесены на семейство устройств PIC17CXX;
● разнообразие используемых способов программирования «внутри» каждого семейства PIC.
Фирма Microchip выпускает:
• микроконтроллеры с ультрафиолетовым стиранием, в которых память может быть очищена и контроллер перепрограммирован с помощью программатора PRO МАТЕ фирмы Microchip для функционирования в любом режиме, например, в режиме с использованием RC –генератора. Эти микроконтроллеры предназначены для экспериментальных разработок и отладки программ;
• однократно программируемые контроллеры ( One – Time Programming PROM — OTP ), изготовленные в пластиковом корпусе, позволяют пользователю записать в память программу и биты конфигурации только один раз. Они применяются в тех случаях, когда нет необходимости часто менять содержание программы или конфигурацию микроконтроллера в выпускаемом устройстве;
• контроллеры, программируемые изготовителем по заказу пользователя ( Quality TP — QTP ). Этот сервис, предлагаемый фирмой Microchip , предназначен для устоявшегося кода программы;
• контроллеры с серийными номерами ( SQTP ), программируемые изготовителем по заказу пользователя. В этих МК несколько определенных пользователем ячеек содержат номер, уникальный для отдельного устройства. Серийный номер может быть случайным, псевдослучайным и последовательным. Его можно использовать как код доступа, пароль или идентификатор;
• масочные контроллеры ( ROM ), в которых используются масочные ПЗУ. Такие контроллеры, имеющие низкую стоимость, изготавливаются для массового потребителя или при больших объемах заказа;
● высокую надежность, низкую стоимость и др.
Благодаря указанным достоинствам микроконтроллеры находят широкое и разнообразное применение.
Стек
В процессорах стек используется для хранения адресов возврата из подпрограмм и прерываний, а так же, для передачи параметров в подпрограммы и возвращаемых значений. Кроме того, стек может использоваться для временного размещения любой необходимой информации. Однако, в Microchip PIC нет полноценного стека. Стек имеет фиксированный размер, в зависимости от семейства, и располагается вне адресного пространства памяти программ и памяти данных.
Микроконтроллеры BaseLine
имеют стек глубиной два 12-разрядных слова, не доступный программно, для хранения адресов возврата из подпрограмм. Адрес возврата заносится в стек при выполнении инструкции CALL и извлекается оттуда инструкцией RETLW. Таким образом, глубина вложенных вызовов подпрограмм равна двум. Прерывания в этих микроконтроллерах не реализованы. Некоторые микроконтроллеры, которые можно назвать Enhanced BaseLine, например, PIC16F570 имеют стек глубиной четыре 12-разрядных слова и могут обслуживать прерывания. Адрес возврата из прерывания помещается в стек при возникновении прерывания, а извлекается инструкцией RETFIE. Других отличий нет.
Микроконтроллеры Mid-range
отличаются от BaseLine только увеличенной до 8 уровней глубиной стека и длиной хранимого слова 14 разрядов. Кроме того, извлекать адрес возврата из стека может дополнительная инструкция RETURN. Каких либо иных отличий от BaseLine нет.
Микроконтроллеры Enhanced Mid-range
получили стек глубиной 16 уровней хранящий 15-разрядные адреса возвратов из подпрограмм и прерываний. Однако, этот стек уже доступен программно. Указатель текущей позиции в стеке хранится в младших 4 разрядах регистра STKPTR, а содержимое указываемого им слова в регистрах TOSL и TOSH. Причем в TOSH используются только младшие 7 бит. Все три регистра доступны для чтения и записи, что позволяет программе использовать стек для хранения своих данных. Специальных инструкция POP и PUSH нет, необходимо вручную изменять регистр STKPTR.
Внимание, при доступе к стеку нужно исключить возможность возникновения прерываний, а лучше, запрещать их
.
Можно еще отметить своеобразный одноуровневый стек для сохранения регистров STATUS, WREG,BSR, PCLATH, FSR0L, FSR0H, FSR1L и FSR1H. Причем эти сохраненные копии доступны программно, так, например, регистру FSR0L соответствует сохраненная копия FSR0L_SHAD. Поскольку прерывания не могут быть вложенными такого одноуровневого хранилища достаточно.
Микроконтроллеры PIC18
имеют схожую с Enhanced Mid-range организацию работы со стеком. Только глубина стека увеличилась до 31 слова из 21 разряда. Указатель стека занимает 5 младших разрядов регистра STKPTR, там же расположились признаки переполнения и исчерпания стека. Добавился регистр TOSU, по аналогии с PCHATHU. Появились команды POP и PUSH, которые просто передвигают STKPTR.
Внимание, при доступе к стеку нужно исключить возможность возникновения прерываний, а лучше, запрещать их
. На рисунке ниже не показаны два бита состояния стека в регистре STKPTR.
Так же, имеется одноуровневый стек для сохранения регистров при возникновении прерывания. Однако, сохраняются только регистры STATUS, WREG и BSR. Причем сохраненные копии программно не доступны. Зато появилась возможность использовать это хранилище при вызове подпрограмм и возврате из подпрограмм. Для этого нужно добавить параметр FAST в инструкции вызова и возврата. Обратите внимание, что можно сохранить только одну копию регистров! Причем, если произойдет прерывание между вызовом и возвратом, то содержимое регистров будет утеряно!