Микроконтроллеры семейства Maverick фирмы Cirrus Logic уже достаточно хорошо известны в нашей стране. Вызвано это, в первую очередь, удачностью архитектуры при относительно невысокой цене, а также отсутствием проблем с приобретением. Не так давно фирма Cirrus Logic выпустила еще несколько микроконтроллеров этого семейства — EP7309, EP7311 и EP7312. Сохраняя в себе все особенности предыдущих представителей Maverick (EP72xx), новые устройства имеют в то же время и достаточно существенные отличия. Характеристики микроконтроллеров серии EP72xx уже достаточно подробно освещались в нашем журнале (см. №6/2000), поэтому далее будут рассмотрены только особенности архитектуры новых контроллеров, а также вопросы их программной поддержки.
1. Особенности архитектуры микроконтроллеров EP73xx
Ознакомившись с характеристиками представителей серии EP72xx легко заметить, что все микроконтроллеры семейства Maverick обладают достаточно большой вычислительной мощностью (по производительности процессорное ядро ARM720T, работающее на частоте 74 МГц, примерно эквивалентно процессору Intel Pentium, работающему на частоте 100 МГц). В то же время отсутствие интегрированной flash-памяти программ и неудачность реализации внешней шины контроллера до недавних пор затрудняли использование его возможностей в полную силу. Происходило это из-за того, что внешняя шина процессора (имеющая ширину 32 бита) способна работать на максимальной частоте только до 36 МГц, при этом минимальное время передачи одного слова составляет два шинных такта. Если учесть то, что размер команды у ядра ARM720T составляет 16 (в режиме Thumb) или 32 бита (в нормальном режиме), становится понятно, что при использовании внешней памяти программ шина процессора реально ограничивает производительность на уровне 16 MIPS (или 32 MIPS для режима Thumb). В какой то мере положение спасает наличие на кристалле 8 K кэш-памяти программ и 38 K SRAM, которая работает на полной частоте процессора и имеет время обращения равное одному ее периоду: в этой памяти можно организовать некое подобие оверлейной структуры и динамически подгружать необходимые для работы куски кода. Однако при необходимости исполнения достаточно больших программ или работы со значительными объемами данных все это оказывается практически бесполезным. Понимая это, разработчики из Cirrus Logic практически сразу вслед за первым микроконтроллером семейства Maverick (EP7209) выпустили и два его варианта со встроенным контроллером DRAM (EP721x). Впрочем наличие этого устройства решило только часть проблемы, позволив подключать к микроконтроллерам большие объемы оперативной памяти. В то же время проблема со скоростью доступа к внешней памяти решена так и не была, да и использование DRAM во встраиваемых системах оказалось достаточно неудобным в силу высокого энергопотребления этого типа памяти и проблем с приобретением 3,3-вольтовой DRAM.
И вот наконец совсем недавно фирма Cirrus Logic значительно обновила семейство Maverick. В целом, новая серия EP73xx, состоящая из трех микроконтроллеров (EP7309, EP7311 и EP7312), отличается от EP72xx только увеличенным до 48 K объемом встроенной SRAM и заменой контроллера DRAM (в тех устройствах, где он присутствовал) на контроллер SDRAM. Отличия микроконтроллеров серий EP72xx и EP73xx отражены в таблице 1.
Таблица 1
Контроллер | Контроллер динамической (внешней) памяти | Объем встроенной SRAM | Улучшенный DAI (64 fs) | Maverick Key |
EP7209 | Нет | 38,4 К | Х | |
EP7211 | EDO DRAM | 38,4 K | ||
EP7212 | EDO DRAM | 38,4 K | X | |
EP7309 | Нет | 48 К | Х | |
EP7311 | SDRAM | 48 K | ||
EP7312 | SDRAM | 48 K | X | X |
Рис. 1
Наличие встроенного контроллера SDRAM позволяет подключать к процессорам EP731x до четырех банков памяти объемом до 256 мегабит каждый. При этом контроллер может быть сконфигурирован на работу с шиной данных шириной от 4 до 32 бит. Для снижения энергопотребления системы в целом, контроллер автоматически переводит подключенную к нему SDRAM в режим Self-Refresh при переходе процессора в режим Standby. Несмотря на то, что внешняя шина процессора по-прежнему работает на частоте не более 36 МГц, использование контроллера SDRAM позволяет вдвое повысить производительность процессора при работе с внешней памятью программ, благодаря тому, что выборка данных из SDRAM производится блоками по 16 байт для заполнения полной линейки кэш-памяти, при этом выборка одного 32-разрядного слова (при ширине шины 32 бит) занимает один такт.
Еще одной интересной особенностью EP7312 является наличие в нем блока Maverick Key, который позволяет программе получить два идентификационных номера процессора. Первый номер имеет длину 32 бита и является гарантированно уникальным. Второй номер представляет собой просто случайное число длиной 128 бит. Оба этих номера определяются на этапе изготовления кристаллов процессора путем лазерной гравировки, их изменение программным путем невозможно. В целом, блок Maverick Key обеспечивает возможность однозначной идентификации устройств, собранных с использованием процессора EP7312, что используется в современных алгоритмах аутентификации и обеспечения безопасности. В частности, включение этого блока в состав нового процессора далеко не в последнюю очередь вызвано тем фактом, что основной областью его применения являются устройства для проигрывания сжатых аудио-потоков (например, в формате MP3), а в этой области в последнее время наметилась тенденция к разработке алгоритмов, позволяющих производить лицензирование прослушивания тех или иных музыкальных произведений. Одним из наиболее ярких примеров подобной инициативы является SDMI (Secure Digital Music Initiative).
В остальном же новые устройства мало отличаются от соответствующих микроконтроллеров серии EP72xx, что позволяет с легкостью использовать их в системах, разработанных под старые варианты процессоров семейства Maverick.
В заключении разговора о характеристиках микроконтроллеров серии EP73xx хотелось бы отметить еще один весьма интересный и перспективный процессор фирмы Cirrus Logic. Видимо, наблюдая высокий спрос на процессоры семейства Maverick и контроллер Ethernet CS8900A, инженеры Cirrus Logic решили совместить две эти вещи в одном корпусе. Получившийся при этом продукт, CS89712 (рис. 2), имеет номер, образованный из частей номеров составляющих его компонентов — CS8900A и EP7312. Собственно, этим все и сказано — CS89712 представляет собой совмещенные на одном кристалле процессор EP7312 со всеми присущими ему возможностями и контроллер 10Base-T Ethernet CS8900A, подключенный к внешней шине процессора. В силу того, что наличие в чипе контроллера Ethernet требует использования дополнительных выводов, новый контроллер выпускается только в 256-выводном корпусе типа BGA, а вариант в корпусе LQFP, обязательном для всех контроллеров серии EP7xxx, отсутствует. Однако, несмотря на это ожидается, что новый продукт приобретет значительную популярность, благодаря удобству его применения в системах, подключаемых к сети с использованием интерфейса 10Base-T Ethernet. Фактически, для создания законченной системы на базе процессора CS89712 к нему достаточно подключить только Flash-память программ, небольшое число пассивных компонентов и необходимые периферийные устройства.
Рис. 2
2. Программная поддержка микроконтроллеров серии EP73xx
В целом, поскольку микроконтроллеры серии EP73xx полностью совместимы с соответствующими аналогами из серии EP72xx, то для разработки систем на их основе можно использовать все те средства, которые применялись при работе с микросхемами серии EP72xx.
2.1. Компиляторы и средства поддержкиразработки
В настоящее время среди всего множества средств разработки для процессоров с ядрами фирмы ARM выделяются три продукта, обладающих наибольшей функциональностью:
- ARM Software Development Toolkit и ARM Developer Suite — мощные интегрированные пакеты, включающие в себя компиляторы языков C и C++, ассемблер, линкер, отладчик, симулятор и средства поддержки аппаратных эмуляторов;
- GreenHills Multi2000 — пакет, состоящий из интегрированной среды разработки, компилятора C++ и отладчика; может использоваться совместно с аппаратными эмуляторами фирмы GreenHills;
- GNU open source GCC Tool Set — включает в себя компилятор C++, линкер и отладчик; преимуществом этого пакета является то, что он бесплатно распространяется в исходных текстах в соответствии с условиями GNU Public License.
Учитывая то, что процессорное ядро ARM7TDMI, которое используется в микроконтроллерах семейства Maverick, появилось достаточно давно, многие производители операционных систем имеют версии своих продуктов для этого ядра. Ниже приведена информация по некоторым наиболее популярным операционным системам, обладающим поддержкой микроконтроллеров семейства Maverick:
- ОС Linux была адаптирована для использования с микроконтроллерами серий EP72xx и EP73xx фирмой ISD; система, названная Royal Linux, основана на ядре версии 2.2.1 и обладает поддержкой клавиатуры, LCD с сенсорным экраном и контроллера Ethernet; ядро системы занимает порядка 700K; к преимуществам Linux относятся его бесплатное распространение в исходных текстах и отсутствие лицензионных отчислений с готовых продуктов;
- ThreadX — операционная система реального времени, выпускаемая фирмой GreenHills; обладает поддержкой TCP/IP, графики и файловых систем; поставляется с исходными текстами;
- VxWorks — операционная система реального времени, предназначенная для создания сетевых устройств; обеспечивает быструю работу с подсистемой ввода-вывода и локальной файловой системой;
- eCos (Embedded Configurable Operating System) — операционная система реального времени, распространяемая фирмой Cygnus в соответствии с условиями GNU Public License; поддерживается средствами разработки GNU GCC Tool Set;
- NucleusPlus (фирма Accelerated Technology Incorporated) — операционная система, обладающая поддержкой графического интерфейса и файловых систем;
- Windows CE — эта операционная система фирмы Microsoft в особых комментариях не нуждается; к ее преимуществам относятся возможность использования огромного числа средств разработки от Microsoft, а также распространенность и поддержка большого числа сетевых протоколов и файловых систем.
Учитывая то, что микроконтроллеры семейства Maverick во многом ориентированы на декодирование потокового аудио, не лишним будет сказать и о стандартах, поддерживаемых ими в настоящее время. Фирма Cirrus Logic предлагает для использования со своими процессорами кодеки, осуществляющие декодирование потокового аудио в форматах MP3, WMA и AAC. Помимо этого, фирма SRS Labs перенесла на процессоры серии EP72xx свои библиотеки обработки звука WOW, что позволяет помимо декодирования производить наложение различных эффектов в реальном времени.