Резидентная память МК

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

• ПЗУ масочного типа — mask-ROM. Содержимое ячеек ПЗУ этого типа записывается на заводе-изготовителе МК с помощью масок и не может быть заменено или "допрограммировано" в области ранее не использованного сегмента памяти. Поэтому МК с таким типом памяти программ следует использовать только после достаточно длительной опытной эксплуатации изделий. Первые образцы масочных ПЗУ появились в начале 60-х гг., но даже сегодня ПЗУ масочного типа — самое дешевое и эффективное решение при больших объемах выпускаемой аппаратуры. Использование МК с масочным ПЗУ экономически становится рентабельным при партии в несколько десятков тысяч штук. Кроме благоприятных экономических аспектов, решения с ПЗУ масочного типа имеют и другое преимущество. Они обеспечивают высокую надежность хранения информации по причине программирования в заводских условиях с последующим контролем качества. Недостатки ПЗУ масочного типа очевидны: любое изменение прикладной программы потребует новой серии ИС, что может оказаться весьма дорогостоящим и трудоемким решением.

• ПЗУ, однократно программируемые пользователем — OTPROM (One-Time Programmable ROM). В незапрограммированном состоянии каждая ячейка памяти модуля однократно программируемого ПЗУ при считывании возвращает код $FF. Программированию подлежат только те разряды, которые после программирования должны содержать 0. Если в процессе программирования некоторые разряды какой-либо ячейки памяти были установлены в 0, то восстановить в этих разрядах единичное значение уже невозможно. Поэтому рассматриваемый тип памяти и носит название "однократно программируемые ПЗУ". Однако те разряды, которые в процессе предшествующего сеанса программирования не изменялись, т.е. имеют единичные значения, могут быть подвергнуты программированию в последующем и "доустановлены" в 0. Число возможных сеансов программирования модуля однократно программируемого ПЗУ в составе МК не имеет ограничений. Технология программирования состоит в многократном приложении импульсов повышенного напряжения к элементарным ячейкам адресуемого байта памяти (битам), подлежащим программированию. Уровень напряжения программирования, число импульсов и их временные параметры должны в точности соответствовать техническим условиям. В противном случае ячейки памяти могут восстановить единичное значение по прошествии некоторого времени (иногда нескольких лет) или при изменении условий работы. МК с однократно программируемым ПЗУ рекомендуется использовать в изделиях, выпускаемых небольшими партиями.

• ПЗУ, программируемые пользователем, с ультрафиолетовым стиранием — EPROM (Erasable Programmable ROM). ПЗУ данного типа допускают многократное программирование. Технология программирования близка к технологии однократно программируемых ПЗУ. Перед каждым сеансом программирования для восстановления единичного значения ранее запрограммированных ячеек памяти весь модуль ПЗУ должен быть подвергнут операции стирания при помощи ультрафиолетового облучения. Для этого корпус МК выполнен со специальным стеклянным окном, внутри которого расположена пластина ИС МК. Но если некоторые разряды ячеек памяти должны быть "допрограммированы" с 1 на 0 при неизменном состоянии ранее запрограммированных разрядов, то операция стирания может быть пропущена. Число сеансов стирания/программирования ПЗУ данного типа ограничено и составляет 25... 100 при условии соблюдения технологии программирования (напряжение, число и длительность импульсов программирования) и технологии стирания (волновой диапазон источника ультрафиолетового излучения). МК с ПЗУ данного типа имеют высокую стоимость, поэтому их рекомендуется использовать только в опытных образцах изделий.» ПЗУ, программируемые пользователем, с электрическим стиранием — EEPROM, или E2PROM (Electrically Erasable Programmable ROM). Электрически программируемые и электрически стираемые ПЗУ совместили в себе три положительных качества рассмотренных выше типов памяти. Во-первых, ПЗУ типа EEPROM программируются пользователем; во-вторых, эти ПЗУ могут быть многократно подвергнуты операции стирания и, следовательно, многократно программируются пользователем; в-третьих, эти ПЗУ дешевле ПЗУ с ультрафиолетовым стиранием. Максимальное число циклов стирания/программирования ПЗУ типа EEPROM в составе МК обычно равно 10000. Для сравнения: тот же тип памяти в отдельном корпусе допускает 106 циклов стирания/программирования. Технология программирования памяти типа EEPROM позволяет реализовать побайтовое стирание и побайтовое программирование, для чего к выбранной ячейке памяти должно быть приложено относительно высокое напряжение 10...20 В. Однако допускается также одновременное стирание некоторого количества ячеек памяти с последовательными адресами, т.е. стирание блока памяти. Несмотря на очевидные преимущества, редкие модели современных МК используют ПЗУ типа EEPROM для хранения программ. Виной тому два обстоятельства. Во-первых, ПЗУ типа EEPROM имеют ограниченную емкость и могут использоваться в качестве резидентной памяти программ только в маловыводных МК с небольшим объемом памяти. Во-вторых, почти одновременно с EEPROM ПЗУ появились ПЗУ типа FLASH, которые обеспечивают близкие пользовательские характеристики, но значительно дешевле, * ПЗУ с электрическим стиранием типа FLASH — FLASH ROM. Электрически программируемые и электрически стираемые ПЗУ типа FLASH были предназначены для заполнения "ниши" между дешевыми однократно программируемыми ПЗУ большой емкости и дорогими EEPROM ПЗУ малой емкости. ПЗУ типа FLASH сохранили преимущества, присущие EEPROM: возможность многократного стирания и программирования посредством приложения повышенного напряжения. Однако для увеличения объема памяти транзистор адресации каждой элементарной ячейки был удален, что не дает возможности программировать каждый бит памяти отдельно. Память типа FLASH стирается и программируется страницами или блоками. Страница, как правило, составляет 8, 16 или 32 байта памяти, блоки могут объединять некоторое число страниц, вплоть до полного объема резидентного ПЗУ МК (до 60 кбайт). Упрощение декодирующих схем, произошедшее из-за уменьшения числа транзисторов и, как следствие, снижение стоимости и размеров привело к тому, что МК с FLASH-памятью программ в настоящее время становятся конкурентоспособными по отношению не только к МК с однократно программируемым ПЗУ, но и с масочным ПЗУ также.

