Новые микроконтроллеры eCOG1x
от компании Cyan Technology
Юрий РОГОВСКИИ
yrs@8051.ru
Статья посвящена новому семейству 16-разрядных микроконтроллеров eCOG1x, выпуск которых компания Cyan Technology планировала начать в конце 2006 года. Рассмотрены структурная схема, организация ядра, периферийные модули и их основные возможности, отличия от предыдущей серии микроконтроллеров Cyan, описаны состав и особенности интегрированной среды разработки CyanIDE.
Введение
Сейчас будущее 16-разрядных микроконтроллеров видится весьма неопределенным. С одной стороны, их теснят все более производительные 8-разрядные микроконтроллеры, а с другой стороны, конкуренцию им составляют недорогие (и продолжающие постоянно дешеветь) 32-разрядные платформы. Некоторые производители совсем покидают этот сегмент рынка, другие прекращают развитие 16-разрядной линейки, но оставляют в производстве уже разработанные и пользующиеся спросом чипы, третьи же наоборот увеличивают свою активность на этом рынке и предлагают потребителям новые разработки. К последним относится и компания Cyan Technology, которая объявила о выпуске в конце 2006 года нового семейства 16-разрядных микроконтроллеров — eCOGlx.
Компания Cyan Technology была основана в 2002 году как дизайн-центр с головным офисом в Кембридже (Великобритания). Она не имеет собственных производственных мощностей и специализируется исключительно на разработке полупроводниковых изделий и программно-инструментальных средств их поддержки. Производство чипов и готовых изделий (например, отладочных и оценочных комплектов) заказывается на полупроводниковых фабриках и заводах сторонних производителей, которые владеют необходимыми технологиями и предлагают наиболее выгодные условия сотрудничества. Такая бизнес-модель позволяет исключить ситуации, когда технологические возможности собственного производства не позволяют реализовать на кристалле все задуманные идеи и инновации. Это дает возможность компании полностью сконцентрироваться на процессах разработки и дистрибуции и предложить потребителям решения, которые по своим возможно-
стям и совокупности параметров будут наиболее востребованы на рынке.
Первым микроконтроллером компании Cyan Technology был 16-разрядный микроконтроллер eCOGlk, производство которого началось в сентябре 2003 года. Через некоторое время была выпущена его несколько «урезанная» по функционалу версия ^COGlm в более миниатюрном корпусе. Оба МК сопровождались бесплатной средой разработки CyanIDE, отличались достаточно низким энергопотреблением в сочетании с высокопроизводительным 16-разрядным ядром и развитой периферией и сразу же привлекли к себе внимание, особенно на рынках ЮгоВосточной Азии, где конкуренция в последние годы очень серьезная и закрепиться там без достаточных на то оснований очень сложно. Под влиянием растущего интереса к своей продукции в этом регионе компания Cyan Technology в мае 2005 года открыла в Гонконге свое представительство и центр технической поддержки, что свидетельствует о серьезных планах фирмы по развитию и росту.
Однако долговременный успех на рынке полупроводников невозможен без постоянного улучшения и совершенствования своей продукции. Понимая это, Cyan Technology разработала новое семейство eCOG1x, которое должно, как минимум, повторить успех серии eCOGlk/^COGlm. Микроконтроллеры серии eCOG1x и отладочные платы для них уже поступили в продажу, и теперь разработчики могут оценить все выгоды и преимущества от использования eCOGlx в своих проектах.
Прежде всего, следует обратить внимание на новую политику продвижения своей продукции, проводимую компанией Cyan Technology. В случае выпуска на рынок микроконтроллеров нового семейства под новым брендом достаточно велик риск того, что спрос на них будет расти слишком медленно,
и молодой фирме не хватит «запаса прочности», чтобы дождаться того момента, когда объемы заказов превысят порог рентабельности. Чтобы уменьшить этот риск и ускорить темпы роста спроса, необходимо минимизировать количество МК в семействе и сделать их как можно более универсальными. Поэтому предыдущая (она же и самая первая) линия eCOGlk/^COGlm включала всего два микроконтроллера, максимально насыщенные периферией и предназначенные для удовлетворения нужд максимального количества приложений. Такой подход позволил Cyan Technology закрепиться на рынке, «раскрутить» свой бренд, определить пути развития своих будущих продуктов и оценить емкость рынков для них. Новое же семейство eCOGlx будет состоять почти из трех десятков микроконтроллеров (таблица), отличающихся друг от друга набором периферийных модулей, корпусным исполнением, некоторыми техническими параметрами и, разумеется, ценой. Такая стратегия говорит о том, что компания твердо стоит на ногах, уверена в конкурентоспособности своих продуктов и не сомневается в том, что спрос на микроконтроллеры каждого типа превысит экономически оправданные объемы производства.
Так на чем же основана такая уверенность Cyan Technology в коммерческом успехе своего нового семейства? Логично предположить, что ответ на этот вопрос заключается в уникальном сочетании технических характеристик и функциональных возможностей микроконтроллеров eCOGlx. Рассмотрим их более подробно.
Архитектура
микроконтроллеров eCOG1x
Обобщенная структурная схема микроконтроллеров семейства eCOGlx приведена на рис. l. На этой схеме зеленым цветом вы-
Таблица. Модификации МК семейства eCOG1x
Тип МК Flash-память Ethernet- контроллер USB АЦП ЦАП 4-разр. порты 8-разр. порты Тип корпуса
eCOG1X0A1 128K 4 68 QFN
eCOG1X0A2 256K 4 68 QFN
eCOG1X0A5 512K 4 68 QFN
eCOG1X1A1 128K 3 68 QFN
eCOG1X1A2 256K 3 68 QFN
eCOG1X4A2 256K V 4 68 QFN
eCOG1X4A5 512K V 4 68 QFN
eCOG1X5A2 256K V 3 68 QFN
eCOG1X5A5 512K V 3 68 QFN
eCOG1X8A2 256K V 1 68 QFN
eCOG1X8A5 512K V 1 68 QFN
eCOG1X9A2 256K V 1 68 QFN
eCOG1X9A5 512K V 1 68 QFN
eCOG1X2B1 128K 11 4 100 QFN
eCOG1X2B2 256K 11 4 100 QFN
eCOG1X6B2 256K V 11 3 100 QFN
eCOG1X6B5 512K V 11 3 100 QFN
eCOG1X10B2 256K V 11 2 100 QFN
eCOG1X10B5 512K V 11 2 100 QFN
eCOG1X14B2 256K V V 11 2 100 QFN
eCOG1X14B5 512K V V 11 2 100 QFN
eCOG1X2Z1 128K 14 11 208 BGA
eCOG1X2Z2 256K 14 11 208 BGA
eCOG1X2Z5 512K 14 11 208 BGA
eCOG1X6Z2 256K V 14 11 208 BGA
eCOG1X6Z5 512K V 14 11 208 BGA
eCOG1X10Z2 256K V 14 11 208 BGA
eCOG1X10Z5 512K V 14 2 8 11 208 BGA
eCOG1X14Z2 256K V V 14 2 8 11 208 BGA
eCOG1X14Z5 512K V V 14 2 8 11 208 BGA
делены модули, без каких-либо изменений заимствованные из предыдущего семейства (eCOG1k/|iCOG1m). Желтым цветом обозначены узлы, уже встречавшиеся в предыдущем семействе, но претерпевшие ряд модификаций. Красным цветом отмечена периферия, впервые появившаяся в микроконтроллерах Cyan Technology.
Как видно из рис. 1, большинство узлов закрашены желтым или красным цветом, то есть изменения в структуре микроконтроллеров eCOGlx достаточно серьезны и существенны. Однако читатели, уже имевшие опыт работы с микроконтроллерами Cyan Technology, наверняка заметят, что новые МК полностью покрывают возможности предыдущего семейства. Это позволяет разработчикам легко переносить свои программы, написанные для eCOGlk /^COGlm, на новую платформу eCOGlx. Для облегчения этой процедуры в новой версии среды разработки CyanIDE (которая, как и ранее, распространяется бесплатно) появилась специальная функция Switch-Chip, позволяющая практически «одним щелчком мыши» перевести приложение с одного микроконтроллера на другой.
Ниже перечислены ключевые особенности МК семейства eCOGlx:
• ^-разрядное ядро CPU с гарвардской архитектурой и тактовой частотой до 70 МГц.
• Быстрые векторные прерывания.
• Развитая система команд (включая операции деления и умножения как со знаком, так и без знака), ориентированная на языки высокого уровня, гибкие режимы адре-
сации, пересылки типа «регистр-регистр». Использование упреждающей выборки позволяет выполнять большинство команд за один тактовый цикл (при извлечении их из кэш-памяти).
• Встроенный отладчик е1СЕ и 1ТЛО-интер-фейс, обеспечивающие функции внутрисхемного программирования ЕЫ^памяти, тестирования и граничного сканирования.
• Встроенная Flash-память объемом до 5l2 кбайт.
• Встроенная память SRAM объемом 24 кбайт.
• Функция защиты кода.
• Диспетчер памяти, преобразующий логические адреса памяти программ и памяти данных в адреса физических устройств памяти.
• Программно настраиваемый кэш команд.
• Интерфейс внешней памяти (EMI), поддерживающий различные типы памяти, в том числе SDRAM.
• Интерфейс внешнего хост-контроллера (EHI), обеспечивающий внешнему хосту доступ к памяти eCOGlx.
• Два независимых модуля DUART (Dual UART).
• Модуль DUSART (Dual USART), поддерживающий протоколы SPI/I2C/SCI/IR, а также позволяющий реализовать собственный последовательный протокол.
• ESPI.
• I2S.
• Отдельный сдвоенный интерфейс смарт-карт (Dual SCI).
• Сдвоенный 7-канальный !2-разрядный АЦП.
• Сдвоенный ^-разрядный ЦАП.
• Встроенный датчик температуры.
• Встроенный монитор питания.
• Модуль USB2.0 On-The-Go, поддерживающий высокоскоростной режим обмена данными (480 Мбит/с).
• l0/l00 Ethernet-контроллер MAC-уровня.
• ЖКИ-контроллер 4x32, поддерживающий режимы прямого и мультиплексированного управления и использующий простой регистровый интерфейс.
Рис. 1. Структурная схема МК семейства eCOG1x
• Интерфейс сопряжения с 8/16/32-разрядными устройствами.
• Богатый набор таймеров:
- два 16-разрядных таймера/счетчика общего назначения;
- два 16-разрядных ШИМ-таймера;
- 16-разрядный таймер захвата событий;
- 16-разрядный Clock-таймер;
- 16-разрядный сторожевой таймер;
- 24-разрядный таймер длительных интервалов;
- блок ШИМ-таймеров для управления двигателями.
• Гибкая система тактирования.
• Различные режимы электропитания.
• До ll6 портов ввода/вывода с допустимым
напряжением 3,3 В (некоторые выводы совместимы с 5 В логикой).
Рассмотрим подробнее некоторые особенности микроконтроллеров eCOGlx, отличия их от предыдущего семейства и впервые появившиеся периферийные модули.
Прежде всего следует отметить возросшую до 70 МГц тактовую частоту ядра, что означает почти трехкратное увеличение производительности МК по сравнению с семейством eCOGlk/^COGlm. Напряжение питания ядра понижено до l,8 В. По своим функциональным возможностям ядро аналогично предыдущей серии: гарвардская архитектура, 32 Мбайт (l6 Mxl6 бит) пространства памяти программ, l28 кбайт (64 кх16 бит) пространства памяти данных, поддержка операций отладки в полном объеме, сверхэкономичный режим Sleep, векторные прерывания, мощный набор арифметических операций.
Некоторые изменения затронули и модуль системного тактирования. В связи с увеличением тактовой частоты ядра был усовершенствован встроенный высокочастотный генератор. Теперь он может работать с кварцевыми кристаллами с резонансной частотой от 5 до l0 МГц. Как и в предыдущем семействе, имеется низкочастотный генератор, использующий часовой кварцевый резонатор (32,768 кГц). Для получения опорных тактовых сигналов можно использовать любой из этих генераторов или сразу оба, а также схемы ФАПЧ, которые подключаются к выходам этих генераторов и реализуют функцию умножения частоты. В результате частота внутреннего опорного тактового сигнала может достигать 200 МГц. Возможно последовательное соединение схем ФАПЧ: в этом случае от кварцевого генератора 32,768 кГц можно получить опорный тактовый сигнал с частотой почти l00 МГц, правда, за счет незначительного увеличения джиттера (то есть фазовых искажений) тактового сигнала. Опорные тактовые сигналы подаются на программируемый блок делителей, конфигурируя который (программно, с помощью регистров специального назначения), можно индивидуально настроить тактирование каждого узла МК: ядра CPU, устройств памяти, цифровых и аналоговых периферийных модулей.
В отличие от предыдущего семейства, в микроконтроллерах eCOGlx появился внутренний релаксационный генератор, отличающийся низким энергопотреблением и не требующий подключения каких-либо внешних резонаторов. Этот генератор используется для тактирования системы сразу после включения питания. Для точной настройки частоты (в пределах 1-11 МГц) используется внешний подстроечный резистор, хотя можно обойтись и без него.
Модуль таймеров/счетчиков дополнен блоком ШИМ-таймеров, предназначенных специально для управления двигателями. Основные его особенности перечислены далее:
• шесть ШИМ-выходов;
• два независимых периодических таймера;
• режимы функционирования с выравниванием по фронту или по центру;
• гибкий механизм синхронизации и тактирования независимых каналов;
• возможность попарного объединения каналов с установкой программируемых защитных интервалов (dead time) на верхней и нижней границе диапазона коммутации;
• высокая точность управления за счет «тонкой» регулировки момента переключения ШИМ.
Микроконтроллеры новой серии eCOGlx содержат до 116 портов ввода/вывода (зависит от корпусного исполнения конкретного МК), которые могут быть индивидуально настроены как входы, выходы или двунаправленные выводы, причем выходы могут быть обычными, с открытым стоком или с тремя состояниями. Возможно непосредственное подключение светодиодов к выходам. В режиме входа каждый порт ввода/вывода может генерировать прерывание, причем некоторые выводы совместимы с 5 В логикой. С помощью конфигуратора портов входные/выходные сигналы периферийных модулей и внутренних узлов МК могут быть разведены на различные выводы микросхемы (наиболее удобные для конкретного приложения) непосредственно из программы. Это позволяет при необходимости переопределять функционирование каждого вывода «на лету» (например, переходить на другой протокол последовательной связи) и выбирать только те периферийные модули, которые требуются для конкретного приложения. Наличие конфигуратора портов позволяет микроконтроллерам eCOGlx содержать большое количество периферийных модулей при относительно небольшом числе внешних выводов, что положительно отражается на стоимости всей системы. Для настройки конфигуратора портов можно использовать специальный графический редактор среды разработки CyanIDE, который позволяет исследовать различные конфигурации МК и схемы распределения его выводов, а также автоматически генерирует исходный код для инициализации регистров конфигурации.
Следует также отметить, что МК eCOGlx, как и микроконтроллеры предыдущего семейства, содержат параллельный интерфейс, состоящий из двух 16-разрядных параллельных шин ввода/вывода, которые можно развести на внешние выводы и независимо настроить на вход или выход (обычный, с открытым стоком или с тремя состояниями).
В новом семействе существенно расширены возможности аналоговой подсистемы. Микроконтроллеры eCOGlx содержат сдвоенный 14-канальный 12-разрядный АЦП последовательного приближения (фактически два 7-канальных 12-разрядных АЦП) с производительностью до 200 тыс. выборок в секунду по каждому каналу. Поддерживаются 10-, 8- и 6-разрядные режимы быстрого преобразования с производительностью 350, 500 и 800 тыс. выборок в секунду соответственно. Сдвоенная схема выборки/хранения позволяет осуществлять одновременную выборку сигналов по обоим каналам. Запуск преобразования может инициироваться внутренним или внешним сигналом (событием), поддерживаются однофазный и дифференциальный режимы работы, возможно измерение температуры и напряжения питания (с помощью встроенных датчиков).
В новых микроконтроллерах eCOGlx появилась возможность реализовать функцию цифро-аналогового преобразования без использования внешних устройств. Встроенный сдвоенный ЦАП с максимальным временем преобразования 4 мкс имеет разрешение 12 бит и поддерживает асинхронный (из программы) и синхронный (по таймеру) режимы запуска. Возможен одновременный запуск преобразования сразу по обоим каналам. По окончании преобразования ЦАП могут генерироваться прерывания и сигналы «пробуждения» CPU.
Организация подсистемы памяти
В микроконтроллерах Cyan Technology отображение устройств внутренней и внешней памяти в адресном пространстве памяти (программ и/или данных) не является фиксированным, а устанавливается программно с помощью диспетчера памяти, который преобразует логические адреса, используемые CPU, в физические адреса, закрепленные за устройствами памяти. При этом одна и та же область физической памяти может быть отображена как в адресном пространстве памяти программ, так и в адресном пространстве памяти данных. Возможно также перекрытие адресов, то есть отображение одной и той же физической памяти в различных адресных диапазонах.
Различные типы памяти, поддерживаемые eCOGlx (например, Flash-память, память SRAM, внешняя память, в том числе SDRAM), существенно отличаются друг от друга по времени доступа и энергопотреблению. Поэтому использование диспетчера памяти предостав-
ляет разработчику возможность гибко настраивать систему под требования конкретного приложения, добиваясь оптимального соотношения производительности и тока потребления. В итоге это позволяет существенно повысить эффективность программного кода и всей системы в целом. Например, часть памяти вИЛМ можно отобразить в пространстве памяти программ, предварительно переписав туда циклический участок программного кода из ЕЫЬ-памяти. Так как память вИЛМ является более быстрой и экономичной, чем ЕЫЬ-память, то передача управления программному коду, размещенному в вИЛМ, не только улучшает производительность МК, но и значительно снижает его ток потребления.
В микроконтроллерах еСОС1х объемы встроенных блоков памяти существенно (в несколько раз) увеличены по сравнению с предыдущим семейством: ЕЫЬ-память до 512 кбайт, память вИЛМ — до 24 кбайт. Е1а8Ь-память разделена на несколько секторов, каждый из которых может быть индивидуально защищен по чтению и/или записи. Это позволяет исключить случайное или преднамеренное изменение программных кодов, а также предотвратить нелегальное чтение и копирование фирменного ПО. Программирование ЕЫЬ-памяти осуществляется через отладочный интерфейс е1СЕ с использованием специального 1ТЛО-адаптера. Поддерживается возможность стирания и/или программирования ЕЫЬ-памяти из программы без использования каких-либо внешних источников напряжения, что позволяет производить обновление встроенного ПО в уже готовых (и эксплуатируемых) изделиях.
Длительность цикла обращения к ЕЫЬ-па-мяти может превышать период тактирования СРи. В связи с этим при извлечении команд из ЕЫЬ-памяти в цикл выборки команды добавляются несколько (в зависимости от частоты тактирования СРи) периодов ожидания, что приводит к некоторому снижению производительности системы. Традиционным решением этой проблемы является использование кэширования команд. Программа, запущенная из кэш-памяти, выполняется с той же скоростью, с какой тактируется процессор. Относительно встроенной кэш-памяти микроконтроллеров еСОС1х на данный момент нет подробной информации, однако в связи с возросшими объемами ЕЫЬ-памяти и памяти вИЛМ есть все основания предполагать, что объем кэш-памяти также будет увеличен. Сейчас же известно, что функциональность кэша ни в чем не будет урезана по сравнению с предыдущим семейством. Как и ранее, кэш можно будет использовать в различных конфигурациях, а также в качестве дополнительного внутреннего ОЗУ данных. Сохранится возможность индивидуальной блокировки каждой отдельной строки кэша. Следует также отметить, что использование кэширования команд позволяет не только повысить
производительность системы, но и уменьшить ее энергопотребление (см. раздел «Управление энергопотреблением»).
Для наращивания объема памяти можно использовать интерфейс внешней памяти EMI (External Memory Interface). Он позволяет подключать внешние устройства памяти и с помощью диспетчера памяти отображать их в адресном пространстве памяти программ и/или данных. EMI поддерживает два типа интерфейса памяти:
1. Шинный интерфейс, использующий отдельные шины адреса (25 разрядов) и данных (8 разрядов) или мультиплексированную шину адреса (24 разряда) и данных (16 разрядов). Поддерживаются различные типы памяти, в том числе Flash, SRAM, ROM.
2. Интерфейс SDRAM, обеспечивающий непосредственное подключение до 256 Мбайт 16-битной памяти типа SDRAM без использования каких-либо внешних компонентов. Поддерживаются четыре комбинации адреса строки/столбца, автоматическая регенерация, режимы пониженного энергопотребления, доступ к памяти за один цикл, пакетный режим доступа к памяти программ с использованием кэширования. Микроконтроллеры eCOGlx могут предоставить доступ к своей внутренней памяти другому (внешнему) микроконтроллеру. Обеспечивает такую возможность встроенный интерфейс внешнего хост-контроллера EHI (External Host Interface), который поддерживает передачу данных в режимах MMP и DMA. В режиме MMP (Memory Mapped Peripheral) внутреннее ОЗУ eCOGlx отображается в пространстве памяти внешнего устройства. Этот режим предназначен для обмена небольшими пакетами данных с произвольным доступом. В режиме DMA (Direct Memory Access) для передачи данных между внешним устройством и ОЗУ eCOGlx используется протокол квитирования связи, основанный на сигналах запроса и подтверждения. Режим DMA наиболее удобен для быстрой передачи больших блоков данных. При этом eCOGlx может быть как ведомым, так и ведущим устройством в канале DMA.
Управление энергопотреблением
В настоящее время 16-разрядные МК испытывают все более острую конкуренцию со стороны 32-разрядных МК, цены на которые постоянно снижаются. Следует признать, что практически по всем основным показателям (например, производительность, функциональные возможности) они превосходят 16-разрядные МК, и едва ли не единственным параметром, который не позволяет окончательно вытеснить их с рынка, является более низкое энергопотребление 16-разрядных МК по сравнению с 32-разрядными. В предыдущем семействе eCOGlk/^COGlm специалистам компании Cyan Technology удалось до-
стичь почти рекордных значений по этому показателю в своем классе устройств. По заявлениям Cyan Technology, микроконтроллеры новой серии eCOGlx превзойдут предыдущее семейство по экономичности в пересчете на один MIPS и будут идеальным решением для высокопроизводительных устройств с батарейным питанием.
Наряду с собственно невысоким энергопотреблением, определяемым структурными и технологическими особенностями, МК eCOGlx предоставляют широкие возможности по управлению энергопотреблением. Как известно, ток потребления МК напрямую зависит от частоты тактирования отдельных его узлов и модулей. Гибкая система тактирования позволяет для каждого внутреннего модуля МК выбирать необходимую частоту тактового сигнала (а также менять ее «на лету»), оптимизируя тем самым систему по соотношению производительность/энергопотребление. Кроме того, добиваясь дополнительного уменьшения энергопотребления, можно программно отключать неиспользуемые тактовые генераторы, схемы ФАПЧ, различные периферийные модули и включать их лишь по мере необходимости.
При отключении тактирования ядра CPU микроконтроллер переходит в режим минимального энергопотребления Sleep, в котором ток потребления составляет единицы микроампер. Выход из режима Sleep осуществляется по разрешенному прерыванию от периферийного модуля, внешнему сигналу «пробуждения» или при истечении заданного тайм-аута. Можно выбрать сигналы тактирования, которые будут автоматически отключаться при переходе в режим Sleep и/или включаться при «пробуждении».
Способствует уменьшению энергопотребления системы и кэширование команд. Объясняется этот факт тем, что память SRAM, используемая в качестве кэш-памяти, является более экономичной, чем Flash-память. Кроме того, ток, потребляемый кэш-памятью, пропорционален частоте функционирования, тогда как Flash-память имеет относительно высокий ток покоя при обращении к ней. При использовании кэширования команд Flash-память отключается до тех пор, пока не будет обнаружен промах кэша и не потребуется извлечение новой команды из Flash-памяти. Поэтому, если выполняемый (например, в режиме ожидания) программный код полностью разместить в кэш-памяти, то можно добиться очень низкого энергопотребления МК.
Для приложений с аккумуляторным питанием очень полезным является наличие встроенного датчика напряжения питания. На основе его показаний можно, например, определить степень разряда аккумулятора, рассчитать оставшееся время автономной работы, а при отсутствии возможности подзарядки принимать решения о переходе на более экономичные режимы работы.
Коммуникационные возможности
С выпуском семейства eCOGlx компания Cyan Technology существенно расширила коммуникационные возможности своих микроконтроллеров, которые теперь содержат встроенные средства поддержки всех уровней взаимодействия: внутрисистемного, меж-системного и сетевого.
Для реализации внутрисистемных связей предназначены следующие периферийные модули: сдвоенный SCI, расширенный SPI, I2S, а также DUSART. Кратко рассмотрим каждый из них.
Впервые появившийся в микроконтроллерах Cyan Technology модуль сдвоенного SCI представляет собой фактически два отдельных интерфейса смарт-карт, каждый из которых обеспечивает совместимость с ISO 7816, соответствие требованиям EMV 2000 и имеет следующие особенности. Это:
• поддержка многопроцессорного режима;
• поддержка протокола типа Т=0;
• детектирование и генерация сигнала ошибки передачи;
• автоматическая повторная передача поврежденных байт;
• автоматическое управление подключением питания карты;
• аппаратная реализация последовательностей подачи питания, сброса и отключения;
• гибкая система тактирования, программируемая скорость передачи данных;
• двойная буферизация как по тракту приема, так и по тракту передачи.
Модуль ESPI (Enhanced SPI) реализует в полном объеме функции стандартного интерфейса SPI, а также обеспечивает поддержку некоторых дополнительных функций, например:
• программируемый размер передаваемого блока данных от 8 до 16 бит;
• четыре линии выбора ведомого;
• поддержка множественных передач с программируемым временем задержки;
• программирование полярности и фазы тактового сигнала.
Еще один новый модуль, появившийся в МК линии eCOGl, — встроенный интерфейс I2S (Inter-IC Sound Standard). Он предназначен для построения высокоскоростных последовательных каналов, ориентированных на передачу цифровых аудиоданных внутри устройства, и позволяет подключать к МК звуковые кодеки и специализированные процессоры для обработки звука (например, Dolby ProLogic DPL 351xA). Поддерживаются один канал приема и один канал передачи.
Модуль DUSART уже знаком разработчикам, имевшим опыт работы с микроконтроллерами eCOGlk/^COGlm. Он представляет собой сдвоенный последовательный порт общего назначения, каждый канал которого может поддерживать один из следующих фиксированных протоколов:
• стандартный UART;
• SPI, способный функционировать в режиме ведущего или ведомого и обеспечивающий поддержку в ведущем режиме нескольких ведомых устройств;
• I2C, поддерживающий высокоскоростной обмен данными и позволяющий работать на шине с несколькими ведущими;
• IR/IrDA-совместимый интерфейс с поддержкой ASK, PM, PPM кодировок;
• SCI (Smart Card Interface), соответствующий ISO 7816 и поддерживающий все функции, необходимые для реализации терминальной части (контроллера) интерфейса смарт-карт;
• пользовательский последовательный интерфейс, который позволяет пользователям определять и поддерживать собственные несложные протоколы последовательной связи, а также может использоваться в качестве дополнительного UART.
Здесь следует отметить, что интерфейсы
UART модуля DUSART могут использоваться также и на уровне межсистемного взаимодействия для связи различных устройств по протоколу RS-232. Кроме того, микроконтроллеры eCOGlx содержат два независимых модуля DUART, что позволяет организовать четыре отдельных полнофункциональных UART-порта. Перечислим лишь основные их характеристики:
• двойная буферизация;
• ширина поля данных 5, 6, 7 или 8 бит;
• 1, 1,5 или 2 стоповых бита;
• режимы работы с проверкой на четность, нечетность и без контроля по четности;
• автоматическая вставка защитного временного интервала (от 0 до 64 битовых периодов) по окончании передачи пакета;
• генерация прерывания при истечении тайм-аута после приема последнего пакета данных;
• программная генерация обрыва линии;
• программируемый генератор скорости передачи данных;
• генерация прерываний при заполнении/ опустошении буферов приема/передачи;
• обнаружение ошибок на приеме (ложные стартовые биты, неверный бит четности, ошибки формата);
• программируемая полярность данных;
• фильтрация шумов.
Следует также добавить, что каждый модуль DUART поддерживает функции энергосбережения, позволяющие автоматически включать тактирование UART только на период приема или передачи данных. Все UART-порты функционируют полностью независимо от CPU, что позволяет переводить CPU в режим Sleep на время приема или передачи. Кроме этого, каждый UART может обеспечить полный интерфейс управления квитированием модемной связи.
Однако наибольший интерес представляет другой интерфейс межсистемной связи — USB On-The-Go. В настоящее время последовательный протокол USB очень популярен
и используется повсеместно. Информации о нем предостаточно, поэтому мы не будем описывать все его достоинства и преимущества. Напомним читателям лишь о том, что представляет собой дополнение On-The-Go к спецификации USB 2.0.
Как известно, изначально стандарт USB был разработан для связи компьютера с различными периферийными устройствами: модемом, принтером, сканером, цифровыми фотоаппаратами и видеокамерами, CD- и MP3-плеерами, Flash-накопителями и т. п. Однако очень часто возникают ситуации, когда требуется иметь прямое соединение между устройствами, избегая передачи данных через компьютер. Например, печатать фотоснимки на принтере напрямую с цифрового фотоаппарата или обмениваться музыкальными файлами между CD-плеерами. Дляреше-ния этих проблем и была разработана спецификация OTG (USB On-The-Go, USB «на ходу»), которая решает следующие задачи:
• специфицирование миниатюрных разъемов и соответствующих кабелей;
• дополнение устройств, традиционно играющих роль периферии персональных компьютеров, способностью работать в режиме хоста (point-to-point connection);
• определение двухролевого устройства (dual-role device), имеющего возможность работать попеременно в режиме хоста и в режиме периферии;
• ограничение потребления питания от шины до 100 мА для устройств с батарейным питанием.
Интерфейс USB OTG, интегрированный в микроконтроллеры eCOGlx, полностью соответствует стандарту на шину USB для высокоскоростных каналов и дополнению On-The-Go к спецификации USB 2.0. Он позволяет реализовать двухролевое устройство USB OTG и поддерживает соединения типа «точка-точка» с одним высоко-, полно- или низкоскоростным устройством. Поддерживаются протоколы запроса сеанса SRP (Session Request Protocol) и согласования роли хоста HNP (Host Negotiation Protocol), сигналы Suspend и Resume. Для реализации полнофункционального USB 2.0 OTG необходим внешний ULPI-интерфейс, позволяющий обеспечить высокую (480 Мбит/с) скорость передачи данных.
При функционировании в режиме хоста встроенный интерфейс USB OTG поддерживает одно низко-, полно- или высокоскоростное устройство. При функционировании в режиме периферии поддерживаются полноскоростной и высокоскоростной режимы передачи данных. Поддержка функционирования в полноскоростном и низкоскоростном режимах обеспечивается внутренним контроллером PHY-уровня. В качестве выделенного буфера Endpoint используются 4 кбайт внутренней памяти SRAM. Для пересылки данных Endpoint предусмотрен быстрый и эффективный канал DMA к внутрен-
Рис. 2. Конфигурирование периферии в среде CyanIDE
ней памяти. Более подробную информацию относительно встроенного интерфейса USB OTG компания Cyan Technology обещает представить в ближайшее время.
Итак, нерассмотренными остались лишь средства сетевого взаимодействия, интегрированные в микроконтроллеры eCOGlx. Они представлены контроллером Ethernet 10/100 MAC-уровня, который полностью соответствует стандарту IEEE 802.3 CSMA/CD, поддерживает полнодуплексный и полудуплексный режимы функционирования, аппаратную фильтрацию адресов, функции управления энергопотреблением (включая режимы Suspend и Stop). Кроме того, имеется возможность организовать канал DMA к внутренней памяти, поддерживающий дескрипторы связанных и кольцевых буферов и позволяющий реализовать быстрый и эффективный обмен данными.
Для реализации физического уровня необходимо использовать внешний контроллер, например Intel LX972. Для работы LX972 требуется тактовая частота 25 МГц, которая может быть получена от встроенного генератора (с подключением внешнего кварцевого резонатора) или от тактового генератора МК.
Интегрированная среда обработки CyanIDE
Одновременно с выпуском нового семейства микроконтроллеров компания Cyan Technology обновляет и интегрированную среду разработки CyanIDE, последняя версия которой (V1.3) уже сейчас доступна на официальном web-сайте компании [1]. Набор программных модулей, входящих в состав CyanIDE, традиционен для подобных продуктов и содержит:
• полнофункциональный компилятор ANSI C;
• ассемблер;
• линкер;
• все необходимые библиотеки языка C;
• симулятор;
• внутрисхемный программатор;
• внутрисхемный эмулятор/отладчик.
Пакет CyanIDE позволяет разрабатывать,
конфигурировать, тестировать и отлаживать любые разработки с использованием микроконтроллеров Cyan, при этом он распространяется бесплатно без каких-либо функциональных ограничений. Простой и интуитивно понятный графический интерфейс (рис. 2) позволяет в визуальном режиме в кратчайшие сроки конфигурировать периферию, что избавляет разработчика от изучения сотен страниц документации и тем самым значительно снижает время разработки и сроки выпуска на рынок нового продукта. С помощью технологии Drag-and-Drop можно просто захватывать мышью требуемые периферийные модули и перетаскивать их в поле проектирования МК. Щелкнув правой кнопкой на выбранном модуле, можно вызвать окно настройки его параметров и выбрать необхо-
димые значения (на рис. 2 показан пример настройки параметров порта ИЛИТВ). После выбора и настройки всех периферийных модулей, требуемых для приложения, редактор сам рассчитает наилучший и наиболее оптимальный способ разводки входных/выходных сигналов на внешние выводы МК. Графический редактор позволяет также жестко закрепить сигналы периферийных модулей за определенными внешними выводами.
Примерно так же, без написания программного кода, осуществляется настройка диспетчера памяти и модуля системного тактирования. С помощью конфигуратора памяти (рис. 3) выбирается блок трансляции адресов и устанавливаются базовые логический и фи,
! 1 *
Рис. 3. Конфигурирование памяти в среде CyanIDE
зический адреса, а также размер отображаемого сегмента памяти. Кроме того, выбранный блок памяти можно перетаскивать, используя Drag-and-Drop, в область графического отображения пространства памяти (слева внизу на рис. 3) и с помощью мыши изменять его размер и положение. Сигналы тактирования и сброса настраиваются в окне свойств проекта, в котором для каждого модуля или группы модулей задается источник опорного тактового сигнала и выбирается подходящий коэффициент деления.
После окончания процесса конфигурирования редактор сам сгенерирует код инициализации, и разработчику останется лишь вставить его в свой проект. Таким образом, разработчик освобождается от написания типового программного кода и все усилия может сосредоточить на решении задач, специфичных для конкретного приложения.
Отдельно следует упомянуть интегрированный внутрисхемный отладчик/эмулятор среды СуапГОЕ, который использует встроенный интерфейс еІСЕ и не только реализует весь набор стандартных для подобных программ функций, но и поддерживает ряд дополнительных возможностей. Например, можно отлаживать уже запрограммированный МК, не имея исходного кода. При этом запущенную программу можно останавливать (специальной командой или в точках останова, которые расставляются в окне дизассемблера) для просмотра и/или модификации состояния внутренних модулей МК. Более того, СуапГОЕ позволяет осуществлять загрузку целевого МК и производить его отладку на объектных кодах, не пользуясь исходными текстами программ, что может использоваться, например, в производственной среде.
Из новых функций CyanIDE V1.3 следует особо выделить функцию Switch-Chip, с помощью которой можно практически «одним щелчком мыши» перевести приложение с одного микроконтроллера на другой. В связи с выходом нового семейства eCOGlx эта возможность представляется очень полезной, так как позволяет быстро перенести готовое ПО (разработанное для предыдущего семейства eCOGlk/^COGlm) на новую платформу. Кроме того, если в процессе разработки или обновления ПО потребуется, например, больше памяти или дополнительная периферия, то разработчик может быстро выбрать соответствующий МК и переконфигурировать свое приложение.
Заключение
Микроконтроллеры семейства eCOGlx являются оригинальным и высокоинтегрированным решением с относительно низкой стоимостью. Они способны успешно конкурировать с подобными решениями других производителей. Высокая производительность в сочетании с низким энергопотреблением, богатая периферия, которая включает широкий набор самых популярных и востребованных коммуникационных интерфейсов, расширяют спектр применения микроконтроллеров eCOGlx, при этом существенно снижая стоимость конечных
систем. Область применения новых МК охватывает самые различные направления: это и компьютерная периферия, и измерительная аппаратура, и медицинское оборудование, и торгово-кассовые терминалы, и промышленные роботы, и устройства GPS-навигации и многое-многое другое.
Интерфейс I2S и контроллер ЖКИ в сочетании с низким уровнем энергопотребления делают eCOGlx весьма привлекательным решением для построения портативных аудиоустройств: цифровых диктофонов, CD/MP3-плееров и т. п. Наличие сдвоенного АЦП и шести ШИМ-выходов открывает еще одну область применения eCOGlx — системы управления двигателями. Встроенный Ethernet-контроллер позволяет интегрировать продукты на основе eCOGlx в TCP/IP-сети.
Однако следует иметь в виду, что конкуренция во всех этих секторах рынка очень высока. Однозначно сказать, какое решение является лучшим, невозможно: необходимо учитывать специфику каждого конкретного приложения. Но уже сейчас ясно, что 16-разрядные микроконтроллеры Cyan eCOGlx, обладая очень большими функциональными возможностями и низким энергопотреблением, а также благодаря бесплатному профессиональному программному обеспечению, в самое короткое время завоюют популярность и найдут свое применение во многих приложениях. ■