PIC

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
PIC микроконтроллеры в DIP и QFN корпусах
16-битный 28-pin PDIP PIC24 микроконтроллер

PIC — микроконтроллеры Гарвардской архитектуры, производимые американской компанией Microchip Technology Inc. Название PIC является сокращением от Peripheral Interface Controller, что означает «контроллер интерфейса периферии». Название объясняется тем, что изначально PIC предназначались для расширения возможностей ввода-вывода 16-битных микропроцессоров CP1600.[1]

В номенклатуре Microchip Technology Inc. представлен широкий спектр 8-и, 16-и и 32-битных микроконтроллеров и цифровых сигнальных контроллеров под маркой PIC. Отличительной особенностью PIC-контроллеров является хорошая преемственность различных семейств. Это и программная совместимость (единая бесплатная среда разработки MPLAB IDE), и совместимость по выводам, по периферии, по напряжениям питания, по средствам разработки, по библиотекам и стекам наиболее популярных коммуникационных протоколов. Номенклатура насчитывает более 500 различных контроллеров со всевозможными вариациями периферии, памяти, количеством выводов, производительностью, диапазонами питания и температуры и т. д.

8-битные микроконтроллеры[править | править вики-текст]

8-битные микроконтроллеры имеют модифицированную гарвардскую архитектуру и делятся на 2 больших семейства: PIC10/12/16 и PIC18.

8-битные микроконтроллеры PIC10/12/16[править | править вики-текст]

8-битные микроконтроллеры PIC10/12/16 представлены двумя базовыми архитектурами ядра: BASELINE и MID-RANGE.

Архитектура базового (BASELINE) семейства[править | править вики-текст]

Базовая архитектура (BASELINE) состоит из контроллеров семейства PIC10 и части контроллеров семейств PIC12 и PIC16. Основываются они на 12-и разрядной архитектуре слова программ и представлены контроллерами в корпусах от 6 до 28-и выводов. Упрощенная архитектура базового семейства предоставляет наиболее дешевое решение из предлагаемых Microchip. Широкий диапазон напряжений питания, возможность работы при низких напряжениях преследует целью возможность применения микроконтроллеров в батарейных устройствах.

  • маловыводные и миниатюрные корпуса
  • Flash память программ
  • низкое потребление тока
  • низкая цена
  • легкое освоение, всего 35 команд

Архитектура среднего (MID-RANGE) семейства[править | править вики-текст]

Архитектура среднего семейства (Mid-Range) нашла применение в микроконтроллерах серий PIC12 и PIC16, и имеет ширину слова памяти программ 14 бит. Эти микроконтроллеры выпускаются в корпусах от 8 до 64 выводов. Микроконтроллеры с Flash памятью работают в диапазоне напряжений питания от 2.0 до 5.5В, имеют систему прерываний, аппаратный стек и энергонезависимую память данных EEPROM, а также богатый набор периферии, такой как USB, SPI, I²C, USART, LCD, компараторы, АЦП и т. п.

  • различные корпуса: 6 — 64 выводов
  • Flash память программ
  • малый ток потребления
  • богатая периферия
  • производительность 5 MIPS
  • легкое освоение, всего 35 команд

Расширенное ядро микроконтроллеров среднего семейства

В более новых микроконтроллерах Microchip применяет улучшенную архитектуру 8-битных PIC микроконтроллеров среднего семейства PIC12 и PIC16:

  • увеличенный объем памяти программ и данных
  • более глубокий и улучшенный аппаратный стек
  • дополнительные источники сброса
  • расширенная периферия, периферия включает модуль mTouch ™ для создания сенсорных пользовательских интерфейсов
  • уменьшенное время входа в прерывание
  • производительность увеличена на 50 %, а размер кода снижен на 40 %
  • 14 дополнительных инструкций, оптимизированных под С-компилятор — итого, 49 инструкций

8-битные микроконтроллеры PIC18[править | править вики-текст]

Высокопроизводительное семейство 8-битных микроконтроллеров PIC18F представлено широкой гаммой микроконтроллеров, включающих большой набор периферийных модулей: 10бит АЦП, компараторы, ШИМ, захват/сравнение, драйвер ЖКИ; интерфейсы связи USB, CAN, I²C, SPI, USART, Ethernet и т. д.

  • быстродействия до 16 MIPS
  • объем памяти программ до 128 кБ
  • корпуса от 18 до 100 выводов.
  • эффективное кодирование на C
  • NanoWatt технологии
  • встроенный программируемый генератор
  • „трёхвольтовое“ и „пятивольтовое“ семейства
  • продвинутая архитектура (16-и разрядные слова программ)
  • гибкость самопрограммирования
  • поддержка широко распространенных протоколов связи (CAN, USB, ZigBee, TCP/IP)
  • программная совместимость и совместимость по выводам и периферийным модулям внутри семейства, а также со старшими (16-битными) семействами, предоставляют возможность расширения и увеличения функциональности при развитии разработок.

16-битные контроллеры[править | править вики-текст]

Компания Microchip Technology Inc. производит два семейства 16-и разрядных микроконтроллеров (MCU) и два семейства 16-и разрядных цифровых сигнальных контроллеров (DSC), которые дают разработчикам совместимые платформы с обширным выбором типов корпусов, периферийных модулей и быстродействия. Общие атрибуты всех 16-и разрядных семейств — это совместимость по выводам, общая система команд и, соответственно, общие компиляторы Си и средства разработки. Широкая линейка 16-битных контроллеров включает контроллеры от 18 до 100 выводов с объемом flash памяти от 6 Кб до 536 Кб.

16-битные микроконтроллеры PIC24F и PIC24H[править | править вики-текст]

Основные особенности:

  • выполнение команды за 2 такта генератора
  • гарантированное время отклика на прерывание — 5 командных тактов
  • доступ к памяти (в том числе инструкции чтения-модификации-записи) за 1 командный такт
  • аппаратный умножитель (за 1 такт)
  • аппаратный делитель 32/16 и 16/16 чисел (17 командных тактов)
  • диапазон питающих напряжений 1.8…3.6В, один источник питания.
  • внутрисхемное и само- программирование
  • встроенный генератор с PLL
  • расширенная периферия (до 3-х SPI, до 3-х I2C, до 4-х UART (с поддержкой IrDA, LIN), CAN (и расширенный ECAN), USB OTG)
  • модуль измерения времени заряда (CTMU), основное применение — управление емкостными сенсорами
  • ток портов ввода-вывода общего назначения — 18 мА
  • порты толерантны к устройствам с 5 В питанием
  • до девяти 16-битных таймеров общего назначения
  • до восьми модулей захвата
  • ряд энергосберегающих режимов
  • до двух АЦП (32 канала) с конфигурируемой разрядностью
  • до восьми 16-битных модулей сравнения / генерации ШИМ
  • программное переназначение выводов (PPS)
  • прямой доступ к памяти DMA(у PIC24H)
  • расширенный набор инструкций, 16 ортогональных регистров общего назначения, векторная приоритетная система прерываний, и другие особенности (методы адресации, аппаратные циклы).

16-битные микроконтроллеры представлены в двух модификациях — PIC24F и PIC24H, которые отличаются технологией изготовления FLASH программной памяти. Это определяет диапазон питающих напряжений — для PIC24F — 2,0…3,6 В, для PIC24H — 3,0…3,6 В. Первое семейство (PIC24F) производится по более дешевой технологии (0,25 мкм) и работает с максимальной производительностью ядра 16MIPS@32МГц. Второе семейство (PIC24H) производится с использованием более сложного техпроцесса изготовления, что позволяет добиться большей скорости работы (40MIPS@80МГц). Оба семейства поддерживают внутрисхемное программирование (ICSP), а также самопрограммирование (RTSP).

Контроллеры цифровой обработки сигналов dsPIC30F и dsPIC33F[править | править вики-текст]

Компания Microchip предлагает два семейства 16-ти разрядных Flash микроконтроллеров с поддержкой команд цифровой обработки сигналов — dsPIC30F и dsPIC33F. Высокое быстродействие в (30 MIPS для dsPIC30F, 40 MIPS для dsPIC33FJ, 70 MIPS для dsPIC33EP) и эффективная система команд позволяет использовать контроллеры в сложных системах реального времени. Ключевые особенности:

  • расширенная система команд, включающая специфические команды поддержки цифровой обработки сигналов (DSP).
  • 24-разрядные инструкции выполняются за 4 периода тактовой частоты у dsPIC30F и за 2 — у dsPIC33FJ(EP), за исключением команд деления, переходов, команд пересылки данных из регистра в регистр и табличных команд.
  • разрядность программного счетчика (24 бита) позволяет адресовать до 4М слов программной памяти (4М*24бит).
  • аппаратная поддержка циклов типа DO и REPEAT, выполнение которых не требует дополнительных издержек программной памяти и времени на анализ условий окончания, в то же время эти циклы могут быть прерваны событиями прерывания в любой момент;
  • 16 рабочих регистров, каждый регистр массива может выступать как данные, адрес или смещение адреса
  • два класса команд: микроконтроллерные инструкции (MCU) и команды цифровой обработки сигналов (DSP). Оба этих класса равноправно интегрированы в архитектуру контроллера и обрабатываются одним ядром.
  • различные типы адресации;
  • система команд оптимизирована для получения максимальной эффективности при программировании на языке высокого уровня Си.

