PIC
PIC — это семейство 8-битных, 16-битных и 32-битных микроконтроллеров (MCU), производимых американской компанией Microchip Technology (ранее — General Instrument и Arizona Microchip). Микроконтроллеры PIC (Peripheral Interface Controller — контроллер периферийного интерфейса) представляют собой однокристальные микрокомпьютеры, которые объединяют на одном кристалле процессорное ядро, память программ (ПЗУ/Flash), память данных (ОЗУ) и набор периферийных устройств (таймеры, порты ввода-вывода, АЦП, ШИМ, интерфейсы связи). Они широко применяются во встраиваемых системах, бытовой электронике, автомобильной промышленности, промышленной автоматизации и образовательных проектах благодаря низкой стоимости, простоте использования и широкой линейке моделей.
История
Происхождение
История PIC началась в 1975 году, когда компания General Instrument (GI) разработала микросхему PIC1650. Изначально она предназначалась для управления периферийными устройствами в составе больших вычислительных систем. В отличие от современных микроконтроллеров, PIC1650 имел гарвардскую архитектуру с раздельной памятью команд и данных, что позволяло повысить производительность.
Развитие в 1980-х
В 1985 году подразделение GI, занимавшееся микроконтроллерами, выделилось в компанию Arizona Microchip Technology. В 1989 году компания представила первое поколение 8-битных PIC — серию PIC16C5x, которая стала коммерчески успешной. Эти микроконтроллеры использовали RISC-архитектуру (Reduced Instruction Set Computer) с 33 командами, что было революционным для того времени.
Эра Flash-памяти
В 1996 году Microchip выпустила модель PIC16F84 — первый PIC с электрически стираемой памятью программ (Flash). Это позволило многократно перепрограммировать микроконтроллеры без ультрафиолетового стирания, что резко упростило разработку и отладку. С этого момента PIC стал массово использоваться в любительских и образовательных проектах.
Современный этап
В 2000-х годах Microchip расширила линейку: появились 16-битные PIC24 и dsPIC (с DSP-блоком), а в 2010-х — 32-битные PIC32 на ядре MIPS32. В 2018 году Microchip приобрела компанию Atmel (производителя конкурирующих AVR), но продолжила развивать обе платформы. На 2024 год семейство PIC насчитывает более 1000 моделей, от крошечных 8-ногих PIC10 до мощных 32-битных PIC32MZ.
Архитектура
Гарвардская архитектура
Микроконтроллеры PIC используют модифицированную гарвардскую архитектуру, в которой память программ (Flash) и память данных (ОЗУ) физически разделены и имеют разные шины. Это позволяет одновременно выбирать следующую команду и выполнять текущую, что повышает быстродействие. Разрядность командной шины обычно больше разрядности данных: например, для 8-битных PIC команды имеют длину 12, 14 или 16 бит.
RISC-ядро
Ядро PIC основано на RISC-принципах: большинство команд выполняются за один тактовый цикл (кроме команд перехода). Количество команд варьируется от 33 (базовые модели) до 84 (продвинутые 16-битные). Типичные команды включают загрузку/сохранение, арифметику, логические операции, битовые операции и условные переходы.
Регистровая модель
Все регистры в PIC, включая порты ввода-вывода и периферийные модули, отображаются в единое адресное пространство данных (ОЗУ). Это упрощает программирование: доступ к периферии осуществляется как к обычным ячейкам памяти. Регистры общего назначения (GPR) и специальные регистры (SFR) расположены в одной области.
Классификация
По разрядности
- 8-битные PIC (PIC10, PIC12, PIC16, PIC18) — самая массовая линейка. Производительность до 16 MIPS, память до 128 Кбайт Flash. Применяются в простых устройствах: пульты, датчики, игрушки.
- 16-битные PIC (PIC24, dsPIC30/33) — производительность до 70 MIPS, память до 512 Кбайт. dsPIC имеют встроенный DSP-блок для цифровой обработки сигналов. Используются в аудио, управлении двигателями, измерительных приборах.
- 32-битные PIC (PIC32MX, PIC32MZ) — на ядре MIPS32, производительность до 200 МГц, память до 2 Мбайт. Поддерживают операционные системы реального времени (FreeRTOS). Применяются в сложных системах: медицинская техника, автомобильная электроника.
По поколениям
- Базовое (Baseline) — PIC10, PIC12, PIC16 с 12-битными командами. Минимум периферии, низкая цена.
- Среднее (Mid-Range) — PIC16 с 14-битными командами. Расширенная периферия (АЦП, ШИМ, компараторы).
- Высшее (High-End) — PIC18 с 16-битными командами. Улучшенная архитектура, поддержка C-компиляторов, аппаратное умножение.
Периферийные модули
Типичный PIC содержит набор встроенных периферийных устройств, которые можно настраивать программно:
- Порты ввода-вывода (GPIO) — от 6 до 144 выводов с возможностью подтяжки, прерываний по изменению уровня.
- Таймеры/счётчики — 8- и 16-битные, с предделителями и возможностью захвата/сравнения.
- Аналого-цифровой преобразователь (АЦП) — разрядность 8–12 бит, скорость до 1 млн выборок/с.
- Широтно-импульсная модуляция (ШИМ) — до 16 каналов, используется для управления двигателями, светодиодами.
- Интерфейсы связи — UART (RS-232, RS-485), SPI, I²C, CAN (для автомобильных PIC), USB (для PIC18 и PIC32).
- Компараторы и операционные усилители — для аналоговой обработки сигналов.
- Модули LCD/OLED — для прямого управления дисплеями.
Программирование
Среды разработки
- MPLAB X IDE — официальная среда от Microchip на базе NetBeans. Поддерживает все PIC, включает симулятор, отладчик и компиляторы.
- MPLAB XC — семейство C-компиляторов (XC8, XC16, XC32) с оптимизацией под разные линейки.
- Arduino IDE — сторонняя поддержка через плагины (например, для PIC32).
- SDCC — бесплатный C-компилятор для 8-битных PIC (с ограничениями).
Языки
- Ассемблер — традиционный способ, даёт полный контроль над ресурсами. Используется в критичных по времени задачах.
- C — основной язык для современных разработок. Microchip предоставляет библиотеки периферии (PLIB) и драйверы.
- BASIC — через компиляторы Proton BASIC или mikroBasic (для образовательных целей).
- MikroC — коммерческий компилятор с визуальным конфигуратором.
Программаторы и отладчики
- PICkit — недорогой программатор/отладчик (PICkit 3, PICkit 4, PICkit 5).
- ICD (In-Circuit Debugger) — профессиональные отладчики (ICD 3, ICD 4).
- MPLAB Snap — бюджетный отладчик с поддержкой USB.
- Bootloader — позволяет загружать прошивку через UART или USB без программатора.
Применение
Бытовая электроника
PIC используются в пультах дистанционного управления, стиральных машинах, микроволновых печах, термостатах, электронных игрушках. Например, PIC16F84A был популярен в самодельных устройствах благодаря простоте.
Автомобильная промышленность
Микроконтроллеры PIC применяются в системах управления двигателем (ECU), подушках безопасности, антиблокировочной системе (ABS), климат-контроле, бортовых компьютерах. Специализированные серии (PIC18FxxKxx) имеют CAN-интерфейс и работают при температурах до +125 °C.
Промышленная автоматизация
PIC используются в программируемых логических контроллерах (ПЛК), датчиках, исполнительных механизмах, системах учёта энергии. dsPIC с DSP-блоком применяются для управления электродвигателями (частотные преобразователи, сервоприводы).
Медицинская техника
Измерительные приборы (глюкометры, тонометры), инфузионные насосы, портативные мониторы — все эти устройства часто базируются на PIC32 из-за низкого энергопотребления и высокой точности АЦП.
Образование и хобби
Благодаря низкой цене (от $0.5) и обилию документации, PIC популярны среди радиолюбителей и студентов. Существуют отладочные платы (PICDEM, Curiosity), а также книги и онлайн-курсы по PIC-программированию.
Преимущества и недостатки
Преимущества
- Широкий ассортимент — более 1000 моделей, от ультрабюджетных до высокопроизводительных.
- Низкое энергопотребление — некоторые модели (PIC24F) потребляют менее 1 мкА в спящем режиме.
- Простота архитектуры — лёгкое освоение для начинающих.
- Высокая надёжность — промышленный диапазон температур, стойкость к помехам.
- Долгосрочная доступность — Microchip гарантирует выпуск моделей в течение 10–15 лет.
Недостатки
- Устаревшая архитектура — 8-битные PIC имеют ограниченную производительность и память по сравнению с ARM-конкурентами.
- Сложность экосистемы — MPLAB X IDE громоздкая, а компиляторы XC имеют платные версии с полной оптимизацией.
- Ограниченная поддержка C — для 8-битных PIC C-компиляторы менее эффективны, чем ассемблер.
- Закрытость — в отличие от AVR, PIC не имеют открытых спецификаций ядра (кроме PIC32).
Конкуренты
Основные конкуренты PIC на рынке микроконтроллеров:
- AVR (Atmel/Microchip) — прямая альтернатива 8-битным PIC, популярна в Arduino.
- STM32 (STMicroelectronics) — 32-битные ARM Cortex-M, доминируют в высокопроизводительном сегменте.
- PSoC (Infineon) — программируемые аналоговые и цифровые блоки.
- MSP430 (Texas Instruments) — ультранизкое энергопотребление.
- ESP32 (Espressif) — встроенный Wi-Fi и Bluetooth.
Интересные факты
- Название «PIC» изначально расшифровывалось как «Programmable Intelligent Computer» (программируемый интеллектуальный компьютер), но позже было изменено на «Peripheral Interface Controller».
- Первый PIC (PIC1650) производился по технологии NMOS, современные модели — по CMOS (0.18–0.35 мкм).
- В 1990-х годах PIC были одними из первых микроконтроллеров, доступных для самостоятельной сборки радиолюбителями (через наборы «PIC Programmer»).
- В России PIC популярны в учебных заведениях: многие вузы используют их для обучения основам микропроцессорной техники.
- Microchip ежегодно проводит конкурс «Microchip Masters» среди разработчиков на PIC.
Источники
- Microchip Technology Inc. — официальная документация (datasheets, application notes, reference manuals).
- «PIC Microcontrollers: An Introduction to Microchip PIC Microcontrollers» — John Iovine.
- «Programming 16-Bit PIC Microcontrollers in C» — Lucio Di Jasio.
- Журнал «Радио» — статьи по PIC-программированию (1990–2020-е).
- Сайт EasyElectronics.ru — обзоры и уроки по PIC.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →