Открыть сервис

Микроконтроллер PIC

Микроконтроллер PIC — это семейство микроконтроллеров, производимых американской компанией Microchip Technology (ранее — General Instrument). Архитектура PIC (Peripheral Interface Controller) относится к классу гарвардских, с раздельной памятью команд и данных. Микроконтроллеры PIC широко применяются в системах автоматизации, бытовой электронике, автомобильной промышленности, промышленных контроллерах и встраиваемых устройствах благодаря низкой стоимости, широкому ассортименту и простоте освоения.

История

Разработка микроконтроллеров PIC началась в 1975 году в подразделении General Instrument (GI) в городе Чандлер, штат Аризона, США. Первоначально устройство называлось PIC1650 и предназначалось для управления периферийными устройствами в системах на базе процессора CP1600. В 1985 году подразделение GI по производству микросхем было выделено в компанию Microchip Technology, которая продолжила развитие линейки.

В 1988 году Microchip выпустила первое поколение PIC16C5x с архитектурой на 12-битных словах команд. В 1990-х годах появились более мощные серии PIC16F8x с 14-битными словами и встроенной флеш-памятью. В 2000-х годах были представлены серии PIC18 (16-битные слова) и PIC24 (16-битные слова с расширенной архитектурой), а также семейство dsPIC с цифровым сигнальным процессором (DSP). К 2020-м годам Microchip выпустила более 2000 моделей PIC, включая 32-битные микроконтроллеры на ядре MIPS (PIC32).

Архитектура

Микроконтроллеры PIC используют гарвардскую архитектуру, при которой память программ и память данных физически разделены и имеют разные шины. Это позволяет одновременно выполнять выборку команды и доступ к данным, повышая производительность. Основные компоненты архитектуры:

  • Центральный процессор (CPU) — RISC-ядро с фиксированной длиной команды (12, 14 или 16 бит в зависимости от серии). Выполняет большинство команд за один такт.
  • Память программ — флеш-память (или однократно программируемая EPROM в старых моделях) для хранения кода. Объём варьируется от 256 байт до 2 Мбайт.
  • Память данных (RAM) — статическая оперативная память (SRAM) для переменных и стека. Обычно от 16 байт до 128 Кбайт.
  • Регистры специального назначения (SFR) — управляют периферийными модулями (таймеры, АЦП, порты ввода-вывода).
  • Стекаппаратный стек глубиной от 2 до 32 уровней (в зависимости от модели) для хранения адресов возврата из подпрограмм.
  • Периферийные модули — встроенные таймеры, аналого-цифровые преобразователи (АЦП), широтно-импульсные модуляторы (ШИМ), последовательные интерфейсы (UART, SPI, I²C), компараторы, сторожевой таймер (WDT) и другие.

Особенности системы команд

Система команд PIC — RISC (Reduced Instruction Set Computer), количество команд обычно составляет 35 (для PIC16) или 77 (для PIC18). Команды выполняются за один такт, за исключением команд условного перехода (занимают 2 такта). Большинство команд работают с аккумулятором (рабочий регистр W) и регистрами общего назначения. Адресация — прямая, косвенная (через регистры FSR/INDF) и относительная.

Классификация

Микроконтроллеры PIC делятся на несколько семейств, различающихся разрядностью ядра, объёмом памяти и набором периферии:

  • PIC10 — 8-битные микроконтроллеры в миниатюрных корпусах (6–8 выводов), предназначенные для простых задач (например, управление светодиодом, считывание кнопки). Объём памяти программ — до 1 Кбайт.
  • PIC12 — 8-битные микроконтроллеры с 8 выводами, имеют встроенный генератор и АЦП. Популярны в малогабаритных устройствах.
  • PIC16 — 8-битные микроконтроллеры среднего уровня (14-битные команды, до 28 выводов). Наиболее массовое семейство. Примеры: PIC16F628A, PIC16F877A.
  • PIC18 — 8-битные микроконтроллеры с расширенной архитектурой (16-битные команды, до 80 выводов). Поддерживают многозадачность, аппаратное умножение, USB. Примеры: PIC18F4550, PIC18F4620.
  • PIC24 — 16-битные микроконтроллеры (16-битные команды, до 100 выводов). Имеют модуль DMA, 16-битные таймеры, расширенные возможности для цифровой обработки сигналов.
  • dsPIC — 16-битные цифровые сигнальные контроллеры (DSC), сочетающие функции микроконтроллера и DSP. Используются в аудиообработке, управлении двигателями, силовой электронике.
  • PIC32 — 32-битные микроконтроллеры на ядре MIPS32 (M4K, M14K). Обладают высокой производительностью (до 200 МГц), поддерживают USB, Ethernet, CAN, графические контроллеры.