Если о PIC24F можно говорить, как об усеченном доработанном варианте dsPIC30F (без ядра ЦОС, с трехвольтовым питанием и переработанным конвейером), то PIC24H — это усеченный вариант dsPIC33F. Хотя в данном сравнении нарушены причинно-следственные связи, технически оно верно. Ядро dsPIC33F полностью аналогично ядру dsPIC30F, за исключение того что в dsPIC33F команда выполняется за два такта генератора. Семейства полностью совместимы по набору инструкций, программной модели и способам адресации, что позволяет использовать библиотеки и исходные коды программ, написанные для dsPIC30F. Особо следует отметить переработанную по сравнению с dsPIC30F систему тактирования. dsPIC33F, как и семейство PIC24H, имеют PLL с дробным коэффициентом умножения (конфигурируемым программно), что позволяет получить сетку частот от 12,5 МГц до 80 МГц с шагом 0,25 МГц при использовании кварцевого резонатора 4 МГц. Кроме того, контроллеры dsPIC33F и PIC24H имеют два внутренних высокостабильных RC-генератора с частотами 7,3728 МГц и 32,768 кГц. Отдельный делитель тактовой частоты ядра (модуль DOZE) присутствует во всех новых 16-битных семействах. Он позволяет уменьшить тактовую частоту, подаваемую на ядро независимо от тактовой частоты периферийных модулей, что необходимо для уменьшения потребления в энергоограниченных приложениях. Большой выбор по периферии контроллеров ЦОС:
Общего назначения:

  • календарь и часы реального времени RTCC
  • аппаратный подсчет CRC
  • расширенная периферия (SPI, I2C, UART (с поддержкой IrDA, LIN), CAN (ECAN))
  • 10-и и 12-битные АЦП
  • компараторы
  • 10-и и 16-битные ЦАП
  • прямой доступ к памяти (DMA)
  • ведущий параллельный порт (PMP)
  • программное переназначение выводов (PPS)
  • многоуровневая система защиты кода (Code Guard)

Для управления двигателями и преобразователями энергии

  • специализированный ШИМ для управления приводом (Motor Control PWM)
  • интерфейс квадратурного энкодера

Для импульсных источников питания (SMPS)

  • Специализированный сверхбыстрый ШИМ с высоким разрешением (SMPS PWM)
  • Специализированные сверхбыстрые АЦП (SMPS ADC)

Для работы со звуком:

  • 12-битный АЦП
  • 16-битный ЦАП
  • специализированный ШИМ (output compare PWM)
  • интерфейс кодирования данных DCI (I2S, AC97)

Для управления графическими дисплеями:

  • ведущий параллельный порт PMP (QVGA)
  • модуль измерения времени заряда CTMU (сенсорные дисплеи touch-screen)

32-битные микроконтроллеры[править | править вики-текст]

Старшим семейством контроллеров от Microchip Technology является 32-разрядное семейство микроконтроллеров PIC32:

  • ядро MIPS32 M4K, частота тактирования 80 МГц, большинство команд выполняются за 1 такт генератора, производительность 1.53 Dhrystone MIPS/МГц
  • порты ввода-вывода относятся к основному частотному диапазону, т.о., к примеру, можно дергать портами с тактовой частотой.
  • дополнительный частотный диапазон организуется для периферии из основного посредством программно настраиваемого делитель, т.о. частота тактирования периферии может быть снижена для снижения энергопотребления.
  • 28-, 44-, 64- и 100-выводные корпуса, до 128 кБ SRAM и 512 кБ Flash с кэшем предвыборки
  • совместимость по выводам и отладочным средствам с 16-битными контроллерами Microchip
  • аппаратный умножитель-делитель с независимым от основного ядра конвейером, оптимизированным по скорости выполнения
  • набор расширенных инструкций MIPS16e™ — набор 16-битных инструкций, позволяющий на некоторых приложениях снизить объем кода на 40 %
  • независимый от основного ядра контроллер USB

Семейство 32-разрядных микроконтроллеров PIC32 выделяется значительно увеличенной производительностью и объемом памяти на кристалле по сравнению с 16-разрядными микроконтроллерами и контроллерами цифровой обработки сигналов PIC24/dsPIC. Контроллеры PIC32 также оснащены большим количеством периферийных модулей, включая различные коммуникационные интерфейсы — те же, что у PIC24, и 16-битный параллельный порт, который может использоваться, например, для обслуживания внешних микросхем памяти и жидко-кристаллических TFT-индикаторов. Семейство PIC32 построено на ядре MIPS32®, с конкурентоспособной комбинацией низкого потребления энергии, быстрой реакции на прерывание, функциональностью средств разработки и лидирующем в своем классе быстродействием 1.53 Dhrystone MIPS/МГц. Такое быстродействие достигнуто благодаря эффективному набору инструкций, 5-ступенчатому конвейеру, аппаратному умножителю с накоплением и несколькими (до 8) наборами 32-разрядных регистров ядра.

Средства отладки[править | править вики-текст]

Для программирования микроконтроллеров семейства PIC применяется фирменный программатор-отладчик IC PROG, ICD-2, ICD-3, REAL ICE, Pickit, PicKit2, Pickit3. Эти программаторы позволяют как программировать, так и отлаживать код: пошаговое выполнение, точки останова, просмотр оперативной и программной памяти, просмотр стека.

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

  1. [1] Great microprocessors of the past and present (V 13.4.0)

Ссылки[править | править вики-текст]