|
А. Райхман, А. Пивоваров
Flash-микроконтроллеры
Использование энергонезависимой flash-памяти в семействе однокристальных микроконтроллеров MCS-51 позволило создавать легко перепрограммируемые высокопроизводительные и дешевые микроконтроллеры, на основе которых производится множество портативных бытовых и промышленных приборов — датчики, сигнализаторы, измерители, контроллеры процессов. Данные компоненты производятся многими ведущими производителями на рынке микроконтроллеров — фирмами Philips, Atmel, Maxim/Dallas, Cygnal, Winbond и др., поэтому перед разработчиками и изготовителями всегда стоит проблема выбора поставщика. В данной статье предлагается один из вариантов подхода к решению этой проблемы на основе семейства 8-разрядных микроконтроллеров Philips P89LPC9xx, отличающихся высокоэффективной flash-памятью и пониженным энергопотреблением.
Семейство однокристальных микроконтроллеров MCS-51® было представлено фирмой Intel на рынке в начале 80-х гг. [1]. Первые версии кристаллов выполнялись по nМОП-технологии, на смену которой в дальнейшем пришла более совершенная КМОП-технология с пониженным энергопотреблением [2]. Изначально эти микроконтроллеры являлись функционально завершенными однокристальными микроЭВМ, построенными по гарвардской архитектуре с разделением адресных пространств памяти программ и данных. Программный код в этих кристаллах мог храниться во внутреннем однократно программируемом ПЗУ программ или в ППЗУ с ультрафиолетовым стиранием.
Дальнейшее совершенствование характеристик семейства пошло по пути наращивания периферийных возможностей и производительности. Большую роль в поддержании популярности этих микроконтроллеров сыграло создание фирмой Intel в 1988 г. коммерчески пригодного к использованию кристалла энергонезависимой flash-памяти [З]. Благодаря этому открылась возможность изготавливать недорогие микроконтроллеры с многократно перепрограммируемой памятью программ и данных. И если поначалу было возможно только полное стирание flash-памяти, то в большинстве современных микроконтроллеров интегрирована память, допускающая стирание отдельных секторов и/или страниц. Это предоставляет пользователю возможность гибкого перепрограммирования прибора: становится возможным программирование в системе ISP' и программирование в приложении IAP2.
Поскольку разработчиками накоплен огромный опыт работы с микроконтроллерами С51, многие фирмы в настоящее время выпускают серии этих приборов для самых разнообразных применений. Ведущими производителями на рынке микроконтроллеров С51-архитектуры являются фирмы Philips, Atmel, Maxim/Dallas, Cygnal и Winbond.
Фирма Atmel, обладающая собственной технологией изготовления flash-памяти низкой стоимости, выпускает большую номенклатуру микросхем на основе ядра С51 как для общего пользования (в т.ч. полные аналоги MSC-51ф, но с flash-памятью программ), так и для специализированных применений: CAN-мультиплексирование, декодеры МРЗ, приложения USB, Smart Card и др.
Другой производитель — Cygnal Integrated Products производит большую гамму программно совместимых с С51-архитектурой микроконтроллеров с развитой аналоговой периферией и высокой производительностью — до 100 MIPS. Многие модели имеют интегрированные АЦП/ЦАП, перепрограммируемый "на лету" встроенный тактовый генератор, JTAG и разнообразные последовательные интерфейсы.
Как и Cygnal, компания Maxim/Dallas выпускает высокопроизводительные микроконтроллеры, совместимые с MCS-51ф по системе команд и аппаратным средствам. Процессорное ядро этих приборов организовано так, что выполнение каждой команды происходит в 1,5-3 раза быстрее, чем в оригинальной архитектуре при той же самой тактовой частоте. В результате микроконтроллер имеет в 2,5 раза большую производительность при использовании тех же кодов и того же кварцевого резонатора. Помимо этого, имеются аппаратные усовершенствования: 2 аппаратных USART, сторожевой таймер, часы реального времени, АЦП (не во всех моделях) и пр. Также производится серия микроконтроллеров с повышенной защищенностью пользовательского программного обеспечения.
Признанным лидером на рынке микроконтроллеров является фирма Philips Semiconductor. Она имеет обширное портфолио продукции, охватывающее 8-, 16- и 32-разрядные семейства, включая самый широкий в индустрии диапазон микроконтроллеров на ядре 80С51 [4]. Продукция компании отличается высокой производительностью, необходимой для огромного разнообразия современных приложений во всех сегментах рынка, при самой низкой потребляемой мощности и самых маленьких корпусах.
Области применения микроконтроллеров Philips с flash-памятью программ на основе 8-разрядного 80С51-ядра весьма широки:
- контроллеры управления и разграничения доступа в зданиях;
- измерители температуры и детекторы огня;
- управляющая аппаратура для промышленных приложений;
- промышленное оборудование;
- бытовая техника;
- ручные измерительные системы;
- системы преобразования протоколов.
Одним их семейств 8-разрядных микроконтроллеров Philips, имеющих высокоэффективную flash-память и пониженное энергопотребление, является рассматриваемое в настоящей статье семейство P89LPC9xx.
Семейство P89LPC9XX
Семейство LРС9хх объединяет более десятка микроконтроллеров, общей особенностью которых является низкая стоимость, малое потребление мощности и незначительное количество внешних компонентов, необходимых для работы. Наличие развитых коммуникативных возможностей, функций контроля системы и гибкое управление энергопотреблением делает эти микроконтроллеры идеальными для многих современных приложений. В табл. 1 представлены основные характеристики семейства.
В основе микроконтроллеров LPC9xx лежит ядро, совместимое с 80С51-архитектурой, но со временем выполнения команд от 2 до 4 тактов. Благодаря этому производительность увеличена в 6 раз. Таким образом, на частоте 12 МГц большинство команд выполняется за 167 не. Помимо этого, снижена величина электромагнитных излучений (EMI).
Все микроконтроллеры семейства оснащены flash-памятью, созданной по 0,35-мкм технологическому процессу Philips, и работают в промышленном диапазоне температур от -40 до +85°С (кроме P89LPC932B) при напряжении питания от 2,4 до 3,6 В. Линии ввода/ вывода допускают подключение нагрузок с потреблением до 20 мА, а при работе с внешними устройствами на линии ввода/вывода возможна подача напряжения 5 В.
Младшие модели выпускаются в корпусах SO8, DIP8 и различаются между собой набором периферийных устройств и расположением выводов — как по индустриальному стандарту (P89LPC901-903), так и по альтернативному стандарту Philips (P89LPC906-908). Все они обладают возможностью внутрисхемного программирования (ICP), а некоторые модели оснащены интегрированным RC-осциллятором. Поскольку хороший кварцевый резонатор — дорогостоящее изделие, наличие встроенного тактового RC-генератора является дополнительной возможностью снижения стоимости готового изделия и повышения надежности при использовании микроконтроллеров Philips. При сбросе частота RC-осциллятора устанавливается равной 7,3728 МГц ± 2,5%, что облегчает установку стандартных скоростей асинхронной передачи UART. Программное обеспечение пользователя может изменить эту частоту путем записи соответствующего значения в 6-разрядный регистр TRIM.
Средние модели P89LPC912-914 семейства имеют в два раза большее количество линий ввода/вывода (корпус TSSOP14), оснащены интерфейсом SPI и двумя аналоговыми компараторами. Подобно младшим моделям, некоторые из них имеют модули ШИМ и UART.
Наибольшее количество периферийных модулей и функциональных возможностей имеют старшие модели P89LPC920-935 семейства LPС9хх. Они поддерживают различные режимы программирования: ISP, IAP, а также параллельное программирование PP. Значительной функциональной насыщенностью обладают два типа микроконтроллеров: P89LPC935 и P89LPC932.
В кристалл P89LPC935 интегрировано 768 байт ОЗУ, 512 байт EEPROM данных и 8 Кб flash-памяти программ. Он имеет развитые возможности коммуникации через интерфейсы UART, I2C и SPI; два 16-разрядных таймера/счетчика, модуль захвата/сравнения и два 8-разрядных 4-канальных АЦП.
Более подробно особенности микроконтроллеров семейства LPС9хх рассматриваются далее на примере прибора P89LPC932.
Микроконтроллер P89LPC932 фирмы PHILIPS
Структура микроконтроллера P89LPC932 представлена на рисунке.
Рисунок. Структура микроконтроллера P89LPC932
Интегрированная в него память подразделяется на память данных EEPROM 512 байт, 768 байт ОЗУ и 8 Кб Flash-памяти программ.
Память программ микроконтроллера LPC932 разделена на 8 секторов по 1 Кб или на 128 страниц по 64 байта. В сектор 7 может быть записана процедура для выполнения ISP-программирования, а в сектор 8 подпрограмма IAP-программирования программной памяти. При этом программирование может выполняться через любой удобный пользователю последовательный интерфейс. Процесс записи страницы или стирания страницы/сектора/массива выполняется за 2 мс. Для каждого сектора возможна индивидуальная защита программного кода.
При работе с памятью данных EEPROM возможно чтение/стирание/запись каждого байта. Имеется режим страничного (64 байта) и блочного (512 байт) заполнения. ОЗУ делится на основное (256 байт) и вспомогательное (512 байт).
Наличие двух 16-разрядных полнофункциональных таймеров/счетчиков и двухканального модуля захвата/сравнения позволяет генерировать три разновидности ШИМ-сигнала: асимметричный ШИМ, симметричный ШИМ и "альтернативный выходной режим".
Все линии ввода/вывода, за исключением трех, поддерживают четыре режима работы:
- квазидвунаправленный;
- двухтактный (push-pull);
- только входной;
- открытый сток.
Вытекающий ток каждого вывода — до 20 мА (совокупный ток 80 мА), выходные драйверы ножек имеют управляемую скорость нарастания выходного напряжения (время нарастания/спада 10 нc). Выводы микроконтроллера разделены на четыре порта: 8-разрядные порты 0, 1 и 2, а также 2-разрядный порт 3. Если используется схема внутреннего сброса при включении (отключено функционирование вывода nonRST как входа сигнала сброса), а в качестве источника тактовой частоты задействован внутренний RC-генератор или сторожевой таймер, для ввода/вывода данных доступно 26 ножек в 28-выводном корпусе.
Встроенный модуль UART в совокупности с интегрированным генератором скорости передачи не нуждается в использовании таймеров для своей работы. Он может обнаруживать ошибки фрэйма и переполнения, выполнять передачу с двойной буферизацией, а опция раздельного прерывания Tx/Rx позволяет легко реализовать полнодуплексную последовательную передачу.
Интегрированные модули интерфейсов 12С и SPI оснащены полным набором необходимых функций и могут использоваться для обмена данными с любыми устройствами, имеющими эти интерфейсы.
Каждый из двух встроенных аналоговых компараторов имеет по два программно переключаемых входа и возможность использования как встроенного источника опорного напряжения (1,23 В ± 10%), так и внешнего напряжения, подаваемого на соответствующий вывод. Имеется возможность генерировать прерывание от компараторов при их переключении.
В микроконтроллере LPC932 реализована возможность подключения клавиатурной матрицы (можно использовать максимум 8 входных линий порта 0) для быстрого обнаружения нажатой кнопки по сгенерированному прерыванию.
Система тактирования микроконтроллера может использовать сигнал внешнего тактирования (от 0 до 12 МГц), внешний кварцевый резонатор (от 20 кГц до 12 МГц), встроенный RC-генератор (от 7,189 до 7,557 МГц) или встроенный сторожевой таймер WDT (400 кГц + + 20...30%).
В качестве часов реального времени RTC используется отдельный 16-разрядный счетчик обратного отсчета с 7-разрядным прескалером. Он может выступать в качестве системного таймера, пробуждать устройство из режима Power-Down и генерировать прерывание при переполнении.
Развитая система менеджмента энергопотребления позволяет устройству находиться в одном из четырех возможных режимов работы:
- нормальный режим — ядро и периферия работают, но конкретные периферийные устройства могут быть выключены путем записи соответствующего значения в регистр PCONA,
- режим ожидания — ядро остановлено, периферия ещё работает, но некоторые периферийные модули могут быть отключены с помощью регистра PCONA,
- режим "питание выключено" (Power-Down) — могут работать только системный таймер/RTC, компараторы, BOD и WDT (если их работа разрешена),
- общий режим выключения питания — остаются работать только системный таймер/RTC и WDT (если их работа разрешена).
Микроконтроллер P89LPC932 производится в корпусах трех типоразмеров: TSSOP28, PLCC28 и HVQFN28. Интересно отметить, что все представленные корпуса имеют очень небольшие размеры, к примеру, размеры корпуса HVQFN28 составляют всего 6 х 6 х 0,85 мм с расстоянием между выводами 0,65 мм.
Существуют микросхемы, работоспособные как в индустриальном диапазоне температур (с индексами FDH и FHN), так и в коммерческом (с индексами ВА и BDH).
Краткий сводный перечень основных возможностей микроконтроллера P89LPC932:
- высокопроизводительное ядро 80С51, обеспечивающее время выполнения команды 167...333 не на частоте 12 МГц для всех команд, кроме умножения и деления. Низкая тактовая частота уменьшает энергопотребление и снижает уровень электромагнитных излучений;
- диапазон питающего напряжения от 2,4 до 3,6 В. На ножки ввода/вывода может подаваться напряжение до 5 В;
- flash-память объёмом 8 Кб имеет стираемые сектора объёмом 1 Кб и 64-байт размер стираемой страницы;
- 256 байт ОЗУ данных, 512 байт дополнительного ОЗУ;
- 512 байт памяти EEPROM для хранения пользовательских данных;
- два 16-разрядных таймера/счетчика;
- система тактирования реального времени (RTC), используемая также в качестве системного таймера;
- модули захвата/сравнения (CCU) с 32х PLL, обеспечивающие функции ШИМ, входного захвата и пр.;
- два аналоговых компаратора с возможностью выбора входа и источника опорного напряжения;
- многофункциональный UART с расширенными возможностями;
- коммуникационные порты: шина 12С до 400 кГц и SPI до 3 Мбит/с;
- 8 входов прерывания от клавиатуры и 2 дополнительных входа внешнего прерывания;
- сторожевой таймер WDT и схема сброса при понижении напряжения питания BOD;
- конфигурируемый RC-осциллятор с изменяемой частотой 7,3728 МГц ± 2,5%;
- нагрузочная способность любого из выводов имеющихся портов 20 мА;
- минимум 23 линии ввода/вывода (максимум 26);
- программирование flash-памяти внутри приложения (IAP) во время работы;
- поддержка эмуляции.
Средства разработки и отладки
За годы, прошедшие со времени создания первых 80С51-микроконтроллеров, разработчиками накоплен огромный опыт создания программного обеспечения для них. Существует большое количество разнообразных средств поддержки этого семейства: компиляторы, программаторы, внутрисхемные эмуляторы. В табл. 2 представлен обширный перечень средств разработки, выпускаемых различными производителями для семейства микроконтроллеров 1_РС9хх фирмы Philips. Следует отметить, чтодля работы с этим семейством доступно бесплатное программное обеспечение с ограничением максимального размера генерируемого кода: компиляторы фирм Keil и Raisonance. Кроме того, Philips выступила в качестве спонсора при создании компанией Embedded Systems Academy комплекта свободно распространяемого программного обеспечения: программы FlashMagic для ISP-программирования микроконтроллеров Philips и генератора кода с языка С для семейства LPC93x.
Таблица 2. Поставщики средств разработки для микроконтроллеров Philips P89LPC9xx
Производитель |
Название продукта |
Адрес в Интернете |
Стоимость1 |
Аппаратные средства |
Keil Software |
Отладочная плата МСВ900 |
www.keil.com |
$59 |
Acqura Systems |
Адаптер эмулятора FPA900-901-2-3 для LPC901-903 |
www.acqura.com |
$89 |
Acqura Systems |
Адаптер эмулятора FPA900-906-7-8 для LPC906-908 |
www.acqura.com |
$89 |
Acqura Systems |
Адаптер эмулятора FPA900-TSSOP14 для LPC912-914 |
www.acqura.com |
$79 |
Acqura Systems |
Адаптер эмулятора FPA900-DIP20 для LPC912-914 |
www.acqura.com |
$59 |
Aprilog |
Адаптер эмулятора для LPC93x |
www.aprilog.com |
$72 |
Ceibo |
Система разработки, в т.ч. эмулятор FE-900 |
www.ceibo.com |
$399 |
Кeil Software |
Эмулятор и программатор ЕРМ900 |
www.keil.com |
$199 |
Philips |
Эмулятор и программатор PE-ICD900 |
www.semiconductors.philips.com |
$169 |
Acqura Systems |
Система разработки, в т.ч. эмулятор PDS-900 |
www.acqura.com |
$499 |
Phyton |
Эмулятор PICE-52 |
|
- |
ВР Microsystem |
Универсальный программатор для LPC92x и выше |
www.bpmicro.com |
- |
Advantech Equipment |
Универсальный программатор LabTool-48XP |
www.aec.com.tw |
- |
ЕЕ Tools |
Программатор ТорМах |
www.eetools.com |
- |
Phyton |
Программатор ChipProg+ |
www.phyton.com |
- |
Tribal Microsystems |
Программаторы ALL-1 1 и ALL-GANG |
www.tribalmicro.com |
- |
Xeltek |
Программатор серии SUPERPRO |
www.xeltek.com |
- |
System General |
Инженерный программатор PowerLab для LPC92x и выше |
www.sg.com.tw |
- |
- |
Программатор ZLG CP932, включая адаптер PLCC28 (только для LPC932) |
- |
$99 |
- |
Программатор ZLG CP932, включая адаптер TSSOP28 (только для LPC932) |
- |
$99 |
Программные средства |
Keil Software |
Компилятор PKLPC-8K |
www.keil.com |
$199 |
Keil Software |
Компилятор С51 Free Eval (ограничение кода до 2 кБ) |
www.keil.com |
Бесплатно |
Keil Software |
Комплект разработчика (компилятор) DK51 |
www.keil.com |
- |
Keil Software |
Компилятор LPC Developer Studio (4 кБ) |
www.keil.com |
- |
Keil Software |
Профессиональный набор разработчика (компилятор) РК51 |
www.keil.com |
- |
Raisonance |
Компилятор Raisonance Eval51 (ограничение 4 кБ) для LPC93x |
www.raisonance.com |
Бесплатно |
Raisonance |
Компилятор Raisonance RKitE51 Enterprise Suite для LPC93x |
www.raisonance.com |
- |
Raisonance |
Компилятор Raisonance RKitP51 Professional Suite для LPC93x |
www.raisonance.com |
- |
Raisonance |
Компилятор Raisonance RKitL51-8 (ограничение 8 кБ) для LPC93x |
www.raisonance.com |
$199 |
Altium |
Комплект разработчика 8051 |
www.tasking.com |
- |
Keil Software |
Интегрированная среда разработки (IDE) Keil jaVision |
www.keil.com |
- |
Raisonance |
Интегрированная среда разработки (IDE) RIDE для LPC93x |
www.raisonance.com |
- |
Altium |
Интегрированная среда разработки (IDE) TASKING EDE для LPC93x |
www.tasking.com |
- |
Embedded Systems Academy |
Программное обеспечение для ISP-программирования ESAcademy FlashMagic |
www.esacademy.com/software/flashmagic |
Бесплатно |
Embedded Systems Academy |
Генератор кода с языка С ESAcademy CodeAdchitect (только для LPC93x) |
www.esacademy.com/software/flashmagic |
Бесплатно |
1 Стоимость средств разработки действительна в случае приобретения их через сайт Philips: www.semiconductors.philips.com/markets/mms/prooducts/microcontrollers/support/development_tools.
Наличие разнообразных средств поддержки и отладки, совместимость с семейством 80С51, низкая стоимость, возможность приобретения образцов и квалифицированная техническая поддержка позволят пользователям легко освоить новое семейство высокопроизводительных микроконтроллеров фирмы Philips.
Литература
- Боборыкин А.В., Липовецкий Г.П. и др. Однокристальные микроЭВМ. М.: МИКАП, 1994.400 с.
- MCS51 Microcontroller Family User's Manual, Order #: 272383-002, Intel Corporation, February 1994. 334 p.
- Интегральные микросхемы энергонезависимой памяти 28F008SA, 28f008SA-L Пер. с англ. В.В. Затишного. М.: МП БИНОМ и ТОО КОНКОРД. 1992. 80 с.
- http://www.semiconductors.philips.com/microcontrollers.
|