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

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

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

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

Сам по себе микроконтроллер eCOG1 — «вещь в себе», и не более того. Только работа с периферией позволяет выявить все его характеристики, и чем больше возможностей для подключения внешних устройств, тем более востребован микроконтроллер.

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

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

Компоненты и технологии, № 4'2005 Компоненты

Продолжение. Начало в № 3'2005,

Первый среди равных

Микроконтроллер Cyan Technology eCOG1

Сам по себе микроконтроллер eCOG1 — «вещь в себе», и не более того. Только работа с периферией позволяет выявить все его характеристики, и чем больше возможностей для подключения внешних устройств, тем более востребован микроконтроллер.

Николай Ракович

[email protected]

ПН

е-

оследовательный интерфейс 12С — двунаправленный многоабонентский двухпроводной интерфейс для подключения к микроконтроллеру внешних устройств (память, интерфейсные ИС), выполняющий последовательную передачу данных со скоростью 100 кбит/с (стандартный), 400 кбит/с (скоростной) и 3,4 Мбит/с (высокоскоростной режим передачи данных).

Протокол 12С микроконтроллера еСОС1 поддерживает:

• команды старта, останова, перезапуска;

• совпадение адресов и арбитраж;

• режимы — со многими ведущими и ведущий/ ведомый;

• автоматическую генерацию подтверждения;

• 10-разрядную и широковещательную адресацию. Управление шиной 12С выполняется через ЭШЛИТ

(обрабатываются все сигналы низкого уровня и упо-

Irterrupt and Wake Up Controller

SSM

dusat dk

DUSART A or В

I2C_SCL I2C SDA

Port

Configurator

I

Register Interface

Рис. 6. Реализация интерфейса РС в составе DUSART

CPU

Irterrupt and Wake Up Controller

SSM

dusat dk

DUSART A or В

I2C

SPI SCLK SPLMOSi SPI_MSO SPI CS0,1A3

Port

Configurator

I

Interface

Рис. 7. Последовательный периферийный интерфейс (SPI) в составе модуля DUSART

рядочивается поток данных). На рис. 6 показана реализация интерфейса 12С в составе DUSART: 12С конфигурируется для каждого USART-канала, обмен управляющими сигналами и данными осуществляется через банк регистров.

Специально для 12С прерывания не предусмотрены, они формируются программно на основе прерываний DUSART.

В eCOGl контроллер 12С работает в двух режимах: ведущий или ведомый. Ведущий обращается к ведомому, задает синхронизацию и инициирует передачу. Наличие двух пар портов, доступных через DUSART, позволяет одновременно передавать данные в режимах ведущего и ведомого.

Последовательный периферийный интерфейс (SPI) также поддерживается модулем DUSART, что позволяет микроконтроллеру eCOGl работать ведущим или ведомым с возможностью поддержки нескольких ведомых в режиме ведущего (рис. 7). Передача данных определяется ведущим, который обеспечивает и синхронизацию (SCK). Ведомый должен использовать SCK при передаче данных. Полярность импульсов синхронизации от ведущего задается с помощью CPOL, а фаза — через CPHA (соответствующие clk_pol и clk_pha в регистре duasrt.spi_tx_cfg). Чтобы различать направление передачи данных от каждого контроллера (ведущего и ведомого), в состав eCOGl введена дополнительная логика. Эта же логика обеспечивает управление «на лету» при связи портов с функциями кадрирования данных.

Модуль интерфейса смарт-карт (Smart Card Interface — SCI) содержит полную логику, необходимую для оконечной части (терминала) этого интерфейса. Последовательности действий при запуске и дезактивации реализованы с различной степенью автоматизации. Поддерживается протокол типа Т = 0 (части 1-10 стандарта Smart Card ISO 7816). Следует отметить, что хотя все основные последовательности действий по установке карт, их активации и дезактивации реализованы аппаратно, встроенной поддержки переключения уровня напряжения, определения подделки или защиты от короткого замыкания в нагрузке нет (обычно вероятность наиболее высока при вставке и извлечении смарт-карты). Поэтому необходимо, чтобы между микроконтроллером и терминалом смарт-карты была включена внешняя схема интерфейса. Тактиро-

Компоненты и технологии, № 4'2005

Irterrupt and Wake Up Controller

pwml_dk

PWM1

DUSART A or В О Smart Card Interface

1

PWMl

SC_DATA_IN SC_DATA_OUT SC_DATA SC RESET SC_PWR_EN SC_CLK_EN SC CARD IN

Port

Configurator

I

► Ports A to L

Register Interface

Рис. 8. Структура модуля смарт-карт