Применение

Микроконтроллеры PIC используются в широком спектре устройств:

  • Бытовая электроника — пульты дистанционного управления, таймеры, кофеварки, стиральные машины, игрушки.
  • Автомобильная промышленность — системы управления двигателем (ECU), датчики, панели приборов, системы освещения.
  • Промышленная автоматизация — программируемые логические контроллеры (ПЛК), датчики температуры и давления, приводы, контроллеры шаговых двигателей.
  • Медицинская техника — глюкометры, тонометры, портативные мониторы.
  • Телекоммуникации — модемы, маршрутизаторы, устройства связи.
  • Образование и хобби — учебные платформы (например, на базе PIC16F877A), робототехника, проекты Arduino-совместимых плат (например, chipKIT).

Программирование

Для программирования микроконтроллеров PIC используются языки низкого уровня (ассемблер) и высокого уровня (C, C++). Основные средства разработки:

  • MPLAB X IDEинтегрированная среда разработки от Microchip (бесплатная, на основе NetBeans). Поддерживает все семейства PIC.
  • XC8, XC16, XC32 — компиляторы C для 8-, 16- и 32-битных PIC соответственно. Бесплатные версии имеют ограничения по оптимизации.
  • PICkit — программатор-отладчик (например, PICkit 3, PICkit 4) для внутрисхемного программирования и отладки.
  • ICD (In-Circuit Debugger) — отладчики, работающие через интерфейс ICSP (In-Circuit Serial Programming).

Процесс программирования включает написание кода, компиляцию, загрузку в микроконтроллер через программатор и отладку. Для начинающих часто используются готовые платы (например, PICkit 2 Starter Kit) и библиотеки (Microchip Code Configurator).

Преимущества и недостатки

Преимущества

  • Низкая стоимость — базовые модели PIC10/12 стоят менее 1 доллара США.
  • Широкий ассортимент — более 2000 моделей с различными комбинациями памяти, периферии и корпусов.
  • Низкое энергопотребление — многие модели поддерживают режимы сна (Sleep) с потреблением менее 1 мкА.
  • Высокая надёжность — аппаратный сторожевой таймер, защита от сбоев питания.
  • Простота освоения — небольшое количество команд, обширная документация и сообщество.

Недостатки

  • Ограниченная производительность — 8-битные ядра уступают по скорости 32-битным ARM-микроконтроллерам.
  • Сложность разработки на C — архитектура PIC требует учёта банков регистров и страниц памяти, что усложняет код.
  • Закрытая экосистема — инструменты разработки (MPLAB X, компиляторы) привязаны к продукции Microchip.
  • Отсутствие поддержки RTOS — для 8-битных PIC редко используются операционные системы реального времени.

Интересные факты

  • Первый микроконтроллер PIC (PIC1650) был выпущен в 1976 году и использовался в качестве периферийного контроллера для процессора CP1600.
  • Название «PIC» изначально расшифровывалось как «Programmable Interface Controller» (программируемый интерфейсный контроллер), но позже было переосмыслено как «Peripheral Interface Controller».
  • Микроконтроллеры PIC используются в космических аппаратах NASA (например, в марсоходе Curiosity — для управления некоторыми датчиками).
  • В 2020-х годах Microchip начала выпуск PIC с поддержкой интерфейса USB Type-C и Power Delivery (PIC16F152xx).

Источники

  • Microchip Technology Inc. — официальная документация и datasheets (PIC16F877A, PIC18F4550, PIC32MX).
  • «PIC Microcontroller Architecture» — книга John B. Peatman (Prentice Hall, 1997).
  • «Programming 8-bit PIC Microcontrollers in C» — Martin P. Bates (Newnes, 2008).
  • Обзор архитектуры PIC на сайте Microchip (раздел «Product Families»).
  • История развития PIC — статья в журнале «Embedded Systems Design» (2005).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →