Новая серия
отечественных 32-разрядных высокопроизводительных микроконтроллеров семейства 1986
на базе процессорного ядра ARM Cortex-M3
Сергей ШУМИЛИН
shumilin.sergei@ic-design.ru
Российский дизайн-центр компании ЗАО «ПКК Миландр» завоевал известность как отечественный разработчик и производитель микросхем для аппаратуры специального назначения. В серийном производстве уже освоены семейство 1886 восьмиразрядных микроконтроллеров с широким набором периферии, микросхемы статической памяти, аналоговые приемопередатчики интерфейсов RS-232 и RS-485, различные радиочастотные микросхемы и микросхемы вторичного питания.
На различных стадиях разработки сейчас находятся еще несколько новых микроконтроллеров семейства 1886, новые микросхемы статической памяти объемом до 32 Мбит и Flash-памяти объемом до 16
Мбит, интерфейсные схемы. Ведется разработка 16-битного целочисленного DSP-процессора, аналога TMS320C54x. Летом 2008 года ЗАО «ПКК Миландр» заключило лицензионное соглашение с компанией ARM Ltd.
(Великобритания) о приобретении 32-разрядного нового процессорного ядра ARM Cortex-M3. Сегодня только две компании освоили серийный выпуск микроконтроллеров на базе процессора ARM Cortex-M3 — это
Таблица 1. Сравнительные характеристики семейств
Stellaris LuminaryMicro STM32 STMicro- electronics 1986ВЕ ЗАО«ПКК Миландр»
Процессорное ядро ARM Cortex-M3 ARM Cortex-M3 ARM Cortex-M3
Техпроцесс, мкм 0,25 0,18 0,18
Тактовая частота, МГц До 50 До 72 До 100*
Память программ, кбайт До 256 До 512 До 512*
Память ОЗУ, кбайт До 64 До 64 До 64*
Напряжение питания,В 2,25-2,75 3,0-3,6 2,0-3,6 2,0-3,6
Ток потребления, мА До 120 До 70 До 100*
Корпус до 100 до 132 до 108
Рабочая температура, °С -40...+85 -40...+ 105 * 25 + 0 6 -
Внешняя системная шина Нет Нет Да
CAN Да Да Да
USB Да Да Да
USART Да Да Да
SPI Да Да Да
I2C Да Да Да
Ethernet Да Нет Нет
АЦП, бит 10 12 12
ЦАП, бит Нет Нет 12
Компаратор Да Да Да
пдп Да Да Да
Таймеры Да Да Да
Год выпуска 2007 2008 2009
* Данные могут уточняться в ходе разработки микросхем
OxEOOFFFFF OxEOOFFOOO ОхЕ0042000 Таблица (ПЗУ) \ Специфическая область производителя OxFFFFFFFF
Внеш.РРВ
ЕТМ \
ОхЕ0041000 Локальная шина УВВ — внутренняя
TPIU ОхЕ0040000
ОхЕ0040000 Локальная шина УВВ — внешняя OxE003FFFF
ОхЕООООООО
OxDFFFFFFF
0xEQ03FFFF OxEOOOFOOO QxEOOOEOOO ОхЕОООЗООО Резерв /
КВВП / Внешние , гбайт устройства
Резерв /
ОхЕ0002000 FPB / ОхАООООООО
DWT
ОхЕОООЮОО / 0x9FFFFFFF
ОхЕООООООО ITM /
Внешнее . ге. « ОЗУ 1 гбаит
0x42000000 Область доступа к битам \ 0x60000000
0x41FFFFFF 0x40100000 0x40000000 Устройства 0 ба.т ввода/вывода 0x5FFFFFFF
Область хранения бит 0x40000000
0x3FFFFFFF
0x23FFFFFF 0x22000000 Область доступа к битам Статистическое ОЗУ 0,5 Гбайт 0x20000000
0x21FFFFFF 0x20100000 0x20000000 / Код программы 0,5 Гбайт OxIFFFFFFF
Область хранения бит / 0x00000000
Рис. 2. Адресное пространство процессора Cortex-M3
STMicroelectronics (серия микроконтроллеров STM32) и Luminary Micro (серия Stellaris). Сравнительные характеристики данных контроллеров приведены в таблице 1.
Еще две компании объявили о разработке новых продуктов, основанных на данном ядре, — это NXP и Atmel. В 2009 году выйдут первые образцы микроконтроллеров новой серии 1986 на базе процессорного ядра ARM Cortex-M3 российской компании ЗАО «ПКК Миландр» (рис. 1).
Процессорное ядро
В соответствии с лицензионным соглашением с компанией ARM были приобретены исходные коды описания 32-разрядного процессорного ядра ARM Cortex-M3 на языке Verilog. Это более гибкий, но и более дорогостоящий вариант, в отличие от так называемого жесткого IP, то есть готовой топологии под заданный техпроцесс конкретной полупроводниковой фабрики, что предоставляет независимость при выборе места производства кристаллов, а кроме того, позволяет при разработке новой микросхемы реализовать ее полноценный макет на FPGA.
Приобретенное процессорное ядро ARM Cortex-M3 является дальнейшим развитием линейки процессорных ядер для встраиваемых приложений. Предыдущим, самым популярным ядром этого класса был процессор ARM7TDMI. Основные отличия между данными архитектурами приведены в таблице 2.
В Cortex-M3 в отличие от ARM7TDMI реализован подход к построению системы памяти, более близкий к гарвардской архитектуре (рис. 2), когда коды инструкций и данные извлекаются из разных видов памяти, но при этом сохранено основное свойство фон-неймановской архитектуры, а именно общая адресация всей памяти. Достигнуто это за счет разделения шин, по которым осуществляется выборка инструкций и данных. Это позволяет, находясь в одном адресном пространстве, одновременно по различным
шинам осуществить выборку кода инструкции, например, из Flash-памяти программ и необходимых операндов из статического ОЗУ. Если же по двум шинам будет осуществлено обращение в одну и ту же физическую память, например во Flash, то обращение по шине с меньшим приоритетом будет обработано позднее. Чтобы минимизировать такого рода коллизии, в процессоре заданы области расположения кода программы, статического ОЗУ и периферии.
В процессоре Cortex-M3 добавлены области доступа к битам. Теперь для того, чтобы из-
менить один бит в 32-разрядном слове памяти статического ОЗУ или какого-либо периферийного блока, не требуется осуществлять последовательность команд «чтение-модифи-кация-запись», а можно осуществить запись или чтение одного слова в области доступа к битам и при этом будет модифицирован только один бит, отождествленный с адресом этого слова (рис. 3, 4). Это позволяет значительно сократить объем самого кода и увеличить скорость выполнения программы.
Основное отличие между ARM7TDMI и Cortex-M3 заключается в новом наборе ин-
Таблица 2. Сравнительные характеристики процессорных ядер
Параметр ARM7TDMI-S Cortex-M3
Архитектура ARMv4T (фон Нейман) АРМу7-М (Гарвард)
Система команд Thumb/ARM ТИитЬ/ТИитЬ-2
Конвейер 3 ступени 3 ступени
Прерывания FIQ/IRQ ММ! + до 240 источников
Время перехода на обработку прерывания, цикла 24-42 12
Энергосберегающие режимы Нет Есть
Блок аппаратной защиты памяти Нет 8 регионов с различными параметрами
Производительность (тест Dhrystone) 0,95 DMIPS/МГц (ARM режим) 1,25 DMIPS/МГц
Потребляемая мощность (технология ТБМС 0,18 мкм), мВт/МГц 0,28 0,19
Занимаемая площадь (технология ТБМС 0,18 мкм), мм2 0,62 0,86
32 Мбайт — область доступа к битам
0x23FFFFFC
0x23FFFFF8
0x23FFFFE0
1 Мбайт — область хранения бит
І7 6 5 4 3 2 1 0
1 Эх20( FFFF
LDR R 0, =0x23FFFFFC ; Задание адреса MOV R 1, #0x1 ; Задание маски
STR R 1, [R0] ; Запись
Рис. 4. Задание бита через область доступа к битам
| ARM
40 Thumb-2
20
п
Рис. 5. Код Thumb-2 на 25% быстрее кода Thumb по результатам тестов Dhrystone
струкций Thumb-2. Так, если ARM7TDMI мог исполнять инструкции ARM (32-битные инструкции, повышающие производительность в ущерб объему программного кода), и Thumb (16-битные инструкции малой производительности, но экономящие объем кода), и переключение между инструкциями осуществлял сам программист в зависимости от требуемых критериев оптимизации, то в Thumb-2 объединены одновременно и 16-битные, и 32-битные инструкции. Такой подход позволил реализовать более гибкий механизм проведения оптимизации программы (рис. 5).
Процессор Cortex-M3 содержит более совершенную систему прерываний (относительно ARM7), характеризующуюся задержкой вызова процедуры обработки прерывания всего лишь 12 машинных циклов (для сравнения: ARM7TDMI-S требует 24 или 42 цикла) (рис. 6). В общем случае число источников прерываний может достигать 240 при 256 уровнях приоритета. В контроллере прерываний реализован ускоренный алгоритм перехода на обработку прерывания, если оно произошло во время обработки другого прерывания, в этом случае переход может занять всего 6 циклов.
Блок защиты памяти является опциональным компонентом ядра Cortex-M3. Он позволяет повысить надежность встраиваемых систем за счет защиты критичной информации, используемой операционной системой, от действия пользовательских программ.
Доступ к встроенной отладочной системе реализован посредством порта доступа к отла-
Щ ARM
^ Thumb-2
Рис. 6. Код Thumb-2 на 26% меньше кода ARM
по результатам тестов Dhrystone
дочной системе (DAP), который с внешней средой связывается по одному из последовательных интерфейсов: 2-выводной последовательный отладочный порт SW или стандартный 5-выводной последовательный порт JTAG.
Система памяти микроконтроллера
Новый микроконтроллер содержит в своем составе различные области памяти (рис. 7):
• BOOT ROM — масочное ПЗУ программ объемом до 2 кбайт, предназначена для первоначального запуска микроконтроллера, программирования энергонезависимой памяти программ и хранения различных библиотечных системных функций. Доступ к памяти может быть осуществлен со стороны шин I-Code (выборка инструкций) и D-Code (выборка данных из области инструкций).
• EEPROM — энергонезависимая память программ объемом до 512 кбайт, предназначена для хранения основной пользовательской рабочей программы. Контроллер данной памяти осуществляет предвыбор-ку данных, основываясь на предыдущих обращениях, а также хранит некоторое число предыдущих выбранных значений (некоторый аналог кэш), для того чтобы минимизировать потери от низкой скорости доступа к данной памяти по сравнению с максимальной тактовой частотой процессора. Доступ к памяти может быть осуществлен со стороны шин I-Code и D-Code.
• SRAM Program & Data — статическое ОЗУ с отображением в область кода и область данных объемом до 64 кбайт. Данная память предназначена для динамической загрузки исполняемых модулей программы. Эта память может быть использована для рас-
ширения ОЗУ общего назначения. Доступ к ней может быть осуществлен со стороны шин I-Code, D-Code, System Bus (выборка операндов из ОЗУ) и DMA Bus (выборка данных контроллером DMA).
• SRAM — статическое ОЗУ общего назначения объемом до 64 кбайт. Память общего назначения, предназначена для хранения переменных в ходе вычислений. Доступ может быть осуществлен со стороны шин System Bus и DMA Bus.
• External System Bus — контроллер внешней системной шины, предназначен для подключения внешних микросхем памяти и периферии. С помощью данного контроллера может быть реализована полноценная 32-разрядная внешняя системная шина с разнесенными или совмещенными шинами адреса и данных. Контроллер позволяет работать с различными внешними микросхемами памяти, такими как SRAM, SDRAM, NAND Flash и многими другими. Доступ к внешней системной шине может быть осуществлен со стороны шин I-Code, D-Code, System Bus и DMA Bus.
• AHB 2 APB Bridge — мост между системными шинами и шиной периферийных блоков, предназначен для отображения регистров периферийных блоков в общее адресное пространство микроконтроллера. Доступ к блокам может быть осуществлен со стороны шин System Bus и DMA Bus.
• Контроллер DMA — позволяет осуществить управляемую передачу пакетов данных между различными областями памяти без участия процессорного ядра.
Интерфейсы и цифровые периферийные блоки
Приобретение готового процессорного ядра позволило специалистам фирмы сконцентрироваться на разработке периферийных блоков. Микроконтроллер будет содержать полный набор получивших сейчас распространение интерфейсов: CAN, USB, UART, SPI и I2C. Периферийные блоки содержат также многофункциональные таймеры-счетчики и схемы ШИМ. Многие решения разработаны и опробованы в микроконтроллерах серии 1886 и применяются в новой линейке микросхем.
Контроллер CAN-интерфейса, реализованный в микроконтроллере 1886ВЕ5, был сертифицирован на соответствие стандарту ISO11898-1. Так как разрабатываемый микроконтроллер позиционируется как центральный процессор сложного функционального устройства, которое может работать одновременно с несколькими сетями CAN, для этого в микроконтроллере будет реализовано два контроллера CAN-интерфейса. Это позволит реализовать две подсети или горячее резервирование одной сети. Контроллер CAN-интерфейса позволяет работать со
скоростью передачи данных до 1 Мбит/с. Каждый контроллер содержит 32 буфера сообщений с индивидуальным фильтром для принимаемых сообщений.
Интерфейс USB является в настоящее время самым популярным каналом связи различных устройств с персональным компьютером. В 2007 году фирма ЗАО «ПКК Ми-ландр» разработала два восьмиразрядных микроконтроллера 1886ВЕ3 и 1886ВЕ4. В них входит контроллер USB-интерфейса со скоростью Low и Full Speed.
В новом микроконтроллере будут использованы все ранее сделанные наработки, а также значительно улучшена функциональность. В частности, будет реализован USB OTG-контроллер, который сможет выступать как в роли функционального устройства, так и в роли хост-контроллера. Это позволит использовать контроллер не только для подсоединения устройств к персональному компьютеру, но и для присоединения к устройству других модулей, например различных флэш-накопителей.
В контроллере USB-интерфейса реализованы контроллер USB HOST (с двумя оконечными точками) и USB Function (не менее четырех оконечных точек). Контроллер будет иметь два домена тактовых частот — частота процессорного ядра и частота работы USB-интерфейса, чтобы при работе с USB более гибко настраивать производительность системы.
Контроллер содержит аналоговый приемопередатчик USB-интерфейса. В нем будут интегрированы управляющие резисторы подтяжки линий D+ и D- шины USB, что позволит упростить конечное устройство.
UART-интерфейс получил широкое распространение в микроэлектронике. На базе данного контроллера строится большое число различного рода интерфейсов, таких как LIN, RS-232, RS-485, RS-422, IrDa, SmartCard и др. В последнее время многие из этих интерфейсов заменяются на более современные. Так, в частности, RS-232, ранее использовавшийся как основной для связи с персональным компьютером, сейчас заменяется на USB, а RS485 — на CAN. Но, несмотря на это, данный контроллер продолжают использовать в системах связи с низкими скоростями LIN, IrDa и многих других. В микроконтроллере 1986 будут реализованы два контроллера USART-интерфейса с поддержкой основных протоколов, реализуемых на его базе.
Контроллер PC-интерфейса используется для связи с другими микросхемами устройства. Этот интерфейс позволяет объединить несколько устройств на одной двухпроводной шине с адресным доступом. Интерфейс используется для связи с различными микросхемами памяти, датчиками и контроллерами других интерфейсов. Для повышения помехозащищенности интерфейса выводы SDA и SCL могут быть дополнительно снабжены
схемами контроля наклона фронтов и фильтрами. Компания ЗАО «ПКК Миландр» разработала подобные блоки для микросхем 1886ВЕ2. Данные наработки будут использованы в новой микросхеме.
Контроллер 8Р1-интерфейса используется для связи с другими микросхемами устройства. Этот интерфейс применяется для связи с различными картами памяти, что стало одним из приоритетных направлений в его использовании. Контроллеры ЭР1 стали более адаптированы для подобного рода задач. В них появились блоки вычисления контрольных сумм и режимы многоканального использования.
Для управления различного рода подсистемами, двигателями и другими электромеханическими системами используются таймеры с функциями ШИМ и схемами регистрации событий. Более разрядные и быстрые таймеры обеспечивают более точное управление, и чем больше каналов ШИМ, тем больше конечных объектов управления.
Аналоговые блоки
Аналого-цифровой преобразователь (АЦП) — основной блок, используемый в системах управления и мониторинга. С его помощью осуществляется контроль аналоговых величин и преобразование их в цифровой вид, пригодный для дальнейшей математической обработки в рамках микроконтроллера. Более точный АЦП обеспечивает более точный результат для математической обработки, а значит, более точными будут итоговые результаты. Важной характеристикой является скорость преобразования данных. При оцифровке аналоговой величины быстродействие имеет большое значение. Так, например, для звуковой информации необходима скорость до 50-60 Квыб/с, для видеоинформации — уже до 1 Мвыб/с. Для увеличения числа обрабатываемых источников блок АЦП имеет несколько каналов.
Также важны характеристики интегральной и дифференциальной нелинейности, что позволяет гарантировать одинаковое качество преобразования на всем диапазоне аналоговых величин. В рамках разработки микросхемы 1886ВЕ2 компания ЗАО «ПКК Миландр» разработала 10-битные АЦП, для микросхемы 1886ВЕ6 ведется разработка 12-битного АЦП.
Кроме анализа внешних источников аналоговых величин, АЦП может применяться для измерения температуры кристалла с помощью встроенного датчика температуры, это позволяет производить подстройку различных аналоговых блоков. Не секрет, что при изменении температуры изменяются характеристики полупроводниковых приборов. Для уменьшения влияния температуры на работу схем могут применяться различные схемотехнические приемы, обеспечивающие стабильность работы при различных
температурах. Но данные решения, во-первых, увеличивают объем и, во-вторых, не могут обеспечить широкого температурного диапазона, в котором должна функционировать микросхема. Поэтому в зависимости от значения датчика температуры программно производится подстройка аналоговых блоков с целью увеличения их точности.
Аналогично с задачей аналого-цифрового преобразования используется и обратное — цифро-аналоговое (ЦАП): воспроизведение звуковой и видеоинформации, управление аналоговыми устройствами, задание необходимых уровней для аналоговых подсистем устройства. Для блоков ЦАП характеристики должны быть сравнимы с блоками АЦП. В микросхеме 1886ВЕ6 разработан 12-битный ЦАП. Данные наработки будут использованы при разработке новой серии.
Специальные возможности
Разрабатываемая серия микроконтроллеров имеет широкий диапазон напряжения питания: от 2 до 3,6 В. При этом внутреннее ядро микросхемы должно быть запитано напряжением 1,8 В. Для его получения в микроконтроллере встроен регулятор напряжения. Он не требует внешних дополнительных конденсаторов, что позволяет упростить конечное устройство и повысить его надежность. Для перевода микроконтроллера в Standby-режим регулятор может быть программно выключен. При этом общее потребление тока будет сведено к единицам микроампер.
При переводе в Standby-режим происходит полный сброс всей цифровой части за исключением батарейного домена. Данный домен может быть запитан от отдельного источника питания и имеет крайне малое потребление. При наличии основного источника питания батарейный домен автоматически переключается на него. Как только напряжение основного источника опускается ниже границы допустимого диапазона питания, батарейный домен переключается на отдельный источник. Это позволяет сохранять ряд функций устройства при выключении питания. В частности, в батарейном домене работают часы реального времени и небольшая память для сохранения аварийных флагов. Если разработчику системы на базе нового микроконтроллера не требуются функции батарейного домена, то выводы отдельного источника могут питаться от основного источника. В этом случае при отключении основного источника произойдет отключение всей микросхемы.
Для полноценной работы микросхемы в ней реализованы датчики напряжения питания. Они используются для работы батарейного домена, а также для дополнительной настройки микросхемы. Характеристики аналоговых блоков зависят от напряжения питания таким же образом, как от температуры. В новой серии микроконтроллеров заложен широкий диапазон напряжений питания, и для обеспечения высокоточной работы аналоговые блоки могут быть программно подстроены под текущее напряжение питания. Программа может заранее предупредить, например, о практически севшей батарейке. Таким образом, датчики напряжения питания могут быть использованы для отслеживания уровня энергии при батарейном питании.
Заключение
Выход первых образцов микроконтроллеров намечен на лето 2009 года, в настоящее время ведется макетирование микроконтроллера на базе FPGA. Соответствующие макеты ЗАО «ПКК Миландр» может предоставить заинтересованным предприятиям для первоначального ознакомления с новой серией, а также для совместной проработки и реализации новых идей в новых микросхемах. Для разработки приложений на базе новых микроконтроллеров можно использовать традиционные среды разработки в ARM-микроконтроллерах, таких как ARM RealView Development Suite или Keil uVision. ■