ДВУХЪЯДЕРНЫЕ МИКРОКОНТРОЛЛЕРЫ CORTEX-M4/M0 ОТ NXP



В ноябре 2010 года компания NXP объявила о выпуске семейства микроконтроллеров LPC4300 на базе процессоров ARM Cortex-M4. Принципиальное отличие этих контроллеров от продукции других производителей (например, от семейства Kinetis компании Freescale) - наличие двух ядер, высокопроизводительного Cortex-M4 и экономичного Cortex-MO. Компания NXP представила эти контроллеры на выставке Electronica 2010 в Мюнхене, прошедшей с 9 по 12 ноября. Об особенностях нового семейства нам рассказал вице-президент компании NXP, генеральный директор подразделения микроконтроллеров Джофа Лиса (Geoff Lees).

КОНТРОЛЛЕРЫ С ЯДРОМ C0RTEX-M4
Компания NXP - первый производитель, который в свое время представил на рынок микроконтроллер с ядром Cortex-MO (серия LPC1100). Микроконтроллеры имели большой рыночный успех, за ними последовали контроллеры с ядром Cortex-МЗ. С появлением процессора с ядром Cortex-M4, компания NXP стала единственным на рынке производителем, поддерживающим все три ядра семейства ядер Cortex-M. Сегодня NXP сосредоточилась именно на микроконтроллерах с ARM-архитектурой, прекратив развитие процессоров семейства 8051.
Все микроконтроллеры NXP с ядрами Cortex-M имеют единую систему команд, что позволяет переносить программное обеспечение с одного процессора на другой. Кроме того, все микроконтроллеры с различными ядрами совместимы по выводам (для одних типов корпусов). В совокупности с широким диапазоном наборов периферийных устройств и встроенной памяти, семейства контроллеров с ядрами Cortex-M0/3/4 предоставляют разработчикам беспрецедентный по гибкости инструмент, причем за достаточно низкую цену. Компания планирует выпускать несколько семейств микроконтроллеров с ядром Cortex-M4 под общим названием LPC4000. Первым из них стало семейство LPC4300.
Новое семейство микроконтроллеров LPC4300 обладает рядом принципиальных отличий от своих предшественников. Основные из них - новое ядро Cortex-M4, наличие второго ядра Cortex-MO, встроенная флеш-память (до 1 Мбайт), до 264 Кбайт статического ОЗУ, настраиваемые пользователем последовательные интерфейсы, аппаратная поддержка широкого набора стандартных интерфейсов, включая счетверенный SPI Flash (до 40 Мбайт/с) и USB 2.O. Еще одно достоинство - наличие настраиваемой системы таймеров с возможностью событийного управления (State Configurable Timer Subsystem). В микроконтроллерах семейства LPC4300 (в зависимости от типа) аппаратно поддерживается широкий набор современных интерфейсов - USB 2.0, 10/100Т Ethernet и др. Также реализован контроллер ЖК-дисплеев типа Super-Twisted Nematic (STN) и Thin-Film Transistor (TFT) с возможностью прямого доступа к памяти. Он поддерживает разрешение до 1024x768 пикселей, монохромный и полноцветный (24-бит true-color) режимы.
Кроме того, во всех микроконтроллерах семейства LPC4000 предусмотрено ПЗУ объемом 32 Кбайт для хранения загрузочного кода и встроенных драйверов, декодер AES-128 (в некоторых типах - и кодер), восьмиканальный контроллер прямого доступа к памяти (GPDMA), четыре интерфейса UART, два порта I2C, порт I2S, интерфейс CAN и др. Контроллеры содержат два 10-разрядных АЦП и 10-разрядный ЦАП со скоростью преобразования данных 400 тыс. выборок/с, интерфейс широтно-импульсной модуляции (ШИМ) для управления электродвигателями и интерфейс импульсного датчика положения (Quadrature Encoder), интерфейс для подключения SD-карт, часы истинного времени (RTC) со сверхнизким энергопотреблением и с резервными регистрами (256 байт) с питанием от батарейки. И многое другое.
Контроллеры LPC4300 выпускаются по 90-нм технологии NXP, что обеспечивает тактовую частоту ядер до 150 МГц.

ОСОБЕННОСТИ ВНУТРЕННЕЙ ОРГАНИЗАЦИИ
Основное новшество контроллеров семейства LPC4000 -новое ядро Cortex-M4 с расширенным набором команд, ранее свойственным процессорам цифровой обработки сигналов. Это такие команды, как умножение с накоплением (MAC) за один такт, однотактные команды обработки множественных данных (SIMD), поддержка операций с насыщением. Кроме того, в ядро М4 введен модуль операций с плавающей запятой. Все это фактически позволяет использовать контроллер в областях применения, характерных для сигнальных процессоров.
Вторая принципиальная особенность микроконтроллеров семейства LPC4000, отличающая их от процессоров с ядром Cotrex-M4 других производителей, - это наличие двух ядер. Помимо М4 контроллеры оснащены ядром Cortex-MO, предназначенным для того, чтобы разгрузить основное ядро М4 от задач, не связанных с высокопроизводительными вычислениями. Ядро МО берет на себя операции управления обмена с периферийными устройствами (внутренними и внешними), обработки прерываний и т.п. Это приводит не только к повышению производительности контроллера в целом, но и к значительному снижению энергопотребления, поскольку для сервисных операций используется ядро МО с низким энергопотреблением. Иными словами, ядро М4 поддерживает вычислительно сложные процессы, характерные для того или иного приложения, в то время как МО обеспечивает собственно работу контроллера в режиме реального времени.
Ядро Cortex-M4 построено по гарвардской архитектуре и включает три шины AHB-Lite: инструкций, данных и системную. Наличие отдельных шин данных и команд обеспечивает одновременное получение инструкций и данных от различных периферийных (исполнительных) устройств. Ядро включает трехстадийный конвейер, а также устройство предварительной выборки для спекулятивных вычислений. Встроенный в ядро контроллер вложенных векторизованных прерываний (NVIC) поддерживает до 53 прерываний.
Ядро Cortex-MO - это 32-разрядный микропроцессор, сам по себе обладающий достаточно высокой производительностью при очень низком энергопотреблении. Ядро также содержит трехстадийный конвейер, обладает фон-неймановской архитектурой, оснащено контроллером прерываний NVIC, поддерживающим 32 вектора прерываний.
Контроллеры LPC4000 используют очень развитую шинную архитектуру, по сути - многоуровневую шинную матрицу. Причем предусмотрены каналы прямого доступа к памяти как для ведущих, так и для периферийных устройств, что еще больше разгружает процессорные ядра для вычислительных задач.
Межпроцессорный обмен между ядрами МО и М4 реализован через ОЗУ, которое используется как почтовый ящик. Например, отправив сообщение (данные) в почтовый ящик, одно ядро сигнализирует об этом другому, инициировав прерывание.
Микроконтроллеры семейства LPC4000 используют оптимизированную архитектуру флеш-памяти с 256-разрядным доступом, что позволяет снизить число обращений к памяти и при этом оптимизировать производительность процессоpa. В зависимости от модификации, в семействе LPC4300 предусмотрено до 1 Мбайт флеш-памяти. Память можно конфигурировать либо как единый массив, либо представить ее в виде двух симметричных банков (рис.5). Статическое ОЗУ объемом 264 Кбайт - самое большое для существующих сегодня на рынке микроконтроллеров на базе ядер Cortex-M - конфигурировано под требования высокопроизводительных вычислений. Память разбита на блоки, в результате возможно одновременное обращение к ОЗУ как со стороны ядер, так и по каналам прямого доступа (DMA). Еще одна особенность контроллера - наличие "счетверенного" SPI-интерфейса к внешней флеш-памяти типа Quad SPI Flash. Память Quad SPI Flash пару лет назад начали массово использовать в персональных компьютерах для загрузки BIOS, что привело к ее существенному удешевлению. Сегодня такую флеш-память выпускают многие производители - Atmel, Gigadevice, Macronix, Micron (Numonyx), Microchip (SST), Winbond и др. Однако до недавнего времени микроконтроллеры не поддерживали Quad SPI Flash. Эта проблема устранена в контроллерах семейства LPC4000, которые поддерживают интерфейс SPI Flash Interface (SPIFI) к Quad SPI флеш-памяти. Вместо четырех сигнальных линий традиционного SPI-интерфейса (CLC, CS, MOSI, MISO) в SPIFI - шесть линий (CLC, CS, IO0-IO3), четыре из них (IO0-IO3) предназначены для передачи данных. Благодаря высокой скорости обмена по SPIFI - до 40 Мбайт/с - внешняя флеш-память может заменять внутреннюю. Это очень важно для ряда приложений, поскольку стоимость ИС внешней флеш-памяти существенно ниже, чем цена микроконтроллера с большим объемом встроенной памяти.
Например, стандартная задача - отображение информации на графическом ЖК-экране устройства. Как правило, массив видеоданных хранится во внешней памяти, но для отображения записывается в ОЗУ микроконтроллера со встроенным контроллером ЖКИ, поскольку время обмена с внешней памятью достаточно велико, Интерфейс SPIFI и шинная архитектура семейства LPC4000 позволяют обходиться без загрузки данных в ОЗУ, непосредственно обращаясь к внешней Quad-SPI флеш-памяти. Аналогично достоинства доступа к внешней флеш-памяти посредством SPIFI проявляются в задачах обработки больших массивов информации в реальном времени, что характерно для цифровой обработки сигналов.
Еще одно важное достоинство новых микроконтроллеров - таймеры с конфигурируемым состоянием (State Configurable Timer - SCT). По сути, это набор таймеров с машиной состояний, управляемой по событиям. Система, включающая 8 входов и 16 выходов, предусматривает 32 состояния, переключение между которыми возможно по 16 различным событиям. Запрограммировав машину состояний, разработчик разгружает процессор от многочисленных процедур формирования сложных последовательностей выходных сигналов. Например, при формировании ШИМ-сигналов для управления двигателями система SCT позволяет разгрузить процессор от задачи формирования сигнала - он только вычисляет параметры импульсов.
Не менее значимый механизм в новом семействе микроконтроллеров - программируемые последовательные порты ввода-вывода общего назначения (SGPIO). SGPIO представляет собой традиционный порт общего назначения, оснащенный сдвиговым регистром и программируемым таймером, а также регистром состояния. SGPIO позволяют, в частности, формировать выходной сигнал (путем программирования задержек и состояния битовых полей), не загружая процессорные ядра. Это очень важно, например, для реализации нестандартных последовательных интерфейсов (обмен с контроллерами ЖКИ, цифровые аудиопотоки и т.п.), особенно в режиме временного разделения канала (TDM). Разумеется, эффективны эти механизмы и для эмуляции стандартных интерфейсов - I2S (многоканальный аудиоинтерфейс с временным разделением каналов), I2C, SPI и др. Подчеркнем, процессор при этом освобождается от задач формирования точных временных последовательностей сигналов.
Весьма значимая особенность микроконтроллеров LPC4000 - механизм управления энергопотреблением. Так, для каждого периферийного устройства может быть задана независимая схема тактирования, причем допустимо применять различные источники тактовых сигналов и различные тактовые частоты. Не используемые периферийные устройства можно отключать, просто запрещая тактовый сигнал.
Кроме того, существует развитая система режимов пониженного энергопотребления:
•   режим сна: процессор остановлен, но периферия активна;
•   режим глубокого сна: остановлен основной и все внутренние тактовые генераторы, кроме таймера реального времени. Флеш-память переведена в режим ожидания (standby), но готова к немедленному доступу;
•   выключение питания: отключено все, кроме флеш-памяти и часов реального времени. Состояние контроллера сохраняется;
• глубокое отключение питания: остановлено все, включая часы реального времени. Внутреннее напряжение отключено. Системное состояние сброшено, сохраняются только данные в регистрах часов реального времени.

ДОСТУПНОСТЬ
Первые образцы контроллеров семейства LPC4300 были продемонстрированы в ноябре 2010 года. Серийные поставки должны начаться с 2011 года. В семейство входит широкий ряд контроллеров с различным набором периферийных устройств и объемом встроенной флеш-памяти. Пока представлены только контроллеры LPC4310/20/30/50 - т.е. модели всех функциональных групп, но без флеш-памяти. Начало поставок других типов контроллеров этого семейства запланировано на второй квартал 2011 года. Далее появятся и другие семейства микроконтроллеров группы LPC4000.
В целом, микроконтроллеры LPC4000 позволят разрабатывать различные приложения, включая DSP, оставаясь в рамках единой архитектуры и среды разработки. Двухъядерная архитектура и набор настраиваемых периферийных устройств позволят решать широкий спектр задач в таких областях, как управление двигателем, контроль электропитания, промышленная автоматизация, робототехника, медицинское оборудование, автомобильная электроника, аудиосистемы и многое другое.
Записал И.Шахнович