Научная статья на тему 'Первый среди равных. Микроконтроллер eCOG1 Cyan Technology. Часть 1'

Первый среди равных. Микроконтроллер eCOG1 Cyan Technology. Часть 1 Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
106
38
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ракович Николай

Разговоры о необходимости и важности микроконтроллеров в современной жизни уже перестали быть актуальными: без них немыслимо ни современное производство, ни окружающая нас техника.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Первый среди равных. Микроконтроллер eCOG1 Cyan Technology. Часть 1»

Компоненты и технологии, № 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-разрядные регистры для передачи и приема данных (два кадра данных) с прерываниями, формируемыми при полном и пустом кадре соответственно.

• Определение ошибки приема при сбое стартовых битов совместно с определением сбоев по четности и по кадру.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

• Конфигурация полярности данных.

• Предварительная установка тактовой частоты 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)

i Надоели баннеры? Вы всегда можете отключить рекламу.