Под маркой PIC фирмой Microchip выпускаются 8-, 16- и 32-битовые микроконтроллеры и цифровые сигнальные контроллеры (DSC), отличительной особенностью которых является хорошая преемственность различных семейств: программная совместимость (общие средства разработки: бесплатная IDEMPLAB, общие библиотеки, общие стеки наиболее популярных протоколов передачи данных), совместимость по выводам, по периферии, по напряжениям питания. Номенклатура насчитывает более 500 различных контроллеров со всевозможными вариациями периферии, отличающимися объёмами памяти, количеством выводов, производительностью, диапазонами напряжений питания, рабочими температурами и др.
Широкая номенклатура, дающая возможность использования в конкретном изделии оптимального с точки зрения цены микроконтроллера (в том числе наличие в линейке однократно программируемых микроконтроллеров), низкое энергопотребление, большая гибкость и универсальность семейства являются причиной выбора PIC-контроллеров производителями электроники в качестве базового семейства для своих изделий[2].
Расширенная архитектура среднего (MID-RANGE) семейства[править | править код]
Расширенную архитектуру MID-RANGE имеют ядра новых микроконтроллеров семейств PIC12 и PIC16. Отличительные черты:
ширина слова памяти программ: 14 бит;
количество поддерживаемых машинных инструкций: 35 основных и 14 дополнительных (оптимизированных под компилятор языка C, позволяющих снизить размер кода на 40 %);
увеличенный объём памяти программ и данных;
более глубокий и улучшенный аппаратный стек;
дополнительные источники сброса;
поддержка периферийных устройств с модулем mTouch™ (используется для создания сенсорных пользовательских интерфейсов);
совместимость (программная, по выводам, по периферийным модулям) с другими контроллерами этого семейства и с 16-битовыми контроллерами других семейств.
Компания Microchip производит два семейства 16-разрядных микроконтроллеров (MCU) и два семейства 16-разрядных цифровых сигнальных контроллеров (DSC), которые дают разработчикам совместимые платформы с обширным выбором типов корпусов, периферийных модулей и быстродействия. Основные черты всех 16-разрядных семейств:
гарантированное время отклика на прерывание — 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) и эффективная система команд позволяют использовать контроллеры в системах реального времени. Особенности:
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));
порты ввода-вывода относятся к основному частотному диапазону, таким образом, к примеру, можно дёргать портами с тактовой частотой;
дополнительный частотный диапазон организуется для периферии из основного посредством программно настраиваемого делителя, таким образом, частота тактирования периферии может быть снижена для снижения энергопотребления;
количество выводов: 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].
↑Современные микроконтроллеры: Архитектура, средства проектирования, примеры применения, ресурсы сети Интернет (рус.) / «Телесистемы». Под ред. Коршуна И.В.; составление, пер. с англ. и литературная обработка Горбунова Б.Б.. — М.: «Аким», 1998. — С. 151. — 272 с. — 15 000 экз. — ISBN 5-85399-045-4.