Применение мультимедийных карт во встраиваемых системах

ПРИМЕНЕНИЕ МУЛЬТИМЕДИЙНЫХ КАРТ ВО ВСТРАИВАЕМЫХ

СИСТЕМАХ Д.Р. Ковязина, Е.В. Петров

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

Введение

С каждым годом мультимедийные карты (или карты памяти) становятся все более доступными и распространенными. Наблюдается устойчивая тенденция к снижению цен, растет объем, повышается быстродействие. Изначальная сфера применения карт памяти - цифровая фотография - расширена, и на сегодняшний день данные носители зачастую приобретаются для карманных персональных компьютеров (КПК), мобильных телефонов, тр3-плееров, цифровых диктофонов и других устройств, работающих с мультимедийной информацией.

Мультимедийные карты - это портативные энергонезависимые носители информации на базе флэш-памяти. Сейчас флэш - одна из основных технологий полупроводниковой памяти. Информация, записанная во флэш-память, может храниться очень длительное время и способна выдерживать значительные механические нагрузки [7]. Благодаря низкому энергопотреблению, компактности, долговечности, относительно высокому быстродействию, флэш-память идеально подходит для использования в качестве накопителя в портативных цифровых устройствах. Эти же характеристики являются привлекательными для применения карт памяти во встраиваемых системах (ВсС) в качестве внешней сменной флэш-памяти большой емкости. Такую память можно использовать для хранения конфигураций, показаний датчиков, журнала событий и действий ВсС и др. Возможность форматирования карт под стандартные файловые системы позволяет без особого труда переносить данные с персонального компьютера во ВсС и обратно. Кроме того, стандарты некоторых карт памяти позволяют использовать их разъемы для подключения устройств различного назначения: приемо-передатчик Bluetooth, модем, GPS-приемник, диктофон и др.

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

1. Обзор мультимедийных карт 1.1. Основные характеристики мультимедийных карт

Основными представителями современного рынка мультимедийных карт являются CompactFlash, MultiMedia Card (MMC), Secure Digital Card (SD), Memory Stick, SmartMedia. При этом самые распространенные карты памяти - это SD и MMC, второе место делят Memory Stick [2] и CompactFlash [5], карты SmartMedia [6] становятся историей, так как устройства, поддерживающие данный стандарт, снимаются с производства. Сравнительные характеристики мультимедийных карт приведены в таблице 1.

Большинство карт памяти (кроме SmartMedia) содержит дополнительно к микросхеме флэш-памяти встроенный контроллер. При этом на скорость работы карты критическое влияние оказывает быстродействие обоих элементов. На сегодняшний день существует несколько технологий флэш-памяти, наиболее распространенными из которых являются NAND и NOR [7, В]. Основные различия между ними состоят в следующем: более дорогостоящая NOR-память обладает высокой скоростью произвольного доступа и возможностью работы на уровне отдельных байтов. А NAND-память имеет страничную организацию и высокую скорость считывания, но не может предоставлять случайный побайтовый доступ. В большинстве карт памяти используется именно NAND-технология.

Эффективность контроллера, играющего роль интерфейса между флэш-памятью и хост-устройством, оказывает сильнейшее влияние на скорость работы карты. Как правило, в контроллер встраивается небольшой буфер чтения/записи, позволяющий ускорить доступ к памяти, логический блок коррекции ошибок ECC, блок управления дефектными секторами флэш-памяти и др. Наличие контроллера упрощает коммуникацию между флэш-картой и устройством, в котором она используется [7]. Отсутствие контроллера позволяет несколько уменьшить конечную стоимость флэш-карты, уменьшить её габариты, вес, а также распоряжаться памятью так, как это удобно разработчикам устройств, использующих флэш-память, однако все заботы о целостности данных, хранящихся на карте, ложатся на само устройство. Так что в устройство приходится встраивать свой собственный контроллер, реализующий ECC и другие функции. Кроме того, в мультимедийных картах со встроенными контроллерами есть регистры, содержащие информацию об используемой карте. Контроллер имеет систему команд, при помощи которых можно организовать чтение, запись, стирание данных карты, получить параметрические данные карты и т. д.

MMC SD CompactFlash Memory Stick SmartMedia

Габариты (мм) 32.0 x 24.0 x 1.4 32.0 x 24.0 x 2.1 36.4 x 42.Б x 3.3 50.0 x 21.5 x 2.Б 45.0 x 37.0 x 0.76

Напряжение питания (В) 2.7 - 3.6 2.7 - 3.6 3.3 или 5 2.7 - 3.6 3.3 или 5

Контакты (шт.) 7 9 50 10 22

Файловая система FAT FAT FAT FAT FAT

Емкость (Гб)1 2 4 12 4 0,5

Интерфейс MMC, SPI SD, SPI IDE MS SM

Скорость чтения/записи (Мб/с) 2 / 2 В / 6 В / 7 10 / В 4 / 2.3

Температура работы, хранения (0С) от -25 до +В5 от -40 до +В5 от -25 до +В5 от -40 до +В5 от 0 до +70 от -25 до +В5 от -25 до +В5 от -40 до +100 от 0 до +55 от -20 до +65

Наличие встроенного контроллера Да Да Да Да Нет

Таблица 1. Сравнительные характеристики мультимедийных карт

1 Максимальная емкость карт памяти на сегодняшний день.

В настоящее время стандартной файловой системой для большинства флэш-карт является FAT16. Однако FAT16 не поддерживает накопители объемом свыше 2 Гб. Поэтому для флэш-карт большего размера используется файловая система FAT32. В то же время некоторые компании-производители придумывают оригинальную конструкцию своих карт памяти, которая позволяет при работе с FAT16 использовать полную емкость карты, большую, чем 2 Гб. Кроме перечисленных стандартных файловых систем, карта памяти может быть отформатирована под собственную файловую систему.

Энергопотребление мультимедийных карт представлено следующим образом: карта CompactFlash может работать с любым из двух видов питания (3,3 В или 5 В), в отличие от карт SmartMedia, существующих в двух различных версиях - 3,3 В и 5 В; в спецификации MMC и SD предусмотрены карты с пониженным энергопотреблением (1,6 - 3,6 В), кроме того, эти карты могут находиться в «спящем» (неактивном) состоянии, которое тоже характеризуется пониженным энергопотреблением.

По типам интерфейсов мультимедийные карты можно разделить на последовательные (MMC), последовательно-параллельные (SD, Memory Stick) и параллельные (CompactFlash, SmartMedia). В картах памяти с последовательно-параллельным интерфейсом число линий, по которым передаются данные, может быть равно 1 (последовательный) и 4 (параллельный). Последовательный интерфейс для карт MMC [3] и SD [4] может быть реализован в двух режимах: собственный MMC (SD) и SPI. Режим SPI является частью протокола MMC (SD) и используется для коммуникации с микроконтроллерами, поддерживающими данный интерфейс. С точки зрения приложения преимущество использования режима SPI состоит в возможности использования уже готовых решений, уменьшая затраты на разработку до минимума. Недостаток состоит в потере производительности на SPI системах по сравнению с MMC (SD) [7]. Протокол взаимодействия с мультимедийной картой (MMC, SD) по последовательному интерфейсу выглядит следующим образом: передача команды, прием ответа, свидетельствующего об успешном/ошибочном приеме картой памяти команды, прием/передача данных (необязательно).

В таблице 1 приведены скорости чтения/записи данных на мультимедийные карты с учетом файловой системы, т.е. с использованием карт-ридеров для обмена данными с картой [9]. К недостаткам мультимедийных карт как флэш-памяти можно отнести медленную запись в произвольный участок памяти и отсутствие побайтной записи, причем количество циклов перезаписи ограничено и равняется в среднем 100000.

1.2. Выбор мультимедийной карты для применения во встраиваемых системах

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

Карты CompactFlash проигрывают остальным картам по габаритам и температурным показателям, зато скоростные показатели этой карты - отличные, но поддержать такой интерфейс сложно: микроконтроллер должен обладать немалыми ресурсами. Карты SmartMedia не содержат в себе контроллера, поэтому невыгодно их использовать (эта проблема обсуждалась ранее). Контакты этих карт требуют бережного отношения, их следует протирать сухой тряпочкой в случае загрязнения или попадания на них влаги [7]. Карты Memory Stick уступают картам MMC и SD по габаритам и прочности, так как они длинные, тонкие и более хрупкие. У SD карт за счёт более толстой пластиковой оболочки улучшена стойкость к статическим разрядам. К тому же спецификация Memory Stick карт не является общедоступной.

