Микроконтроллеры Cyan Technology: развитая периферия плюс быстродействие и экономичность
В статье описываются высокопроизводительные экономичные 16-разрядные микроконтроллеры семейства eCOG1 компании Cyan Technology, ориентированные на самый широкий спектр встраиваемых приложений. Рассмотрены особенности их работы, применяемые архитектурные решения, а также программно-инструментальные средства разработки и отладки.
Введение
В настоящее время на рынке устройств микроэлектроники в сегменте 16-разрядных микроконтроллеров (МК) представлено большое число производителей, однако продукция компании Cyan Technology (www.cyantechnology.com) резко выделяется на фоне аналогичных устройств конкурирующих фирм. Вместо наращивания номенклатуры изделий, отличающихся друг от друга объемом памяти, набором периферийных модулей, корпусным исполнением и пр., Cyan Technology производит лишь несколько модификаций МК, обеспечивающих наилучшие технические параметры и максимально насыщенных всевозможной периферией. Если производитель устройств электроники выпускает широкую гамму изделий, то выбор продукции Cyan Technology позволит не только забыть о проблемах комплектации производства различными модификациями МК, но и существенно выиграть в цене при заказе большого количества МК одной номенклатуры.
В данной статье рассматривается семейство eCOG1 недорогих высокопроизводительных экономичных МК, в состав которого входят всего два 16-разрядных устройства — eCOG1k и μCOG1m. Они выпускаются в корпусах различного типа (128-выводной TQFP размером 14×14 мм и 81-выводной LFBGA размером 8×8 мм соответственно), однако имеют одинаковую внутреннюю структуру (рис. 1). Из-за меньшего количества внешних выводов в МК μCOG1m некоторые из портов ввода-вывода соединены вместе (попарно), поэтому не все порты можно включать одновременно, по крайней мере один порт из каждой пары должен быть отключен. В остальном данные МК идентичны, поэтому далее подробно рассмотрим eCOG1k.
Микроконтроллер eCOG1k
Микроконтроллер eCOG1k имеет структуру, показанную на рис. 1, и обладает следующими основными характеристиками:
- 16-разрядное ядро ЦПУ с гарвардской архитектурой и тактовой частотой до 25 МГц.
- Напряжение питания от 3,0 до 3,6 В.
- Развитая система команд (в том числе арифметические операции), поддерживающая гибкие режимы адресации, а также пересылки типа «регистр–регистр».
- Встроенный отладчик eICE, позволяющий внутрисхемно программировать МК и осуществлять отладку.
- Диспетчер памяти, позволяющий отображать одну и ту же физическую память как в адресном пространстве памяти программ, так и в адресном пространстве памяти данных.
- Встроенная Flash-память объемом 32 K слов с возможностью страничного стирания и программирования через интерфейс eICE или из прикладной программы.
- Два UART.
- Два многопротокольных USART, поддерживающих интерфейсы I2C, SPI, инфракрасный интерфейс, интерфейс смарт-карт и определяемый пользователем последовательный интерфейс.
- Интерфейс внешнего хост-контроллера, обеспечивающий внешнему хосту доступ к памяти eCOG1k.
- 29 GPIO, настраиваемые как входы или выходы (обычные или с открытым стоком) и способные генерировать прерывания по заданному фронту или уровню.
- Два 8/16-разрядных параллельных порта, настраиваемые как входы или выходы (обычные или с открытым стоком) и предназначенные для подключения внешних устройств с параллельным интерфейсом.
- Семь 16-разрядных таймеров-счетчиков и один 24-разрядный таймер длительных интервалов, прерывания от которых можно использовать для пробуждения МК из режима «сна».
- Интерфейс внешней памяти, поддерживающий различные типы памяти (в том числе SDRAM).
- 4-канальный 12-разрядный АЦП.
- Встроенные источник опорного напряжения, датчик температуры, монитор напряжения питания.
- Умножение частоты до 4,9152 МГц и 100 МГц при использовании кварцевых резонаторов 32,768 кГц и 5,0 МГц соответственно. Автоматический выбор источника тактирования при включении питания.
- Различные режимы электропитания, отдельные сигналы тактирования и сброса для периферийных модулей и процессорного ядра.
Ядро МК eCOG1k представляет собой полноценный 16-разрядный RISC-микропроцессор с гарвардской архитектурой и мощным набором команд, ориентированным на языки высокого уровня, в частности С. Основные характеристики ядра следующие:
- Максимальная тактовая частота — 25 МГц.
- Сверхэкономичный режим «сна».
- 16-разрядный диапазон адресации памяти данных (64 К×16 бит).
- 24-разрядный диапазон адресации памяти программ (16 М×16 бит).
- Поддержка операций отладки.
- Векторные прерывания.
- Мощные математические функции, включая:
- умножение 16×16 со знаком и без знака;
- деление 32/16 без знака;
- однотактный многорегистровый циклический сдвиг.
МК имеет два банка встроенной кэш-памяти, которые могут использоваться в различных конфигурациях для кэширования команд, извлекаемых из flash-памяти, а также в качестве дополнительного ОЗУ данных. Кэширование команд позволяет не только значительно улучшить производительность МК по сравнению с традиционными flash-микроконтроллерами, но и существенно снизить энергопотребление. Такой эффект объясняется тем, что память SRAM, используемая в качестве кэшпамяти, является более экономичной, чем flash-память. Flash-память отключается до тех пор, пока не будет обнаружен промах кэша и не потребуется извлечение новой команды из flash-памяти. Более того, ток, потребляемый кэш-памятью, пропорционален частоте функционирования, тогда как flash-память имеет относительно высокий ток потребления при обращении к ней. Поэтому, если выполняемый (например, в режиме ожидания) программный код полностью разместить в кэш-памяти, то можно добиться очень низкого энергопотребления МК.
Поскольку ядро ЦПУ использует упреждающую выборку одной команды, то есть содержит двухступенчатый конвейер, то при извлечении команд из внутренней кэш-памяти время выполнения большинства из них составляет всего один тактовый цикл. При извлечении команд из flash-памяти в цикл выборки команды добавляется несколько (в зависимости от частоты тактирования ядра ЦПУ) периодов ожидания, что может привести к некоторому снижению производительности системы. Несмотря на это, МК семейства eCOG1 демонстрируют одно из лучших соотношений производительности и энергопотребления среди 16-разрядных микроконтроллеров (таблица).
МК содержит следующие блоки внутренней памяти:
- 64 Кбайт flash-памяти (32 К×16);
- 4 Кбайт ОЗУ (2 К×16);
- 2 Кбайт кэш-памяти (1 К×16).
Хотя объем внутренней памяти невелик по сравнению с диапазоном адресного пространства, можно добавить внешние устройства памяти. Для отображения всех устройств внутренней и внешней памяти в адресном пространстве памяти программ и памяти данных используется диспетчер памяти, который преобразует логические адреса, видимые ЦПУ, в физические адреса, закрепленные за устройствами памяти. Для каждого блока физической памяти диспетчер памяти содержит соответствующие блоки трансляции адресов, которые позволяют отображать одну и ту же область физической памяти как в адресном пространстве памяти программ, так и в адресном пространстве памяти данных (рис. 2). Кроме этого, возможно перекрытие ячеек физической памяти, то есть закрепление за различными устройствами памяти общего диапазона адресов. Такой механизм работы с памятью предоставляет разработчику возможность не только настраивать систему под требования конкретного приложения, но и очень гибко управлять ее производительностью и энергопотреблением, выбирая оптимальное для решаемой задачи соотношение этих параметров.
Однако наибольшее влияние на производительность и энергопотребление МК оказывают настройки модуля системного тактирования. Модуль тактирования был разработан с учетом собственного пониженного потребления энергии, что является необходимым условием для систем с питанием от батарей элементов, когда ЦПУ не функционирует непрерывно. Модуль тактирования содержит два встроенных тактовых генератора, которые используют кварцевые резонаторы 32,768 кГц и 5 МГц. Опорные тактовые сигналы с выходов этих генераторов подаются на схемы ФАПЧ, которые умножают их по частоте и генерируют еще два опорных тактовых сигнала: 4,9152 МГц и 100 МГц соответственно (рис. 3). Эти четыре опорных тактовых сигнала подаются на цепи делителей для генерации производных от них (деленных по частоте) сигналов тактирования ядра ЦПУ, памяти, цифровых и аналоговых периферийных модулей.
Еще один вариант генерации опорного тактового сигнала реализуется путем последовательного соединения схем ФАПЧ, в результате чего от кварцевого генератора 32 кГц можно получить тактовый сигнал достаточно высокой частоты (приблизительно 98 МГц). Это позволяет сэкономить на внешних компонентах, используемых для высокочастотного кварцевого генератора, при незначительном увеличении фазовых искажений тактового сигнала.
Модуль тактирования позволяет независимо включать и отключать тактовые генераторы, схемы ФАПЧ, сигналы тактирования ЦПУ, регистрового интерфейса, памяти, индивидуальные сигналы тактирования периферийных модулей, добиваясь дополнительного уменьшения энергопотребления системы. При отключении тактирования ЦПУ микроконтроллер переходит в режим «сна», в котором ток потребления составляет единицы микроампер. Модуль тактирования поддерживает функционирование ЦПУ в состоянии «сна» путем управления реакцией ЦПУ на условия побуждения, которыми могут быть прерывание от периферийного модуля, внешний сигнал пробуждения или истечение тайм-аута «сна». Можно выбрать сигналы тактирования, которые будут автоматически отключаться при переходе ЦПУ в режим «сна» или включаться при пробуждении ЦПУ.
Так как ядро ЦПУ и периферийные модули используют разные сигналы тактирования, это приводит к незначительному увеличению (на 4–6 циклов тактирования ЦПУ) времени реакции на прерывания. Это объясняется тем, что почти всегда сигнал прерывания должен переходить из одного домена тактирования в другой и повторно синхронизироваться. В общей сложности контроллер прерываний поддерживает до 64 векторных прерываний и исключительных ситуаций, источниками которых могут быть либо внешние события, либо события, генерируемые периферийными модулями МК.
Кроме впечатляющего соотношения производительности и энергопотребления, МК компании Cyan Technology отличает еще одна особенность — количество сигналов периферийных модулей и реализованных функций специального назначения превышает требуемое для них количество внешних выводов МК. Поэтому в структуру МК введен конфигуратор портов, с помощью которого внешние выводы, объединенные в 12 портов ввода-вывода, можно назначить различным периферийным сигналам непосредственно из прикладной программы. Такой подход позволяет при необходимости переопределять функционирование каждого вывода «на лету» (например, переходить на другой протокол последовательной связи) и выбирать только те периферийные модули, которые требуются для конкретного приложения. Наличие конфигуратора портов позволяет eCOG1k содержать большое количество периферийных модулей при относительно небольшом числе внешних выводов, что положительно отражается на стоимости всей системы. Для настройки конфигуратора портов можно использовать специальный графический редактор среды разработки CyanIDE, который позволяет исследовать различные конфигурации МК и схемы распределения его выводов, а также автоматически генерирует исходный код для инициализации регистров конфигурации.
МК семейства eCOG1 поддерживают 29 сигналов ввода-вывода общего назначения. Каждый из них можно развести на внешние выводы с помощью конфигуратора портов, включить, отключить (перевести в высокоимпедансное состояние), настроить как вход (с возможностью генерации прерываний по фронту или по уровню, а также условий пробуждения ЦПУ), как выход (обычный, с открытым стоком или с открытым истоком). Кроме этого, МК содержит две 16-разрядные параллельные шины ввода-вывода, которые можно развести на внешние выводы и независимо настроить на вход или выход (обычный или с открытым стоком).
Другой отличительной особенностью МК семейства eCOG1 является поддержка большого многообразия последовательных интерфейсов, которые реализуются модулями DUART (сдвоенный UART) и DUSART (сдвоенный USART).
Модуль DUART состоит из двух отдельных UART. Каждый из них имеет 16-разрядные буферы приема-передачи, программируемый генератор скорости передачи, обеспечивает фильтрацию шумов и обнаружение ошибок на приеме, а также поддерживает функции энергосбережения, позволяющие автоматически включать тактирование UART только на период приема или передачи данных. Эти UART функционируют полностью независимо от ЦПУ, что позволяет переводить ЦПУ в режим «сна» на время приема или передачи. Кроме этого, каждый UART может обеспечить полный интерфейс управления квитированием модемной связи.
Модуль DUSART представляет собой сдвоенный последовательный порт общего назначения, каждый канал которого может поддерживать один из следующих фиксированных протоколов:
- Стандартный UART.
- SPI, позволяющий eCOG1k функционировать в режиме ведущего или ведомого и обеспечивающий поддержку в ведущем режиме нескольких ведомых устройств.
- I2C, позволяющий, помимо стандартных возможностей, передавать данные со скоростью до 3,4 Мбит/с и работать на шине с несколькими ведущими.
- Протоколы инфракрасной связи, используемые в бытовой технике (RC-5, ASK, PPM), а также низкоскоростной IrDA.
- SCI (Smart Card Interface), соответствующий ISO 7816 и поддерживающий все функции, необходимые для реализации терминальной части (контроллера) интерфейса смарт-карт.
- Пользовательский последовательный интерфейс, который позволяет пользователям определять и поддерживать собственные несложные протоколы последовательной связи, а также может использоваться в качестве дополнительного UART.
Интегрированная на кристалле периферия не ограничивается большим набором последовательных интерфейсов. МК eCOG1k содержит также богатый набор таймеров-счетчиков:
- 16-разрядный таймер обратного отсчета, способный функционировать в качестве часов реального времени.
- Два 16-разрядных таймера-счетчика общего назначения.
- Два 16-разрядных таймера, способные генерировать ШИМ-модулированный выходной сигнал.
- 16-разрядный сторожевой таймер, используемый для сброса МК после истечения отведенного времени при появлении ошибочного состояния.
- 16-разрядный таймер захвата событий.
- 24-разрядный таймер длительных интервалов.
- 8-разрядный счетчик тайм-аута «сна».
Прикладная программа может изменять большинство параметров каждого таймера, включая значения периода отсчета, перезагрузки, частоту тактирования, а также разрешать и запрещать прерывания от таймеров.
Для расширения функциональных возможностей МК разработаны интерфейсы внешней памяти и внешнего хост-контроллера. Интерфейс внешней памяти позволяет отображать в адресном пространстве памяти программ и данных различные устройства памяти (Flash, SRAM, ROM), а также обеспечивает непосредственное подключение SDRAM-памяти без использования каких-либо дополнительных внешних компонентов, что нечасто встречается в 16-разрядных микроконтроллерах.
Интерфейс внешнего хост-контроллера обеспечивает быстрый обмен 16- или 32-разрядными данными между eCOG1k и внешним микропроцессорным устройством. При этом возможны два режима взаимодействия:
- Отображение ОЗУ eCOG1k в адресном пространстве памяти внешнего хост-контроллера. Данный режим предназначен для обмена небольшими пакетами данных с произвольным доступом.
- Обмен данными в режиме прямого доступа к памяти (DMA) с использованием сигналов запроса и подтверждения для квитирования связи. Этот режим предназначен для копирования больших блоков данных.
Богатый набор цифровой периферии дополняют аналоговые периферийные модули: 12-разрядный сигма-дельта АЦП, источник опорного напряжения, датчик температуры, монитор напряжения питания. АЦП функционирует с фиксированной частотой выборки (приблизительно 8 кГц) и может осуществлять выборку до 4 различных внешних аналоговых сигналов, а также сигналов от внутреннего датчика напряжения питания и от встроенного датчика температуры. Возможен дифференциальный режим измерения входных напряжений, позволяющий удалять синфазный шум симметричной пары сигналов.
МК содержит 64 кбайт (32 К×16) встроенной энергонезависимой flash-памяти, программирование и стирание которой не требует каких-либо источников повышенного напряжения и может осуществляться как из прикладной программы, так и через порт отладки. Это позволяет легко производить обновление программного обеспечения готовых изделий даже в процессе эксплуатации, что существенно увеличивает время их жизни на рынке. Предусмотрена возможность защиты flash-памяти по чтению и записи.
Программно-инструментальные средства разработки и отладки
Продвижение любого микроконтроллера на рынке устройств микроэлектроники в немалой степени зависит от доступности и функциональности программно-инструментальных средств разработки и отладки. Cyan Technology уделяет этому большое внимание и сопровождает свою продукцию полноценной документацией, отладочными и оценочными комплектами, программным обеспечением, поддержкой пользователя на веб-сайте и с помощью электронной почты.
Для семейства eCOG1 компания Cyan Technology предлагает отладочный комплект eCOG1 Development Kit и его облегченную (и, соответственно, более дешевую) версию — оценочный комплект eCOG1k Evaluation Kit. В состав каждого из них входит отладочная плата с установленным МК eCOG1k и различной периферией, а также программный пакет средств поддержки. Эти комплекты позволяют досконально исследовать требуемые конфигурации и режимы работы МК. С их помощью можно быстро проверить проектируемое изделие, оценить его технические характеристики и изучить поведение разрабатываемой системы в реальных условиях.
Для разработки, программирования и отладки систем на основе МК семейства eCOG1 компания Cyan Technology предлагает интегрированную среду разработки CyanIDE, которая распространяется бесплатно и позволяет реализовать весь цикл проектирования от написания прикладной программы до программирования МК и отладки целевой системы. Данный программный пакет содержит средства управления проектом, редактор кода, ассемблер, Си-компилятор, библиотеки функций, компоновщик, симулятор, эмулятор, отладчик и конфигуратор ресурсов, а интуитивно понятный интерфейс пользователя и наличие обширной документации значительно ускоряют процесс адаптации разработчика к новому для него семейству микроконтроллеров.
Для отладки приложений и внутрисхемного программирования МК выпускаются специальные адаптеры, которые соединяют персональный компьютер через порт LPT или USB c отладочным eICE-портом микроконтроллера и позволяют в полной мере реализовать все многообразие возможностей пакета CyanIDE.
Заключение
Учитывая низкую стоимость МК семейства eCOG1, их высокую производительность и малое энергопотребление, развитую периферию, а также доступные программно-инструментальные средства разработки и отладки, можно с уверенностью сказать, что по совокупности параметров данные МК занимают одно из лидирующих положений в своем сегменте рынка и представляют собой весьма привлекательное решение для использования в современных мобильных устройствах, требующих высокой вычислительной мощности и длительного времени автономной работы при низких аппаратных затратах.
Область применения данных МК чрезвычайно широка, но наиболее перспективным видится их использование в сфере телекоммуникационных приложений: интерфейсы Ethernet, BlueTooth и Wi-Fi, PDA, приборы GPS-навигации, системы безопасности и разграничения доступа, портативная контрольно-измерительная аппаратура, удаленные системы сбора информации и др.
В настоящее время в планах Cyan Technology стоит расширение функциональных возможностей устройств семейства eCOG1 и выпуск нового МК eCOG1x, дополненного контроллерами USB, ЖКИ, Fast Ethernet, с более высокой тактовой частотой ядра и увеличенным объемом памяти.