Первый тип памяти (mask-ROM) предполагает программирование МК только в заводских условиях. Второй и третий тип памяти (OTPROM и EPROM) в режиме программирования требуют подключения источника повышенного напряжения к одному из выводов МК. Для их программирования используются специальные программаторы, в которых требуемая последовательность импульсов программирования с амплитудой 10...25 В создается внешними по отношению к МК средствами. Технология программирования памяти первых трех типов не предполагает изменения содержимого некоторых ячеек энергонезависимой памяти в процессе работы устройства под /правлением прикладной программы.

Память типа EEPROM и FLASH также требует в процессе стира-ния/программирования приложения повышенного напряжения. В ранних образцах МК (например, Microchip PIC16C5xx) это напряжете должно было быть подано на один из выводов МК в режиме про-раммирования. В новейших версиях МК (Motorola HC08 и Microchip 31С16) модули FLASH и EEPROM ПЗУ содержат встроенные схемы ювышающих преобразователей напряжения, которые называют генераторами накачки. Допускается включение и отключение генератора накачки под управлением программы посредством установки >итов в регистрах специальных функций модулей памяти. Следова-тельно, появилась принципиальная возможность осуществить про-раммирование или стирание ячеек памяти FLASH и EEPROM ПЗУ в процессе управления объектом, без останова выполнения прикладной программы и перевода МК в режим программирования. Вспомним разницу между EEPROM и FLASH ПЗУ в составе МК: EEPROM 13У практически никогда не используется для хранения программ, но оно имеет режим побайтового программирования. Предоставленная техническая возможность программирования под управлением прикладной программы становится реализуемой, т.к. носителем программы в МК является другой модуль памяти. Следовательно, в процессе программирования повышенное напряжение не приклады-(ается к носителю программы алгоритма программирования и эта фограмма может быть выполнена в обычном режиме. Данное обстоятельство сделало EEPROM память идеальным энергонезависимым запоминающим устройством для хранения изменяемых в процессе эксплуатации изделия настроек пользователя. В качестве примера достаточно вспомнить современный телевизор или музыкальный центр: настройки каналов сохраняются при отключении питания. Одной из тенденций совершенствования резидентной памяти 1-разрядных МК стала интеграция на кристалл МК сразу двух модулей энергонезависимой памяти: ОТР или FLASH для хранения программ;i EEPROM для хранения перепрограммируемых констант.

Сложнее обстоит дело с возможностью программирования FLASH 13У под управлением прикладной программы. Даже если модуль:LASH ПЗУ содержит встроенный генератор накачки, то попытка перевода модуля в режим программирования посредством установки >итов режима приведет к невозможности дальнейшего считывания программы, которая в это FLASH ПЗУ записана. И МК "зависнет". Потому та часть программы, которая реализует программирование:LASH ПЗУ, должна быть обязательно расположена в памяти другого мпа. Наиболее часто в качестве такой памяти выбирают ОЗУ МК. Поскольку, если в МК имеется EEPROM ПЗУ, то бессмысленно "допрограммировать" FLASH в процессе работы изделия, в противном случae другой памяти, кроме ОЗУ, в МК просто нет. Если МК допускает возможность выполнения программы, расположенной в ОЗУ, и имеет строенный генератор накачки модуля FLASH ПЗУ, то такой МК стано-1ится "программируемым в системе" (англоязычный термин — "In iystem programmable"). Для того чтобы возможность программирова-1ия в системе стала реализуемой, необходимо предусмотреть пути, по которым в ОЗУ МК будет передана программа алгоритма программирования FLASH ПЗУ, а затем порциями будут передаваться коды прикладной программы, которая должна быть занесена во FLASH

ПЗУ. Не следует забывать, что объем сегмента программирования значительно превышает объем резидентного ОЗУ МК. В качестве такого пути разработчики МК назначают один из последовательных портов МК. Обслуживание порта реализует специальная программа монитора связи, которая расположена в резидентном масочном ПЗУ МК. Эта программа активизируется посредством установки определенных линий ввода/вывода МК в указанное в спецификации состояние при сбросе МК или простым обращением к ней. Способ активизации указан в техническом описании МК. По последовательному интерфейсу связи персональный компьютер загружает в ОЗУ МК сначала коды программы программирования, а затем порциями коды прикладной программы для программирования. Возможны также решения, при которых программа программирования сразу записана в память масочного типа и не требует загрузки в ОЗУ МК.

Рассмотренный режим программирования в системе в настоящее время все шире используется для занесения прикладной программы в МК, расположенный на плате конечного изделия. Специальный программатор в этом случае не нужен. Кроме того, надежность программирования гарантируется внутренними режимами МК и не зависит от схемных решений программатора. Однако режим программирования в системе отличается от режима "допрограммирования" нескольких байтов FLASH-памяти под управлением прикладной программы в процессе работы системы. Теоретически возможно решение, при котором программа программирования, хранящаяся во FLASH ПЗУ, сначала будет перенесена в ОЗУ под управлением прикладной программы, а затем выполнена из ОЗУ. Но при таком решении на время программирования потребуется запретить все прерывания МК, поскольку их обслуживание невозможно по причине недоступности векторов прерывания. Поэтому реализация описанного режима возможна далеко не всегда. В качестве одного из путей предлагается разбить модуль FLASH ПЗУ на два, с независимыми генераторами накачки и регистрами управления. Такое решение предложено в МК HC908AZ60 фирмы Motorola. Тогда один из модулей может быть поставлен в режим программирования, в то время как программа программирования будет выполняться из другого модуля. Впрочем, следует надеяться, что в недалеком будущем проблема программирования FLASH-памяти программой из FLASH-памяти будет решена. А пока наиболее совершенные модели МК со свойством программирования в системе часто имеют в своем составе четыре типа памяти: FLASH ПЗУ программ, масочное ПЗУ монитора связи, EEPROM ПЗУ для хранения изменяемых констант и ОЗУ промежуточных данных.

Технология создания резидентной FLASH-памяти МК непрерывно совершенствуется. Одни из лучших показателей достигнуты в МК семейства НС08 фирмы Motorola:

1. Гарантированное число циклов стирания/программирования составляет 105.

2. Гарантированный период хранения записанной информации равен 10 годам, т.е. составляет жизненный цикл изделия.

3. Модули FLASH-памяти работают и программируются при напряжении питания МК от 1.8 до 2.7 В.

4. Эквивалентное время программирования одного байта памяти снижено до 60 мкс, что позволяет выполнить программирование МК с 32 кбайт памяти в течение 2 с.

Перспективные технологии FLASH-памяти предполагают увеличение скорости программирования до 1 Мбит/с.

Кроме ПЗУ, в состав МК входит также и статическое оперативное запоминающее устройство. Определение "статическое" выделено не случайно: современные 8-разрядные МК допускают снижение частоты тактирования до сколь угодно малых значений с целью снижения энергии потребления (см. п. 1.1.9). Содержимое ячеек ОЗУ при этом сохраняется, в отличие от динамической памяти. В качестве еще одной особенности следует отметить, что большинство МК в техническом описании имеет параметр "напряжение хранения информации" — USTANDBY- При снижении напряжения питания ниже минимально допустимого уровня UDDMIN, но выше напряжения хранения USTANDBY программа управления микроконтроллером выполняться не будет, но информация в ОЗУ сохранится. Тогда при восстановлении напряжения питания можно будет выполнить сброс МК и продолжить выполнение программы без потери данных. Уровень напряжения хранения составляет примерно 1 В. Это позволяет в случае необходимости перевести МК на питание от автономного источника (батарейки или аккумулятора) и сохранить тем самым данные ОЗУ. Большого расхода энергии потребления в этом случае не будет, т.к. система тактирования МК может быть отключена (см. п. 1.1.9). В последнее время появились МК, которые в корпусе имеют автономный источник питания, гарантирующий сохранение данных в ОЗУ на протяжении 10 лет (МК DS5000 фирмы Dallas Semiconductor).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: