українські мікроконтролери з ядром Cortex M3 та приклад реалізації проекту

Стаття присвячена короткому огляду серії контролерів 1986ВЕ9х на ядрі Cortex-M3 виробництва ЗАТ «ПКК Міландр», засобам розробки та налагодження для нього.

Популярність 32-бітної мікропроцесорної архітектури зі скороченим набором команд (RISC) фірми ARM Limited зростає з кожним днем, тому все більше компаній розробляють мікроконтролери на цьому ядрі. Одна з останніх версій ядра – Cortex-M3. Поки мало хто з виробників МК освоїли це ядро. В даний час на українському ринку в основному представлені мікроконтролери з ядром ARM Cortex-M3 компаній STMicroelectronics (родина STM32Fxxx) та NXP (родина LPC17xx). І тому особливо приємно, що до цих зарубіжних компаній можна додати вітчизняний дизайн-центр ЗАТ "ПКК Міландр" [1, 2].

Варто звернути увагу на той факт, що МК були розроблені для апаратури спеціального призначення, що потребує великого запасу стійкості (тобто здатності мікросхеми працювати в агресивному середовищі), і з широким робочим температурним діапазоном. Версії мікроконтролерів для цивільного ринку будуть представлені компанією найближчим часом.

Основні характеристики мікроконтролера

Пристрої серії 1986ВЕ9x є мікроконтролерами із вбудованою Flash-пам'яттю програм і побудовані на базі високопродуктивного процесорного RISC-ядра ARM Cortex-M3 (продуктивність – 1,25 DMIPS/МГц (Dhrystone 2.1) при нульовій затримці між зверненнями до пам'яті). Тут необхідно додати, що максимальна тактова частота роботи мікроконтролера - 80 МГц, в той час як максимальна частота вибірки даних (в даному випадку команд) з Flash-пам'яті становить 28,6 МГц (відповідає 35 нс). Для забезпечення максимальної швидкодії при існуючихтехнологічних можливостях необхідно застосовувати апаратні рішення для прискорення процесу звернення до Flash-пам'яті. У ряді мікроконтролерів, наприклад, тих, що виробляють фірми ЗАТ "ПКК Міландр" та STMicroelectronics, для цього реалізовано спеціальний буфер "шириною" 64 біти. Але й у нього вибірка 32-розрядних команд здійснюється практично з частотою 28,6x2 = 57,2 МГц. Таким чином, для роботи при частоті понад 572 МГц необхідно штучно вводити затримку між зверненнями до пам'яті. При частоті нижче 57,2 МГц затримка між зчитування пам'яті є нульовою.

У ядрі Cortex-M3 реалізовані такі функції:

  • блок апаратного захисту від несанкціонованого доступу;
  • множення за цикл (табл. 1);
  • апаратна реалізація поділу (32 біти/32 біти).

Таблиця 1. Залежність кількості циклів синхрочастоти, необхідних виконання операції множення, при різних розрядностях операндов і результату

Мікроконтролери працюють на тактовій частоті до 80 МГц і містять 128 кбайт Flash-пам'яті програм та 32 кбайти ОЗУ. Контролер зовнішньої системної шини дозволяє працювати із зовнішніми мікросхемами статичного ОЗУ та ПЗУ, NAND Flash пам'яттю та іншими периферійними пристроями [3].

Вбудовані RC-генератори HSI (8 МГц) та LSI (40 кГц) та зовнішні генератори HSE (2-16 МГц) та LSE (32 кГц), а також дві схеми множення тактової частоти PLL для ядра та USB-інтерфейсу дозволяють гнучко налаштовувати швидкість роботи периферійних блоків мікроконтролерів

Процесор Cortex-M3 виконаний за Гарвардською архітектурою, яка передбачає використання окремих шин даних та інструкцій. Вони називаються шиною Dcode та Icode відповідно. Також є додаткова системна шина, яка надає доступ догалузі системного управління. У вбудованої системи налагодження процесора Cortex є ще одна додаткова шинна структура, яка називається локальною шиною пристроїв вводу/виводу. Системна шина та шина даних ядра підключаються до зовнішніх (щодо ядра) блоків мікроконтролера через набір високошвидкісних шин, званих матрицею шин. Для вирішення конфліктів при запиті доступу до шини використовуються арбітраж. Блоки, підключені до шини, можуть бути активними задатчиками шини – "майстрами". Матриця шин утворює кілька паралельних з'єднань між шинами ядра Cortex та іншими зовнішніми шинними "майстрами", такими як канали DMA, статичне ОЗУ та пристрої вводу/виводу Якщо два шинні "майстри" (наприклад, ядро ​​Cortex і канал DMA) роблять спробу доступу до одного і тому влаштування вводу/виводу, то набуде чинності внутрішній арбітр, який вирішить конфлікт, надавши доступ до шини тому, хто має найвищий пріоритет.

Таким чином, архітектура системи пам'яті за рахунок матриці системних шин дозволяє мінімізувати можливі конфлікти під час роботи системи та підвищити загальну продуктивність.

Контролер DMA дає можливість прискорити обмін інформацією між ОЗП та периферією без участі процесорного ядра.

Вбудований регулятор для формування живлення внутрішньої цифрової частини формує напругу 1,8 В і не вимагає додаткових зовнішніх елементів. Таким чином, для роботи мікроконтролерів достатньо однієї зовнішньої напруги живлення в діапазоні від 2,2 до 3,6 В. Також у мікроконтролерах реалізована можливість роботи кристала від зовнішньої батареї, що дозволяє мати резервоване живлення, на яке мікроконтролер автоматично перемикається при зникненні основної напруги живлення . При цьому буде збереженоспеціальні прапори і не станеться порушення роботи годинника реального часу. Вбудовані детектори напруги живлення можуть відстежувати рівень зовнішнього основного живлення та рівень напруги живлення батареї. Апаратні схеми скидання зниження рівня живлення дозволяють виключити некоректне виконання коду програми і неправильне поведінка мікроконтролера в цілому при виході рівня напруги живлення за допустимі межі.

Для реалізації додатків, критичних до рівня енергоспоживання, в мікроконтролерах існують такі режимы:

Мікроконтролери мають багату периферію, набір якої залежить від моделі МК (табл. 2).

Таблиця 2. Зведена таблиця мікроконтролерів серії 1986-9