PIC
PIC — серия микроконтроллеров, имеющих гарвардскую архитектуру и производимых американской компанией Microchip Technology Inc. Название PIC является сокращением от англ. peripheral interface controller, что означает «контроллер интерфейса периферии». Название объясняется тем, что изначально микроконтроллеры серии PIC предназначались для расширения возможностей ввода-вывода 16-битовых микропроцессоров CP1600[1].
Под маркой PIC фирмой Microchip выпускаются 8-, 16- и 32-битовые микроконтроллеры и цифровые сигнальные контроллеры (DSC), отличительной особенностью которых является хорошая преемственность различных семейств: программная совместимость (общие средства разработки: бесплатная IDE MPLAB, общие библиотеки, общие стеки наиболее популярных протоколов передачи данных), совместимость по выводам, по периферии, по напряжениям питания. Номенклатура насчитывает более 500 различных контроллеров со всевозможными вариациями периферии, отличающимися объёмами памяти, количеством выводов, производительностью, диапазонами напряжений питания, рабочими температурами и др.
Широкая номенклатура, дающая возможность использования в конкретном изделии оптимального с точки зрения цены микроконтроллера (в том числе наличие в линейке однократно программируемых микроконтроллеров), низкое энергопотребление, большая гибкость и универсальность семейства являются причиной выбора PIC-контроллеров производителями электроники в качестве базового семейства для своих изделий[2].
8-битовые микроконтроллеры[править | править код]
8-битовые микроконтроллеры делятся на два больших семейства: PIC10/12/16 и PIC18.
8-битовые микроконтроллеры PIC10/12/16/18[править | править код]
Ядра 8-битовых микроконтроллеров PIC10/12/16 могут быть построены одной из двух архитектур: BASELINE и MID-RANGE.
Архитектура базового (BASELINE) семейства[править | править код]
Архитектуру BASELINE имеют ядра контроллеров семейства PIC10 и часть контроллеров семейств PIC12 и PIC16. Отличительные черты:
- ширина слова памяти программ: 12 бит;
- количество поддерживаемых машинных инструкций: 35;
- количество выводов (контактов): от 6 до 28;
- дешевизна (по сравнению с другими решениями фирмы Microchip);
- поддержка широкого диапазона напряжений питания;
- возможность работы при низких напряжениях (применимо, например, в устройствах с батарейным питанием);
- низкое потребление тока;
- малые габаритные размеры корпуса;
- наличие встроенной flash-памяти для программ.
Разновидности контроллеров:
PIC100F200-I/P[править | править код]
Контроллеры с температурным диапазоном Industrial и корпусами PDIP.
PIC100F200-I/oT[править | править код]
Контроллеры с температурным диапазоном Industrial и корпусами SOT23-6.
Архитектура среднего (MID-RANGE) семейства[править | править код]
Архитектуру MID-RANGE имеют ядра микроконтроллеров серий PIC12 и PIC16. Отличительные черты:
- ширина слова памяти программ: 14 бит;
- количество поддерживаемых машинных инструкций: 35;
- количество выводов: от 6 до 64;
- работа в диапазоне напряжений питания от 2,0 до 5,5 В;
- малый ток потребления;
- поддержка системных прерываний;
- аппаратная поддержка стека;
- наличие встроенной flash-памяти для программ;
- наличие энергонезависимой памяти типа EEPROM для данных;
- поддержка периферии (USB, SPI, I²C, USART, LCD, компараторов, АЦП и т. п.);
- производительность: 5 MIPS.
Расширенная архитектура среднего (MID-RANGE) семейства[править | править код]
Расширенную архитектуру MID-RANGE имеют ядра новых микроконтроллеров семейств PIC12 и PIC16. Отличительные черты:
- ширина слова памяти программ: 14 бит;
- количество поддерживаемых машинных инструкций: 35 основных и 14 дополнительных (оптимизированных под компилятор языка C, позволяющих снизить размер кода на 40 %);
- увеличенный объём памяти программ и данных;
- более глубокий и улучшенный аппаратный стек;
- дополнительные источники сброса;
- поддержка периферийных устройств с модулем mTouch™ (используется для создания сенсорных пользовательских интерфейсов);
- уменьшенное время входа в прерывание;
- производительность увеличена до 8 MIPS.
8-битовые микроконтроллеры PIC18[править | править код]
Отличительные черты микроконтроллеров семейства PIC18F:
- ширина слова памяти программ: 16 бит;
- возможность подключения следующей периферии: 10-битовых и 12-битовых АЦП, компараторов, ШИМ, захват/сравнение, драйверов, ЖКИ, периферии с интерфейсами USB, CAN, I²C, SPI, USART, Ethernet, TCP/IP, ZigBee и др.;
- производительность: до 16 MIPS;
- объём памяти программ: до 128 кБ;
- количество выводов: от 18 до 100;
- поддержка технологии NanoWatt;
- наличие программируемого генератора;
- поддерживаемые напряжения питания: 3,3 и 5 В;
- совместимость (программная, по выводам, по периферийным модулям) с другими контроллерами этого семейства и с 16-битовыми контроллерами других семейств.
16-битовые контроллеры[править | править код]
Компания Microchip производит два семейства 16-разрядных микроконтроллеров (MCU) и два семейства 16-разрядных цифровых сигнальных контроллеров (DSC), которые дают разработчикам совместимые платформы с обширным выбором типов корпусов, периферийных модулей и быстродействия. Основные черты всех 16-разрядных семейств:
- ширина слова памяти программ: 24 бит;
- совместимость по выводам;
- единая система команд;
- общие компиляторы Си и средства разработки;
- количество выводов: от 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,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-битовые микроконтроллеры[править | править код]
Отличительные черты семейства 32-разрядных микроконтроллеров PIC32:
- разрядность: 32 бита;
- ядро: MIPS32 M4K;
- частота тактирования ядра: до 120 МГц (для серии MX) и до 200 МГц (для серии MZ)[источник не указан 3050 дней];
- выполнение большинства команд за 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, Pickit4. Эти программаторы позволяют не только программировать, но и отлаживать код. Возможности: пошаговое выполнение, установка точек останова, просмотр содержимого оперативной и программной памяти, просмотр содержимого стека.
Помимо выпускаемых Microchip, распространено большое число программаторов и отладчиков, выпускаемых сторонними российскими и зарубежными разработчиками[3][4][5].
См. также[править | править код]
Примечания[править | править код]
- ↑ Great microprocessors of the past and present (V 13.4.0) Архивная копия от 27 февраля 2009 на Wayback Machine
- ↑ Современные микроконтроллеры: Архитектура, средства проектирования, примеры применения, ресурсы сети ИнтернетТелесистемы». Под ред. Коршуна И.В.; составление, пер. с англ. и литературная обработка Горбунова Б.Б.. — М.: «Аким», 1998. — С. 151. — 272 с. — 15 000 экз. — ISBN 5-85399-045-4. / «
- ↑ "Программаторы. Краткий обзор". Архивировано 10 октября 2020. Дата обращения: 4 октября 2020.
{{cite web}}
: Неизвестный параметр|deadlink=
игнорируется (справка)К:Википедия:Ошибки CS1 (неподдерживаемый параметр) - ↑ "Видеообзор программаторов". Архивировано 8 октября 2020. Дата обращения: 4 октября 2020.
{{cite web}}
: Неизвестный параметр|deadlink=
игнорируется (справка)К:Википедия:Ошибки CS1 (неподдерживаемый параметр) - ↑ "Топ-10 лучших программаторов и дебаггеров с Алиэкспресс". Архивировано 9 октября 2020. Дата обращения: 4 октября 2020.
{{cite web}}
: Неизвестный параметр|deadlink=
игнорируется (справка)К:Википедия:Ошибки CS1 (неподдерживаемый параметр)
Ссылки[править | править код]
- Официальный сайт microchip.com Архивная копия от 2 марта 2021 на Wayback Machine (англ.)
- Форум по продукции Microchip
- PIC24.ru Русскоязычный сайт, посвящённый преимущественно семействам PIC24 и dsPIC
- Сайт посвященный программированию PIC контроллеров
Ошибка Lua в Модуль:Navbox на строке 353: attempt to index local 'listText' (a nil value). Ошибка Lua в Модуль:Navbox на строке 353: attempt to index local 'listText' (a nil value).