e
Компоненты и технологии, № 4'2004
Ра!аР!а$Ь -универсальное средство
для хранения программного кода и данных
Минуло уже четверть века с тех пор, как компания Toshiba впервые представила мировой общественности разработку микросхем Flash-памяти, название которых «Flash» было выбрано для выделения их основного отличия от существующих на тот момент перепрограммируемых постоянных запоминающих устройств (ППЗУ) — быстродействующее стирание блоков памяти или всей памяти в целом. С тех пор эта технология энергонезависимой памяти проникла практически во все сферы микроэлектроники и стала неотъемлемой частью современных микроконтроллеров, сигнальных процессоров и программируемой логики, а производители полупроводниковых ИС предпринимают решительные меры для позиционирования себя как производителей Flash-памяти. Среди прочих мировых лидеров в разработке Flash-технологии особое место занимает корпорация Atmel, которая является ведущим поставщиком Flash-памяти с последовательным интерфейсом, именуемой DataFlash.
Константин Староверов, к. т. н
Г:
A
емейство 0а1аИа8Ь было представлено в 1997 году как микросхемы памяти серии ЛТ450Вхххх с малым числом выводов и последовательным доступом к данным для хранения программного кода, информации или для замены последовательных ЭСППЗУ. Одна из основных задач, которая стояла перед разработчиками Оа1аИа8Ь,— устранение невозможности перезаписи нескольких байт из-за большого размера страницы Иа8Ь-памяти (4-128 кбит). Для решения этой проблемы разработчики вынуждены были устанавливать внешнее страничное ОЗУ. У Оа1аИа8Ь эта проблема была решена путем разделения всего массива Иа8Ь-памяти на страницы небольшого размера: 264 байт для 8-мегабит-ной памяти и менее; 528 байт для 16- и 32-мегабит-ной; 1056 байт для 64- и 128-мегабитной; 2112 байт для 256- и 512-мегабитной. За счет этого данная память может использоваться не только для хранения кода программы, но и для энергонезависимого хранения данных с возможностью их модификации. Следующая проблема — большое количество выводов, необходимых для адресации и ввода-вывода данных памяти большого объема, была решена путем интегрирования простого последовательного высокоскоростного интерфейса, который за счет малого количества интерфейсных сигналов позволяет существенно упростить разводку печатной платы, повышает уровень системной надежности и уменьшает уровень шумов. Для подключения Оа1аИа8Ь емкостью 1-128 Мбит к микроконтроллеру или цифровому сигнальному процессору требуется всего 4 вывода. Малое число выводов делает также возможным изменение емкости памяти в пределах одной системы без каких-либо изменений печатной платы.
Для организации связи на частоте более 33 МГц Л1ше1 разработала пионерский последовательный интерфейс RаpidS. Фактически RapidS — модернизированный БР1, допускающий тактирование шины частотой 40 МГц и более. Кроме того, для приложений, требующих более высокую производительность, Л1ше1 разработала 8-разрядный интерфейс Rapid8 с последовательным доступом, который интегрирован как альтернативный в память емкостью 64 и 128 Мбит.
В таблице представлена номенклатура и краткая характеристика памяти Оа1аИа8Ь. Все микросхемы ЛТ45ББ выпускаются для коммерческого (0... +70 °С) и промышленного (-40. +85 °С) температурных диапазонов, за исключением версий на 2,5 В, которые доступны только в коммерческом исполнении. Микросхема AT45BR3214B и все карты памяти ЛТ45БС выпускаются только для промышленного температурного диапазона. Оа1аИа8Ь выпускаются в виде микросхем в стандартных промышленных корпусах, а также в виде конструктивно завершенных карт памяти.
Память Оа1аИа8Ь превосходно подходит для хранения голоса, изображений, программного кода и данных, особенно там, где требуется малое энергопотребление (рис. 1).
Таким образом, Оа1аИа8Ь может использоваться для замены трех типов памяти: памяти программ, памяти данных пользователя и конфигурационной памяти для хранения идентификационных данных, калибровочной информации и других параметров системы, при этом существенно снижая общую стоимость, размер, уровень шумов, сложность производства и улучшая надежность.
e
Компоиеиты и технологии, № 4'2004
Таблица. Состав семейства DаtаFIаsh
Наименование DataFlash Емкость памяти Vcc, В Количество выводов Тип интерфейса Версия на 2,5 В Размер страницы, байт Буфер на ОЗУ Тип корпуса
AT45DB011B 1 Мбит 2,7 8, 9, 14 Послед. (БР!) 264 1xN CBGA, SOIC, TSSOP
AT45DB021B 2 Мбит 2,7 8, 9, 28 Послед. (БР!) 264 2xN CBGA, SOIC, TSOP
AT45DB041B 4 Мбит 2,7 8,14, 28 Послед. (БР!) 264 2xN CBGA, SOIC, TSOP, CASON
Микросхемы AT45DB081B 8 Мбит 2,7 8, 14, 28 Послед. (БР!) 264 2xN CASON, CBGA, SOIC, TSOP
AT45DB161B 16 Мбит 2,7 8, 24, 28 Послед. (БР!) 528 2xN CASON, CBGA, SOIC, TSOP
AT45DB321B 32 Мбит 2,7 28, 32, 44 Послед. (БР!) 528 2xN CBGA, SOIC, TSOP
AT45BR3214B 32 Мбит 2,7; 3,3 62 Послед. (БР!) 528 2xN CBGA
AT45DB642 64 Мбит 2,7 40 Послед., 1?ар1с18 1056 2xN TSOP
AT45DB1282 128 Мбит 2,7—3,6 40, 44 Послед., 1?ар1с18 1056 2xN CBGA, TSOP
а. а AT45DCB002 2 Мбайт 2,7 7 Послед. 528 2xN 7DF1
AT45DCB004 4 Мбайт 2,7 7 Послед. 528 2xN 7DF1
AT45DCB008 8 Мбайт 2,7 7 Послед. 1056 2xN 7DF1
Рис. 1. Области применения энергонезависимой памяти DataFlash
Обзор архитектуры DataFlash
В качестве отправной точки для создания DataFlash корпорация Atmel выбрала проверенную технологию организации ячеек памяти NOR (ИЛИ-НЕ), представленную на рис. 2. Ячейка памяти в простейшем случае представляет собой полевой транзистор с изолированным затвором (МОП-транзис-тор), у которого в изолированной области между управляющим затвором и подложкой
расположен изолированный со всех сторон электрод, который получил название плавающего затвора — «floating gate» (рис. 3). За счет нахождения в изолированной среде плавающий затвор способен хранить свой заряд много лет. Соответственно, наличием или отсутствием заряда кодируется один бит информации: наличие заряда — лог. 0, отсутствие — лог. 1. Запись (заряд плавающего затвора) происходит методом инжекции «горячих» электронов при повышенном напряжении, а стирание (снятие заряда) осуществляется методом квантомеханического FN-туннелирования, названного в честь разработчиков данного метода Фаулера и Нордхейма.
Последним достижением корпорации 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. Такое разделение обеспечивает высокую гибкость за счет предоставления возможности постраничного
Управляющий затвор Плавающий затвор I Полидиэлектрик
I ^ lJT^am
1-І
Р-канальная подложка
Рис. 3. Структура ячейки NOR Fhsh-памяти
Защита от записи WP Синхронизация SCK Выбор микросхемы €5 Сброс RESET ^ Питание VCC Общий GND^ Готовостъ/Занято RDY/BUSY
— Чтение SOE Запись SWE
__SCSI Выбор микросхемы!
SCS2 Выбор микросхемы 2 SLB Выбор мл. байта SUB Выбор ст. байта SVCC Питание СОЗУ
Буфер 1 (N байт)
____________________ м | SGND Общий СОЗУ
| Буфер 2 (N байт) | 1/00 -1/015
SER/PAR
Выбор интерфейса: последовательный/ параллельный
Интерфейс ввода-вывода
Последовательный |
Параллельный
Послед.ввод SI Рис. 4. Архитектура памяти DataFlash
SO По след, в вод
1/07-1/00
Параллельный
ввод-вывод
DataFlash Емкость М N
AT45DB001B ІМбит 512 264
AT45DB021B 2 Мбит 1024 264
AT45DB041B 4Мбит 2048 264
AT45DB081В 8М6ит 4096 264
AT45DB161B 1 бМбит 4096 528
AT45DB321В 32Мбит 8192 528
AT45BR3214B 32Мбит 8192 528
AT45DB642 64Мбит 8192 1056
AT45DB1282 128Мбит 16384 1056
AT45DCB002 2Мбит 406 528
AT45DCB004 4Мбит 8192 528
AT45DCB008 8Мбит 8192 1056
e
Компоненты и технологии, № 4'2004
стирания небольшого объема данных для приложений с хранением данных и поблочного стирания больших фрагментов памяти для приложений, где DataFlash используется для хранения программного кода. В последнем случае поблочное стирание позволяет реализовать функцию обновления программного обеспечения устройства во время его эксплуатации пользователем.
Встроенные буферы для повышения производительности
Почти все представители DataFlash содержат два двунаправленных буфера (AT45DB011B — один буфер), которые позволяют ускорить поток передаваемых данных. Данные буферы выполняют функцию встроенной «псевдо» кэш-памяти и позволяют принимать данные для записи во время выполнения операций программирования и стирания. Каждый буфер характеризуется размером (табл. 1), равным размеру страницы Flash-памяти, и функционирует независимо от других. Программист может использовать буферы данных как дополнительную оперативную память для временного хранения информации. Таким образом, встроенные буферы могут исключить необходимость применения внешнего ОЗУ, если в рамках решаемой задачи возникла нехватка внутренней оперативной памяти микроконтроллера или процессора.
Буферы DataFlash представляют собой статическое ОЗУ, следовательно, сохранность информации в буферах не гарантируется, если напряжение питания становится ниже заданного предела. Однако статический принцип работы буферов исключает необходимость обновления информации, тем самым гарантируя сохранность записанных в буфер данных. При выполнении операции записи обновлению подвергаются только адресуемые байты, а остальные остаются незатронутыми. Например, если пользователь загружает только 200 байт в буфер размером 264 байта, то остальные 64 байта сохраняют свое предыдущее состояние.
Функция сброса
DataFlash поддерживает функцию сброса, которая прекращает выполнение любой операции, находящейся в состоянии выполнения, и принудительно переводит встроенный цифровой автомат микросхемы в состояние холостого хода. Функция сброса инициируется подачей низкого уровня на вход RESET. Данный вход может использоваться совместно с системным супервизором питания для предотвращения повреждения данных при уменьшении напряжения питания ниже допустимого предела.
Если DataFlash сбрасывается до завершения операции программирования или стирания страницы, то правильность результата не гарантируется. Во избежание этого функция сброса должна быть инициирована только по завершении операции программирования или стирания, что достигается путем введения задержки на время tEP или tP опроса состояния вывода RDY/BUSY или опроса регистра состояния.
Если системе требуется обработать прерывание с более высоким приоритетом и по этой
причине необходимо сбросить Ла1аИа8Ь до завершения операции программирования (стирания), то программирование страницы ИавЬ-памяти может быть выполнено позже. Операция сброса не влияет на содержимое встроенных буферов ОЗУ. Поэтому если операция программирования была прервана сбросом, то страница БЫИ-памяти может быть снова перепрограммирована путем выполнения команды программирования страницы памяти из буфера с автоматическим стиранием.
Интерфейс команд пользователя
Помимо представленных на рис. 4 функциональных блоков Ла1аИа8Ь содержит интерфейс команд пользователя (ИКП) и цифровой автомат, который отвечает за выполнение внутренних операций. ИКП принимает программные команды, преобразует их в сигналы управления цифрового автомата и определяет результат выполнения команды.
В состав цифрового автомата входит регистр состояния, который выполняет функцию обратной связи с памятью Ла1аИа8Ь. Для считывания регистра состояния необходимо загрузить команду чтения регистра состояния (код операции 57Н или Л7Н) в Ла1аИа8Ь, а затем считать 8 бит данных на выводе 80. Запись в данный регистр невозможна.
При передаче регистра состояния первым будет выведен разряд 7 (старший разряд). Действительные данные будут следовать до 2-го разряда, а состояние разрядов 1 и 0 будет неопределенным, так как они являются резервными. После передачи разряда 0 состояние регистра статуса может быть опрошено снова начиная с разряда 7 до тех пор, пока на входе С8 будет присутствовать низкий логический уровень, а на 8СК присутствуют тактовые импульсы. Данная функция полезна при ожидании окончания программирования или стирания путем опроса разряда 7 ИЛУ/ВШУ регистра состояния, так как при каждом считывании регистра будет передаваться его обновленное значение.
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 кГц, мак-
Vcc
Vcc
DataFlash
GND
GND
■—I1П1—
8 Мгц
: 22 пФ =Г 22 пФ СЗЫО
Рис. 5. Пример использования ОаГаРЬэЬ для реализации цифрового диктофона ----------------------------------------------www.finestreet.ru -
e
Компоненты и технологии, № 4'2004
симальное время записи составляет 4 мин 15 с. Данная разработка характеризуется очень малыми размерами печатной платы и размером кода программы всего 550 байт.
Выводы
Память DataFlash разработана как новый тип энергонезависимой памяти, позволяющей легко и эффективно манипулировать с большим объемом быстроизменяющихся данных. Появление DataFlash стало решением проблем разработчиков, разочарованных возможностями Flash-памяти с большим размером секторов. Реализация страничного разделения памяти с малым размером у DataFlash, встройка буферов на ОЗУ,
простого последовательного интерфейса и гибкой системы команд позволили в конечном счете получить семейство ИавЬ-па-мяти, которое удовлетворяет требованиям как хранения программного кода, так и хранения данных.
В современном состоянии данного семейства памяти можно выделить тенденции:
• развитие «классической» памяти Ла1аИа8Ь (АТ45ЛВ) в плане увеличения объема памяти с использованием технологии е-8ТАС.
• реализация аналогий с серией АТ52ВИ: Ла1аИа8Ь + отдельное статическое ОЗУ (АТ45ВИ).
• Реализация оптимизированных устройств Ла1аИа8Ь под хранение программного кода (АТ45С8). В данном направлении реализо-
ван один представитель 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.