Таким образом, мы остановили свой выбор на картах памяти MMC и SD. К достоинствам этих носителей можно отнести то, что фактически карты SD являются дальнейшим развитием стандарта MMC. Флэш-карты SD обратно совместимы с MMC, т.е. в устройство с разъемом SD можно вставить MMC, но не наоборот. Наличие в этих картах режима работы SPI делает их особенно привлекательными, так как многие современные микроконтроллеры поддерживают этот интерфейс. Малое количество контактов и простота интерфейса, обилие информации об этих картах и открытые спецификации тоже повлияли на выбор.

2. Исследовательская работа 2.1. Экспериментальный стенд

Для проведения практических исследований требовался достаточно простой и удобный в использовании микроконтроллер, обладающий следующими характеристиками: возможность подключения внешних устройств; легкое и быстрое программирование; наличие необходимых ресурсов памяти и аппаратных средств (контроллер SPI, возможность соединения с персональным компьютером).

Всем этим требованиям отвечает учебный лабораторный стенд SDK-5.0R2 фирмы ЛМТ. Стенд SDK-5.0R2 построен на базе микроконтроллера PIC18F4585 фирмы Microchip, имеет гальванически изолированный порт RS-232, легко программируется (через специальный разъем программирования или по последовательному каналу с помощью встроенного загрузчика). Линии интерфейса SPI выведены на внешний разъем, к которому можно подключить внешнее устройство. Кроме того, стенд имеет светодиодный индикатор, который удобно использовать для отладки.

2.2. Аппаратное обеспечение

Так как напряжение питания мультимедийных карт SD/MMC составляет 3,3 В, то их подключение к микроконтроллерам, имеющим другое рабочее напряжение, может вызвать сложности (прямое соединение выводов невозможно). Такая проблема возникла в ходе исследований, так как напряжение питания микроконтроллера PIC18F4585 составляет 5 В. Для решения этой проблемы была разработана схема преобразования уровня логических сигналов между микроконтроллером и мультимедийной картой. Эта схема представлена на рис. 1.

Рис. 1. Схема преобразования напряжения питания и уровня логических сигналов, направленных от микроконтроллера к мультимедийной карте и обратно

Разъем для мультимедийных карт и схема преобразования выполнены в виде отдельной платы и подключаются к экспериментальному стенду с помощью соединительного шлейфа. Схема состоит из преобразователя напряжения питания из 5 В в 3,3 В

и двух микросхем преобразования уровня напряжения логических сигналов. Первая микросхема конвертирует сигналы от микроконтроллера к мультимедийной карте (из 5 В в 3,3 В), вторая - в обратном направлении (из 3,3 В в 5 В).

2.3. Программное обеспечение 2.3.1. Структура программного обеспечения

Разработанное программное обеспечение имеет многоуровневую, модульную структуру. Каждый уровень строится на функциях предыдущего уровня и одновременно является фундаментом для следующего. Иерархия функциональных уровней представлена на рис. 2.

Уровень 3. Файловая система

>-

>

У

Уровень 2. Блоки данных

Уровень 1. Протокол

Уровень 0. Интерфейс

Аппаратура

<

-<

<

Рис. 2. Иерархия уровней разработанного программного обеспечения

Уровень 0. Интерфейс. Является полностью аппаратно-зависимым уровнем. Исполняет роль драйвера интерфейса и обращается непосредственно к регистрам микроконтроллера.

Уровень 1. Протокол. Содержит функции непосредственного взаимодействия с мультимедийной картой, такие как посылка команды, прием ответа карты, прием или передача данных.

Уровень 2. Блоки данных. Первый функционально завершенный уровень, который может использоваться для решения определенного ряда задач, не требующих работы с файловой системой. Содержит функции для работы с мультимедийной картой как с большим массивом памяти.

Уровень 3. Файловая система. Обеспечивает поддержку файловой системы БАТ16, что дает возможность переносить данные из ВсС на персональный компьютер без использования специального программного обеспечения.

Одним из важнейших условий разработки данного комплекса функций была возможность их использования на различных аппаратных платформах. Описанная выше модульная структура предоставляет для этого широкие возможности. Для использования разработанных функций в аппаратуре с различными микроконтроллерами нужно

лишь заменить функции интерфейса (уровень 0) на аналогичные функции, работающие с новым микроконтроллером.

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

В связи с тем, что флэш-память состоит из множества секторов (область памяти, которая может быть перезаписана только целиком), процесс записи является наиболее медленным. Так, например, процесс записи одного байта заключается в считывании соответствующего сектора во временный буфер, изменении байта в этом буфере и записи измененного блока из буфера на карту. На уровне файловой системы процесс записи дополняется изменениями в таблице FAT и еще больше замедляется. Поэтому запись блока данных, равного размеру сектора (512 байт), по адресу, выровненному на границу сектора, выполняется быстрее, чем запись одного байта.

2.3.2. Надежность хранения данных

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

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

Метод обеспечения надежности на третьем уровне основывается на средствах, предоставляемых для этого файловой системой [1]. Файловая система FAT16 имеет две таблицы размещения файлов, поэтому внесение изменений в таблицы следует производить по очереди. В этом случае при сбое поврежденную таблицу можно восстановить из неповрежденной копии.

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

Для продления срока службы флэш-карт можно использовать буферизацию данных при записи на карту, специальные алгоритмы, следящие за равномерностью записи данных по всему объему карты и т.д. Но все эти способы требуют достаточно больших объемов памяти и поэтому не всегда могут быть применимы во ВсС.

2.4. Технические характеристики 2.4.1. Скоростные характеристики

Приведенные ниже характеристики были получены на экспериментальном стенде (SDK-5.0R2 + плата для подключения мультимедийных карт). Работа с картой производилась по интерфейсу SPI на частоте 4 МГц (из возможных 20-25 МГц для MMC/SD карт). Рабочая частота микроконтроллера (PIC18F4585) - 16 МГц. В связи с тем, что используемый в эксперименте микроконтроллер обладает крайне небольшим количеством оперативной памяти, чтение и запись больших блоков данных производилась небольшими фрагментами. В результате были получены весьма скромные скорости чтения и записи данных.

Время чтения файла размером 1 Мб (фрагментами по 1 Кб) составило 109 секунд, т.е. скорость чтения равна 9,4 Кб/с. Время записи файла размером 1 Мб (фрагментами по 1 Кб) составило 160 секунд, то есть скорость записи равна 6,4 Кб/с.

2.4.2. Ресурсоемкость

В таблице 2 приводятся примерные объемы памяти программ, необходимые для размещения функций для работы с мультимедийными картами. В этих измерениях не учитывается объем памяти, занимаемый аппаратнозависимой частью программы (драйвера аппаратуры) и системными библиотеками.

Микроконтроллеры семейства PIC18xxxx 10426 байт

Микроконтроллеры семейства AVR ATmega x 7928 байт

Микроконтроллеры семейства ARM7 5556 байт

Таблица 2. Объем памяти программ, занимаемый функциями для работы с мультимедийными картами

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

Заключение

По результатам исследования рынка современных мультимедийных карт можно сделать вывод, что карты SD и MMC являются наиболее привлекательными мультимедийными картами для применения во встраиваемых системах.

Разработанный инструментальный комплекс (благодаря максимальной аппаратной независимости) может быть использован в различных встраиваемых системах, требующих применения мультимедийных карт.

Полученные технические характеристики показывают, что разработанный комплекс может успешно применяться в системах, не требующих больших скоростей обмена данными с картами памяти.

Литература

1. FAT: General Overview of On-Disk Format, version 1.03, Microsoft Corporation, 2000.

2. Memory Stick Standard Memory Stick Pro Specification Summary. Non-Licensee Version, 2004.

3. MultiMedia Card Product Manual, rev. 5.2, 2003.

4. SanDisk Secure Digital Card Product Manual, version 1.9, 2003.

5. SanDisk CompactFlash Memory Card Product Manual, version 10.9, 2005.

6. SmartMedia Card, I-O Data Device, 2003.

7. http://www.ak-cent.ru/?parent_id=9842

8. http://www.itc.ua

9. http://www.ixbt.com