PIC

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

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

Под маркой PIC фирмой Microchip выпускаются 8-, 16- и 32-битовые микроконтроллеры и цифровые сигнальные контроллеры (DSC), отличительной особенностью которых является хорошая преемственность различных семейств: программная совместимость (общие средства разработки: бесплатная IDE MPLAB, общие библиотеки, общие стеки наиболее популярных протоколов передачи данных), совместимость по выводам, по периферии, по напряжениям питания. Номенклатура насчитывает более 500 различных контроллеров со всевозможными вариациями периферии, отличающимися объёмами памяти, количеством выводов, производительностью, диапазонами напряжений питания, рабочими температурами и др.

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

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

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

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

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

Архитектуру BASELINE имеют ядра контроллеров семейства PIC10 и часть контроллеров семейств PIC12 и PIC16. Отличительные черты:

  • разрядность: 12 бит;
  • количество поддерживаемых машинных инструкций: 35;
  • количество выводов (контактов): от 6 до 28;
  • дешевизна (по сравнению с другими решениями фирмы Microchip);
  • поддержка широкого диапазона напряжений питания;
  • возможность работы при низких напряжениях (применимо, например, в батарейных устройствах);
  • низкое потребление тока;
  • малые габаритные размеры корпуса;
  • наличие встроенной flash-памяти для программ.

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

Архитектуру MID-RANGE имеют ядра микроконтроллеров серий PIC12 и PIC16. Отличительные черты:

  • разрядность: 14 бит;
  • количество поддерживаемых машинных инструкций: 35;
  • количество выводов: от 6 до 64;
  • работа в диапазоне напряжений питания от 2.0 до 5,5 В;
  • малый ток потребления;
  • поддержка системных прерываний;
  • аппаратная поддержка стека;
  • наличие встроенной flash-памяти для программ;
  • наличие энергонезависимой памяти типа EEPROM для данных;
  • поддержка периферии (USB, SPI, I²C, USART, LCD, компараторов, АЦП и т. п.);
  • производительность: MIPS.

Расширенную архитектуру MID-RANGE имеют ядра новых микроконтроллеров семейств PIC12 и PIC16. Отличительные черты:

  • разрядность: 8 бит;
  • количество поддерживаемых машинных инструкций: 35 основных и 14 дополнительных (оптимизированных под компилятор языка C);
  • увеличенный объём памяти программ и данных;
  • более глубокий и улучшенный аппаратный стек;
  • дополнительные источники сброса;
  • поддержка периферийных устройств с модулем mTouch™ (используется для создания сенсорных пользовательских интерфейсов);
  • уменьшенное время входа в прерывание;
  • производительность увеличена на 50 %;
  • размер кода снижен на 40 %.

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

Отличительные черты микроконтроллеров семейства PIC18F:

  • разрядность: 8 бит;
  • возможность подключения следующей периферии: 10-битовых АЦП, компараторов, ШИМ, захват/сравнение, драйверов, ЖКИ, периферии с интерфейсами USB, CAN, I²C, SPI, USART, Ethernet, TCP/IP, ZigBee и др.;
  • производительность: до 16 MIPS;
  • объём памяти программ: до 128 кБ;
  • количество выводов: от 18 до 100;
  • поддержка технологии NanoWatt;
  • наличие программируемого генератора;
  • поддерживаемые напряжения питания: 3 и 5 В;
  • совместимость (программная, по выводам, по периферийным модулям) с другими контроллерами этого семейства и с 16-битовыми контроллерами других семейств.

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

Компания Microchip производит два семейства 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 мкм) и работают с максимальной производительностью ядра (16 MIPS, 32 МГц). Контроллеры второго семейства (PIC24H) производятся с использованием более сложного техпроцесса, что позволяет добиться большей скорости работы (40 MIPS, 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 3 728 МГц и 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-битовые микроконтроллеры[править | править вики-текст]

Отличительные черты семейства 32-разрядных микроконтроллеров PIC32:

  • разрядность: 32 бита;
  • ядро: MIPS32 M4K;
  • частота тактирования ядра: до 120 МГц (для серии MX) и до 200 МГц (для серии MZ)[источник не указан 52 дня];
  • выполнение большинства команд за 1 такт генератора;
  • производительность: 1.53 Dhrystone MIPS/МГц;
  • порты ввода-вывода относятся к основному частотному диапазону, таким образом, к примеру, можно дёргать портами с тактовой частотой;
  • дополнительный частотный диапазон организуется для периферии из основного посредством программно настраиваемого делителя, таким образом, частота тактирования периферии может быть снижена для снижения энергопотребления;
  • количество выводов: 28, 44, 64 и 100;
  • объём SRAM: до 128 кБ;
  • объём flash-памяти: 512 кБ с кэшем предвыборки;
  • совместимость по выводам и отладочным средствам с 16-битовыми контроллерами фирмы Microchip;
  • аппаратный умножитель-делитель с независимым от основного ядра конвейером, оптимизированным по скорости выполнения;
  • набор расширенных 16-битовых инструкций MIPS16e™, позволяющий уменьшить размер кода некоторых программ на 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)

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