Процессор, память и архитектура шин: различия между версиями

Материал из MIK32 микроконтроллер
Нет описания правки
Нет описания правки
Строка 107: Строка 107:


=== Назначение адреса входа в прерывание ===
=== Назначение адреса входа в прерывание ===
За адрес вектора перрывания отвечает регистр процессора MTVEC [0x305]
За адрес вектора прерывания отвечает регистр процессора MTVEC [0x305]


Structure of MTVEC register is shown in Table 11. Table 11: Structure of MTVEC register Bits Name Attributes Description 1..0 MODE RW/RZ Vector mode (0-direct mode, 1-vectored mode) 5..2 RZ Read as zero 31..6 BASE RW/QRO Vector base address (upper 26 bits) MODE field can be either RW or RZ depending on the SCR1_MTVEC_MODE_EN parameter value. BASE field can be QRO, RW, or partially RW depending on SCR1_MTVEC_BASE_WR_BITS parameter 16 value. SCR1_CSR_MTVEC_BASE_WR_RST_VAL parameter is used to set constant values for QRO bits and reset values for RW bits. See SCR1 configurable options for details. NOTE In direct mode, all exceptions set PC to BASE. In vectored mode, asynchronous interrupts set PC to BASE+4×cause.
Structure of MTVEC register is shown in Table 11. Table 11: Structure of MTVEC register Bits Name Attributes Description 1..0 MODE RW/RZ Vector mode (0-direct mode, 1-vectored mode) 5..2 RZ Read as zero 31..6 BASE RW/QRO Vector base address (upper 26 bits) MODE field can be either RW or RZ depending on the SCR1_MTVEC_MODE_EN parameter value. BASE field can be QRO, RW, or partially RW depending on SCR1_MTVEC_BASE_WR_BITS parameter 16 value. SCR1_CSR_MTVEC_BASE_WR_RST_VAL parameter is used to set constant values for QRO bits and reset values for RW bits. See SCR1 configurable options for details. NOTE In direct mode, all exceptions set PC to BASE. In vectored mode, asynchronous interrupts set PC to BASE+4×cause.
==== Описание регистра процессора ====
=====Регистр MTVEC=====
Адрес в карте регистров процессора: 0x305, Значение после подачи сброса: 0x**000000;
{| class="wikitable"
|31
|30
|29
|28
|27
|26
|25
|24
|23
| 22
|21
|20
|19
|18
|17
|16
|-
| colspan="8" |TRAP
| colspan="8" |Зарезервировано
|-
|rw
|rw
|rw
|rw
|rw
|rw
|rw
|rw
|rw
|rw
|rw
|rw
|rw
| rw
|rw
|rw
|}
{| class="wikitable"
|15
|14
|13
|12
|11
|10
|9
|8
|7
| 6
|5
|4
|3
|2
|1
|0
|-
| colspan="10" |Зерезервировано
| colspan="4" |Зарезервировано
| colspan="2" |Mode
|-
|rw
|rw
|rw
|rw
|rw
|rw
|rw
|rw
|rw
|rw
|rw
|rw
|rw
| rw
|rw
|rw
|}Биты 31:24 '''TRAP[31:24]''' - Соответствуют верхним 8 битам 32-битного адреса единственного в системе вектора прерываний. Нижние 24 бита фиксированы в значение 0x0000C0.
Биты 1:0 '''Mode[1:0]''' - режим работы
01 - векторный режим
00 - прямой режим
=== Встроенный в ядро таймер ===
Процессор оснащен системным таймером, который применяется потзователем для любых целей и может генерировать прерывание по сравнению, тактируется от системной частоты и имеет 10-битный предделитель частоты.
Часть регистров управления отражается в общей карте памяти

Версия от 09:56, 29 мая 2023

Архитектура шин

Система

Блок-схема представляет внутреннюю коммуникацию основных блоков микроконтроллера. Центральная шина устройства - AHB (Advanced High-performance Bus). Ядро SCR1 является основным мастером этой шины. Помимо того, модуль прямого доступа в память и интерфейс отладки так же могут быть мастерами на данной шине.

Память ОЗУ, EEPROM, и память на интерфейсе SPIFI доступны по-очереди через шину AHB.

Большая часть периферийных модулей находится на двух периферийных шинах (APB), соединенных с AHB мостами.

Сторожевой таймер шины, контролирует время отклика ведомых устройств на шине AHB (контроллер EEPROM, CRC32, ускоритель симметричной криптографии).

Коммутационная матрица AHB

Устройство предназначено для коммутации четырех ведущих и трех ведомых устройств с интерфейсом AHB Lite и обеспечивает доступ ведущих к устройствам на шинах APB_M и APB_P через соответствующие мосты. Коммутационная матрица обеспечивает одновременный доступ нескольких ведущих устройств к различным ведомым. Арбитраж нескольких ведущих к одному ведомому реализован на основе приоритетов с использованием алгоритма "карусель" (Round Robin). Обеспечивает организацию независимого адресного пространства для каждого из ведомых устройств. При обращении к недопустимому адресу (не входящему в адресное пространство мастера) формируется ответ с признаком ERROR. Возможные коммутации ведущих и ведомых устройств представлены в таблице

