МК
Основные особенности МК серии PIC (Лекция)
ПЛАН ЛЕКЦИИ
1. Состав
и назначение семейств PIC-контроллеров
2.
Микроконтроллеры семейств PIC16CXXX и PIC17CXXX
3.
Особенности архитектуры микроконтроллеров семейства PIC16CXXX
1. Состав и назначение семейств
PIC-контроллеров
Микроконтроллеры
семейств PIC (Peripheral Interface Controller)
компании Microchip объединяют все передовые технологии микроконтроллеров:
электрически программируемые пользователем ППЗУ, минимальное энергопотребление,
высокую производительность, хорошо развитую RISC-архитектуру, функциональную
законченность и минимальные размеры. Широкая номенклатура изделий обеспечивает
использование микроконтроллеров в устройствах, предназначенных для
разнообразных сфер применения. Первые
микроконтроллеры компании Microchip PIC16C5x появились в конце 1980-х годов и
благодаря своей высокой производительности и низкой стоимости составили
серьезную конкуренцию производившимся в то время 8-разрядным МК с
CISC-архитектурой. Высокая
скорость выполнения команд в PIC-контроллерах
достигается за счет использования двухшинной гарвардской архитектуры вместо
традиционной одношинной фон-неймановской. Гарвардская архитектура основывается
на наборе регистров с разделенными шинами и
адресными пространствами для команд и данных. Все ресурсы микроконтроллера,
такие как порты ввода/вывода, ячейки памяти и таймер, представляют собой физически реализованные
аппаратные регистры. Микроконтроллеры
PIC содержат RISC-процессор с симметричной системой
команд, позволяющей выполнять операции с любым регистром,
используя произвольный метод адресации.
Пользователь может сохранять результат операции в самом регистре-аккумуляторе
или во втором регистре, используемом для операции. В
настоящее время компания Microchip выпускает пять основных семейств 8-разрядных
RISC-микроконтроллеров, совместимых снизу вверх по программному коду: ·
PIC12CXXX
– семейство микроконтроллеров, выпускаемых в миниатюрном 8-выводном исполнении.
Эти микроконтроллеры выпускаются как с 12-разрядной (33 команды), так и с 14-разрядной
(35 команд) системой команд. Содержат встроенный тактовый генератор, таймер/счетчик, сторожевой таймер,
схему управления прерываниями. В составе семейства
есть микроконтроллеры со встроенным 8-разрядным четырехканальным АЦП. Способны
работать при напряжении питания до 2,5 В; ·
PIC16C5X
– базовое семейство микроконтроллеров с 12-разрядными командами (33 команды),
выпускаемое в 18-, 20- и 28-выводных корпусах. Представляют собой простые
недорогие микроконтроллеры с минимальной периферией. Способность работать при
малом напряжении питания (до 2 В) делает их удобными для применения в
переносных конструкциях. В состав семейства входят микроконтроллеры подгруппы
PIC16HV5XX, способные работать непосредственно от батареи в диапазоне питающих
напряжений до 15 В; ·
PIC16CXXX
– семейство микроконтроллеров среднего уровня с 14-разрядными командами (35
команд). Наиболее многочисленное семейство, объединяющее микроконтроллеры с
разнообразными периферийными устройствами, в число которых входят аналоговые
компараторы, аналогово-цифровые преобразователи, контроллеры последовательных
интерфейсов SPI, USART и I2C, таймеры-счетчики, модули захвата/сравнения,
широтно-импульсные модуляторы, сторожевые таймеры,
супервизорные схемы и так далее; ·
PIC17CXXX
– семейство высокопроизводительных микроконтроллеров с расширенной системой
команд 16-разрядного формата (58 команд), работающие на частоте до 33 МГц, с
объемом памяти программ до 16 Кслов. Кроме обширной периферии, 16-уровневого
аппаратного стека и векторной системы прерываний,
почти все микроконтроллеры этого семейства имеют встроенный аппаратный
умножитель 8х8, выполняющий операцию умножения за один машинный цикл. Являются
одними из самых быстродействующих в классе 8-разрядных микроконтроллеров; ·
PIC18CXXX
– семейство высокопроизводительных микроконтроллеров с расширенной системой
команд 16-разрядного формата (75 команд) и встроенным 10-разрядным АЦП,
работающие на частоте до 40 МГц. Содержат 31-уровневый аппаратный стек,
встроенную память команд до 32 Кслов и способны адресовать до 4 Кбайт памяти
данных и до 2 Мбайт внешней памяти программ. Расширенное RISC-ядро микроконтроллеров
данного семейства оптимизировано под использование нового Си-компилятора. Большинство
PIC-контроллеров выпускаются с однократно
программируемой памятью программ (OTP), с возможностью внутрисхемного
программирования или масочным ПЗУ. Для целей отладки предлагаются более дорогие
версии с ультрафиолетовым стиранием и Flash-памятью. Полный список выпускаемых
модификаций PIC-контроллеров включает порядка пятисот
наименований. Поэтому продукция компании перекрывает почти весь диапазон применений
8-разрядных микроконтроллеров. Из
программных средств отладки наиболее известны и доступны различные версии ассемблеров,
а также интегрированная программная среда MPLAB. Российские производители
программаторов и аппаратных отладочных средств также уделяют внимание PIC-контроллерам. Выпускаются как специализированные
программаторы, такие как PICPROG, программирующие почти весь спектр PIC-микроконтроллеров, так и универсальные: UNIPRO и
СТЕРХ, поддерживающие наиболее известные версии PIC-контроллеров. Наиболее
распространенными семействами PIC-контроллеров
являются PIC16CXXX и PIC17CXXX. 2. Микроконтроллеры семейств
PIC16CXXX и PIC17CXXX
Основным
назначением микроконтроллеров семейств PIC16 и PIC17, как следует из аббревиатуры
PIC (Peripheral Interface Controller), является
выполнение интерфейсных функций. Этим объясняются особенности их архитектуры: 1)
RISC-система
команд, характеризующаяся малым набором одноадресных инструкций (33, 35 или
58), каждая из которых имеет длину в одно слово (12, 14 или 16 бит) и
большинство выполняется за один машинный цикл. В системе команд отсутствуют
сложные арифметические команды (умножение, деление), предельно сокращен набор
условных переходов; 2)
высокая
скорость выполнения команд: при тактовой частоте 20 МГц время машинного цикла
составляет 200 нс (быстродействие равно 5 млн. операций/сек); 3)
наличие
мощных драйверов (до 25 мА) на линиях портов
ввода/вывода, что позволяет подключать непосредственно к ним довольно мощную
нагрузку, например, светодиоды. 4)
низкая
потребляемая мощность; 5)
ориентация
на ценовую нишу предельно низкой стоимости, определяющая использование дешевых
корпусов с малым количеством выводов (8, 14, 18, 28), отказ от внешних шин
адреса и данных (кроме PIC17C4X), использование упрощенного механизма прерываний и аппаратного (программно недоступного) стека. 3. Особенности архитектуры
микроконтроллеров семейства PIC16CXXX
Микроконтроллеры
семейства PIC16CXXX, выполненные по технологии HCMOS представляют собой
8-разрядные микроконтроллеры на основе RISC-процессора, выполненные по
гарвардской архитектуре. Имеют встроенное ПЗУ команд объемом от 0,5 до 4 Кслов
(разрядность слова команд равна 12 – 14 бит). Память данных PIC-контроллеров организована в виде регистрового файла
объемом 32 – 128 байт, в котором от 7 до 16 регистров
отведено для управления системой и обмена данными с внешними устройствами. Одним
из основных достоинств этих устройств является очень широкий диапазон напряжений
питания (2 – 6 В). Ток потребления на частоте 32768 Гц составляет менее 15 мкА,
на частоте 4 МГц – 1 – 2 мА, на частоте 20 МГц 5 – 7 мА и в режиме
микропотребления (режим SLEEP) – 1 – 2 мкА. Выпускаются модификации для
работы в трех температурных диапазонах: от 0 до +70°С, от -40 до +85°С и от -40
до +125°С. Каждый
из контроллеров содержит универсальные (от 1 до 3) и сторожевой таймеры, а также надежную встроенную систему сброса при
включении питания. Частота внутреннего тактового генератора задается либо
кварцевым резонатором, либо RC-цепочкой в диапазоне 0 – 25 МГц. PIC-контроллеры имеют от 12 до 33 линий цифрового
ввода-вывода, причем каждая из них может быть независимо настроена на ввод или
вывод. В
устройство PIC16C64 входит широтно-импульсный модулятор, с помощью которого
можно реализовать ЦАП с разрешением до 16 разрядов. Здесь есть и
последовательный двунаправленный синхронно-асинхронный порт,
обеспечивающий возможность организации шины I2C. Приборы PIC16C71 и
PIC16C74 содержат встроенный многоканальный 8-разрядный АЦП с устройством
выборки-хранения. Помимо
памяти программ в PIC предусмотрено несколько
индивидуально прожигаемых перемычек, с помощью которых можно на этапе
программирования кристалла выбрать тип тактового генератора, отключить
сторожевой таймер или систему сброса, включить
защиту памяти программ от копирования, а также записать серийный номер
кристалла (16 бит). С
программной точки зрения PIC-контроллер
представляет собой 8-разрядный RISC-процессор с гарвардской архитектурой. Число
команд небольшое — от 33 до 35. Все команды имеют одинаковую длину и, кроме
команд ветвления, выполняются за четыре периода тактовой частоты (в отличие,
например, от 12 периодов для i87C51). Поддерживаются непосредственный, косвенный
и относительный методы адресации, можно эффективно
управлять отдельными битами в пределах всего регистрового файла. Стек
реализован аппаратно. Его максимальная глубина составляет два или восемь
уровней в зависимости от типа контроллера. Почти во всех микросхемах PIC есть система прерываний,
источниками которых могут быть таймер и внешние
сигналы. Система команд практически симметрична и, как следствие, легка в
освоении. Применение
PIC-контроллеров целесообразно в несложных приборах
с ограниченным током потребления (автономные устройства, приборы с питанием от
телефонной линии и т.п.). Благодаря малому количеству компонентов, используемых
при построении таких приборов, их размеры уменьшаются, а надежность
увеличивается. Типичным
представителем микроконтроллеров семейства PIC16CXXX являются микроконтроллеры
подгруппы PIC16F8X. |
||