DataFlash –универсальное средство для хранения программного кода и данных
Введение
Минула уже четверть века с тех пор, как компания Toshiba первой представила мировой общественности разработку микросхем флэш-памяти, название которых "флэш" было выбрано для выделения их основного отличия от существующих на тот момент перепрограммируемых постоянных запоминающих устройств – быстродействующее стирание блоков памяти или всей памяти в целом. С тех пор эта технология энергонезависимой памяти проникла практически во все сферы микроэлектроники и стала неотъемлемой частью современных микроконтроллеров, сигнальных процессоров и программируемой логики, а производители полупроводниковых ИС предпринимают решительные меры для позиционирования себя как производителей флэш-памяти. Среди прочих мировых лидеров в разработке флэш-технологии особое место занимает корпорация Atmel, которая является ведущим поставщиком флэш-памяти с последовательным интерфейсом, именуемой DataFlash. Семейство DataFlash было представлено в 1997, как микросхемы памяти серии AT45DBxxxx с малым числом выводов и последовательным доступом к данным для хранения программного кода, информации или для замены последовательных ЭСППЗУ.
Одной из основных задач, которая стояла перед разработчиками DataFlash, являлась задача устранения недостатка невозможности перезаписи нескольких байт из-за большого размеры страницы флэш-памяти 4…128кбит. Для решения этой проблемы разработчики вынуждены были устанавливать внешнее страничное ОЗУ. У DataFlash эта проблема была решена путем разделения всего массива флэш-памяти на страницы небольшого размера: 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Мбит.
В таблице 1 представлена номенклатура и краткая характеристика памяти DataFlash. Все микросхемы AT45DB выпускаются для коммерческого (0?…+70?С) и промышленного (-40°…+85°С) температурных диапазонов, за исключением версий на 2.5В, которые доступны только в коммерческом исполнении. Микросхема AT45BR3214B и все карты памяти AT45DC выпускаются только для промышленного температурного диапазона. DataFlash выпускаются в виде микросхем в стандартных промышленных корпусах, а также в виде конструктивно завершенных карт памяти.
Память DataFlash превосходно подходит для хранения голоса, изображений, программного кода и данных, особенно там, где требуется малое энергопотребление. На рисунке 1 представлены возможные сферы применения DataFlash.
Табл 1. Характеристики приборов семейства AT45.
Тип |
Ёмкость |
Vcc |
Интерфейс |
Частота |
Буфер |
Корпус |
AT45DB011B |
1Mbit |
2.7 |
Serial |
20MHz |
1x264 |
SO8,CBGA9,TSSOP14 |
AT45DB021B |
2Mbit |
2.7 |
Serial |
20MHz |
2x264 |
SO8,SO28,CBGA9,TSOP28 |
AT45DB041B |
4Mbit |
2.7 |
Serial |
20MHz |
2x264 |
SO8,SO28,CBGA14,TSOP28 |
AT45DB081B |
8Mbit |
2.7 |
Serial |
20MHz |
2x264 |
SO28,CBGA14,TSOP28 |
AT45DB161B |
16Mbit |
2.7 |
Serial |
20MHz |
2x528 |
SO28,CBGA24,TSOP28 |
AT45DB321B |
32Mbit |
2.7 |
Serial |
20MHz |
2x528 |
SO28,CBGA44,TSOP32 |
AT45DB321C |
32Mbit |
2.7 |
Serial |
40MHz |
2x528 |
SO28,CBGA44,TSOP32 |
AT45DB642 |
64Mbit |
2.7 |
Dual-interface |
20/5MHz |
2x1056 |
TSOP40 |
AT45DB1282 |
128Mbit |
2.7/1.8 |
Dual-interface |
50/40MHz |
2x1056 |
|
AT45DB2562 |
256Mbit |
2.7/1.8 |
Dual-interface |
50/40MHz |
2x2112 |
|
Low Batteryage (2.5V to 3.6V) |
AT45DB041B-2.5 |
4Mbit |
2.5 |
Serial |
15MHz |
2x264 |
SO8,SO28,TSOP28 |
AT45DB081B-2.5 |
16Mbit |
2.5 |
Serial |
15MHz |
2x264 |
SO28,CBGA14,TSOP28 |
DataFlash Cards
Тип |
Ёмкость |
Vcc |
Частота |
Интерфейс |
AT45DCB002 |
2Mbyte |
2.7 |
20MHz |
Only Serial interface DataFlash Card |
AT45DCB004 |
4Mbyte |
2.7 |
20MHz |
Only Serial interface DataFlash Card |
AT45DCB008 |
8Mbyte |
2.7 |
20MHz |
Only Serial interface DataFlash Card |
Таким образом, DataFlash может использоваться для замены трех типов памяти: памяти программ, памяти данных пользователя и конфигурационной памяти данных для хранения идентификационных данных, калибровочной информации и др. параметров системы, при этом существенно снижая общую стоимость, размер, уровень шумов, сложность производства и улучшая надежность.
Рисунок 1 – Области применения энергонезависимой памяти DataFlash
Обзор архитектуры DataFlash
В качестве отправной точки для создания DataFlash корпорация Atmel выбрала проверенную технологию NOR (ИЛИ-НЕ) для организации ячеек памяти, представленную на рис. 2. Ячейка памяти в простейшем случае представляет собой полевой транзистор с изолированным затвором (МОП-транзистор), у которого в изолированной области между управляющим затвором и подложкой расположен изолированный со всех сторон электрод, который получил название плавающего затвора – "floating gate" (см. рис. 3). За счет нахождения в изолированной среде плавающий затвор способен хранить свой заряд много лет. Соответственно, наличием или отсутствием заряда кодируется один бит информации: наличие заряда – лог. 0, отсутствие – лог. 1. Запись (заряд плавающего затвора) происходит методом инжекции "горячих" электронов при повышенном напряжении, а стирание (снятие заряда) осуществляются методом квантомеханического FN-туннелирования, названного в честь разработчиков данного метода Фаулера и Нордхейма.
|
|
Рисунок 2 – Организация ячеек памяти при NOR-технологии |
Рисунок 3 – Структура ячейки NOR флэш-памяти |
Последним достижением корпорации Atmel является разработка технологии e-STAC, которая реализована в новом представителе семейства DataFlash - AT45DB1282. Данная технология отличается возможностью хранения в одной ячейке двух бит информации за счет установки и распознавания на плавающем затворе многоуровневого заряда. В конечном счете, технология e-STAC позволяет снизить стоимость высокоплотной памяти.
Рисунок 4 – Архитектура памяти DataFlash
Для оптимизации гибкости массив памяти DataFlash имеет трехуровневую организацию: секторы, блоки и страницы. Нижний уровень образуют страницы, которые состоят из N ячеек памяти (см. рис. 4). В свою очередь каждые восемь страниц образуют блок. Следовательно, общее количество блоков равно M/8. Наконец, 1, 31,32, 63 или 64 блока (зависит от типа DataFlash) образуют сектор. Общее количество секторов зависит от типа DataFlash и в общем случае равно 3…65. Такое разделение обеспечивает высокую гибкость за счет предоставления возможности постраничного стирания небольшого объема данных для приложений с хранением данных и поблочного стирания больших фрагментов памяти для приложений, где DataFlash используется для хранения программного кода. В последнем случае поблочное стирание позволяет реализовать функцию обновления программного обеспечения устройства во время его эксплуатации пользователем.
Встроенные буферы для повышения производительности
Все представители DataFlash содержат два двунаправленных буфера (AT45DB011B – один буфер), которые позволяют ускорить поток передаваемых данных. Данные буферы выполняют функцию встроенной “псевдо” кэш-памяти и позволяют принимать данные для записи во время выполнения операций программирования/стирания. Каждый буфер характеризуется размером (см. табл. 1) равным размеру страницы флэш-памяти и функционируют независимо друг от друга. Программист может использовать буферы данных как дополнительную оперативную память для временного хранения данных. Таким образом, встроенные буферы могут исключить необходимость применения внешнего ОЗУ, если в рамках решаемой задачи возникла нехватка внутренней оперативной памяти микроконтроллера или процессора.
Буферы DataFlash представляют собой статическое ОЗУ, следовательно, сохранность информации в буферах не гарантируется, если напряжение питания становится ниже заданного предела. Однако, статический принцип работы буферов исключает необходимость обновления данных, тем самым, гарантируя сохранность записанных в буфер данных. При выполнении операции записи обновлению подвергаются только адресуемые байты, а остальные остается незатронутыми. Например, если пользователь загружает только 200 байт в буфер размером 264 байта, то остальные 64 байта сохраняют свое предыдущее состояние.
Функция сброса. DataFlash поддерживает функцию сброса, которая прекращает выполнение любой операции, находящейся в состоянии выполнения, и принудительно переводит встроенный цифровой автомат микросхемы в состояние холостого хода. Функция сброса инициируется подачей низкого уровня на вход RESET. Данный вход может использоваться совместно с системным супервизором питания для предотвращения повреждения данных при снижении напряжения питания ниже допустимого предела.
Если DataFlash сбрасывается до завершения операции программирования/стирания страницы, то правильность результата программирования/стирания не гарантируется. Во избежание этого, функция сброса должна быть инициирована только по завершении операции программирования/стирания, что достигается путем введения задержки на время tEP или tP, опроса состояния вывода RDY/BUSY или опроса регистра состояния.
Если системе требуется обработать прерывание с более высоким приоритетом и по этой причине вынуждена сбросить DataFlash до завершения операции программирования/стирания, то программирование страницы флэш-памяти может быть выполнено позже. Операция сброса не влияет на содержимое встроенных буферов ОЗУ. Поэтому, если операция программирования была прервана сбросом, то страница флэш-памяти может быть снова перепрограммирована путем выполнения команды программирования страницы памяти из буфера с автоматическим стиранием.
Интерфейс команд пользователя
Помимо представленных на рис. 4 функциональных блоков DataFlash содержит интерфейс команд пользователя (ИКП) и цифровой автомат, который отвечает за выполнение внутренних операций. ИКП принимает программные команды, преобразует их в сигналы управления цифрового автомата и определяет результат выполнения команды.
В состав цифрового автомата входит регистр состояния, который выполняет функцию обратной связи с памятью DataFlash. Для считывания регистра состояния необходимо загрузить команду чтения регистра состояния (код операции 57H или D7H) в DataFlash, а затем считать 8 бит данных на выводе SO. Запись в данный регистр не возможна.
При передаче регистра состояния первым будет выведен разряд 7 (старший разряд). Действительные данные будут следовать до 2-го разряда, а состояние разрядов 1 и 0 будет неопределенным, так как они являются резервными. После передачи разряда 0 состояние регистра статуса может быть опрошено снова, начиная с разряда 7 до тех пор, пока на входе CS будет присутствовать низкий логический уровень, а на SCK присутствуют тактовые импульсы. Данная функция полезна при ожидании окончания программирования/стирания путем опроса разряда 7 RDY/BUSY регистра состояния, т.к. при каждом считывании регистра будет передаваться его обновленное значение.
DataFlash поддерживает команду сравнения буфера со страницей памяти (код операции 60Н для буфера 1 и 61Н для буфера 2), при этом для отображения результата сравнения выделен разряд 6 регистра состояния "Compare". Данная функция полезна для установления целесообразности перепрограммирования страницы памяти, например, после сброса DataFlash во время программирования.
Разряды 5-2 регистра состояния содержат информацию о емкости памяти используемой DataFlash, предоставляя возможность системе при старте определить размер энергонезависимой памяти и в соответствии с этим планировать ее использование.
Программная поддержка
Для сокращения сроков проектирования систем компания Atmel разработала DFSS (DataFlash Software Suite - пакет программ для работы с микросхемами памяти семейства DataFlash). DFSS - обширный пакет программ, который содержит исходные тексты программ на языке Си и полный комплект документации, охватывающие весь диапазон системных решений. В частности имеются программные модули базовых драйверов для всех функций DataFlash, файловой системы Flash (с поддержкой форматов FAT12 и FAT16), сжатия и декомпрессии, декодирования и исправления ошибок (ЕСС), равномерного износа ячеек памяти и автоматической перезаписи страниц. DFSS доступен для использования по свободной лицензии.
Рисунок 5 – Пример использования DataFlash для реализации цифрового диктофона
Выводы
Память DataFlash разработана как новый тип энергонезависимой памяти, позволяющей легко и эффективно манипулировать с большим объемом быстроизменяющихся данных. Появление DataFlash является ответом на запросы разработчиков, которые были разочарованы во время использования флэш-памяти с большим размером секторов для хранения и изменения данных. Реализация у DataFlash страничного разделения памяти с малым размером, встройка буферов на ОЗУ, простого последовательного интерфейса и гибкой системы команд позволили, в конечном счете, получить семейство флэш-памяти, которое удовлетворяет как требованиям хранения программного кода, так и хранения данных.
В современном состоянии данного семейства памяти можно выделить три тенденции:
- Развитие "классической" памяти DataFlash (AT45DB) в плане увеличения объема памяти с использованием технологии e-STAC.
- Реализация аналогий с серией AT52BR: DataFlash + отдельное статическое ОЗУ (AT45BR).
- Реализация оптимизированных DataFlash под хранение программного кода (AT45CS). В данном направлении реализован один представитель AT45CS1282, отличающий от остальных разделением памяти только на страницы и сектора больших размеров с поддержкой стирания последних.
Документация:
|
|
Rus Микросхемы последовательной Flash памяти семейства AT45 фирмы Atmel |
|
|
Rus Применение DataFlash фирмы Atmel |
|