Ведущий Домен 0 и батарейный домен Память (EEPROM/ОЗУ/SPIFI) Периферийные устройства
Ядро (инструкции) +
Ядро (данные) + + +
DMA + +
Интерфейс тестирования + + +

Примечание – «–» -коммутация отсутствует, «+» - наличие коммутации.

Процессор

В состав микросхемы входит ядро SCR1, разработка компании Syntacore, на базе открытой архитектуры RISC-V.

Реализована следующая конфигурация:

  1. Процессорное ядро RV32I - базовый целочисленный набор команд (минимальный необходимый набор команд, 32х-битное адресное пространство, 32 регистра общего назначения по 32 бита, все инструкции ширины 32 бита);
    1. расширение «M» - стандартное опциональное расширение для операций целочисленного умножения и деления;
    2. расширение «С» - стандартное опциональное расширение для сокращенных инструкций, дополнительный набор инструкций ширины 16 бит;
  2. встроенный интегрированный программируемый контроллер прерываний отключен;
  3. поддержка отладки через интерфейс JTAG IEEE Std 1149.1-2013 (совместима с RISC-V External Debug Support Spec Ver. 0.13.2), поддержка стандартных функций отладки: Reset, Halt / Resume / Step, доступ к GPR, CSR, MEM, HW Breakpoint / Watchpoint;
  4. трехступенчатый конвейер;
  5. матрица AHB, обеспечивает коммутацию всех устройств с интерфейсами AHB и APB.
  6. системный TAP контроллер, обеспечивает доступ к отладочному тестовому интерфейсу, обеспечивает граничное сканирование выводов микросхемы;
  7. блок управления тестированием, предназначен для управления тестированием памяти и аналоговых блоков, а также обеспечивает доступ к регистрам периферийных модулей и ячейкам памяти без участия ядра;

Память

  • Статическое ОЗУ размером 4096x32 с поддержкой байтового доступа;
  • Блок электрически стираемого перепрограммируемого ПЗУ (по технологии EEPROM) размером 2048x38 с контроллером интерфейса AHB со схемой коррекции ошибок (организация памяти 32 плюс 6) и возможностью исполнения программы;
  • Блок однократно программируемой памяти ПЗУ размером 256 бит с возможностью программного чтения данных, предназначен для хранения поправочных коэффициентов и заводского номера изделия;
  • Возможность подключения внешней памяти по интерфейсу QSPI (до 4МБайт), позволяет значительно расширить память программ."Кэш-память" позволяет инструкциям поступать без задержек в большей части случаев обращения к памяти;

Менеджер загрузки обеспечивает управление выбранным источником загрузки (SPI FLASH, ОЗУ, EEPROM);

Другие устройства на шинах

Домен питания

  • LDO_BU – регулятор напряжения батарейного домена с низким падением напряжения (входное напряжении 2,5 – 3,6 В, номинальное выходное напряжение 1,8 В, допустимая нагрузка до 5 мА);
  • LDO_SYS – основной регулятор напряжения с низким падением напряжения (входное напряжении 3,0 – 3,6 В, номинальное выходное напряжение 1,8 В, допустимая нагрузка до 60 мА);
  • WakeUp - обеспечивает управление питанием и сбросом домена 0;

Домен сброса и тактирования

  • PORandBor (Power On Reset and BrownOut) – формирователь сигнала сброса батарейного домена при включении питания и контроль снижения напряжения питания ниже заданного;
  • блок управления питанием и тактированием обеспечивает управление питанием и управление тактовыми сигналами (установка коэффициентов делителей для шин, отключение тактирования отдельных устройств);
  • Внешние генераторы
    • OSC32K – генератор с выводами для подключения внешнего часового кварцевого резонатора;
    • OSC32M – генератор с выводами для подключения внешнего кварцевого резонатора для тактирования системы с частотой от 1 до 32 МГц (генератор по-умолчанию);
  • Внутренние генераторы
    • HSI32M – встроенный генератор с частотой 32 МГц с возможностью корректировки частоты;
    • LSI32K встроенных генератора с частотой 32 кГц с возможностью корректировки частоты;
  • монитор частоты, предназначен для контроля состояния источников тактирования во время работы микроконтроллера;

