Алексей КУРИЛИН
ak@efo.ru
Микроконтроллеры AT32UC3:
новое семейство с большим потенциалом
Фирма АШеІ, известный производитель современных 8- и 32-разрядных микроконтроллеров, активно продвигает на мировом рынке новое семейство микроконтроллеров — серии AT32UC3 е ядром AVR32 UC3. Это семейство интересно и российским разработчикам, которых микроконтроллеры серии АТ32иС3 привлекают своими техническими характеристиками, развитыми средствами поддержки разработок и доступными ценами. Как следствие, линейка этих микросхем закладывается во многие проекты, а развитие самого семейства «подогревается» живым интересом потребителей со всего мира, требования которых учитываются при проектировании новых микросхем. В этой статье дан краткий обзор предлагаемых сегодня кристаллов этого семейства и средств поддержки разработок для них.
Введение
AVR32 UC3 — это 32-разрядное процессорное ядро разработки 2007 года, ориентированное на широкий круг задач, в которых требуется применение малопотребляющего быстродействующего 32-разрядного микроконтроллера с высокой степенью интеграции, снабженного Flash-памятью и ОЗУ. Ядро процессора является упрощенной версией ядра AVR32 [1], но ориентировано оно на рынок изделий, где традиционно применяются процессоры класса ARM7 и Cortex-M3. Благодаря тому, что ядро AVR32 UC3 разрабатывалось совсем недавно, в нем учтены недостатки выпущенных ранее решений и требования современного рынка к 32-разрядным процессорам общего назначения.
AVR32 UC3 имеет высокую удельную производительность (производительность на 1 МГц системной тактовой частоты). На рис. 1 она показана в двух градациях в зависимости от тактовой частоты, а для сравнения приведены значения для ядер ARM7 (режим ARM и Thumb) и Cortex-M3.
Высокая производительность ядра AVR32 UC3 в микроконтроллерах AT32UC3 поддержана продуманной структурой микроконтроллера в целом. Можно особо выделить следующие архитектурные особенности:
1. Оперативная память микроконтроллера (вся, либо ее часть) встраивается в ядро, благодаря чему обеспечивается однотакт-ный доступ при простых операциях чтения из памяти и записи в память. Сложные операции для работы с ОЗУ (например, с инкрементированием адреса) требуют 2 или 3 такта системной тактовой частоты.
2. Обмен данными с быстрой периферией осуществляется через 6-/5-слойную матрицу шин, чем обеспечивается одновременная работа нескольких узлов, составляющих пару «ведущий - ведомый». При этом управление передачей данных может осуществляться без участия процессорного ядра — под управлением периферийного контроллера ЭМА. Менее быстрые периферийные блоки подключены к общей периферийной шине, пропускная способность которой обеспечивает работу этих узлов на максимальных предусмотренных для них скоростях. При работе периферии под управлением контроллера ЭМА может быть организовано до 15 одновременных потоков передачи данных, а суммарная скорость обмена данными может достигать 264 Мбит/с.
Рис. 1. Удельная производительность AVR32 UC3 в сравнении с другими ядрами
3. События в процессоре включают немаскируемые прерывания для обработки критичных ко времени реакции событий, механизм исключений для обработки непредусмотренного поведения ПО, а также 4-уровневую систему прерываний с возможностью автоматического перенаправления на вектор обработки. В планируемых к выпуску линейках микросхем будет реализована система событий, аналогичная микроконтроллерам XMEGA [2], представляющая собой набор аппаратных средств, с помощью которых различные периферийные модули могут обмениваться между собой служебной или командной информацией, а также передавать и принимать данные без участия процессорного ядра.
В микроконтроллеры AT32UC3 встраивается «типовая» для таких микроконтроллеров периферия:
• Интерфейс USART. Поддерживает асинхронный и синхронный режимы работы, обеспечивая в синхронном режиме обмен данными на скорости до 33 Мбит/с. Предусмотрен режим эмуляции интерфейсов SPI и LIN. В каждый кристалл AT32UC3 встраивается до 4 блоков USART, один из которых имеет аппаратную поддержку режима IrDA.
• Интерфейс USB. В большинстве микроконтроллеров AT32UC3 присутствует интерфейс USB. Он применяется двух типов: USB On-The-Go (двухролевой) и USB Device. По скорости предлагаются варианты USB Full-Speed (до 12 Мбит/с) и USB High-Speed (до 480 Мбит/с).
• Интерфейс MAC/Ethernet. Этот интерфейс обеспечивает обмен данными на скоростях
Системная периферия
Контроллер прерываний
Сторожевой таймер
Контроллер питания
8 МГц RC 115 кГц RC Генератор Г енератор
1,8 В Per. напряжения
[ I [ ] кшввзвв
Ядро AVR32 US 66 МГц/91 DM IPS
Ü Инстр. Данные] [ |
Flash
64/
128/
256
кбайт
SRAM2
32+32
кбайт
ммс
SDcard
SDIO
EBI
SRAM
(8/16-бит)
SDRAM
(16-бит)
NAND
(16-бит)
I гтттт
7-слойная скоростная матрица шин
X
Х_ I I
32 кГц RTC \ Периферийный Периферийный DMA I DMA I AES 1 Г Ні-Speed j
OSC J 1 МОСТ 1 8 каналов 1 1 4 канала 1 [ crypto J [usb OnTheGoJ
Пользовательская периферия
* MPU — блок защиты памяти POR — сброс по включению питания BOD — монитор питания
Рис. 2. Структурная схема микроконтроллеров серии AT32UC3A3
Таблица. Характеристики микроконтроллеров AT32UC3
Наименование Производительность, MIPS Максимальная тактовая частота, МГц ай б к ь, re S а .2 ОЗУ, кбайт Линий ввода/вывода USB Ethernet MAC 10/100 Интерфейс внешней памяти UART CAN ов л а н а к би П, < Корпус Серийное производство
AT32UC3A0xxx 91 66 128-512 32-64 109 Fuii-Speed OTG + - 10/8 LQFP144/BGA144 +
AT32UC3A1xxx 91 66 128-512 32-64 69 Fuii-Speed OTG - - 10/8 TQFP100 +
AT32UC3A3xxx 91 66 64-256 128 110 High-Speed OTG - + - 10/8 LQFP144/TBGA144 +
AT32UC3B0xxx 75 60 64-512 16-96 44 Fuii-Speed OTG - - - 10/8 TQFP64/QFN64 +
AT32UC3B1xxx 75 60 64-512 16-96 28 Fuii-Speed - - - 10/8 TQFP48/QFN48 +
AT32UC3L0xxx 64 50 16-64 8-16 36 - - - - 12/6 TQFP48/QFN48 +
AT32UC3C0xxx 91 66 64-512 16-64 125 Fuii-Speed OTG - + 12/16 LQFP144 Q42009
AT32UC3C1xxx 91 66 64-512 16-64 83 Fuii-Speed OTG - - 12/16 LQFP100 Q42009
AT32UC3C2xxx 91 66 64-512 16-64 47 Fuii-Speed OTG - - 12/11 LQFP64 Q42009
AT32UC3Dxxxx 55 40 64-256 8-16 28 Fuii-Speed - - - - TQFP48/QFN48 Q42009
до 100 Мбит/с. Пока предлагается только в микросхемах серии AT32UC3A0/A1.
• Интерфейс SPI. В кристаллах AT32UC3 интерфейс SPI обеспечивает достаточно высокую скорость обмена данными — до 33 Мбит/с, может работать в режимах Master и Slave. В режиме Master возможна работа с несколькими устройствами (до 15), благодаря наличию линий Chip Select.
• Интерфейс TWI. Двухпроводный шинный интерфейс TWI, совместимый c I2C и SMBUS, обеспечивает скорость обмена данными до 400 кбит/с. Может работать в режимах Master и Slave.
• Интерфейс SSC. Благодаря режиму совместимости с интерфейсом I2S, интерфейс SSC полезен для подключения внешних аудиокодеков в приложениях с воспроизведением звука. Интерфейс SSC обеспечивает скорость обмена данными до 33 Мбит/с.
• Интерфейс внешней памяти. Поддерживает популярные типы памяти: NAND Flash, SDRAM, SRAM, а некоторые линейки микросхем имеют дополнительную логику
для работы с другими современными типами памяти.
• Блок управления портами ввода/вывода микроконтроллеров АТ32ИС3А обеспечивает возможность переключения линий порта со скоростью до 33 Мбит/с, что позволяет программно организовывать различные интерфейсы с достаточно большой скоростью обмена данными.
Микроконтроллеры АТ32иС3 с ядром АУР32 иС3
Фирма А1ше1 активно развивает линейки F1ash-микроконтроллеров с ядром AVR32 ИС3, параметры которых приведены в таблице. Сегодня серийно выпускаются микросхемы серий АТ32ИС3А0/1, АТ32ИС3А3 и АТ32ИС3Б. До конца 2009 года будут выпущены новые линейки— АТ32ИС3Ь, АТ32ИС3С, АТ32ИС30.
Типовая структурная схема всех микроконтроллеров АТ32ИС3 едина, отличия заключаются в составе периферийных узлов и оптимизации ядра по требуемому соотно-
шению «производительность/энергопотребление».
Среди выпускаемых сейчас кристаллов AT32UC3 (таблица) максимально насыщена разнообразной периферией линейка AT32UC3A3. На рис. 2 приведены имеющиеся на кристаллах этой серии функциональные блоки. Среди особых отличий можно выделить наличие интерфейсов USB High-Speed (OTG) и CE-IDE, ОЗУ суммарным объемом 128 кбайт, а также поддержку огромного числа различных типов памяти: MultiMediaCard (MMC), Secure-Digital (SD), SDIO V1.1, CE-ATA, FastSD, SmartMedia, Compact Flash, Memory Stick (Standard Format V1.40, PRO Format V1.00, Micro). Микросхемы AT32UC3A3 также имеют аппаратную поддержку NAND Flash памяти с многоуровневыми ячейками (MLC).
Микросхемы серии AT32UC3A3 ориентированы на использование в приложениях, где помимо наличия большого числа скоростных интерфейсов требуется высокая производительность процессорного ядра. Кристаллы AT32UC3A3 обеспечивают производительность до 91 DMIPS на тактовой частоте 66 МГц. В перерасчете на 1 МГц это составит 1,38 DMIPS/МГц. И это не предел для данного микроконтроллера, так как при выполнении однотактных команд Flash-память на частоте выше 33 МГц требует добавления цикла ожидания между считыванием таких команд. На частоте ниже 33 МГц Flash-память AT32UC3A3 обеспечивает однотактный доступ, благодаря чему на такой частоте производительность процессора может возрасти до 1,5 DMIPS/МГц.
Другие две линейки микросхем, AT32UC3A0 и AT32UC3A1, в сравнении с AT32UC3A3 функционально менее насыщены и предлагаются для задач, где достаточно ОЗУ вдвое меньшего объема, не требуется широкая поддержка различных типов памяти, а скорость обмена данными по USB со скоростью до 12 Мбит/с полностью соответствует условию задачи. В микросхемах AT32UC3A0 и AT32UC3A1 имеется блок MAC/Ethernet, а у AT32UC3A1 отсутствует интерфейс внешней памяти.
У микросхем серии AT32UC3B, в отличие от AT32UC3A0/A1/A2, акцент ставится не на максимальную производительность, а на минимизацию энергопотребления кристаллов. Эти микросхемы позиционируются для приложений с батарейным питанием: они потребляют не более 1,3 мВт/МГц (2 мВт/МГц у AT32UC3A0/A1), обеспечивая при этом максимальную производительность до 75 DMIPS на частоте 60 МГц. Кристаллы AT32UC3B оптимальны и для различных портативных устройств по той причине, что выпускаются в компактных корпусах (минимально QFN48).
До конца 2009 года фирма Atmel планирует расширить линейку микросхем AT32UC3 тремя новыми сериями:
• AT32UC3D — серия, аналогичная AT32UC3B.
Будет предложена для бюджетных задач.
Стоимость AT32UC3D минимизирована за
счет снижения быстродействия ядра, работы интерфейса USB только в режиме Device и работы портов ввода/вывода с сигналами, логические уровни которых не превышают 3,6 В.
• AT32UC3C — кристаллы, ориентированные на промышленные приложения. Микросхемы будут снабжены двумя контроллерами шины CAN, двумя контроллерами шины LIN, интерфейсом USB OTG, 20-битным ШИМ-контроллером с пятью каналами с комплементарными выходами и вставками «мертвого» времени, скоростным 12-разрядным 16-канальным АЦП с частотой дискретизации до 1500 тыс. выборок/с, двумя 12-разрядными ЦАП, квадратурным декодером. АЦП у AT32UC3C будет снабжен сдвоенной цепью выборки и хранения для получения синхронизированных отсчетов сигналов на двух разных входах АЦП. В кристаллы этой серии будет внедрена система событий (аналогично XMEGA [2]) и добавлена аппаратная поддержка операций с плавающей точкой. Диапазон напряжения питания микросхем — 3-5,5 В.
• AT32UC3L — микросхемы, ориентированные на приложения с батарейным питанием. Они снабжены 36 каналами ШИМ, скоростным 12-разрядным 8-канальным АЦП с частотой дискретизации до 1500 тыс. выборок/с, а также предусмотрена система событий (аналогично XMEGA). Механизмы энергосбережения в AT32UC3L продуманы самым тщательным образом: предусмотрено семь различных режимов энергосбережения, вход резервного питания микросхемы. Производитель планирует достичь энергопотребления менее 2 мкА в режиме сна с включенными часами реального времени, а в режиме Power-Down— не более 100 нА. В активном режиме энергопотребление ядра не должно превышать 0,5 мВт/МГц, а производительность будет достигать 64 DMIPS/МГц на частоте 50 МГц. Диапазон напряжений питания AT32UC3L — 1,62-3,6 В.
Такой вот удачный и сбалансированный ассортимент микросхем AT32UC3 выпускается либо запланирован к выпуску фирмой Atmel. Судя по показателям производительности, энергопотребления, степени интеграции, а также предлагаемому ассортименту, инженеры и маркетологи Atmel смогли создать и вывести на рынок удачное семейство универсальных 32-разрядных микроконтроллеров. Стоимость этих микросхем сопоставима со стоимостью 8-разрядных кристаллов, а если оценивать соотношение цены AT32UC3 и их функциональности, то эти микроконтроллеры занимают более выгодное положение по отношению к своим 8-разрядным «коллегам».
Аппаратные и программные средства поддержки разработок для AT32UC3
Для работы с любой линейкой микроконтроллеров AT32UC3 предлагаются четыре типа аппаратных средств поддержки разработок: стартовый набор, оценочный набор, внутрисхемный эмулятор и программатор.
Стартовый набор для всех микроконтроллеров AT32UC3 единый — STK600 (рис. 3), но для каждой серии микросхем предлагаются отдельные мезонинные модули и переходные платы. Стартовый набор STK600 является основным средством отладки при работе с AT32UC3. Базовая плата STK600 содержит разъемы RS-232, JTAG, USB-B (Device), miniUSB (OTG), преобразователи физического уровня CAN и LIN, 8 светодиодов, 8 кнопок, память Data Flash 2 M6ot. Все порты микроконтроллеров выведены на отдельные разъемы на плате. Мезонинные платы содержат панели с нулевым усилием (ZIF) для установки микроконтроллера, а для поддержки разных микроконтроллеров в одинаковых корпусах, но с различным расположением выводов, мезонины устанавливаются в базовую плату через переходные платы.
Оценочный набор для каждой из серий микросхем AT32UC3 отличен и построен на базе старшей микросхемы в серии. Предлагаются следующие наборы: EVK1100 (с символьным дисплеем) и EVK1105 (с графическим дисплеем) — на базе микросхемы AT32UC3A0512; EVK1101 — на базе AT32UC3B0256; EVK1104 — на базе AT32UC3A3256. Платы оценочных наборов строятся таким образом, чтобы можно было максимально эффективно оценить предлагаемые выбранной линейкой возможности. Так, например, плата EVK1104 для AT32UC3A3 содержит графический дисплей с разрешением 320x240 пикселей, 4 сенсорные кнопки (технология QTouch), кольцевой сенсорный слайдер (технология QWheel), память SDRAM 256 Мбит, Data Flash 64 Мбит, NAND-Flash 2x2 Гбит, аудиовыход, слот карт памяти MMC/SD, разъемы интерфейсов CE-ATA, JTAG, Nexus, аудиовыход. Для лицензированных пользователей Apple фирма Atmel предоставляет iPod docking extension kit для подключения к iPod через USB. Все порты микроконтроллера AT32UC3A3256 на плате EVK1104 выведены на отдельные контактные площадки.
В качестве программатора для микросхем AT32UC3 предлагается набор AVR Dragon, изначально предназначенный для 8-разрядных микроконтроллеров AVR. Следует отметить, что в микроконтроллеры AT32UC3 с интерфейсом USB при производстве размещается загрузчик, который позволяет программировать Flash-память без программатора.
Для внутрисхемной отладки приложений предлагаются два внутрисхемных эмулятора: JTAGICE2 и AVR ONE (рис. 4). Эмулятор JTAGICE2 обеспечивает привычную пошаговую отладку с возможностью просмотра всех ресурсов микроконтроллера на каждом шаге отладки. Эмулятор AVR ONE, в отличие от JTAGICE2, поддерживает высокоскоростное потоковое или буферизируемое считывание трассы по интерфейсу Nexus, имеющемуся у микроконтроллеров AT32UC3. AVR ONE также позволяет осуществлять запись трассы в момент выполнения программы. Анализ трассы при отладке сегмента кода позволяет в дальнейшем оценить поведение кристалла в реальной системе на максимальных скоростях.
Рис. 4. Внутрисхемный эмулятор AVR ONE
Помимо «железа», фирма Atmel предлагает полный набор бесплатных программных средств поддержки разработок: производитель непрерывно совершенствует выпускаемые программные средства, наращивая их функционал.
В качестве средства для компиляции и генерации выполняемого кода из исходных текстов программ предлагается набор AVR32 GNU ToolChain. Он построен на базе стандартного GNU GCC, но оптимизирован для кристаллов AT32UC3. AVR32 GNU Toolchain включает в себя компилятор языка С, ассемблер, линкер, отладчик и программные средства для управления фирменными аппаратными средствами поддержки разработок.
Так как AVR32 GNU ToolChain — это средства, работающие через командную строку, для более удобной и наглядной работы предлагается интегрированная среда разработки AVR32 Studio, которая взаимодействует со всеми средствами AVR32 GNU ToolChain. AVR32 Studio построена на базе платформы Eclipse [3], которая предназначена для написания интегрированных сред разработки различного назначения и унаследовала весь развитый функционал ее программных компонентов. Из базовых составляющих AVR32 Studio содержит «продвинутый» редактор кода с подсветкой синтаксиса, средства управления внутрисхемной отладкой с использованием JTAGICE2 и AVR ONE, наглядный интерфейс для просмотра всех ресурсов микроконтроллера в режиме отладки. Для начинающих работать с AVR32 Studio и микроконтроллерами AVR32 во встроенной справке AVR32 Studio содержится вся необходимая документация и курсы для освоения самой AVR32 Studio, документация на аппаратные средства поддержки разработок и большой набор готовых примеров программ (см. в AVR32 Studio меню File ^ New ^ Examples).
Для быстрого освоения предоставленных в микроконтроллерах AT32UC3 ресурсов предлагается набор библиотек AVR32 UC3 Software Framework в исходных кодах, включающий:
• оптимизированные драйверы на все периферийные узлы AT32UC3 с примерами применения, полной документацией и готовыми проектами для загрузки в AVR32 Studio;
• библиотеку для цифровой обработки сигналов, операций с плавающей точкой (более 70 функций);
• библиотеку с реализацией стандартных классов USB, стека протоколов TCP/IP (lwIP), файловой системы FAT;
• оптимизированные библиотеки для работы с определенными аудиокодеками, графическими и символьными дисплеями, различными типами памяти;
• портированную на AVR32 UC3 версию операционной системы реального времени FreeRTOS;
• библиотеку для внедрения сенсорных клавиатур в изделия на базе AVR32 UC3;
• криптографическую библиотеку XYSSL, включающую реализацию алгоритмов AES, Triple-DES, DES, ARC4, MD2, MD4, MD5, SHA-1, SHA-256, HAVEGE, RSA, SSLv3 и TLSv1, чтение сертификатов X.509. AVR32 UC3 Software Framework интегрирована в AVR32 Studio, снабжена документацией и инструментарием для ее использования в этой среде. Она также может быть получена отдельно с сайта фирмы Atmel и использована с коммерческим компилятором Embedded Workbench фирмы IAR Systems.
Все перечисленное программное обеспечение регулярно обновляется фирмой Atmel и размещается в свободном доступе на ее официальном сайте. В последних версиях ПО исправляются ошибки предыдущих версий и добавляются новые возможности.
Для микроконтроллеров AT32UC3 предлагаются и коммерческие программные средства поддержки разработок. Так, фирма IAR Systems предлагает профессиональный компилятор Embedded Workbench. Этот компилятор может быть особенно удобен для разработки проекта в команде программистов благодаря наличию дополнительной платной опции visualSTATE [4], позволяющей проектировать и разделять проект на модули, а затем объединять код и верифицировать еди-
ный проект. IAR Systems также предлагает для AT32UC3 свою операционную систему реального времени PowerPac.
Среди коммерческих продуктов достаточно популярна в России и операционная система реального времени uC/OS-II фирмы Micrium [5]. Эта ОС и другие программные продукты Micrium предназначены в том числе и для микроконтроллеров AT32UC3.
Разработка проекта для микроконтроллеров AT32UC3 возможна и на JAVA — для этого фирмой IS2T [6] предлагаются виртуальная машина JAVA и все необходимые програмные компоненты. Эта продукция распространяется на коммерческих условиях.
По отзывам разработчиков, уже начавших работу с этой платформой, законченный программно-аппаратный комплекс разработки Atmel оказывает неоценимую помощь для быстрого создания конечного приложения, так как можно максимально эффективно использовать предоставленные ресурсы микроконтроллера. Программное обеспечение написано таким образом, чтобы разработчику было комфортно.
Заключение
Описанные кристаллы AT32UC3, аппаратные и программные средства поддержки разработок для них активно развиваются фирмой Atmel, а именно ее норвежским подразделением. Этим же подразделением в 1998 году были разработаны и до сих пор успешно развиваются 8-разрядные микроконтроллеры AVR. Сейчас эта опытная команда фирмы Atmel затрачивает много ресурсов на развитие микроконтроллеров AT32UC3, а значит, есть все шансы на то, что AT32UC3 со временем станут не менее популярными, чем их 8-разрядные предшественники.
За прошедшие два года кристаллам AT32UC3 было присуждено пять наград на различных конкурсах, признанных известными мировыми производителями различной электронной техники, а это, безусловно, является подтверждением выдающихся показателей AT32UC3. ■
Литература
1. Курилин А. AVR32: новый микроконтроллер для мультимедийных приложений // Электронные компоненты. 2006. № 9.
2. Кривченко И., Ламберт Е. Микроконтроллеры XMEGA — новые возможности проверенного решения. Часть 2 // Компоненты и технологии. 2008. № 4.
3. www.eclipse.org
4. www.iar.com
5. www.micrium.com
6. www.ist-eu.com
7. Микроконтроллеры AVR и AVR32: перспективные новинки. М.: ООО «ЭФО», 2009.
8. www.atmel.com/AVR32
9. www.atmel.no/beta_ware
10. www.avrfreaks.net
11. www.avrtv.com