1

RAM

t

MMU

I

Access

Control

1

EHI

HOST D0..D26 HOST.AO..A2 HOST_D27_A3..D31_A7 HOST_REQ HOST_ACK HOST_RW HOST"CS HOST_WAIT

І »

I

Port

Configurator

I

■ Ports A to L

Register Interface

Рис. 9. Блок-схема интерфейса внешнего хоста (EHI)

вание смарт-карты выполняется через модуль таймера (TIM). Помимо управления внешним источником тактовых сигналов, модуль SCI может использоваться для управления ШИМ-выходом PWM1. Частота тактового генератора SCI программируется с помощью регистра TIM.

Структура модуля смарт-карт приведена на рис. 8. SCI использует любой из портов USART (какой свободен в данный момент).

Модуль инфракрасного интерфейса (IRF) предназначен для передачи и приема данных по ИК-каналу. Входные сигналы должны быть демодулированы до поступления в микроконтроллер для декодирования. Данные на выходе могут быть как в модулированном виде (для этого используется выход PWM2), так и смодулированные. Модуль разрабатывался для расширения возможностей при использовании различных пользовательских протоколов (RC-5, ASK, PPM и стандарта IRDA), а также для перспективных ИК-протоколов на основе программируемых регистров. Важно отметить, что этот модуль обеспечивает программирование команд и параметров для работы инфракрасного канала с помощью соответствующих регистров и программного обеспечения пользователя (которое, естественно, должно соответствовать данному протоколу).

Последовательный порт пользователя (User Serial Port — USP) является расширением DUSART, обеспечивающим прямой доступ к USART А или к USART В, и может использоваться как дополнительный асинхронный порт. Таким образом, в микроконтроллере eCOGl можно сконфигурировать и применять четыре отдельных асинхронных порта: два порта из специальной секции USART, асинхронный порт и последовательный порт пользователя из секции DUSART.

Основное назначение порта пользователя — обеспечение гибкого последовательного порта ввода-вывода с параллельным доступом шириной в слово, автоматической вставкой, проверкой по четности и минимизацией требуемого для программ места. Последовательные протоколы, заданные пользователем, могут быть адаптированы простой реконфигурацией банка регистров USP. Кроме стандартных возможностей USART реализована возможность «полуавтоматической» настройки порта, которая может быть при необходимости отключена.

Интерфейс внешней памяти (External Memory Interface — EMI) позволяет подключать внешнюю память с помощью менеджера

памяти как со стороны команд, так и со стороны данных центрального процессора. EMI поддерживает два формата: формат интерфейса шины (Bus Interface Format) — независимый 25-разрядный адрес и 8-разрядные данные — или мультиплексированные 24-разрядный адрес и 16-разрядные данные. Этот интерфейс работает с Flash-памятью, SRAM, ПЗУ или периферией на основе памяти. Формат интерфейса SDRAM реализует прямое подключение к SDRAM для передачи данных без каких-либо дополнительных внешних элементов.

Выбор любого из форматов выполняется одним из двух встроенных ключей, которые можно запрограммировать на любой интерфейс. Если оба ключа конфигурируются на один и тот же интерфейс, то установки будут одинаковыми для обоих типов внешней памяти. Это означает, что временные параметры памяти должны быть совместимы.

Интерфейс внешнего хоста (External Host Interface — EHI) позволяет микроконтроллеру eCOG1 и внешнему процессору использовать внутреннее ОЗУ eCOGl для прямого доступа как со стороны процессора микроконтроллера, так и со стороны внешнего устройства (рис. 9). Запись и чтение данных в ОЗУ процессор микроконтроллера выполняет через блок управления памятью MMU, в то время как внешнее устройство — с помощью EHI. Прямой доступ к памяти микроконтроллера внешний процессор получает в одном из двух режимов: первый — eCOGl представляется как периферийное устройство с распределением памяти (ММР), в котором оперативная память отображается в карте памяти внешнего устройства; второй — режим прямого доступа к памяти DMA, когда внешнее устройство обращается к памяти микроконтроллера eCOGl с использованием функций DMA. Режим ММР предназначен для передачи небольших произвольных объемов данных, а DMA — для больших блоков данных. Интерфейс EHI дает в руки разработчику средство чередования доступа к большим и малым массивам данных.

Встроенная Flash-память на 64 кбайт с организацией 32 Кслов х 16 бит (рис. 10) пред-

8 Blocks 16 Pages 256 Words

0x7FFF / 0x4 FFF 0x4 F00 / 0x47FF

0x7000 / 0x4EFF 0x4 E00 /

OxâFFF / 0x4DFF 0x4D00 /