Периферийные устройства

  • контроллер выводов, обеспечивает управление функциями мультиплексированных выводов, два 16-ти и один 8-ми разрядных порта ввода-вывода общего назначения (GPIO);
  • контроллер прерываний обеспечивает поддержку 32 маскируемых прерываний от периферийных устройств;
  • CRC32 – модуль, предназначен для вычисления контрольной суммы (CRC) массива данных без использования вычислительных ресурсов центрального процессора на основе произвольного 32х-разрядного полинома;
  • ускоритель симметричной криптографии, реализует три специализированных преобразования:
    • AES128, FIPS 197 128-битный блочный шифр, со 128-битным ключом;
    • «Магма», ГОСТ 34.122015 64х-битный блочный шифр;
    • «Кузнечик», ГОСТ 34.122015 128-битный блочный шифр;
    • Поддерживает режимы сцепления блоков (ECB, CBC, CTR);часы реального времени с функцией календаря с корректировкой для високосного года и программируемым будильником с возможностью генерации прерываний и регистровым файлом 16х32 бит, для хранения пользовательских данных в батарейном домене;
  • три модуля «Таймер32», каждый из которых представляет собой настраиваемый 32х-разрядный счетчик с программируемым делителем и тремя режимами счета (прямой, обратный и двунаправленный). Timer32_1, Timer32_2 дополнительно имеют четыре независимых канала, способных работать в режиме захвата, сравнения или ШИМ;
  • контроллер DMA, реализует передачу данных между ведомыми устройствами на коммутационной матрице без участия ядра, имеет четыре независимых канала, обеспечивающих работу в режимах память-память, периферия-периферия, память-периферия с программируемым уровнем приоритетов обработки запросов;
  • SPIFI контроллер, обеспечивает интерфейс к внешней флэш-памяти и поддерживает два режима работы: режим работы с периферией и режим работы с памятью. Контроллер обеспечивает выполнение инструкций из внешней памяти и имеет КЭШ-память размером 256х32. Контроллер поддерживает работу в обычном последовательном и в: 2-х и 4-х битном параллельном режимах и обеспечивает возможность исполнения программы;
  • цифровая часть аналоговых блоков, обеспечивает доступ со стороны ядра к АЦП, ЦАП, мониторам температуры и напряжения;  три «Таймер16», каждый из которых представляет собой настраиваемый 16-ти разрядный счетчик с программируемым делителем (1, 2, 4, 8, 16, 32, 64, 128) с поддержкой режима ШИМ и настраиваемыми входными цифровыми фильтрами;
  • два модуля SPI для взаимодействия с различными периферийными устройствами, такими, как микросхемы памяти, датчики температуры, датчики давления, аналоговые преобразователи, часы реального времени, дисплеи и любые SD карты, поддерживающие последовательный режим обмена. Контроллер поддерживает работу в режиме ведущего и ведомого;
  • два модуля I2C, обеспечивающих последовательный интерфейс в соответствии со спецификацией на шину I2C от компании Philips/NXP. Контроллер I2C представляет собой двунаправленный, восьмибитный приемо–передатчик для взаимодействия с различными периферийными устройствами;
  • два модуля USART - синхронно-асинхронный приемо-передатчик, который поддерживает широкий диапазон скоростей передач и форматов данных, задаваемых программно, с возможностью автоматически формировать бит четности и с возможностью обнаружения ошибок;
  • 12-ти разрядный АЦП, предназначен для преобразования входного аналогового сигнала в 12-разрядный цифровой код. Количество каналов 8, частота преобразования 1 МГц;
  • 12-ти разрядный ЦАП, предназначен для преобразования входного 12- разрядного цифрового кода в аналоговый сигнал. Количество каналов 2, частота преобразования 1 МГц;
  • монитор температуры с программируемыми порогами срабатывания;
  • два монитора питания напряжением с программируемым порогом срабатывания, котроллируемые напряжения: AVCC и VCC_BAT;
  • сторожевой таймер - схема контроля над зависанием системы. Обеспечивает формирование прерывания и сброса, если не был выполнен программный сброс счетчика;

Назначение адреса входа в прерывание

За адрес вектора прерывания отвечает регистр процессора MTVEC [0x305]

Structure of MTVEC register is shown in Table 11. Table 11: Structure of MTVEC register Bits Name Attributes Description 1..0 MODE RW/RZ Vector mode (0-direct mode, 1-vectored mode) 5..2 RZ Read as zero 31..6 BASE RW/QRO Vector base address (upper 26 bits) MODE field can be either RW or RZ depending on the SCR1_MTVEC_MODE_EN parameter value. BASE field can be QRO, RW, or partially RW depending on SCR1_MTVEC_BASE_WR_BITS parameter 16 value. SCR1_CSR_MTVEC_BASE_WR_RST_VAL parameter is used to set constant values for QRO bits and reset values for RW bits. See SCR1 configurable options for details. NOTE In direct mode, all exceptions set PC to BASE. In vectored mode, asynchronous interrupts set PC to BASE+4×cause.

Описание регистра процессора

Регистр MTVEC

Адрес в карте регистров процессора: 0x305, Значение после подачи сброса: 0x**000000;

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
TRAP Зарезервировано
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Зерезервировано Зарезервировано Mode
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw

Биты 31:24 TRAP[31:24] - Соответствуют верхним 8 битам 32-битного адреса единственного в системе вектора прерываний. Нижние 24 бита фиксированы в значение 0x0000C0.

Биты 1:0 Mode[1:0] - режим работы

01 - векторный режим

00 - прямой режим

Встроенный в ядро таймер

Процессор оснащен системным таймером, который применяется потзователем для любых целей и может генерировать прерывание по сравнению, тактируется от системной частоты и имеет 10-битный предделитель частоты.

Часть регистров управления отражается в общей карте памяти