Микроконтроллеры Microchip серии PIC32. Внутренняя организация.
В данном цикле статей речь пойдет о 32-разрядных микроконтроллерах PIC32 , существенно отличающихся производительностью и объемом памяти на кристалле по сравнению с 16-разрядными микроконтроллерами и контроллерами цифровой обработки сигналов PIC24/dsPIC. Данные МК построены на ядре MIPS32 M4K и являются достойной альтернативой процессорам ARM, являясь к тому же лидерами в отношении мА/Мгц тактовой частоты.
Данные микроконтроллеры имеют следующие основные характеристики и особенности :
- Ядро MIPS32 M4K, частота тактирования 80МГц, производительность 1.56 Dhrystone MIPS/МГц. Отличная альтернатива ARM.
- Различные типы корпусов, начиная от DIP-28 и SOIC-28 и заканчивая TQFP-100
- Развитая периферия: PMP,USB OTG FS/LS, CAN, SPI, I2S, I2C, Ethernet и пр.
- Совместимость по выводам и отладочным средствам с 16-битными контроллерами Microchip.
- Готовые библиотеки, а также огромное количество примеров.
- Недорогие средства отладки – PicKit3 ( 1600 руб. )
- Большое количество отладочных, оценочных плат как фирменных так и стороннего производителя. ( olimex, mikroelektronika)
MCU PIC32 обладает следующими особенностями :
- 5-ти уровневый конвейер.
- Ядро MIPS32 M4K , малое потребление, RISC архитектура с набором инструкций «MIPS32 Release 2 Instruction Set Architecture»
- Наличие модуля для операций умножения-деления за один тактовый цикл.
- Два регистровых файла.
- Модуль предварительной выборки, ускоряющий работу с Flash.
- Наличие теневых регистров
- Атомарный доступ к регистрам периферии.
- Набор 16-ти разрядных инструкций (MIPS16e) для создания компактного кода.
На рис 1 представлена блок-схема внутреннего устройства процессора PIC32MX
Рис 1
Процессор содержит 2 внутренних шины, посредством которых периферия взаимодействует с ядром.Одна из них тактируется сигналом SYSCLK, другая PBCLK.Главная периферийная шина объединяет основную часть периферийных модулей с шинной матрицей ( Bus Matrix ) через периферийный мост ( Peripheral Bridge ). Вторая периферийная шина обслуживает контроллер прерываний, контроллер прямого доступа к памяти ( DMA ) , ICD (in-circuit Debugger ) ,USB и порты ввода-вывода.Все шины 32-разрядные.
Сердцем процессора является ядро M4K :
Таймер ядра.
Архитектура PIC32MX содержит таймер ядра ( Core timer ) который может быть применен в пользовательских программах. Данный таймер расположен в 2-х регистрах со-процессора : CP0_COUNT — счетный регистр и CP0_COMPARE — регистр сравнения. Счетный регистр увеличивает свое значение каждый второй «тик»системного клока ( SYSCLK ) Инкрементирование счетчика может быть приостановлено по желанию во время отладки ( Debug mode ) Регистр сравнения используется для инициирования прерывания , опять же, в случае необходимости.
Уровни конвейера.
5-ти ступенчатый конвейер состоит из :
1. Выборка инструкции.
2. Исполнение
3. Доступ к памяти
4. Выравнивание
5. Запись результата
Упрощенная схема конвейера представлена ниже