DataFlash — универсальное средство для хранения программного кода и данных

№ 4’2004
Минуло уже четверть века с тех пор, как компания Toshiba впервые представила мировой общественности разработку микросхем Flash-памяти, название которых «Flash» было выбрано для выделения их основного отличия от существующих на тот момент перепрограммируемых постоянных запоминающих устройств (ППЗУ) — быстродействующее стирание блоков памяти или всей памяти в целом. С тех пор эта технология энергонезависимой памяти проникла практически во все сферы микроэлектроники и стала неотъемлемой частью современных микроконтроллеров, сигнальных процессоров и программируемой логики, а производители полупроводниковых ИС предпринимают решительные меры для позиционирования себя как производителей Flash-памяти. Среди прочих мировых лидеров в разработке Flash-технологии особое место занимает корпорация Atmel, которая является ведущим поставщиком Flash-памяти с последовательным интерфейсом, именуемой DataFlash.

Минуло уже четверть века с тех пор, как компания Toshiba впервые представила мировой общественности разработку микросхем Flash-памяти, название которых «Flash» было выбрано для выделения их основного отличия от существующих на тот момент перепрограммируемых постоянных запоминающих устройств (ППЗУ) — быстродействующее стирание блоков памяти или всей памяти в целом. С тех пор эта технология энергонезависимой памяти проникла практически во все сферы микроэлектроники и стала неотъемлемой частью современных микроконтроллеров, сигнальных процессоров и программируемой логики, а производители полупроводниковых ИС предпринимают решительные меры для позиционирования себя как производителей Flash-памяти. Среди прочих мировых лидеров в разработке Flash-технологии особое место занимает корпорация Atmel, которая является ведущим поставщиком Flash-памяти с последовательным интерфейсом, именуемой DataFlash.

Семейство DataFlash было представлено в 1997 году как микросхемы памяти серии AT45DBxxxx с малым числом выводов и последовательным доступом к данным для хранения программного кода, информации или для замены последовательных ЭСППЗУ. Одна из основных задач, которая стояла перед разработчиками DataFlash,— устранение невозможности перезаписи нескольких байт из-за большого размера страницы Flash-памяти (4-128 кбит). Для решения этой проблемы разработчики вынуждены были устанавливать внешнее страничное ОЗУ. У DataFlash эта проблема была решена путем разделения всего массива Flash-памяти на страницы небольшого размера: 264 байт для 8-мегабит-ной памяти и менее; 528 байт для 16- и 32-мегабит-ной; 1056 байт для 64- и 128-мегабитной; 2112 байт для 256- и 512-мегабитной. За счет этого данная память может использоваться не только для хранения кода программы, но и для энергонезависимого хранения данных с возможностью их модификации. Следующая проблема — большое количество выводов, необходимых для адресации и ввода-вывода данных памяти большого объема, была решена путем интегрирования простого последовательного высокоскоростного интерфейса, который за счет малого количества интерфейсных сигналов позволяет существенно упростить разводку печатной платы, повышает уровень системной надежности и уменьшает уровень шумов. Для подключения DataFlash емкостью 1-128 Мбит к микроконтроллеру или цифровому сигнальному процессору требуется всего 4 вывода. Малое число выводов делает также возможным изменение емкости памяти в пределах одной системы без каких-либо изменений печатной платы.

Для организации связи на частоте более 33 МГц Atmel разработала пионерский последовательный интерфейс RapidS. Фактически RapidS — модернизированный SPI, допускающий тактирование шины частотой 40 МГц и более. Кроме того, для приложений, требующих более высокую производительность, Atmel разработала 8-разрядный интерфейс Rapid8 с последовательным доступом, который интегрирован как альтернативный в память емкостью 64 и 128 Мбит.

В таблице представлена номенклатура и краткая характеристика памяти DataFlash. Все микросхемы AT45DB выпускаются для коммерческого (0… +70 °С) и промышленного (-40… +85 °С) температурных диапазонов, за исключением версий на 2,5 В, которые доступны только в коммерческом исполнении. Микросхема AT45BR3214B и все карты памяти AT45DC выпускаются только для промышленного температурного диапазона. DataFlash выпускаются в виде микросхем в стандартных промышленных корпусах, а также в виде конструктивно завершенных карт памяти.

Память DataFlash превосходно подходит для хранения голоса, изображений, программного кода и данных, особенно там, где требуется малое энергопотребление (рис. 1).

Таким образом, DataFlash может использоваться для замены трех типов памяти: памяти программ, памяти данных пользователя и конфигурационной памяти для хранения идентификационных данных, калибровочной информации и других параметров системы, при этом существенно снижая общую стоимость, размер, уровень шумов, сложность производства и улучшая надежность.

Таблица. Состав семейства DataFlash
Таблица. Состав семейства DataFlash
Рис. 1. Области применения энергонезависимой памяти DataFlash
Рис. 1. Области применения энергонезависимой памяти DataFlash
Рис. 2. Организация ячеек памяти при NOR-технологии
Рис. 2. Организация ячеек памяти при NOR-технологии
Рис. 3. Структура ячейки NOR Flash-памяти
Рис. 3. Структура ячейки NOR Flash-памяти

Обзор архитектуры DataFlash

В качестве отправной точки для создания DataFlash корпорация Atmel выбрала проверенную технологию организации ячеек памяти NOR (ИЛИ-НЕ), представленную на рис. 2. Ячейка памяти в простейшем случае представляет собой полевой транзистор с изолированным затвором (МОП-транзистор), у которого в изолированной области между управляющим затвором и подложкой расположен изолированный со всех сторон электрод, который получил название плавающего затвора — «floating gate» (рис. 3). За счет нахождения в изолированной среде плавающий затвор способен хранить свой заряд много лет. Соответственно, наличием или отсутствием заряда кодируется один бит информации: наличие заряда — лог. 0, отсутствие — лог. 1. Запись (заряд плавающего затвора) происходит методом инжекции «горячих» электронов при повышенном напряжении, а стирание (снятие заряда) осуществляется методом квантомеханического FN-тун-нелирования, названного в честь разработчиков данного метода Фаулера и Нордхейма.

Рис. 4. Архитектура памяти DataFlash
Рис. 4. Архитектура памяти DataFlash

Последним достижением корпорации Atmel является разработка технологии e-STAC, которая реализована в новом представителе семейства DataFlash — AT45DB1282. Данная технология отличается возможностью хранения в одной ячейке двух бит информации за счет установки и распознавания на плавающем затворе многоуровневого заряда. В конечном счете, технология e-STAC позволяет снизить стоимость высокоплотной памяти.

DataFlash имеет надежную архитектуру, отличающуюся наличием встроенных буферов на статическом ОЗУ (СОЗУ), малым размером страницы и гибкой системой команд (рис. 4). Одно из направлений развития DataFlash — объединение со статическим ОЗУ с раздельным параллельным доступом (по аналогии с серией совмещенной параллельной флэш-памяти и СОЗУ AT52BRxxxx) — реализовано в микросхеме AT45BR3214B. По сути, AT45BR3214B — два полностью независимых устройства (32 Мбит DataFlash + 8 Мбит 16-разрядного СОЗУ), интегрированных в один 62-выводной корпус CBGA.

Для оптимизации гибкости массив памяти DataFlash имеет трехуровневую организацию: секторы, блоки и страницы. Нижний уровень образуют страницы, которые состоят из N ячеек памяти (рис. 4). В свою очередь, каждые 8 страниц образуют блок. Следовательно, общее количество блоков равно M/8. Наконец, 1, 31, 32, 63 или 64 блока (зависит от типа DataFlash) образуют сектор. Общее количество секторов зависит от типа DataFlash и может составлять от 3 до 65. Такое разделение обеспечивает высокую гибкость за счет предоставления возможности постраничного стирания небольшого объема данных для приложений с хранением данных и поблочного стирания больших фрагментов памяти для приложений, где DataFlash используется для хранения программного кода. В последнем случае поблочное стирание позволяет реализовать функцию обновления программного обеспечения устройства во время его эксплуатации пользователем.

Встроенные буферы для повышения производительности

Почти все представители DataFlash содержат два двунаправленных буфера (AT45DB011B — один буфер), которые позволяют ускорить поток передаваемых данных. Данные буферы выполняют функцию встроенной «псевдо» кэш-памяти и позволяют принимать данные для записи во время выполнения операций программирования и стирания. Каждый буфер характеризуется размером (табл. 1), равным размеру страницы Flash-памяти, и функционирует независимо от других. Программист может использовать буферы данных как дополнительную оперативную память для временного хранения информации. Таким образом, встроенные буферы могут исключить необходимость применения внешнего ОЗУ, если в рамках решаемой задачи возникла нехватка внутренней оперативной памяти микроконтроллера или процессора.

Буферы DataFlash представляют собой статическое ОЗУ, следовательно, сохранность информации в буферах не гарантируется, если напряжение питания становится ниже заданного предела. Однако статический принцип работы буферов исключает необходимость обновления информации, тем самым гарантируя сохранность записанных в буфер данных. При выполнении операции записи обновлению подвергаются только адресуемые байты, а остальные остаются незатронутыми. Например, если пользователь загружает только 200 байт в буфер размером 264 байта, то остальные 64 байта сохраняют свое предыдущее состояние.

Функция сброса

DataFlash поддерживает функцию сброса, которая прекращает выполнение любой операции, находящейся в состоянии выполнения, и принудительно переводит встроенный цифровой автомат микросхемы в состояние холостого хода. Функция сброса инициируется подачей низкого уровня на вход RESET. Данный вход может использоваться совместно с системным супервизором питания для предотвращения повреждения данных при уменьшении напряжения питания ниже допустимого предела.

Если DataFlash сбрасывается до завершения операции программирования или стирания страницы, то правильность результата не гарантируется. Во избежание этого функция сброса должна быть инициирована только по завершении операции программирования или стирания, что достигается путем введения задержки на время tEP или tP опроса состояния вывода RDY/BUSY или опроса регистра состояния.

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

Интерфейс команд пользователя

Помимо представленных на рис. 4 функциональных блоков DataFlash содержит интерфейс команд пользователя (ИКП) и цифровой автомат, который отвечает за выполнение внутренних операций. ИКП принимает программные команды, преобразует их в сигналы управления цифрового автомата и определяет результат выполнения команды.

В состав цифрового автомата входит регистр состояния, который выполняет функцию обратной связи с памятью DataFlash. Для считывания регистра состояния необходимо загрузить команду чтения регистра состояния (код операции 57H или D7H) в DataFlash, а затем считать 8 бит данных на выводе SO. Запись в данный регистр невозможна.

При передаче регистра состояния первым будет выведен разряд 7 (старший разряд). Действительные данные будут следовать до 2-го разряда, а состояние разрядов 1 и 0 будет неопределенным, так как они являются резервными. После передачи разряда 0 состояние регистра статуса может быть опрошено снова начиная с разряда 7 до тех пор, пока на входе CS будет присутствовать низкий логический уровень, а на SCK присутствуют тактовые импульсы. Данная функция полезна при ожидании окончания программирования или стирания путем опроса разряда 7 RDY/BUSY регистра состояния, так как при каждом считывании регистра будет передаваться его обновленное значение.

Рис. 5. Пример использования DataFlash для реализации цифрового диктофона
Рис. 5. Пример использования DataFlash для реализации цифрового диктофона

DataFlash поддерживает команду сравнения буфера со страницей памяти (код операции 60Н для буфера 1 и 61Н для буфера 2), при этом для отображения результата сравнения выделен разряд 6 регистра состояния «Compare». Данная функция полезна для установления целесообразности перепрограммирования страницы памяти, например, после сброса DataFlash во время программирования.

Разряды 5-2 регистра состояния содержат информацию о емкости памяти, используемой DataFlash, предоставляя возможность системе при старте определить размер энергонезависимой памяти и в соответствии с этим планировать ее использование.

Программная поддержка

Для сокращения сроков проектирования систем компания Atmel разработала DFSS (DataFlash Software Suite — пакет программ для работы с микросхемами памяти семейства DataFlash). DFSS — обширный пакет программ, который содержит исходные тексты программ на языке С и полный комплект документации, охватывающие весь диапазон системных решений. В частности, имеются программные модули базовых драйверов для всех функций DataFlash, файловой системы Flash (с поддержкой форматов FAT12 и FAT16), сжатия и декомпрессии, декодирования и исправления ошибок (ЕСС), равномерного износа ячеек памяти и автоматической перезаписи страниц. DFSS доступен для использования по свободной лицензии.

Пример использования

Корпорацией Atmel разработана рекомендация по совместному использованию AVR-микроконтроллера и DataFlash AT45DB161B для реализации цифрового диктофона (рис. 5). При 8-разрядном разрешении оцифровки звука и частоте его преобразования 8 кГц, обеспечивающей частотный диапазон до 4 кГц, максимальное время записи составляет 4 мин 15 с. Данная разработка характеризуется очень малыми размерами печатной платы и размером кода программы всего 550 байт.

Выводы

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

В современном состоянии данного семейства памяти можно выделить тенденции:

  • развитие «классической» памяти DataFlash (AT45DB) в плане увеличения объема памяти с использованием технологии e-STAC.
  • реализация аналогий с серией AT52BR: DataFlash + отдельное статическое ОЗУ
  • (AT45BR).
  • Реализация оптимизированных устройств DataFlash под хранение программного кода (AT45CS). В данном направлении реализован один представитель AT45CS1282, отличающийся от остальных разделением памяти только на страницы и сектора больших размеров с поддержкой стирания последних.

Литература

  1. NAND Flash Technology. http://samsungelec-tronics.com/semiconductors/Flash/techni-cal_data/application_notes/Nand.pdf.
  2. DataFlash® — Devices. http://www.atmel.com/ products/DataFlash/.
  3. Рекомендации по применению «AVR335: Digital Sound Recorder with AVR and DataFlash». http://www.atmel.com/dyn/ resources/ prod_documents/doc1456.pdf.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *