Компоненты и технологии, № 3'2005
Первый среди равных.
Микроконтроллер Cyan Technology eCOG1
Разговоры о необходимости и важности микроконтроллеров в современной жизни уже перестали быть актуальными: без них немыслимо ни современное производство, ни окружающая нас техника. Современный рынок микроконтроллеров позволяет решать практически любые проблемы, вопрос только в выборе наиболее подходящего.
Николай Ракович
premier-electric.com
Развитие микроконтроллеров в настоящее время идет, во-первых, по пути снижения энергопотребления (резко возросла доля мобильных устройств), во-вторых, по пути повышения функциональности микроконтроллеров. Одним из лидеров этого направления является компания Cyan Technology, выпустившая микроконтроллер eCOG1, фактически первый среди равных в своей «весовой категории».
eCOG1 представляет собой 16-разрядный микроконтроллер (рис. 1), выполненный на основе гарвардской архитектуры с 24-разрядным линейным адресным пространством команд (32 Мбайта) и 16-разрядным, тоже линейным, адресным пространством данных (128 кбайт). К этому надо добавить встроенную Flash-память на 64 кбайт и статическое ОЗУ на 6 кбайт. Минимальное потребление (табл. 1) не может не порадовать разработчиков мобильных и автономных систем.
Но на этом список особенностей микроконтроллера eCOG1 не заканчивается. Вкратце перечислим остальные.
Таблица 1. Потребление eCOG1 в различных режимах работы
Режим работы, тактовая частота Номинальное значение тока потребления
Выполнение команд, 25 МГц 11 мА
Выполнение команд, 2,5 МГц 1,1 мА
Выполнение команд, 16 кГц 10,1 мкА
Ждущий режим 0,4 мкА
Векторные прерывания, набор регистров прерываний, выполнение большинства команд за один цикл.
Набор мощных команд, включая арифметические операции, гибкие режимы адресации и перемещения данных из регистра в регистр.
Встроенная отладка с помощью интерфейса eICE, позволяющего загружать управляющие команды, осуществлять запуск, останов, пошаговое выполнение и использовать точки останова. Управление памятью объединяет (для пользователя) внутреннюю и внешнюю память в одну.
Компоненты и технологии, № 3'2005
CODE
SIDE
Physical to Logical Translation
Physical Arrangement
Рис. 2. Принцип работы блока управления памятью (MMU)
Logical Arrangement
Встроенная Flash-память на 32х103 слов, постраничное стирание, программирование по словам (через eICE).
Двойные асинхронные порты с программируемой скоростью передачи данных, формированием старта, стопа и четности, а также двойной буферный интерфейс и определение ошибочно принятого кадра.
Двойные независимые синхронно-асинхронные последовательные порты с поддержкой многих протоколов, в частности, I2C, SPI, Smart Card, Consumer IrDA и заданные пользователем.
Интерфейс внешнего хоста с поддержкой DMA, 16/32-разрядная шина данных с квитированием связи (снятие головной боли у разработчиков систем связи) и кольцевые буферы.
29 битов ввода-вывода общего назначения и параллельного ввода-вывода, каждый из которых конфигурируется отдельно как входной, выходной, с открытым стоком или открытым истоком, и возможностью генерации прерывания по заданному уровню или фронту.
Два 16-разрядных параллельных порта, которые настраиваются как на вход, так и на выход с открытым стоком или истоком для работы с внешними устройствами. Семь 16-разрядных счетчиков-таймеров и один 24-разрядный таймер для больших интервалов времени, каждый из которых формирует прерывания для запуска центрального процессора CPU (рис. 1). Интерфейс внешней памяти с поддержкой различных стандартных SRAM и SDRAM для хранения команд и данных. 12-разрядный аналого-цифровой преобразователь с частотой выборки 8 кГц, 4-канальным мультиплексором и внутренним (можно использовать и внешний) источником опорного напряжения.
Встроенный датчик температуры и схема измерения напряжения питания. Кварцевый генератор на 32 кГц и 5 МГц с внутренним умножителем до 2,5 МГц и 50 МГц соответственно и алгоритмом автоматического выбора тактовой частоты.
• Управление питанием отдельно для периферийных устройств eCOGl и ядра (при котором отдельно заданная периферия работает, а центральный процессор находится в спящем режиме.
• Простые в применении программные средства (бесплатные): компилятор ANSI С, макроассемблер, отладчик 1СЕ, программа моделирования, а также недорогой стартовый комплект.
• ОС реального времени PicOS (тоже бесплатная).
Поскольку список особенностей eCOGl не ограничился двумя-тремя пунктами, то рассмотрим наиболее интересные (с нашей точки зрения). Если кого-то заинтересуют другие подробности, то Интернетом: www.cyantechnology.com.
Блок управления памятью (Memory Management Unit — MMU) позволяет представить различные виды внутренней и внешней памяти как одну структуру. Эта структура памяти или модель памяти содержит область команд и область данных в соответствии с архитектурой центрального процессора и обеспечивает преобразование команд для конкретных приложений, а данных — для хранения переменных данных и констант.
Для преобразования адресов логической памяти в адреса физической памяти требуется, чтобы почти все компоненты физической памяти начинались с адреса 0х0000. Конфликт адресов устраняется благодаря адресам общей базы памяти и созданию диапазона линейных адресов, а блок управления памятью обеспечивает преобразование адресов логической памяти в адреса физической памяти. Принцип работы ММи представлен на рис. 2: совокупность всей физической памяти преобразуется в модель памяти, разрабатываемую для конкретного применения.
Конфигуратор портов используется для выбора сигналов, которые появятся на выходе портов микроконтроллера (рис. 3). Пользователь должен выбрать, какие сигналы от периферии появятся на выводах еС001, поскольку еС001 содержит больше сигналов, чем выводов. Это позволяет иметь в составе микроконтроллера большое число периферийных устройств, но относительно небольшое число выводов, что позволяет снизить общую стоимость системы. Конфигурируемые выводы сгруппированы в двенадцать портов (РоГА — РоЛЬ), каждый на 8 или 4 разряда, и обозначаются как Рог1Х_п, где Х — соответствующий порт, ап — номер вывода от 0 до 7. Число конфигураций зависит от порта. В таблице 2 приведены обозначения портов, число выводов для этого порта и количество вариантов конфигурации.
Для каждого порта задается поле в регистре, где выбирается группа сигналов перифе-
Таблица 2. Порты eCOG1
Порт Ширина, бит Количество конфигураций
A 8 10
B 8 6
C 4 8
D 4 4
E 8 4
F 8 4
G 8 4
H 8 4
I 8 4
J 8 4
K 8 4
L 8 4
GPIO С
UART /1 N
N У
SPI A IN
si 1/
l2C /1 N
N 1/
Smart Card /1 N
N И
Infra Red /1 N
N V
User A IN
N1
Timers V
DU ART С
DUSART V
EHI
EMI <0
Por
Configurator
PortA_0... PortA_7
^ N PortB_0...PortB_7
^ N Po rtC_0... PortC_3
И N PortD_0...PortD_3
^ N PortE_0...PortE_7
И N PortF_0...PortF_7
И N PortG_0...PortG_7
И Si PortH_0...PortH_7
И N Portl_0...Portl_7
h= Port J_0... Port J_7
/і— N PortK_O...PortKJ
XI N PortL_0...PortL_7
Рис. 3. Конфигуратор портов
Peripheral
Signals
Chip Level Ports
Компоненты и технологии, № 3'2005
рийных устройств, которые направляются на соответствующий вывод, а также пара битов установки-сброса для разрешения-запрета работы порта. Если порт закрыт, то его выводы устанавливаются в состояние с высоким импедансом.
Блок универсальных асинхронных приемопередатчиков (DUART) (рис. 4) содержит два отдельных приемопередатчика (каждый со своим 16-разрядным делителем) и имеет следующие особенности:
• Размер кадра состоит из 5, 6, 7 или 8 битов данных, 1, 1,5 или 2 стоповых битов, проверки на четность, нечетность или без нее.
• Автоматическое формирование окончания кадра (от 0 до 64 периодов).
• Определение времени ожидания приема от 1 до 64 периодов.
• Генерация программным способом обрыва строки (15 последовательных нулевых битов данных), детектирование аппаратным методом.
• Программируемый генератор скорости передачи битов от fuart/16 (максимум) до fuart/2 (минимум).
• Прием и передача на одной и той же скорости обеспечивается модулем поддержки системы (SSM).
• 16-разрядные регистры для передачи и приема данных (два кадра данных) с прерываниями, формируемыми при полном и пустом кадре соответственно.
• Определение ошибки приема при сбое стартовых битов совместно с определением сбоев по четности и по кадру.
• Конфигурация полярности данных.
• Предварительная установка тактовой частоты UART для снижения тока потребления.
• Автоматический запуск тактового генератора UART при обнаружении стартового бита и удержание частоты во время передачи данных (снижение энергопотребления).
• Независимая от центрального процессора работа, что позволяет переводить CPU в ждущий режим при передаче или приеме данных.
Следует отметить, что задание параметров кадра необходимо выполнить до использования UART, так как динамически они не могут быть изменены.
Двойной универсальный синхронный асинхронный приемопередатчик (DUSART) представляет собой двойной последовательный порт общего назначения, поддерживаю-
CPU
Interupt and Wake Up Controller
uarta dk UARTAJX
uarta_rst UARTA_RX
SSM uartb dk DUART UARTB_TX Port Configurator
uartb_rst UARTBRX
A A
=!> Ports A to L
Register Interface
Рис. 4. Блок универсальных асинхронных приемопередатчиков (DUART)
щий один из нескольких заданных протоколов с блоком определения, что позволяет программным способом определять простые протоколы последовательной передачи данных. Каждый USART выполнен на двух портах передачи данных и двух портах приема данных (рис. 5). Одна пара приема-передачи предназначена для работы в режиме ведущего, вторая — для ведомого.
Аппаратным методом реализованы характеристические функции, общие для контроллеров различных протоколов. Общая часть последовательного порта USART дублируется для каждого канала и доступна для контроллера каждого протокола с помощью матрицы мультиплексоров. Это позволяет без проблем выбирать любой из протоколов для каждого канала. Отметим, что заданный протокол последовательного обмена данных не может использоваться на двух каналах одновременно.
DUSART поддерживает следующие протоколы:
• стандартного UART;
• последовательного периферийного интерфейса (SPI);
• I2C;
• низкоскоростного IrDA и инфракрасного общего применения (IFR);
• последовательный связной интерфейс ISO 7816 (SCI) для смарт-карт;
• последовательный интерфейс пользователя (USR).
Функциональность двойного универсального синхронно-асинхронного приемопередатчика достигнута благодаря контроллерам протоколов, общим компонентам USART и программному обеспечению пользователя. Программным интерфейсом для DUSART является банк регистров.
Окончание следует
CPU
Interupt and Wake Up Controller
iz.
SSM
dusart dk
dusart rst
DUSART
SPI_*
I2C_*
UART_
IR_*
SC_*
USR *
Port
Configurator
Register Interface
Рис. 5. Двойной универсальный синхронный асинхронный приемопередатчик (DUSART)