Микроконтроллеры 8051 со встроенной памятью РВДМ —
классика и современность в одном кристалле
Илья ЗАЙЦЕВ
Сбываются давнишние мечты разработчиков о памяти, встроенной в микроконтроллер, которая была бы быстрой и простой в работе, как ОЗУ, энергонезависимой и допускала большое количество циклов перезаписи. Корпорация 1?атггоп выпустила микроконтроллер УРБ5^3074 со встроенным массивом РРДМ, основанный на хорошо известном процессорном ядре 8051, с производительностью, повышенной до 40 М!РБ, и снабженный обширным набором периферийных узлов для промышленных и бытовых автоматизированных систем.
Можно ли сосчитать количество микроконтроллеров, выполненных на ядре 8051? Попытаться сосчитать производителей 8051-совместимых микроконтроллеров еще как-то можно, но это непростая задача, так как история этого популярного семейства насчитывает уже около 30 лет, и многие такие компании не прекратили свое существование. Распространению этого микропроцессорного ядра способствовали несколько обстоятельств. Когда корпорация Ые1 представила 8051, потребители микроконтроллеров были уже неплохо знакомы с предыдущим поколениями — ядрами Ме1 8041 и 8048. Удачное сочетание разнообразной периферии в одном кристалле, понятная архитектура и достаточно гибкая система команд 8051, а также вера в стабильность Ме1 послу-
жили скорейшему успеху новинки, широкому внедрению во множестве разработок еще в начале жизненного пути семейства.
Впоследствии базовую архитектуру и систему команд стали использовать в своих продуктах и другие именитые производители — Philips, Atmel, Maxim/Dallas, Analog Devices, Winbond и множество других. Зачастую производители перемещали акцент в новом изделии: добавляли хорошо известное микропроцессорное ядро к собственной оригинальной, уникальной периферии, а не наоборот. Так поступила корпорация Analog Devices с семейством микроконтроллеров ADuC. Обладая технологией производства высококачественных аналого-цифровых преобразователей, инженеры Analog Devices создали однокристальные системы сбора/обработки аналоговых сигна-
лов на основе ядер 8051 (ADuC8xxx) и ARM (ADuC7xxx), причем так, что влияние контроллерной части микросхемы не сказывается на качестве аналого-цифрового преобразования.
Корпорация Ramtron, обладатель уникальной технологии ферроэлектрической памяти FRAM [1, 2, 4], поступила аналогичным образом — соединила FRAM, ядро 8051 и богатый набор периферии.
Микроконтроллеры Ramtron
Корпорация Ramtron выпускает два семейства микроконтроллеров, основанных на ядре 8051 — Versa и VersaMix [3].
Семейство VersaMix ориентировано на создание устройств сбора и/или обработки аналоговых сигналов за счет наличия встроенной аналоговой периферии — АЦП, операционных усилителей, цифровых потенциометров и коммутаторов, а также драйверов жидкокристаллического дисплея. Сейчас в семействе VersaMix выпускаются микроконтроллеры VMX51C1016, VMX51C1020 и VMX51C900.
Семейство Versa включает 14 серий микроконтроллеров с разнообразными сочетаниями периферии. Ramtron активно развивает оба семейства. Среди основных направлений развития необходимо отметить:
• повышение производительности;
• поддержку внутрисхемного программирования и самопрограммирования из работающего приложения (In-System Programming/ In-Application Programming, ISP/IAP);
• поддержку отладочного интерфейса JTAG;
• расширение вариантов сочетаний встроенных периферийных узлов;
• расширение линейки микроконтроллеров со встроенной FRAM.
FRAM — ферроэлектрическая (сегнетоэлектрическая) память. Это интегральное энергонезависимое запоминающее устройство с произвольным доступом. Физический принцип хранения информации — длительное энергонезависимое сохранение электростатической поляризации, приобретенной сегнетоэлек-триком в электрическом поле при записи. В упрощенном пояснении, микросхема FRAM работает, как ОЗУ, (данные записываются без задержек и необходимости в предварительном стирании ранее записанной информации, свойственных EEPROM и FLASH), но при выключении питания записанная информация сохраняется без необходимости даже в кратковременном резервном источнике питания. Более 10 лет Ramtron выпускает FRAM со стандартными интерфейсами I2C (серия FM24xxx), SPI (FM25xxx) и параллельным 8-разрядным (FM1608, FM18x08, FM20L08), а также семейство Processor Companion (FM3xxx) — однокристальное сочетание сервисных функций для микроконтроллерных систем: часы реального времени, многофункциональный супервизор, компаратор PFI/PFO, счетчик внешних событий и программируемый серийный номер. Ферроэлектрическая память уже приобрела широкую известность в мировой промышленной электронике, и объем ее производства продолжает нарастать быстрыми темпами. Такие гиганты автомобильной промышленности, как BMW и Hyunday, а также Matsushita Electric Industrial (владелец торговой марки Panasonic) применяют FRAM в автомобильной электронике — в системах мониторинга, безопасности и в автомобильных аудиокомплексах. Xerox — в оргтехнике, целый ряд производителей компьютеров, серверов и ноутбуков применяют FRAM в ответственных узлах. Лицензии на использование технологии приобрели такие компании с мировым именем, как Fujitsu, Hitachi, Infineon, NEC, Rohm, Samsung, Texas Instruments и Toshiba. Российские предприятия также уделяют значительное внимание применению FRAM — Россия входит в десятку крупнейших потребителей FRAM в Европе.
о
о
32-Bit Mult/ Accu/Div w/Barrel Shifter
Ports (7), І/Os (56)
External Data Bus Controller
On-Board
Oscillator
Crystal
Oscillator
Inputs
Dynamic
Clock
Control
Watch Dog Timer
Power-On/
Reset
8051 Core Single Cycle 40MHz
FRAM 8К Bytes (ICP/IAP)
Flash 8К Bytes (ICP/IAP)
SRAM 4K + 256 Bytes
JTAG
w/On-Chip
Emulation
SPI
l2C
U ART s, Baud Rate Generators (2)
Interrupt
Controller
PWMs/ Timers (8)
Puise Width Counters (2)
Timer Capture Inputs (3)
О
о
о
о
о
о
о
32-Bit Mult/ Accu/Div w/Barrel Shifter
Ports (7), І/Os (56)
External Data Bus Controller
On-Board
Oscillator
Crystal
Oscillator
Inputs
Dynamic
Clock
Control
Watch Dog Timer
Power-On/
Reset
8051 Core Single Cycle 40MHz
FRAM 64K Bytes (ICP/IAP)
SRAM 4K + 256 Bytes
JTAG
w/On-Chip
Emulation
SPI
l2C
UART s1 Baud Rate Generators (2)
Interrupt
Controller
PWMs/ Timers (8)
Puise Width Counters (2)
О
О
о
о
Timer Capture Inputs (3)
О
о
Рис.1. Блок-схемы микроконтроллеров VRS51L3074 и VRS51L2070
Типовые задачи, возлагаемые на FRAM — это, например, хранение переменных коэффициентов, таблиц кодирования-декодирования, регистрация событий, накопление данных и некоторые другие функции [4]. Преимуществами внутрикристального размещения массива FRAM являются:
• уменьшение площади, занимаемой компонентами на печатной плате;
• уменьшение общей стоимости по сравнению с использованием внешней памяти. Уменьшение достигается за счет меньшей цены микроконтроллера со встроенной FRAM (цена ниже примерно на $0,40, что существенно для компонентов стоимостью несколько долларов США), а также за счет исключения косвенных расходов;
• исключение проблем электромагнитной совместимости и повышение границы максимальной тактовой частоты при обращении к памяти;
• возможность конвейеризации алгоритма обращения ко встроенной FRAM (аппаратно реализована возможность начать следующий цикл обращения к FRAM до завершения текущего цикла).
Микроконтроллер со встроенной FRAM VRS51L3074
Первым представителем микроконтроллеров со встроенной FRAM в семействе Versa стал VRS51L3074, анонсированный производителем 22 мая этого года.
Тремя неделями ранее корпорация Ramtron выпустила микроконтроллер VRS51L2070, единственное отличие которого — отсутст-
вие массива БИЛМ. Блок-схемы новых микроконтроллеров представлены на рис. 1.
Как видно из блок-схем, новые микроконтроллеры Иат^оп функционально очень насыщены. Часть функций типична для большинства 8051-совместимых микроконтроллеров, как, например, универсальные асинхронные порты (ИЛИТ) и сторожевой таймер. В рамках статьи мы отметим те интегрированные решения, которые делают микроконтроллеры Иат^оп особенными и предоставляют пользователю уникальные возможности для решения его задач.
Подсистема памяти
Архитектура подсистемы памяти микроконтроллера VRS51L3074 интересна не только из-за уникальности сочетания БИЛМ и микроконтроллера на одном кристалле (рис. 2).
В микроконтроллере одновременно используется память трех технологий — Flash, ОЗУ и FRAM.
Массив флэш-памяти
Массив флэш-памяти объемом 64 кбайт используется традиционно как память программ. Среди возможностей имеется внутрисхемное программирование (In-System-Programming, ISP) с помощью интерфейса JTAG, а также возможность самопрограммирования микроконтроллера, управляемое работающим приложением (In-Application-Programming, IAP). Наименьшее время перепрограммирования Flash в режиме IAP достигается в тех случаях, когда программа-загрузчик расположена в 4 кбайт ОЗУ и использует режим 2-байтовой записи с автоинкрементом адреса. Функции ISP/IAP подробно описаны в технических описаниях микроконтроллеров [5, 6].
Оперативная память
Оперативная память новых микроконтроллеров объемом 4352 байт имеет особые свойства. Младшие 256 байт традиционны для архитектуры 8051, адресуются в пространстве внутренних адресов. А еще 4096 байт (4 кбайт) ОЗУ вынесены во внешнее адресное пространство, доступное при помощи команды movx. Главной особенностью этого массива ОЗУ в микроконтроллерах VRS51L3074 и VRS51L2070 является возможность его использования и как памяти данных, и как памяти программ.
Для исполнения программ в этом сегменте ОЗУ, программа копируется в него из внутренней или внешней Flash и ей передается управление через соответствующие регистры специальных функций (SFR). Копирование может производиться в ходе работы основной программы, важно только, чтобы копировался участок программы, не исполняемый в настоящий момент.
Одно из важных преимуществ, появляющееся в результате использования ОЗУ в качестве памяти программ — это возможность существенного снижения энергопотребления. Это связано с тем, что энергопотребление прямо пропорционально частоте обращения к ОЗУ, в то время как эта зависимость крайне мала при работе с Flash.
Возможность исполнения программ, размещенных в ОЗУ, заложена Ramtron еще и с прицелом на будущее расширение семейства VersaMix, ориентированного на обработку аналоговых сигналов. Типичной особенностью цифровой обработки сигналов является сравнительно небольшой объем программ обработки больших потоков данных.
Исполнение программ в ОЗУ, аппаратный блок умножения/сложения/деления и циклического сдвига (MULT/ACCU/DIV + Barrel Shifter), а также выполнение машинного цикла за один такт синхронизации — все это делает микроконтроллеры Ramtron одними из самых высокопроизводительных среди 8051-совместимых микроконтроллеров вообще и для цифровой обработки сигналов
в частности — их производительность достигает 40 MIPS.
Массив FRAM
Массив FRAM объемом 8 кбайт лежит также в пространстве внешних адресов. Но он не отбирает это пространство безвозвратно — блок FRAM может подключаться и отключаться в нужное пользователю время при помощи регистров специальных функций.
Внутренний интерфейс с блоком FRAM выполнен с двойной буферизацией. Это сделано для обеспечения возможности максимально быстрого обращения к FRAM — следующий цикл может начинаться еще до завершения текущего (режим Burst). Внутреннее тактирование операций обращения к FRAM по умолчанию равно половине тактовой частоты микроконтроллера (максимальная частота тактирования FRAM составляет 20 МГц).
Можно установить еще 3 режима с понижением частоты тактирования FRAM в 3, 4 или 8 раз для целей снижения энергопотребления, увеличения длительности обмена в Burst-режиме или для возможности выполнения ядром других операций (двойная буферизация FRAM позволяет ядру переключаться на другие задачи и не контролировать завершение обмена с FRAM).
Массив FRAM может быть полностью или частично защищен от случайной модификации. Предусмотрена защита верхней четверти, половины или всего массива.
Но эта новинка была бы не так интересна, если бы ее преимущества ограничивались высокой тактовой частотой 40 МГц, выполнением машинного цикла за один такт, возможностью работы программ из ОЗУ и наличием встроенной FRAM. Микроконтроллеры VRS51L2070 и VRS51L3074 уникальны за счет наличия еще нескольких узлов, которые делают их лучшим выбором для решения целого ряда задач.
Восемь ШИМ-контроллеров Обе версии микроконтроллеров имеют 8 независимых ШИМ-контроллеров (PWM) с собственными 16-разрядными таймерами. Увеличенное количество PWM расширяет область применения микроконтроллера, например, они могут использоваться для управления шаговыми двигателями приборных панелей промышленной автоматики, телеметрии или в автомобильной технике, для управления встраиваемыми печатающими устройствами кассовых аппаратов, а также электроприводами точного позиционирования сельсинного типа. Кроме того, они могут использоваться для аналогового регулирования (с применением интегрирующих фильтров). Каждый канал можно независимо включить как стандартный 16-разрядный таймер общего назначения.
Три независимых таймера с возможностью каскадирования Наличие встроенных таймеров стандартно для большинства микроконтроллеров
многих производителей. Преимущество таймеров в VRS51L2070 и VRS51L3074 в гибкости конфигурирования для решения задач самых различных типов.
Таймеры T0 и T1 могут работать как 16-разрядные или как 4 независимых 8-разрядных. Таймеры можно включить каскадно, как 16-, 24-, 32- или 48-разрядные и формировать временные интервалы длительностью вплоть до 1954,6 часов. Источником входного сигнала таймера может быть назначен генератор системной синхронизации с программируемым делителем, или внешний источник.
Каждый таймер имеет также вход захвата/ перезагрузки Timer Capture Unit (TCU), который по фронту или спаду входного сигнала копирует значение таймера или перезагружает его. Дополнительная функция таймеров T0 и T1 — измерение длительности события (Pulse Width Counter, PWC). В отличие от TCU, PWC позволяет пользователю более гибко определять условия обнаружения начала и конца события.
Полностью конфигурируемые интерфейсы SPI и I2C Последовательный интерфейс SPI имеет расширенные возможности:
• поддержка четырех стандартных режимов SPI (по фазе и полярности синхронизации);
• работа в режимах Master или Slave;
• четыре лини ChipSelect для управления ведомыми устройствами;
• конфигурируемая длина пакета (от 1 до 32 бит, возможно увеличение длины пакета более 32 бит);
• двойная буферизация линий SDI и SDO (входящих/исходящих данных);
• прямой и обратный порядок выдачи битов пакета данных (первый MSB или LSB);
• генерация дополнительного синхроимпульса начала или конца информационного пакета.
В работе с множеством SPI-устройств различного назначения микроконтроллеры VRS51L2070 и VRS51L3074 предоставляют наибольшую гибкость. В частности, производители АЦП и ЦАП с SPI-интерфейсом часто предусматривают длину информационного пакета, отличную от наиболее распространенной, равной 8 бит. Микроконтроллеры Ramtron справятся с этой задачей легко, в то время как на других микроконтроллерах придется находить более сложные программноаппаратные решения.
Двухпроводной интерфейс I2C также можно настроить для работы в режиме Master или Slave, адрес узла в Slave-режиме — программируемый. Тактовая частота интерфейса может достигать 1,25 МГц. Отметим также, что формирование условий Start и Stop реализовано аппаратно.
Встроенный прецизионный тактовый генератор Система тактирования в VRS51L2070 и VRS51L3074 построена достаточно гибко:
пользователь может маневрировать между низкой стоимостью и высокой точностью/стабильностью частоты синхронизации. Внутренний RC-генератор обеспечивает сравнительно высокую точность тактовой частоты — не хуже 2%. Если точность тактовой частоты должна быть лучше 2%, можно использовать внешний кварцевый резонатор на частоты 4-40 МГц, или генератор на частоты 1-40 МГц.
Управление энергосбережением
В активном режиме контроллер потребляет ток от 17 до 27 мА при напряжении питания 3,1-3,6 В, в зависимости от характера задач, выполняемых в конкретный момент, и задействованной периферии. Программное управление тактовой частотой микроконтроллера (с помощью встроенного делителя тактовой частоты) позволяет динамически регулировать энергопотребление. При пониженных требованиях к производительности тактовую частоту микроконтроллера можно снизить вплоть до 1 МГц. Потребление в этом случае составит менее 5,5 мА.
Кроме того, предусмотрены также режимы останова и ожидания, уровень потребления в которых снижается до 1-3 мА. Контроллер переводится в режимы останова или ожидания соответствующими битами регистра управления режимом работы. В режиме ожидания тактирование ядра прекращается, периферийные блоки остаются активными, сохраняется содержимое памяти и регистров специальных функций SFR. Возврат ядра в активное состояние происходит по прерыванию или общим системным сбросом (Reset). В режиме останова тактирование всех узлов прекращается, но ОЗУ и SFR сохраняют содержимое. Возврат в активный режим может произойти только посредством системного сброса. В обоих режимах сторожевой таймер, если запущен ранее, продолжает работать.
Типы корпусов
Описанные микроконтроллеры производятся в 64-выводных корпусах для поверхностного монтажа QFP-64, а также в 44-вывод-ных QFP-44 и PLCC-44, повыводно совместимых с микроконтроллерами промышленного стандарта 8051. Корпуса с меньшим количеством выводом QFP-44 и PLCC-44 не позволяют использовать возможности микроконтроллеров в полной мере и служат, в основном, для модернизации существующих проектов.
Средства разработки и отладки
Один из наиболее важных вопросов, стоящих перед разработчиком при внедрении нового микроконтроллера, это доступность средств разработки и отладки. Ramtron обеспечивает необходимыми инструментальными средствами всю линейку микроконтроллеров [9].
Программное обеспечение
За многолетнюю историю применения 8051-совместимых микроконтроллеров на-
коплено огромное количество библиотек, многие производители программных средств разработки на микроконтроллерах предусматривают поддержку семейства 8051. Некоторые из них доступны, в том числе, бесплатно. Корпорация Ramtron рекомендует применять среды разработки Hitex UK Keil, Raisonance RIDE-51, ANSI-C компилятор SDCC и Metalink C компилятор-ассемблер, так как в них реализована поддержка работы с JTAG-отладчиком для рассматриваемых микроконтроллеров.
Отладочные комплекты Для VRS51L2070 и VRS51L3074 выпускаются отладочные комплекты VERSAKIT-2070 и VERSAKIT-3074 (рис. 3).
В комплект поставки отладочных средств входят:
• отладочная плата, которая содержит:
- микроконтроллер, версия в корпусе QFP-64;
- FM31xx Processor Companion [10], FM25xx SPI FRAM, FM24xx I2C FRAM;
- разъем подключения модуля Versa-JTAG;
- микрокнопки системного сброса и внешнего прерывания процессора;
- 2 разъема DB9 для UART0 и UART1 и драйвер RS-232;
- полигон для макетирования и контактные площадки для подключения стандартного символьного жидкокристаллического индикатора;
- светодиодные индикаторы, которые можно использовать на свое усмотрение;
• модуль Versa-JTAG;
• кабель DB25-DB25 для подключения модуля Versa-JTAG к компьютеру;
• источник питания;
• компакт-диск с документацией и программным обеспечением.
Стоимость отладочных комплектов не высока и составляет $88,5.
JTAG-интерфейс отладки/программирования В настоящее время возможность программирования и отладки микроконтрол-
лерных и микропроцессорных устройств по ДАЗ-интерфейсу предусматривается в новых продуктах многими производителями. Интерфейс JTAG существенно уменьшает стоимость аппаратных средств разработки микроконтроллерных систем и их сопровождения. Одна из его функций — внутрисхемная эмуляция и «неразрушающий» мониторинг исполнения программ — исключает необходимость в дорогих параллельных внутрисхемных эмуляторах. Поддержка JTAG реализована в рекомендованных Ramtron средах разработки. Модуль VERSA-JTAG можно приобрести отдельно от отладочного комплекта по цене $45.
Заключение
Первыми представители нового поколения микроконтроллеров Ramtron стали VRS51L2070 и VRS51L3074. К концу 2006-го и в течение 2007 года можно ожидать расширение обоих семейств: должны появиться версии с различным объемом встроенной FRAM, а также различным сочетанием аналоговой и цифровой периферии. Основание для этого предположения — стратегическая нацеленность Ramtron на широчайшее распространение технологии FRAM в промышленной и бытовой электронной технике, создание компонентов для интегрированных систем сбора/обработки данных и аналоговых сигналов.
Опираясь на многолетний опыт инженеров, работавших с 8051-совместимыми микроконтроллерами, а также доступные средства разработки и уникальные преимущества сочетания встроенной периферии, технологий и высокой производительности, можно ожидать, что новое поколение микроконтроллеров Ramtron найдет признание среди российских разработчиков. Этому уже есть подтверждение — запросы от крупнейших российских компаний-производителей электронной техники к производителю и поставщикам Ramtron на предоставление образцов и технической
документации рассмотренных микроконтроллеров.
Более подробную информацию о новых микроконтроллерах Ramtron можно получить на сайте производителя w ww .ramtron.c om. ■
Литература
1. FRAM Technology Basics.
w ww.ramtron.c om/doc/AboutFRAM/ technology.a sp
2. Зайцев И. П. Сравнение новых технологий энергонезависимой памяти // Компоненты и технологии. 2004. № 4.
3. VersaMix 8051 and Versa 8051 MCU Products. w ww .ramtron.c om/doc/Products/ microcontroller/mcu_list.asp
4. Зайцев И. П. Эффективное использование преимуществ ферроэлектрической памяти // Компоненты и технологии. 2004. № 5.
5. VRS51L3074 — VRS51L3074 FRAM-Enhanced High Performance 8051 MCU.
w ww .ramtron.c om/doc/Products/ microcontroller/detail.asp?ID=110&gr=13
6. VRS51L2070 — Versa 8051 8-bit MCU with 64KB Flash and 4352B SRAM
w ww.ramtron.c om/doc/Products/ microcontroller/detail.asp?ID=109&gr=13
7. SH3100: MicroBuddy® Supervisory IC with I2C Interface and PWM
w ww.semtech.c om/products/ product-detail.jsp?navId=H0,C100,C153,P413
8. Элтех.
Каталог электронных компонентов. 6.0 w ww.eltech.spb.r u/pdf/catalog6/ catalog_6_semtech.pdf
9. Ramtron MCU Software Support Tool w ww.ramtron.c om/doc/Products/ microcontroller/supporttools.asp
10. Зайцев И. П. Какой компаньон нужен вашему контроллеру // Компоненты и технологии. 2004. № 2.