Микроконтроллер AT91RM9200 фирмы ATMEL
Микроконтроллер AT91RM9200 фирмы ATMEL представляет собой комплектную «систему на кристалле» (System-On-Chip - SOC) построенную на базе ARM920T™ ARM® Thumb® процессора. Это новый представитель семейства ARM9, программно совместим «снизу-вверх» с семейством ARM7. Микросхема имеет расширенный набор периферийных модулей и стандартных интерфейсов, что позволяет реализовать однокристальное решение для широкого диапазона применений, требующих максимальной функциональности, высокой производительности при минимуме потребляемой мощности и низкой стоимости.
AT91RM9200 имеет быстродействующую SRAM-память и шину внешнего интерфейса (EBI) для подключения к внешней памяти или программируемой периферии любой конфигурации, в зависимости от требований конкретного приложения. Интерфейс EMI содержит контроллеры для синхронной памяти DRAM (SDRAM), Flash-памяти и статической памяти, а также специальные схемы для подключения SmartMedia, CompactFlash и NAND Flash.
Усовершенствованный контроллер прерываний (AIC) расширяет возможности процессора ARM920T в части обработки прерываний, обеспечивая множественную векторизацию, задание приоритетов источников прерывания и уменьшая время перехода к программе обработке прерывания.
Периферийный контроллер данных (PDC) обеспечивает прямые каналы доступа к памяти (DMA) для всех последовательных внешних устройств, что позволяет осуществлять передачу данных между ними и встроенной или внешней памятью без использования процессора.
Контроллеры параллельных линий ввода-вывода (PIO) выполняет мультиплексирование линии периферийных входов/выходов с линиями данных общего назначения, что повышает гибкость конфигурирования устройства.
Контроллер управления потребляемой мощностью (PMC) постоянно минимизирует величину потребляемой мощности путем включения/отключения процессора и различной периферии под управлением программного обеспечения. Он использует расширенный тактовый генератор, с помощью которого возможно изменение значения тактовой частоты от минимальной (32 кГц) - для уменьшения энергопотребления, до максимальной (180 МГц) - для повышения производительности.
В AT91RM9200 интегрированы модули двух стандартных интерфейсов: USB 2.0 и Ethernet 10/100 Base-T контроллер локальной сети (MAC). Они позволяют работать с обширным набором внешних устройств, созданных в соответствии с несколькими индустриальными стандартами, использующихся в аудиотехнике, телевидении, Flash и Smart картах.
Важной особенностью микроконтроллера является наличие большого числа возможностей отладки: JTAG-ICE интерфейс, предопределенный UART-канал отладки (DBGU) и встроенный трассировщик реального времени. Разработчику предоставляются мощные средства разработки и отладки любых систем, в особенности имеющих ограничения при работе в режиме реального времени.
Ниже приводится краткий список основных возможностей микроконтроллера AT91RM9200:
- ARM920T™ ARM® Thumb® процессор:
производительность 200 MIPS на частоте 180МГц;
16кБайт кэш данных и 16кБайт кэш команд, буфер записи;
внутрисхемный эмулятор, включающий коммуникационный отладочный канал;
- низкое потребление: в активном режиме 30.4мА, в режиме «сна» 3.1мА;
- интегрированная память: 16 кБайт SRAM и 128 кБайт ROM;
- внешняя интерфейсная шина, поддерживающая SDRAM, Burst Flash, статическую память и подключение CompactFlash®, SmartMedia™ и NAND Flash;
- разнообразная системная периферия:
расширенный тактовый генератор, два встроенных осциллятора с двумя модулями PLL;
улучшенный контроллер прерываний с 8-ми уровней приоритетной системой;
7 внешних источников прерывания и 1 «быстрый» источник прерывания;
модуль отладки, двухпроводный UART и поддержка отладочного канала связи;
четыре 32-битных контроллера ввода/вывода с 122 программируемыми линиями ввода/вывода, с открытым стоком на каждой линии;
20 канальный периферийный контроллер данных (DMA);
- модуль локальной сети Ethernet MAC 10/100 Base-T;
- двойной HOST-порт USB 2.0 (12 Мбит/с);
- порт «Device» USB 2.0 (12 Мбит/с);
- интерфейс карт мультимедиа (MCI), совместимый с MMC и SD картами памяти, поддерживает до 2-х SD-карт;
- 3 синхронных последовательных контроллера (SSC);
- 4 универсальных синхронных/асинхронных приемо-передатчиков (USART), поддерживающих ISO7816 T0/T1 Smart-карты, RS485, IrDA;
- SPI и TWI интерфейсы;
- 2 трехканальных 16-битный таймера/счетчика;
- интерфейс для граничного сканирования всех выводов по стандарту IEEE 1149.1 JTAG;
- напряжения питания ядра от 1.65В до 1.95В;
- напряжение питания периферийных линий ввода/вывода и внешней интерфейсной шины от 1.65В до 3.6В;
- корпус 208-выводной PQFP или 256-выводной BGA.
На Рис.1 приведена структура встроенного в микроконтроллер процессора ARM920T, являющегося членом семейства ARM9™ Thumb® высокопроизводительных 32-разрядных SOC-процессоров. Процессор содержит следующие базовые блоки:
- RISC-процессор ARM9TDMI;
- виртуально адресуемые 64-направленные ассоциативные кэши команд и данных (оба по 16 кБайт);
- модули управления памятью команд и данных (MMU);
- буфер записи;
- шинный интерфейс AMBA™ (Advanced Microprocessor Bus Architecture);
- интерфейс встроенных трассировочных макроячеек (ETM);
- сопроцессор CP14 – управляет программным доступом к отладочному коммуникационному каналу;
- сопроцессор CP15 – системный управляющий процессор, имеющий 16 дополнительных регистров, необходимых для конфигурирования и управления КЭШами, MMU, системой защиты, режимом тактирования и пр.
Из Рис.1 видно, что фактически микроконтроллер AT91RM9200 имеет процессорное ядро ARM920T [1], основанное на процессоре ARM9TDMI [2]. Ядро ARM9TDMI работает с 32-битными ARM или 16-битными Thumb® командами. Оно построено по Гарвардской архитектуре с раздельными шинами команд и данных. Конвейерная архитектура процессора предусматривает 5 стадий выполнения команды: выборка команды, декодирование, выполнение, доступ к памяти, запись в регистр. ARM9TDMI, основанный на ARM-архитектуре v4T, поддерживает 7 процессорных режимов:
- «пользовательский»: стандартное выполнение программы;
- FIQ: поддержка высокоскоростной передачи данных или канальных процессов;
- IRQ: обработка прерываний общего назначения;
- «супервизор»: защищенный режим для операционной системы;
- режим «отмены»: реализуется защита виртуальной и(или) обычной памяти;
- «системный»: привилегированный пользовательский режим для операционной системы;
- «неопределенный»: поддержка программной эмуляции аппаратного сопроцессора.
Изменение режима может осуществляться программно, либо вызываться внешним прерыванием или обработкой исключения. Большинство прикладных программ работают в пользовательском режиме. Остальные режимы, являющиеся привилегированными, введены для обслуживания прерываний, исключений или доступа к защищенным ресурсам.
Процессор ARM920T поддерживает три различных типа адресации, в зависимости от задействованного модуля: виртуальные адреса (при работе с ядром ARM9TDMI), модифицированные виртуальные адреса (при обращении к кэшам) и физические адреса (на шине AMBA).
Менеджеры памяти MMU разграничивают права доступа и трансляции для команд и данных к портам ядра ARM9TDMI. Управление MMU осуществляется одним набором двухуровневой страницы таблиц, находящейся в главной памяти и подключаемым путем установки соответствующего бита в регистре 1 сопроцессора СР15. Использование MMU обеспечивает единый механизм адресации и схему защиты. Пользователь может независимо блокировать и сбрасывать команды и данные буферов TLB (Translation Lookaside Buffers – буферы хранения преобразований) в MMU.
Основные возможности MMU:
- стандартные для ARMv4 MMU величина размера отображения, домены и схема защиты доступа;
- размер отображения может иметь значение 1 Мб (секции), 64 кБ, (большие страницы), 4 кБ (маленькие страницы) и 1 кБ (миниатюрные страницы);
- разрешение доступа для секций;
- разрешение доступа к большим и малым страницам может задаваться отдельно для каждой четверти страницы (называемые подстраницами);
- 16 аппаратных доменов;
- 64 элементный TLB буфер команд и 64 элементный TLB буфер данных;
- таблица «обходов» аппаратной страницы;
- циклический алгоритм замены;
- деактивация буфера TLB целиком (или одного элемента) с помощью регистра 8 сопроцессора CP15;
- независимое отключение буферов команд и данных TLB с помощью CP15.
Процессор ARM920T имеет одноуровневую систему памяти, включающую кэши команд и данных, буфер записи и координатор физических адресов ОЗУ, что приводит к эффекту влияния ширины полосы пропускания памяти и времени задержки на эффективность. Кэши команд и данных имеют следующие характеристики:
- 8 слов в строке (32 байта в строке) с одним верным битом и двумя неверными битами в строке, с разрешением отложенной записи половины строки;
- псевдослучайная или циклическая замена, выбираемая с помощью бита RR регистра 1 в CP15;
- возможна независимая блокировка областей кэшей величиной 64 слова (256 байт или 1/64 кэша);
- операции обслуживания кэша обеспечивают эффективную очистку полного кэша.
Архитектурное расширение Thumb® является прекрасной возможностью получить преимущества 32-битной процессорной архитектуры с использованием 16-разрядных инструкций. Это особенно важно для встраиваемых систем управления, используемых в сотовых телефонах, винчестерах, модемах, пейджерах. Т.к. CISC-контроллеры текущего поколения имеют ограниченную эффективность, разработчики нуждаются в использовании 32-разрядных RISC-процессоров для повышения производительности и объема адресуемой памяти, при сохранении существующей стоимости. Использование технологии Thumb® позволяет работать с 16-разрядным кодом повышенной плотности на 32-разрядном ARM-процессоре, что приводит к снижению объема необходимой памяти для хранения программы и, как следствие, уменьшению стоимости всей системы. При выполнении программы 16-битный код Thumb® распаковывается в полноценные 32-битные ARM-команды в реальном времени без потери производительности. Программный 16-битный код Thumb® требует примерно на 35% меньший объем памяти в сравнении с эквивалентным 32-битным кодом. Сравнение объема итогового кода при компиляции одинаковых исходных кодов для различных процессорных платформ представлено на Рис. 2.
Отладочная плата AT91RM9200
Для оценки возможностей 32-разрядных микроконтроллеров серии ARM9 и отладки их программного обеспечения в режиме реального времени ATMEL предлагает отладочную плату AT91RM9200. В пакет её поставки помимо платы входят:
- Источник питания от сети переменного тока 100-240В, 1А, 50-60 Гц;
- Модемный кабель RS232;
- Сетевой Ethernet кабель RJ45;
- USB кабель типа A/B;
- Два кабеля подключения питания (один «американского» типа, другой «французского»);
- CD диск, содержащий полные описания микроконтроллера; электрическую схему отладочной платы и её механические характеристики; рекомендации по применению и руководство по быстрому запуску системы с листингом программного обеспечения на языке С.
Отладочная плата имеет полный набор периферии (Рис.3), позволяющей изучить все возможности ARM9-микроконтроллеров:
- 2 МБайта параллельной Flash-памяти;
- 4 банка по 2М?32 бита SDRAM-памяти;
- 128 кБайт EEPROM с доступом через двухпроводной интерфейс TWI;
- 8 МБайт последовательной памяти DataFlash®;
- 5 коммуникационных портов (2 USB, Ethetnet, последовательный и IrDA);
- графический контроллер с выходом на стандартный VGA монитор;
- отладочные интерфейсы JTAG/ICE, ETM;
- разъем расширения.
Рекомендованная производителем цена отладочной платы AT91RM9200 составляет 5000$.
Средства разработки
Множество производителей предоставляют разработчикам систем на базе AT91RM9200 [3] обширный набор средств разработки и отладки: компиляторы, ассемблеры, операционные системы реального времени (RTOS), устройства для работы с JTAG интерфейсом. Одним из ведущих поставщиков таких средств является компания Green Hills Software (GHS). Ниже приводится краткое описание возможностей её продукции, позволяющее получить представление об уровне предлагаемых решений.
Интегрированная среда разработки (IDE) MULTI компании GHS основана на оптимизирующих компиляторах для языков С, С++ и встраиваемого С++. Компиляторы позволяют получать высококачественный исполняемый код для процессоров ARM7, ARM9 (включая поддержку Thumb®). Исходные коды могут быть написаны на разных языках, которые затем смешиваются в едином исполняемом коде и оптимизируются для достижения максимальной скорости работы или же минимального размера. Среда MULTI имеет прямой графический интерфейс со всеми GHS-компиляторами и поддерживает многоязыковую разработку и отладку. MULTI состоит из конструктора проекта, отладчика исходных кодов, модуля оценки производительности Code Balance™, модуля проверки ошибок режима реального времени, графического броузера, текстового редактора и системы управления версиями.
Компания GHS также предлагает встраиваемую операционную систему реального времени ThreadX®, имеющую много дополнительных усовершенствований многозадачного режима среди подобных решений на рынке. Ядро PicoKernel™, лежащее в её основе, имеет очень низкие требования к памяти – ему необходимо менее 4 кБ в минимальной конфигурации. ThreadX® предоставляет встраиваемым ARM-приложениям очень быстрые программные таймеры и механизм Preemption Threshold™, способствующий снижению количества переключений контекста. Операционная система ThreadX® комплексно поддерживается GHS-оптимизирующими компиляторами и средой разработки MULTI. Совместно с этой операционной системой для отладки через JTAG интерфейс можно использовать устройство Green Hills Probe.
Фирма Macraigor Systems производит отладочные инструменты, имеющие малую стоимость для пользователей, не нуждающихся в сложных и дорогих системах отладки.
В Таблица 1 приведен список производителей программных средств разработки для микроконтроллеров на базе процессоров ARM.
Таблица 1
Поставщики средств разработки для ARM-микроконтроллеров
По мнению Jacko Wilbrink, менеджера ATMEL по ARM-продуктам: «Производство AT91RM9200 выводит ATMEL в лидеры рынка «систем на кристалле» на основе ARM-процессоров. Это стало возможно благодаря опыту работы с ARM7 - системами и сотрудничеству с нашим квалифицированным поставщиком средств разработки Green Hills Software. Ядро ARM920T позволяет нам продвинуться в область, где производительность, разнообразие коммуникативных возможностей и безопасность являются первостепенными».
Документация:
|
|
AT91RM9200 - Микроконтроллер на основе процессора ARM920T ™ |
|
|
573 Kb Engl AT91RM9200 Предварительная информация |
|
|
17675 Kb Engl AT91RM9200 Полное описание |
|
|
2171 Kb Engl ARM9T Tehnical Reference Manual |
|
|
920 Kb Engl ARM9TDMI Tehnical Reference Manual |
|