1.3. Системные модули микроконтроллеров
1.3.1. Модули памяти
Функционально законченным автономным вычислительным устройством микроконтроллер стал лишь тогда, когда возможности технологии позволили интегрировать в его состав модули памяти различного назначения. Система памяти является важнейшей частью МК и его производительность и вычислительные возможности в значительной степени определяются составом и характеристиками используемых запоминающих устройств (ЗУ).
|
|
|
Рис 1.3. Структура запоминающего устройства |
В составе современных МК применяется одновременно два типа ЗУ, различающиеся принципом действия, характеристиками и назначением:
оперативные ЗУ (ОЗУ), хранящие оперативную информацию и промежуточные результаты вычислений;
постоянные ЗУ (ПЗУ), предназначенные для хранения программ и неизменяемой в процессе работы МК информации.
В зарубежной технической литературе для обозначения ОЗУ используется аббревиатура RAM (Random Access Memory), а для ПЗУ – ROM (Read Only Memory).
Оперативное запоминающее устройство. Занимающее центральное место в системе памяти микроконтроллера, ОЗУ предназначено для хранения оперативной информации, требующейся в процессе обработки данных. Эта память является энергозависимой и записанная в нее информация теряется при выключении питания.
Внутренняя организация ОЗУ имеет регулярную структуру и основана на использовании большого числа элементов памяти для хранения двоичных данных. По реализации запоминающих элементов ОЗУ делятся на динамические и статические. В статических ОЗУ информация хранится в форме устойчивого состояния запоминающего элемента все время, пока на него подано напряжение питания. В динамических ОЗУ логическая 1 хранится в форме заряда на емкости запоминающего элемента и для ее длительного хранения необходима периодическая регенерация, во время которой происходит восстановление заряда.
В МК динамические ОЗУ практически не используются, что связано с необходимостью интеграции в состав МК дополнительного контроллера регенерации, а так же с невозможностью работы таких ОЗУ при изменении в широких пределах тактовых частот и питающих напряжений.
Статические ОЗУ могут работать при любой тактовой частоте МК вплоть до его остановки и сохранять информацию при весьма значительном (до 1 В) снижении напряжения питания. Эти свойства и определяют то обстоятельство, что в современных МК в подавляющем большинстве случаев применяется статическое ОЗУ.
Для пояснения работы статического ОЗУ рассмотрим вариант его построения с одномерной матрицей запоминающих элементов и байтовой выборкой, структура которого представлена на рис. 1.4.
Матрица памяти составлена из запоминающих элементов на основе статического триггера. Триггер имеет два устойчивых состояния, что позволяет использовать его для хранения двоичной информации.
Непосредственно сам триггер построен на транзисторах T1 и T2, всегда находящихся в противоположных состояниях – если один открыт, то второй закрыт. Транзисторы T5 и T6 выполняют в этой схеме роль нагрузочных резисторов. Смена состояния триггера происходит по сигналам, поступающим по вертикальной разрядной линии матрицы. Подключение запоминающего элемента к разрядной линии производится с помощью двух транзисторов T3 и T4, работающих в ключевом режиме под управлением сигнала на линии адресной строки. Чтение текущего и запись нового состояния запоминающего элемента производится по разрядной линии только при предварительно открытых транзисторах T3 и T4.
|
|
|
Рис 1.4. Статическое оперативное запоминающее устройство |
Связь разрядных линий с шиной данных осуществляется через трехстабильные буферные усилители, которые собраны в пары для ввода и вывода информации по сигналам записи WR (Write) и чтения RD (Read). В отсутствие этих сигналов буферные усилители отключаются от шины. Сигнал выбора кристалла CS (Chip Select) является разрешающим сигналом и работа с памятью возможно только при его установке в активное состояние.
Ранее упоминалось, что данное ОЗУ имеет байтовую организацию и поэтому матрица запоминающих элементов состоит из восьми разрядных столбцов и 2n адресных строк, где n – число разрядов задания адреса. Восемь запоминающих элементов в одной строке матрицы образуют ячейку памяти емкостью один байт.
Выбор ячейки памяти производится с помощью дешифратора адреса, который имеет n входов и 2n выходов. Каждый выход дешифратора переходит в состояние логической 1 только тогда, когда на его входе задан двоичный код числа, соответствующего порядковому номеру выхода.
Для обращения к конкретной ячейке памяти с целью записи или чтения на входы A0…An дешифратора подается адрес в виде двоичного кода (например, адрес 7 с кодом 0…0111). При этом на одном из выходов (в нашем примере на адресной строке с номером семь) появится сигнал высокого уровня, который открывает транзисторы T3 и T4 в каждом запоминающем элементе адресуемой ячейки памяти, обеспечивая доступ ко всем ее разрядам.
При чтении состояние всех разрядов выбранной ячейки памяти подается по разрядным линиям на входы буферных усилителей, и после поступления сигнала чтения RD заносятся в регистр данных, откуда информация передается по системной магистрали в операционное устройство.
Запись нового кода из регистра данных в выбранную ячейку памяти производится через буферные усилители по сигналу записи WR, подключающему все разряды регистра данных к разрядным линиям матрицы. Сигналы на разрядных линиях переводят триггеры всех запоминающих элементов в состояние, соответствующее логическим уровням в разрядах регистра данных.
Постоянные запоминающие устройства. Как следует из названия, ПЗУ – это энергонезависимое ЗУ, содержимое которого сохраняется не только в процессе работы, но и после снятия напряжения питания. В МК применение ПЗУ вызвано тем обстоятельством, что в них выполняется одна и та же управляющая программа, автоматически запускаемая на выполнение при включении питания. Для хранения команд такой программы, а также констант, постоянных таблиц и другой неизменяемой информации и предназначено ПЗУ. В процессе обработки информации ПЗУ представляет собой память, работающую только в режиме чтения. Запись информации в ПЗУ, называемую также его программированием, производят либо в процессе изготовления, либо с помощью специальных устройств и процедур программирования.
Организация ПЗУ может быть различной, и для иллюстрации его работы рассмотрим распространенный вариант структуры, подобный только что описанному варианту структуры ОЗУ. Она представлена на рис. 1.5.
Как видно из рисунка, буферные усилители ПЗУ предназначены только для чтения и управление чтением осуществляется с помощью сигнала разрешения выхода OE (Output Enable). Задание адреса ячейки памяти и ее активизация производится так же, как и в ОЗУ. Отличием является схемотехника запоминающих элементов, которая настолько проста, что реализуется чаще всего с помощью транзистора и коммутирующего элемента или даже только одного транзистора.
Программируемость ПЗУ подразумевает существование множества некоторых коммутирующих элементов, с помощью которых можно установить одно из двух состояний на линии считывания, причем конкретная реализация коммутирующих элементов и способ программирования зависят от типа ПЗУ. С этой точки зрения можно выделить пять типов ПЗУ.
|
|
|
Рис 1.5. Постоянное запоминающее устройство |
ПЗУ с масочным программированием (MaskROM). Это запоминающие устройства, в которые информация записывается раз и навсегда в процессе изготовления МК. В исходной матрице памяти в цепи стока транзистора создаются разрывы, которые на этапе производства металлизируются в тех местах, где необходимо задание другого состояния разряда. Запись производится с помощью маскирующих фотошаблонов, задающих участки металлизации, требующиеся для кодирования. Маска довольно дорога, но с помощью одной маски можно запрограммировать любое число ПЗУ. Поэтому применение ПЗУ, программируемых с помощью масок, целесообразно только при крупносерийном производстве. МК с масочным ПЗУ изготавливается с записанной в память программой, которая в дальнейшем изменена быть не может.
Сигнал высокого уровня в активной адресной строке такого ПЗУ открывает транзисторы запоминающего элемента, и если разрыв металлизирован, то разрядная линия «заземляется», обеспечивая считывание по ней состояния логического 0. В противном случае разрядная линия находится в состоянии логической 1, обеспечиваемой напряжением источника питания Vcc через «подтягивающий» резистор.
Масочное ПЗУ – единственное, которое программируется в процессе производства МК. Остальные рассматриваемые ПЗУ могут программироваться пользователем.
Однократно программируемые ПЗУ (OTPROM – One-Time Programmable ROM). В этом типе ПЗУ коммутирующим элементом является создаваемая в процессе производства нихромовая или поликремниевая плавкая перемычка в цепи стока транзистора. Программирование этого ПЗУ производится пользователем с помощью специальных устройств – программаторов. При программировании импульсами повышенного напряжения перемычки избирательно расплавляются в нужных элементах матрицы памяти, обеспечивая тем самым занесение необходимого состояния разрядов ячеек памяти. Как и в предыдущем случае, процедура записи является однократной и информация, записанная в ПЗУ этого типа, впоследствии изменена быть не может. Именно поэтому рассматриваемый тип ПЗУ и называется однократно программируемым.
Программируемые ПЗУ с ультрафиолетовым стиранием (EPROM – Erasable Programmable ROM). Стираемые программируемые ПЗУ позволяют производить запись и стирание информации многократно. Коммутирующие элементы в таких ПЗУ реализованы в виде специальных МОП-транзисторов с плавающим затвором. Плавающим такой затвор называется потому, что он электрически не связан ни с одним из выводов транзистора и окружен со всех сторон слоем изолирующего диэлектрика – двуокиси кремния.
Весьма упрощенное, поясняющее только основные принципы, описание механизма работы запоминающего элемента EPROM таково. Плавающий затвор находится под управляющим затвором и в исходном состоянии не влияет на работу транзистора. При программировании EPROM на выводы транзистора подается высокое напряжение, при котором возникает лавинный пробой и часть электронов проникает через потенциальный барьер в плавающий затвор. Двуокись кремния является настолько хорошим изолятором, что даже по истечении 10 лет на изолированном затворе сохраняется более 70 % заряда. Полученный при этом отрицательный заряд плавающего затвора увеличивает пороговое значение напряжения открывания транзистора до такого значения, что он не может быть открыт сигналом с адресной строки дешифратора и поэтому всегда находится в закрытом состоянии, задавая один логический уровень. Те транзисторы, которые не подвергались этой процедуре, работают в обычном ключевом режиме и под действием сигнала с адресной строки переводятся в открытое состояние, обеспечивая другой логический уровень.
Перед каждой процедурой программирования для возвращения транзисторов в исходное состояние их подвергают воздействию ультрафиолетового излучения с заданной длиной волны через специальное прозрачное окно в корпусе МК, за которым расположен кристалл. При взаимодействии квантов ультрафиолетового излучения с электронами на плавающем затворе энергия квантов передается электронам, которые, преодолевая потенциальный барьер, уходят в подложку кристалла, возвращая транзистор в управляемое состояние. После стирания все транзисторы приводятся в исходное состояние, и память может быть заново запрограммирована. Число циклов стирания и записи ограничено и составляет 10...100 для разных типов EPROM.
Еще сравнительно недавно этот тип ПЗУ широко применялся во многих МК, однако в последние годы его вытеснили ПЗУ, стирание информации в которых производится электрическими сигналами.
Программируемые ПЗУ с электрическим стиранием (EEPROM – Electrically Erasable Programmable ROM). Следующим шагом в развитии ПЗУ с запоминающими элементами на транзисторах с плавающим затвором стала возможность электрического стирания, при котором за счет использования эффекта туннелирования отрицательный заряд плавающего затвора снимается при подаче на выводы транзистора электрических сигналов. Еще одним отличием этого типа ПЗУ является то, что в нем имеется возможность побайтового стирания и программирования.
Помимо улучшения технических характеристик, отказ от стирания ультрафиолетовым излучением привел и к значительному удешевлению приборов за счет применения гораздо более простых и дешевых корпусов без стеклянного окна.
Казалось бы, что очевидные преимущества EEPROM должны были привести к повсеместному применению этого типа ПЗУ в микроконтроллерах, однако этого не произошло из-за того, что практически одновременно с появлением EEPROM появилась новая, еще более дешевая модификация электрически стираемой памяти – FlashROM.
Тем не менее EEPROM довольно часто используется в современных МК для хранения не кодов программ, а данных, которые получены в ходе выполнения программы и должны быть сохранены после выключения МК.
ПЗУ с электрическим стиранием типа Flash (FlashROM). В последнее время этот тип памяти стал практически неотъемлемым компонентом современных МК. По принципу действия флэш-память весьма похожа на EEPROM, и так же построена на одном из вариантов транзистора с плавающим затвором. Она создается на однотранзисторных элементах, что обеспечивает высокую плотность хранения информации. В настоящее время на рынке существует немало различных технологий построения базовых запоминающих элементов флэш-памяти, разработанных ее основными производителями. Технологии отличаются количеством слоев, методами стирания и записи данных, а также организацией структуры.
Основное отличие флэш-памяти от EEPROM заключается в том, что в ней технологией изготовления предусматривается только групповое стирание содержимого ячеек памяти, которое выполняется либо для всей микросхемы, либо для блока заданного размера. Именно за счет упрощения декодирующих схем, использующих блочную адресацию вместо байтовой, и произошло увеличение объемов встроенной памяти с одновременным снижением ее удельной стоимости.
Для возможности изменения одного байта в состав флэш-памяти вводится буферный накопитель в виде небольшого ОЗУ, содержимое которого после заполнения переписывается в постоянную память. Тогда для того, чтобы изменить один байт, в буфер предварительно считывается весь блок, где содержится подлежащий изменению байт, затем стирается содержимое блока, изменяется значение байта в буфере, после чего производится запись измененного в буфере блока.
Все рассмотренные типы ПЗУ, кроме MaskROM, программируются пользователем с применением различных технологий, учитывающих особенности их построения.