0x6000 / 0x4CFF 0x4C00 /

0x5FFF / 0x4BFF 0x4 B00 /

0x6000 / 0x4AFF 0x4A00 /

0x4FFF 0x49FF 0x4900 /

0x4000 0x48FF 0x4800 /

0x3FFF \ 0x47FF 0x4700

0x3000 0x46FF 0x4600 \

0x2FFF \ 0x45FF 0x4500

0x2000 \ 0x44FF 0x4400 \

0x1FFF \ 0x43FF 0x4300 \

0x1000 \ 0x42FF 0x4200 \

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

OxOFFF \ 0x4 IFF 0x4100

0x0000 \ 0x40FF 0x4000 \ 0x4700

Рис. 10. Структура встроенной Flash-памяти

Компоненты и технологии, № 4'2005

16x2 Characte LCD Module

Рис. 12. Внешний вид отладочной платы из комплекта Development Kit

назначена для хранения программ и данных (энергонезависимость этой памяти очень кстати). Работа и программирование Flash-памяти от напряжения 3,3 В (напряжение питания eCOG1) позволяет забыть о внешнем источнике высокого напряжения.

Блок управления памятью MMU содержит два преобразователя адреса для Flash-памяти: один — для доступа к программам, второй — для доступа к данным, которые конфигурируются в MMU. Доступ к программам конфигурируется с использованием регистров mmu.flash_code_log, mmu.flash_code_phy и mmu.flash_code_size, а доступ к данным — через регистры mmu.flash_data_log, mmu.flash_data_phy и mmu.flash_data_size. Как дополнение к основной памяти программ и данных в отдельной области памяти (блок информации) имеются 64 16-разрядных слова. Эти ячейки памяти недоступны при прямом чтении или записи памяти, но к ним можно получить доступ посредством косвенной адресации через регистры flash.prg_adr, flash.prg_data, flash.inf_rd_adr и flash.inf_rd_data.

Последние четыре слова в этой области памяти используются для чтения и записи защиты разделов основной Flash-памяти и самой области. Оставшиеся слова в этом блоке информации могут служить для хранения данных пользователя (данные о конфигурации, серийный номер изделия, номер версии и т. п.).

И заканчивая описание Flash-памяти, скажем несколько слов о параметрах этой памяти:

• полное программирование основного блока Flash-памяти — 660 мс;

• полное программирование блока информации — 1,32 мс;

• программирование одного слова — 42 мкс;

• удаление данных из всего массива памяти — 210 мс;

• удаление данных одной страницы — 10 мс;

• гарантированное число циклов записи-стирания — 20 000. Аналого-цифровой преобразователь (АЦП) представляет собой

12-разрядный сигма-дельта преобразователь с частотой выборки 8 кГц (блок-схема АЦП и входных мультиплексоров представлена на рис. 11). АЦП может работать с четырьмя различными внешними аналоговыми сигналами, а также с сигналами от встроенных датчиков напряжения питания и температуры. Возможна работа в дифференциальном режиме с двумя внешними аналоговыми сигналами. Дифференциальный режим можно также использовать для подавления синфазных помех.

Измерение напряжения на выводах ANA0^3 с применением АЦП выполняется в одном из четырех режимов.

• Режим А — измерение сигнала на одном из четырех входов относительно встроенного источника опорного напряжения.

• Режим В аналогичен режиму А за исключением того, что внутреннее опорное напряжение подается на вывод ANA3, которой не может использоваться для измерения внешнего сигнала.

• Режим С предназначен для дифференциального измерения, при котором один из выводов ANA0^2 выбирается как положительный вход, а ANA3 — как отрицательный. Таким образом, измеренное напряжение есть разность между выбранным выводом ANA0^2 и выводом ANA3.

• В режиме Б выводы ANA0^3 конфигурируются как две дифференциальные пары ANA0 и ANA1, ANA2 и ANA3. АЦП может выбрать (с помощью разработчика, конечно), какая из этих пар будет использоваться для измерения.

Встроенный температурный датчик позволяет измерять температуру кристалла (совместно с АЦП). Режим измерения задается установкой битов adc.cfg.temp_sel и adc.cfg.temp_en, причем установкой бита adc.cfg.temp_sel запрещается работа АЦП с другими сигналами. Если датчик не используется, то с целью снижения потребления его можно отключить, очистив бит adc.cfg.temp_en. Результат измерения температуры появляется через два периода АЦП (250 мкс).

Для получения точных результатов измерения необходимо провести калибровку датчика: измерить известную температуру (например, комнатную) и вычислить калибровочный коэффициент по формуле

Server

Fthp.rnp.t TCP/IP

Embedded Web Browser

Рис. 13. Примеры применения eCOG1

Компоненты и технологии, № 4'2005

CAL = Tca¡-

(ADC-2048) ж 0,061

где ADC — содержимое adc.sts.data, a Tcal — абсолютная температура (К), при которой выполнялась калибровка.

Измеренная температура определяется выражением (тоже по шкале Кельвина):

Temp = CAL +

с \

(ADC-2048) ж 0,061 2

С помощью встроенного датчика напряжения питания, который, как и температурный датчик, может использоваться совместно с АЦП, измеряется напряжение между выводами Vdd и Vss микроконтроллера. Это позволяет контролировать состояние батареи питания или другого источника электроэнергии, используемого для работы микроконтроллера eCOGl.

Запуск датчика задается установкой бита adc.cfg.vsens_en, а выбор для передачи в АЦП — битом adc.cfg.vsens_sel. Бит adc.cfg.temp_sel должен быть сброшен, поскольку иначе АЦП будет считывать данные температурного датчика.

Если датчик не используется, то его можно отключить, очистив бит adc.cfg.vsens_en и заодно понизив потребление. Результат измерения напряжения, как и температуры, появляется через два периода АЦП (250 мкс).

К такому «железу» идет и соответствующее программное обеспечение и отладочный комплект (Development Kit).

В качестве программного обеспечения пользователь бесплатно получает программу моделирования ecogsim и эмулятор ecogemu. Эти программы имеют общий пользовательский интерфейс и команды, различие заключается в том, как они выполняются. Программа моделирования имеет eCOGl интерпретатор для выполнения команд, а эмулятор работает через интерфейс eICE, подключенный к плате с микроконтроллером.

В состав программы моделирования включена модель процессорного ядра, но нет модели периферии, к которой подключается это ядро. Модель периферии планируется реализовать в следующем релизе. Однако уже сейчас пользователи могут добавлять свои модули для периферии.

Для эмулятора подключение пользовательских модулей обеспечивает внутрисхемное программирование внешней Flash-памяти. Инсталляция этих модулей позволяет загружать и отлаживать пользовательские программы обычным способом. Эмулятор программирует внутреннюю Flash-память микроконтроллера eCOGl через интерфейс ICE.

Основные «плюсы» программ ecogsim и ecogemu:

• дистанционное управление программами через TCP/IP;

• мощный синтаксический анализатор, позволяющий вводить сложные выражения;

• оператор разыменования, позволяющий создавать ссылки на ячейки памяти в выражениях;

• поддержка временных точек в ecogsim;

• справка в формате HTML;

• динамически загружаемые пользовательские модули;

• команды оболочки;

• многопоточные приложения;

• 32-разрядные приложения для Windows 95/98 и NT4/2000.

C-компилятор, состоящий из ECOGCL и ECOGNCC, поддерживает полную версию языка С в соответствии с ANSI/ISO, включая операции с плавающей точкой. Компилятор полностью интегрирован для большинства средств поддержки eCOG, что позволяет совместить программирование на Си ассемблере, а также отладку на уровне исходного кода с использованием программы моделирования и эмулятора. Компилятор формирует удобочитаемый код ассемблера, который сохраняет имена и структуру исходного кода на С. Это позволяет «захватить» имеющиеся программы на С для последующей модификации на ассемблере в случае необходимости, кроме того, позволяет пользователю проверить и отладить программу на ассемблере (на уровне исходника).

Операционная система реального времени PicOS, разработанная для установки и работы с отладочной платой eCOGl и входящая в комплект поставки, позволяет создать многозадачную систему на основе микроконтроллера.

В заключение два слова об отладочной плате из комплекта Development Kit (рис. 12). В ее состав входит микроконтроллер eCOGl, интерфейс Fast Ethernet, память SDRAM 2Мх16 бит, ЖК-дисплей (2 строки по 16 символов), два последовательных порта пользователя, параллельный отладочный интерфейс, последовательный интерфейс, динамик, 4 светодиода, интерфейс внешней памяти и хоста, стек TCP/IP, зона для макетирования и порты ввода-вывода.

Таким образом, микроконтроллер eCOGl представляет собой многофункциональную ИС, позволяющую создавать на ее основе устройства различного назначения — от средств связи до охранных систем, от Интернет-устройств до сложной бытовой техники (рис. 13). Наличие отладочного комплекта и бесплатного ПО разработки и отладки позволяет сократить сроки и стоимость разработки.

Дополнительную информацию можно найти на сайте www.cyantechnology.com.

Окончание следует.

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