Как стать автором
Обновить

Внутри микроконтроллера

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров15K

Рассмотрим новинку отечественных ученых — ультранизкопотребляющий 32-разрядный микроконтроллер. Отличительными особенностями этой разработки является сочетание производительности, функциональности и потребляемой мощности.

Микросхема К1921ВГ015 представляет собой СБИС 32-разрядный микроконтроллер, предназначенный для промышленных и потребительских приложений, включая системы дистанционного мониторинга, контрольно-измерительные приборы, системы автоматизации производственных процессов, автомобильную электронику, а также устройств с батарейным питанием.

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

Архитектура

Микроконтроллер К1921ВГ015 спроектирован на базе RISC-V ядра ВМ-310S6, поддерживающего систему команд RVB32IMFCN_ZBA_ZBB_ZBC_ZBS, и два режима привилегированности: machine и user.

 Конвейер BM-310S6 состоит из 2-х стадий, на которых выполняются генерация запроса в подсистему памяти программ (PMS), чтение фрагмента кода из PMS и извлечение команд. Далее происходит декодирование команды и ее исполнение.

Подсистема предварительной обработки команд (FE) отвечает за выполнение операций первой, и частично второй стадии конвейера.

Блок FE состоит из:

  1. IFU - Instruction Fetch Unit, где содержится логика формирования адреса следующего фрагмента кода.

  2. IDU - Instruction Decode Unit - блок предварительного декодирования инструкций.

  3. IFQ - Instruction Fetch Queue - очередь фрагментов кода.

Все устройства микроконтроллера соединены между собой через блок коммутации.

Что внутри?

 Микроконтроллер содержит домен батарейного питания, в который входят периферийные блоки: RTC, аналоговые компараторы, блок контроля вскрытия, дополнительное ОЗУ 64КБ, независимый сторожевой таймер. Периферийные блоки, входящие в состав домена батарейного питания, позволяют осуществлять контроль вскрытия корпуса системы, отсчитывать временные промежутки и сохранять информацию при отсутствии основного питания.

Процессорное ядро BM-310 поддерживает систему команд: RV32IMFCN_ZBA_ZBB_ZBC_ZBS. Ядро CloudBEAR BM-310S6 также поддерживает два режима привилегированности: machine и user. Режим user предоставляет механизм изоляции процессов друг от друга и от доверенного кода, исполняемого в режиме machine.

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

 В связи с тем, что изделие оснащено отдельно выделенным батарейным доменом питания, управление режимами блоков, входящих в его состав осуществляется регистрами PMU_RTC. Управление режимом функционирования остальных блоков осуществляется регистрами PMU_SYS.

Помимо этого, предусмотрено два способа перехода в режим пониженного энергопотребления.

Что снаружи?

 Все выводы микроконтроллера по их функциональному назначению, организованы в группы:

  • 16-разрядные порты ввода-вывода A, B, C;

  • 8 аналоговых входов, подключаемых к каналам АЦП;

  • порт тестирования JTAG, предназначенный для внутрисхемного программирования микроконтроллера, тестирования и отладки программ пользователя, включает в свой состав пять выводов TCK, TMS, TDI, TDO, TRST для подключения JTAG эмулятора.

  • питание микроконтроллера;

  • питание аналогового домена, включающего блоки:

  • АЦП последовательного приближения (ADC);

  • АЦП сигма-дельта (ADCSD);

  • внутренний датчик температуры (TSENSOR), подключаемый к одному из входов АЦП;

  • питание батарейного домена, включающего блоки:

  • ОЗУ1;

  • PMU;

  • контроля вскрытия TAMPER;

  • часов реального времени RTC;

  • аналоговые компараторы (CMP0- CMP1);

  • IWDT.

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

Выводы XI_RTC и XO_RTC предназначены для подключения внешнего источника тактового сигнала (с частотой 32 кГц) блока RTC.

Выводы XI_OSC и XO_OSC предназначены для подключения внешнего источника тактового сигнала микроконтроллера с частотой (2 – 30) МГц.

Вывод V_BAT предназначен для подключения внешнего источника питания (батарейки). Номинальное значение напряжения должно находиться в диапазоне от 1,7 В до 3,6 В.

Выводы VCC1 и GND1 предназначены для подключения внешних источников питания ядра, Flash, PLL и периферии микроконтроллера. Номинальное значение напряжения должно находиться в диапазоне от 1,7 В до 3,6 В, а максимальный ток потребления с учётом нагрузки по GPIOA, GPIOB, GPIOC - до 150мА.

Каждый цифровой вывод порта микроконтроллера может использоваться как двунаправленный вывод общего назначения (режим GPIO). Помимо этого, все выводы имеют альтернативную функцию (или несколько функций). Режим работы, альтернативная функция, нагрузочная способность и быстродействие, а также подтяжка к высокому уровню и функционирование в режиме выхода с открытым стоком/истоком могут быть заданы для каждого вывода независимо от других.

А что с памятью?

Разработанный микроконтроллер имеет встроенную Flash-память программ объемом 1 Мбайт (256 страниц по 4 Кбайт), которую можно использовать для хранения и загрузки пользовательского программного обеспечения изделия.

  Чтение Flash-памяти осуществляется через две шины AHB: I-code (для команд) и D-code (для данных). Чтение D-code шины — в приоритете.

 Память доступна для чтения, записи, полного и постраничного стирания через регистры данных DATAn (n от 0 до 3), адреса ADDR, команд CMD, статуса STAT блока FLASH. Запись необходимо производить в предварительно очищенную ячейку памяти. Стирание памяти осуществляется полностью или постранично.

Максимальное время чтения данных из Flash-памяти составляет до 60 нс (типовое значение задержки – от 30 нс). Поэтому, исходя из выбранной рабочей частоты, следует задавать определенное количество дополнительных тактов ожидания, необходимое для стабильного чтения из Flash-памяти.

 Каждый микроконтроллер содержит уникальный идентификационный номер ID, состоящий из 128 бит.

 Система тактирования микроконтроллера позволяет использовать различные источники тактового сигнала, что позволяет расширить набор применений и решаемых задач пользователя. Существует возможность гибкой настройки тактовых сигналов для блоков периферии.

Для снижения энергопотребления микросхемы предусмотрена возможность отключения тактовых сигналов отдельных блоков периферии в случае, если они не используются пользователем. При переходе процессора в режим пониженного энергопотребления возможно отключение тактового сигнала ядра (команда WFI), а также возможность выбора периферийных блоков, которые будут отключены/включены при переходе/выходе из данного режима.

Другие немаловажные функциональные элементы, которые есть внутри:

  • 32-разрядное ядро архитектуры RISC-V с поддержкой системы команд RV32IMFCN_ZBA_ZBB_ZBC_ZBS, набора команд умножения, арифметических и логических команд, встроенным модулем обработки команд с плавающей запятой с одинарной точностью FPU, кэшем команд и поддержкой отладочного интерфейса JTAG;

  • блок управления сбросом и синхронизацией RCU, имеющий в своем составе RC-генератор (1 МГц), синтезатор частоты SYSPLL и блок управления системными тактовыми сигналами SCM;

  • системный блок управления энергопотреблением PMUSYS;

  • блок управления энергопотреблением в составе с RTC модулем (PMURTC);

  • блок коммутации AXI AHB;

  • основная Flash-память объемом 1 Мбайт;

  • SRAM0 (ОЗУ0) объемом 256 Кбайт;

  • SRAM1 (ОЗУ1), подключенное к домену батарейного питания, объемом 64 Кбайт;

  • 24-канальный контроллер прямого доступа к памяти DMA;

  • блок часов реального времени RTC со входами контроля целостности;

  • датчик температуры TSENSOR;

  • сторожевой таймер WDT;

  • независимый сторожевой таймер IWDT;

  • один 8-канальный 12-разрядный быстродействующий АЦП с режимами цифрового компаратора для каждого из каналов (ADCSAR);

  • один 8-канальный 16-разрядный сигма-дельта АЦП (ADCSD);

  • три 16-разрядных порта ввода-вывода A, B, C;

  • восемь аналоговых входов, подключенных к каналам АЦП (ADCSD и ADCSAR);

  • один 32-разрядный таймер TMR32;

  • три 16-разрядных таймеров TMR0 – TMR2;

  • пять приемопередатчиков UART0 – UART4;

  • блок криптографии CRYPTO;

  • два блока вычисления CRC (CRC0, CRC1);

  • генератор случайных чисел (TRNG);

  • HASH процессор;

  • контроллеры интерфейсов:

  • CAN 2.0b;

  • USB 2.0 FullSpeed (Device);

  • один контроллер I2C;

  • один контроллер QSPI;

  • два контроллера SPI (SPI0 – SPI1). Особенностью интерфейса SPI является то, что в нем реализована возможность задания полярности и фазы тактового сигнала. Бит SPO регистра CR0 задает полярность тактового сигнала, т. е. определяет, какой уровень сигнала будет удерживаться на линии SPIx_SCK в то время, когда линия не активна.

 Есть в микроконтроллере и датчик температуры, позволяющий измерять температуру кристалла во время работы. Внутри находятся элементы, напряжение на которых линейно убывает с ростом температуры (CTAT). В качестве CTAT-элементов используется два последовательно соединенных диода. Выход датчика подключается на вход канала №10 АЦП последовательного приближения.

Теги:
Хабы:
Всего голосов 13: ↑8 и ↓5+7
Комментарии37

Публикации

Истории

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
10 – 11 октября
HR IT & Team Lead конференция «Битва за IT-таланты»
МоскваОнлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн