Научная статья на тему 'Маленькие Микроконтроллеры большой компании'

Маленькие Микроконтроллеры большой компании Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
280
95
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Самоделов Андрей

В мае 2009 года Luminary Micro, разработчик и производитель ARM-микроконтроллеров семейства Stellaris с ядром Cortex-M3, был приобретен компанией Texas Instruments. Семейство Stellaris заняло достойное место среди решений ведущего производителя микроконтроллеров и цифровых сигнальных процессоров.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Маленькие Микроконтроллеры большой компании»

Маленькие контроллеры

большой компании

Андрей САМОДЕЛОВ

ti@petrointrade.ru

В мае 2009 года Luminary Micro, разработчик и производитель ARM-микроконтроллеров семейства Stellaris с ядром Cortex-M3, был приобретен компанией Texas Instruments. Семейство Stellaris заняло достойное место среди решений ведущего производителя микроконтроллеров и цифровых сигнальных процессоров.

Stellaris — первое производимое серийно и доступное по цене семейство МК с ядром ARM Cortex-M. В его составе около 140 наименований выпускаемых решений, и этот ряд постоянно расширяется. Предусмотрена обширная программная и аппаратная инструментальная поддержка со стороны как самого производителя МК, так и от сторонних компаний. На рис. 2 показано, как развивалось семейство Stellaris начиная с марта 2006 года.

Сегодня производитель выпускает четыре поколения МК Stellaris. Очевидно, что развитие семейства шло по пути увеличения слож-

19

51 • •••

24

85 • ••• 104 • • •• 128 • • •• 137

•••••• • •• • ••• •

•••••• • •• • ••• • •

•••••• • •• • ••• • •

•••••• • •• • •••

•••• ТТ к

Рис. 2. Поколения семейства Stellaris

Микроконтроллеры Основанные на ядре ARM DSP

16-разрядные 32-разрядные реального времени 32-разрядные с ядром ARM ARM+ ARM+DSP DSP

Г л МБРДЗО Ґ Л С2000™ С \ Stellaris М3 С ARM9 "Л Cortex А-8 ( С64х+ plus "N\ ARM9/Cortex А-8 С \ С647х, С64х+, С55х

С ультранизким энергопотреблением Арифметика с фиксированной и плавающей точкой (целочисленная и вещественная) Промышленный стандарт, низкое энергопотребление Ядро промышленного стандарта, высокопроизводительные процессоры общего применения Ядро промышленного стандарта + сопроцессор цифровой обработки сигналов Лидеры по производительности среди цифровых сигнальных процессоров DSP

С тактовой частотой до 25 МГц С тактовой частотой до 150 МГц С тактовой частотой до 100 МГц Блоки аппаратной реализации вычисления прикладных функций (ускорители) 4800 модулей умножения-и-накопления/ п роизводител ьность 1,07 DMIPS/МГц 24 000 модулей умножения-и-накопления

Объем НаэЬ-памяти от 1 до 256 кбайт Объем ПаэЬ-памяти от 32 до 512 кбайт Объем Flash-памяти от 8 до 256 кбайт Блок управления памятью Блок управления памятью, кэширование обмена с памятью Кэш второго уровня объемом до 3 Мбайт

Аналоговый ввод/вывод, АЦП, управление ЖКИ, иБВ-интерфейс, обмен данными по ВЧ ШИМ, АЦП, интерфейсы САМ, БРІ, 12С U SB-интерфей с (Host/Device/On-The-Go), Ethernet-интерфейс (физического уровня, с поддержкой стандарта IEEE 1588), АЦП, ШИМ, интерфейс графического дисплея стандарта QVGA U SB-интерфейс, управление ЖКИ, интерфейс для считывания карт ММС, интерфейс MAC Ethernet Подсистема обработки видеоданных, USB-интерфейс, интерфейс MAC Ethernet, интерфейс для считывания карт ММС 1 Гбит MAC Ethernet-интерфейс, быстрый интерфейс последовательного ввода/вывода, поддержка модулей памяти DDR2, поддержка шины PCI-66

Измерительные приборы, датчики, устройства общего назначения Управление электродвигателями, цифровые источники питания, управление освещением Пульты и панели управления Поддержка операционных систем Linux/WinCE, пол ьзовател ьские приложения Поддержка операционных систем Linux/Windows+ обработка видео, изображений, мультимедийных данных Системы общего применения, ViMAX-модемы, промышленные/ медицинские системы обработки изображений

Цена от $0,49 до $9,0 V У Цена от $1,50 до $20,00 V У Цена от $2,00 до $8,00 V У Цена от $8,00 до $35,00 Цена от $12,00 до $65,00 Цена от $4,00 до $99,00 V. и более )

Рис. 1. Номенклатура микроконтроллеров и процессоров, выпускаемых компанией Texas Instruments

Таблица 1. Основные особенности поколений ARM-микроконтроллеров Stellaris

Поколения Stellaris Основные особенности

1-е поколение — Sandstorm Class: LM3S100 LM3S300 LM3S600 LM3S800 Тактовая частота — до 50 МГц. Flash — до 64 кбайт с единичным циклом доступа на максимальной тактовой частоте до 8 кбайт SRAM. Встроенный модуль для управления электродвигателями.

2-е поколение — Fury Class: LM3S1000 LM3S2000 LM3S6000 LM3S8000 10/100 Ethernet MAC+PHY и CAN. Flash — до 256 кбайт/64 кбайт SRAM. Улучшенные параметры энергопотребления. Увеличенное количество последовательных интерфейсов.

3-е поколение — Dust Devil Class: LM3S1000 LM3S3000 LM3S5000 USB On-The-Go (OTG)/Host/Device. Контроллер ПДП (DMA). Увеличена нагрузочная способность портов ввода/вывода. Дополнительные ШИМ-выходы. Дополнительные входы аварийной защиты для управления электродвигателями. Начальный загрузчик и библиотека аппаратных драйверов StellarisWare записываются на заводе в ROM. Новые миниатюрные корпуса (LQFP64).

4-е поколение — Tempest Class: LM3S2000 LM3S5000 LM3S9000 Тактовая частота — 80 и 100 МГц. Внешний периферийный интерфейс с поддержкой SDRAM, SRAM, Flash. Двойной АЦП, расширенное ПО в ROM, внутренний точный тактовый генератор и аудиоинтерфейс I2S. 10/100 Ethernet MAC+PHY, CAN и USB.

ности изделий, улучшения их функциональных и технических показателей. Однако Luminary Micro старалась сделать все возможное для ускорения процесса проектирования и упрощения использования этих МК.

Основные особенности МК каждого из поколений приведены в таблице 1.

Особенности реализации микроконтроллеров Stellaris

МК семейства Stellaris реализуют преимущества архитектуры 32-разрядного ядра ARM Cortex-M3. Основные блоки, определяющие внутреннюю структуру микроконтроллеров, показаны на рис. 3.

3 Analog Comparators

2x1 О-bit ADC Each 8 channel 1 Msps

Temp Sensor

Рис. 3. Внутренняя структура микроконтроллеров семейства Stellaris

Таблица 2. Ключевые особенности микроконтроллеров Stellaris

Функциональные блоки Основные особенности

Процессорное ядро ARM Cortex-M3 v7-M Тактовая частота — до 100 МГц. Производительность — до 125 MIPS (при 100 МГц). ARM Cortex системный таймер. Контроллер вложенных векторных прерываний.

Встроенная память Flash — до 256 кбайт; SRAM — до 96 кбайт. ROM с библиотекой аппаратных драйверов, начальным загрузчиком, AES криптографическими таблицами и контролем ошибок с помощью циклического избыточного кода.

Внешний периферийный интерфейс 8/16/32-разрядная параллельная шина для обмена с внешней периферией. Поддержка SDRAM, SRAM/Flash, M2M.

Последовательные интерфейсы 10/100 Ethernet MAC и PHY с аппаратной поддержкой IEEE1588. До трех CAN 2.0 A/B. USB 2.0 OTG/Host/Device Full Speed. До трех UART с поддержкой IrDA и ISO 7816. До двух I2C. До двух SSI/SPI. I2S.

Системные функции 32-канальный контроллер ПДП (DMA). Внутренний точный генератор 16 МГц ±1%. Два сторожевых таймера с независимым тактированием. До четырех 32-разрядных таймеров (или восьми 16-разрядных) с функцией таймера реального времени. Модуль управления энергопотреблением. Совместимая топология выводов для разных корпусов. Внутренний стабилизатор напряжения 1,2 В.

Управление электродвигателями До восьми выходов ШИМ для управления электродвигателями. До двух входов квадратурного энкодера.

Аналоговая периферия До двух 10-разрядных АЦП (всего до 16 входных каналов). Три аналоговых компаратора.

Краткое описание ключевых особенностей МК Stellaиs приведено в таблице 2.

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

Микроконтроллеры семейства Stellaris оптимизированы для создания 32-разрядных приложений с батарейным питанием. Наличие модуля управления энергопотреблением позволяет МК работать в трех режимах экономии электроэнергии. Параметры этих режимов приведены в таблице 4 для каждого из поколений микроконтроллеров.

Как видно из таблицы, в режиме самого низкого энергопотребления МК потребляют около 10 мкА, что делает их привлекательными для использования в системах с батарейным питанием.

Таблица 3. Основные функциональные возможности внешнего периферийного интерфейса микроконтроллеров З1е!!аг13

Тип периферии Функциональные возможности

SDRAM Поддерживаются модули х16 (Single Data Rate) на частоте до 50 МГц. Поддерживаются недорогие модули SDRAM объемом до 64 Мбайт. Автоматические функции регенерации и доступа ко всем банкам/страницам. Режимы сна/ожидания для сохранения информации при минимальном энергопотреблении.

Host-Bus Interface Стандартная 8-разрядная шина обмена данными, совместимая с МК семейств PIC, ATmega, 8051 и др. Доступ к памяти SRAM, NOR Flash и других устройств с адресным пространством до 24 Мбайт. Поддержка как мультиплексного, так и демультиплексного режима выборки данных и адреса. Доступ к устройствам, имеющим неадресуемый 8-разрядный буфер FIFO с поддержкой сигнализации опустошения буфера передачи (TXempty) и заполнения буфера приема (RXfull).

Machine-to- Machine Обмен с устройствами на основе реконфигурируемых логических микросхем (CPLD) и программируемых логических матриц (FPGA). Передача 32-разрядных данных при скорости до 150 Мбайт/с. Дополнительные адресные сигналы от 4 до 16 бит. Дополнительный выход сигнала синхронизации, стробирование чтения/записи, поддержка кадров (с управляемым размером) и вход разрешения синхронизации.

Другие возмож- ности Параллельный буферизованный ввод/вывод с управляемой скоростью обмена. Чтение с блокированием и без блокирования. Запись с буферизацией. Прямой доступ к памяти (DMA).

Таблица 4. Режимы энергопотребления микроконтроллеров Stellaris

Режим работы/ поколение Sandstorm Class Fury Class Dust Devil Class Tempest Class

Нормальный < 120 мA 160 мA (с Ethernet) 120 мA 60 мA (без Ethernet) 80 мA (с Ethernet)

Сон 20 мA 20 мA (с Ethernet) 20 мA 8 мA

Глубокий сон 700 м^ 5 мA (с Ethernet) 350 м^ 600 м^

Дежурный - 10-18 м^ 10-18 м^ 10-18 м^

Полный набор решений для Stellaris

Законченные

комплекты

примеров

разработки

Инновационные технологии, Недорогие

Готовые для обеспечивающие ознакоми-

применения максимально быстрый функциональ- выход на рынок недорогих, 1 ные модули конкурентоспособных наборы

решений Ошск^агЧ

наборы

Quick-start

Ускоренная

разработка г Самое ПО в среде большое в мире семейство ARM-микроконтроллеров

StellarisWare

Обширная

поддержка

от сторонних

производи

Рис. 4. Набор решений для микроконтроллеров семейства Stellaris

Рис. 5. Аппаратная и программная поддержка разработок на базе микроконтроллеров семейства Stellaris

Функции снижения энергопотребления

обеспечиваются следующими внутренними

блоками:

• 32-разрядный счетчик (часы) реального времени (ИТС) с возможностью работы от внутреннего генератора с частотой 32,768 кГц или кварцевого резонатора с частотой 4,194304 МГц. Точная программная подстройка частоты.

• 256 байт (шестьдесят четыре 32-разрядных слова) памяти с батарейным резервированием.

• Автоматическое переключение на резервное питание от батареи в случае пропадания основного питания.

• Слежение за напряжением батареи, выработка сигнала и прерывание при падении напряжения ниже допустимого уровня.

• Пробуждение по сигналу таймера ИТС и/или внешнему сигналу.

• Встроенный стабилизатор питания с низким падением напряжения.

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

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

• Слежение за уровнем напряжения питания (3,3 В) и выработка прерывания и/или системного сброса в случае выхода этого значения за допустимые пределы.

Средства разработки

Для микроконтроллеров семейства 8іеИагІ8 на рынке предлагается широкий набор решений мирового уровня, помогающих разработчику значительно сократить время создания продукта и его конечную стоимость (весь спектр поддержки МК 8іе11агІ8 показан на рис. 4).

Таблица 5. Ознакомительные платы

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

для основных групп микроконтроллеров Э|е11аг15

МК с малым количеством выводов

Оценочная

платформа

LM3S811

МК с большим количеством выводов

Оценочный набор Stellaris LM3S1968-EK

МК с Ethernet-интерфейсом

Оценочный набор Stellaris LM3S6965-EK

МК с USB-интерфейсом

Оценочный набор Stellaris LM3S3748-EK

МК с CAN-интерфейсом

Оценочный набор Stellaris LM3S2965-EK

МК с интерфейсом Ethernet+CAN

Оценочный набор Stellaris LM3S8962-EK

Набор разработчика LM3S9B96 Development Kit (DK-LM3S9B96)

Набор разработчика Stellaris LM3S9B96-DK (425 USD)

Ведущие мировые производители программного и аппаратного инструментария для МК с архитектурой ARM обеспечивают поддержку МК семейства Stellaris. На рис. 5

Таблица 6. Области применения платформ для управления электродвигателями

RDK-ACIM:

платформа для управления индукционным двигателем переменного тока

RDK-STEPPER:

платформа для управления шаговым двигателем

RDK-BI.DC:

платформа для управления бесколлекторным двигателем постоянного тока с интерфейсом САМ/Е^егпе1

RDK-BDC:

платформа для управления коллекторным двигателем постоянного тока с интерфейсом CAN

приведен перечень производителей средств разработки для данного семейства.

Быстрота и эффективность разработки определяются прежде всего набором аппаратных и программных средств, предлагаемых производителями МК и сторонними компаниями. Широкая номенклатура МК и их узлов предполагает работу с библиотечными функциями языков высокого уровня. Серьезное ознакомление с архитектурой, как правило, начинается на этапе отладки критичных ко времени исполнения или размеру кода фрагментов микропрограммы.

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

Для ознакомления с функциональными особенностями каждой группы МК созданы отдельные платы. Каждая такая плата содержит набор периферийных узлов и примеры программ, необходимые для быстрого освоения специфики МК данной группы. Ознакомительные платы для основных групп МК Stellaris приведены в таблице 5.

Кроме ознакомительных плат для основных групп МК Stellaris создан ряд законченных, основанных на свободно распространяемом программном обеспечении наборов для

IV • _

*)

- Primitive* *

LUMIN AR V MICRO1

Oroup Um

OOne QThwe •Two • QFow Croup Two

оЩ) •

ІРІЙ Olffi 1

гг ga

- Radio But too* X LUMINARY MICRO*

Радиокнопки

LUMIMAWV______________

Select

□Iffi

Select •

© •

^ Checkbox T LUMINARY MICRO*

ГГТГ7

+ 5 T 0 з' '# Гб A 2

Hut ты сед* к mms

LUMINARY MICRO*

Клавиатура системы безопасности

LUMINARY

■ 2

• 3 4

f—■ а •a

Noe-auto repeat Auto repeat

• Puah Buttoea +

LUMINARY MICRO*

• Coo timer + LUMINARY MICRO*

LUMINARY MICRO*

Блок управления электродвигателем с ЖКИ-экраном и сенсорной панелью

Рис. б. Примеры использования графической библиотеки StellarisWare Graphics Library

демонстрации функций управления электродвигателями. Области применения каждого набора приведены в таблице 6.

Программирование без ассемблера

ARM-микроконтроллеры Cortex-M3 имеют полную аппаратную поддержку обработки прерываний. Подпрограммы обработки прерываний могут быть написаны целиком на языке C/C++. Прерывания удобно организованы массивом C/C++, который содержит указатели на функции обработки прерываний. Для создания кода загрузчика и задания конфигурации системы не требуется писать код на ассемблере — ядро Cortex-M3 загружает указатель стека и начальное значение программного счетчика (PC) непосредственно из памяти. Весь процесс описывается обычной функцией языка C/C++. Для создания приложения требуется только пользовательский код на языке C/C++ (обработка прерываний, операционная система, код приложения).

Библиотека функций StellarisWare для работы с периферией

Для экономии Flash-памяти в n3Y(ROM) МК семейства Stellaris на заводе записана библиотека функций StellarisWare. Библиотека создана с использованием только стандартных функций языка C/C++, поэтому она полностью совместима с компиляторами ARM/Keil, IAR, Code Red и инструментарием GNU. В состав библиотеки входит несколько модулей:

• Модуль интерфейса верхнего уровня (API)

StellarisWare DriverLib.

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

• Модуль загрузчика StellarisWare Bootloader. Модуль предназначен для загрузки кода во

Flash-память при обновлении микропрограммы (firmware). Загрузка может производиться через UART (по умолчанию), I2C, SSI или Ethernet.

• Библиотека поддержки USB-устройств Stellaris USB Library.

Для работы с USB-устройствами служит библиотека USB Library, которая реализует USB-стек. Кроме того, МК Stellaris прошли полную проверку на соответствие стандартам USB Device и Embedded Host.

• Библиотека для разработки графического пользовательского интерфейса Stellaris Graphics Library.

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

• Другие функции.

В n3y(ROM) также записаны криптографические таблицы AES (Advanced Encryption Standard). Имеются примеры AES-приложений. Поддерживаются три размера ключа: 128, 192 и 256 бит. Для обнаружения ошибок и поддержания целостности данных в памяти предусмотрена возможность контроля с помощью избыточного циклического кода (Cyclic Redundancy Check — CRC).

i Надоели баннеры? Вы всегда можете отключить рекламу.