Sd mmc

Оглавление [Показать]

Как выбрать карту памяти?

Стоит выделить ряд моментов, влияющих на выбор карты памяти:

Объём карты памяти

Важно знать, что реальный объём памяти, который имеет карта, отличается от теоретически максимального, который пишется на упаковке. Это связано с тем, что часть карты занимает служебная информация: данные о файлах, служебная информация, информация для защиты карты памяти от сбоев, и т.д. В среднем, реальный объём памяти на 10% меньше обещанного.

Скорость

Скорость это удовольствие. Чем быстрее карта, тем меньше времени потребуется для записи данных на карту. Быстрая карта позволит фотоаппарату делать больше снимков за короткий промежуток времени. Карты памяти Super, Ultra, Pro, Xtream имеют более высокую скорость по сравнению с другими картами. За единицу скорости выбран. Скорость карта 133x в два раза быстрее карты 66x. Обозначение 1x означает скорость 150 Кбайт в секунду.

Надёжность

По данным тестирований наиболее защищенными являются карты xD и Compact Flash. Современные карты памяти рассчитаны на несколько циклов записи-  перезаписи, что обеспечивает сохранность данных на срок не менее 5 лет.

Защита

Многие карты памяти, такие как SD, Memory Stick, имеют возможность защиты информации от незаконного использования.

Цены карт памяти

Цены на карты памяти варьируются соответственно в зависимости от перечисленных выше параметров и «именитости брэнда».

Брэнд

Выбор производителя (брэнда) карт памяти часто играет большую роль для клиентов. Особенно сильны фанатские настроения среди молодёжи и фото-любителей. Существует колоссальное количество мнений, тестов, споров, о том какой же производитель карт памяти лучший! По результатам одних тестов — самые быстрые карты памяти Kingston, по результатам других карты Transcend. Кто-то считает самым надёжным брэндом Microdia, кто-то Sandisk. Как и в случае мобильных телефонов нет однозначного мнения на этот счёт.

Типы карт памяти

Compact Flash (CF) - один из старейших и наиболее распространенных видов карт памяти. Формат разработан компанией SanDisk Corporation в 1994 году. Большинство цифровых фотокамер, КПК, MP3-плееров и других устройств имеют поддержку Compact Flash card. Карта памяти Compact Flash CF идеально подойдет для любителей фотосъемки. Фактически ни одна карта не может похвастаться такими скоростями и объемами, как Compact Flash card. На сегодняшний день Compact Flash карты имеют объем от 2 Mб до 128 Гб. Наиболее популярный «размер» Compact Flash 16Gb и 32Gb. Что касается скорости, то Compact Flash 600x и Compact Flash 667x на данный момент являются наиболее быстрыми картами серии. Но не только скорость Compact Flash стала залогом ее популярности. Compact Flash type имеет один из самых оптимальных показателей соотношения объем/цена.

По мере развития технологий данный формат развивался. CompactFlash Type II (CF Type II) характеризует увеличенная скорость чтения/записи и несколько большая толщина. Цифровая техника с разъемом для CompactFlash Type II поддерживает и карту Compact Flash.

Наиболее известными производителями Compact Flash СF считаются A-DATA, ATP, Canon, FujiFilm, Kingston Technology, Kodak, Lexar, Memorex, Olympus, Panasonic, PNY, Ritek, SanDisk, Samsung, Sony, Toshiba, Transcend, Verbatim Corporation, UMAX.

Microdrive — это не совсем карта памяти, а скорее миниатюрный жесткий диск. Compactflash Microdrive имеет корпус и разъем подключения аналогичныйCompact Flash II. Однако недостатки CF Microdrive — такие как повышенное энергопотребление и тепловыделение, невысокое быстродействие, чувствительность к вибрациям потихоньку вытесняют ее с рынка. Из плюсов — карта Microdrive имеет достаточно невысокую в соотношении к своему объему цену. Объем compactflash Microdrive колеблется в диапазоне между 170 Мб и 8 Гб. Карта Microdrive интегрирована в некоторые устройства: Apple iPod mini — 4GB and 6GB Hitachi Microdrive, HTC Athena 8GB Hitachi Microdrive, iriver H10 — 5GB and 6GB Seagate Microdrive и т.д. Файловая система CF Microdrive — NTFS.

Secure Digital (SD) — это совместная разработка компаний Panasonic, Toshiba и SanDisk. На данный момент Secure Digital card — еще один из самых распостраненных форматов хранения данных. Преимуществами карты Secure Digital являются ее небольшие размеры, высокая скорость записи и чтения, низкое энергопотребление, возможность защиты хранящейся на ней информации от копирования, случайного стирания или разрушения и механическая прочность. Стандартной для карт Secure Digital SD файловой системой является FAT32. Максимальная скорость Secure Digital card равна 300x (то есть 45000 кБ/с). Память Secure Digital не превышает 4 Гб.

Расширение возможностей Secure Digital card привело к появлению дополнительных форматов — Secure Digital HC (SDHC) с максимальным объемом в 32Гб и Secure Digital XC (SDXC) с объемом до 2Тб.

Для миниатюрной техники разработаны форматы MiniSD (21.5х20х1.4 мм), MicroSD (11х15х1 мм) и MicroSDHC (11x15x1 мм), которые имеют переходники (адаптеры), при помощи которых их можно вставлять в любой слот для обычной SD-карты. Карты данного размера обычно используют в сотовых телефонах, так как их компактность позволяют не увеличивать размеры и вес современных девайсов.

MiniSDHC (Mini Secure Digital High Capacity) — является расширением формата miniSD и позволяет выпускать карты памяти емкостью от 4 Гб. Однако они совместимы только с устройсвами с поддержкой MiniSDHC.

xD-Picture — разработаны в 2001 г. известными производителями цифровой фототехники компаниями Olympus и Fuji. Из достоинств xD-Picture card можно назвать ее компактность, надежность, скорость, низкое энергопотребление. Недостатки: вместе с Sony Memory Stick это одна из самых дорогих карт памяти. Карта памяти xD встречается только в цифровых фотоаппаратах Olympus и Fuji Кроме того память xD Picture подойдет для хранения цифровых фильмов. Совместимость: xD -> Compact Flash (с адаптером).

Существует внешний адаптер, позволяющий использовать карты xD-Picture card в разъёме для SmartMedia, но он не входит полностью в слот SM. Существует ограничение на объём применяемой xD карты (128, иногда — 256 Мб), а также могут быть ограничения и в работе считывающего устройства.

SmartMedia — портативная флеш-карта памяти, созданная компаниями Toshiba, Olympus и Fuji. На данный момент SmartMedia card практически полностью исчезла из обращения. Очень редко встречаются лишь японские цифровые фотоаппараты (например, Olympus) прошлых лет выпуска с поддержкой Smart Media. Но Olympus ограничивает функциональность неродных карт, а их покупка обойдется существенно дороже. К преимуществам карты можно отнести невысокую цену и компактность. К недостаткам — малый объем встроенной памяти (карты SmartMedia 128 Мб — предел), отсутствие контроллера памяти ради снижения цены, механическую незащищенность и малый срок службы (не более 5 лет). Карта памяти SmartMedia существует в двух вариантах — 5 V и 3.3 V, они отличаются только положением срезанного уголка.

Memory Stick — Уникальные карты на основе технологии флеш-памяти, разработанные всемирно известной компанией Sony исключительно для своей продукции. Именно поэтому Sony Memory Stick являются самыми дорогими картами на рынке, разделяя первое место с xD. Sony Memory Stick это даже не одна, а целое семейство карт памяти. В него ещё входят Memory Stick Pro, более скоростной вариант, и Memory Stick Duo — более компактная и дорогая карта. Memory Stick Pro Duo используются в видеокамерах, цифровых фотоаппаратах, персональных компьютерах, принтерах, игровых приставках PSP и в некоторых мобильных телефонах SonyEricsson.

Емкость карты Memory Stick никогда не превышала 128 Мб, как собственно и Memory Stick Duo (также не более 128Мб). Более продвинутые в этом вопросе Memory Stick PRO (1Гб) и Memory Stick PRO Duo (8-16 Гб). Все они различаются размерами, однако, существуют специальные переходники для подключения модулей одного вида в слот другого вида.

Карты Memory Stick Pro-HG Duo были анонсированы в конце 2006 года. Это высокоскоростной вариант Memory stick PRO для использования в камерах HDTV. А чуть позже — в 2008 году — вышла в свет карта Memory Stick PRO Duo Mark 2, объем которой составил 16 Гб.

Micro Memory Stick — имеет очень маленький размер (15 x 12,5 x 1,2 мм). Предназначена для использования в мобильных телефонах Sony Ericsson. Преимущество microMMC (помимо ее размеров) заключается в том, что информация на ней защищена от несанкционированного копирования.

MultiMediaCard (MMC) - стала первой картой памяти, разработанной специально для использования в мобильных телефонах и плеерах. MMC появилась в 1997 благодаря стараниям Sandisk и Siemens. Первые MMC карты памяти активно продвигались производителями мобильных телефонов Nokia и Siemens. Достоинства MultiMedia Card — малые размеры, а также прочная механическая конструкция и низкое энергопотребление. Среди недостатков Multi Media Card можно отметить медленный интерфейс, достаточно высокую стоимость. MMC multimedia card по большей части совместима с разработанной чуть позднее SD-картой и может использоваться вместо SD.

Развитие secure digital MultiMedia card привело к созданию Reduced Size — Multi Media Card (RS-MMC). Карта памяти RS-MMC вдвое меньше стандартной карты MMC, а вес ее составляет всего 1г. Для обеспечения совместимости с существующим стандартом MMC при использовании карт RS-MMC нужен адаптер. По скорости они аналогичны MMC картам, максимальный объём, которых сегодня, составляет 2 Гб. RS-MMC встречается в некоторых моделях Nokia и Siemens.

Существует также модификация этих карт, называемая DV-RS-MMC, эта карта потребляет меньше энергии, как следствие телефон придётся реже заряжать. Стоит также заметить, что некоторые модели смартфонов Nokia поддерживают только карты DV-RS-MMC Совместимость: RS-MMC DV-RS-MMC -> MMC -> SD (с адаптером).

Карты памяти MMCPlus появились в 2005 году, их главное отличие от карт SD и MMC — высокая скорость передачи данных (до 52 Мб/с). Карта MMCPlus HC (High Capacity) является расширением MMCPlus. Емкость данной модели равна 4Гб. Отличительной особенностью MMCPlus HC является то, что она может использоваться только с совместимыми устройствами. А в устройствах без поддержки работает как стандартная MMC.

microMMC — предназначена для мобильных устройств с поддержкой ECC. (Error Checking and Correction — обнаружение и исправление ошибок при записи/чтении). Преимущество — низкое энергопотребление, благодаря чему сотовый телефон будет садиться не так быстро.

MiCard (Multiple Interface card) — многоинтерфейсная карта, разработанная тайваньским Industrial Technology Research Institute, совместимая с существующими портами USB, а также разъёмами для карт MMC. Это новый тип карты, преимущество которой состоит в высокой скорости передачи данных (480 Мбит/с). MiCard используется для прямого переноса данных между портативным устройством и настольным компьютером без подключения карт-ридера.

SD карты (Secure Digital) - это формат карт флэш памяти. Был представлен в 1999 как улучшенный MMC. Стандарт SD регулирует "SD Association" (SDA).  На их сайте можно найти документацию на стандарт.

Я постараюсь вкратце расписать, как использовать эту карту для хранения и считывания информации с помощью SPI. О том как работать с SPI расписано здесь.

Рис.1 SD карты различных размеров

По стандарту, у SD карт есть 3 возможных физических размера: стандартный, mini и micro:

Рис.2 различные типы размеров SD карт с замерами

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

  • SD 1.0 — от 8 МБ до 2 ГБ;
  • SD 1.1 — до 4 ГБ;
  • SDHC — до 32 ГБ;
  • SDXC — до 2 ТБ.

Есть 3 способа общения с SD картой:

  • Шина SPI
  • Однобитовый режим шины SD
  • Четырёх битовый режим шины SD

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

Рис.3 Распиновка различных карт памяти
1 1 1 2 nCS Вх Выбор режима SPI (негативная логика)
2 2 2 3 DI Вх Ввод данных SPI
3 3 3 VSS . Земля
4 4 4 4 VDD . Питание
5 5 5 5 CLK Вх тактовый сигнал
6 6 6 6 VSS . Земля
7 7 7 7 DO Вых Вывод данных SPI
8 8 8 NC . Не используется
9 9 1 NC . Не используется
10 NC . Зарезервировано
11 NC . Зарезервировано

Если использовать SPI то SD карта питается от 3.3 В, может потреблять от 20 до 100 мА при передаче данных. В режиме покоя потребляет меньше 1 мА. Максимальная скорость передачи 12 мб/с (Частота CLK 25 МГц). Теперь мы знаем как подключить карту, осталось разобраться как с ней общаться.

В сети есть несколько открытых библиотек для работы с FAT (16/32), к примеру: FatFs, в таком случае можно считывать данные с компьютера, проверяются повреждённые блоки, память и ресурсы карты расходуются разумнее, ведь файловая система используется не просто так.

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

Можно создать текстовый документ, записать в него нужную информацию, открыть SD карту с помощью Hex-редактора, (к примеру: HxD) посмотреть в каком блоке (кластере) находится информация, (может быть она записана в нескольких блоках) считать её.

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

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

SPI используется всего лишь как интерфейс, данные передаются по "урезанной" версии стандартного протокола SD карты.

Протокол передачи данных

К примеру мы хотим считать блок данных, это будет выглядеть следующим образом:

sd mmc
Рис.4 Считывание 1 блока данных (512 байт)

Рассмотрим что здесь изображено. Сперва хост по линии DataIn (MOSI) посылает команду карте. Рассмотрим из чего состоит "команда":

sd mmc
Рис.5 Формат команды

Команда состоит из 48 бит, начальный бит = "0", затем "1" означает, что это команда от хоста.
Биты передаются, начиная со старших разрядов.
Content - содержимое команды вместе с адресом или параметром (38 бит). Первые 6 бит определяют команду, остальные 32 это параметр команды, к примеру, ячейку с каким адресом прочитать из памяти.
CRC (Cyclic Redundancy Code) - помогает избегать ошибок при передаче, у каждой команды есть свой CRC код (контрольная сумма).
Стоп бит = "1".

Response - это ответ карты на команду, если он есть (есть команды без ответа), то он может быть 1 из 4 видов (R1, R2, R3, R6):

sd mmc
Рис.6 Формат ответа

Ответ может состоять из 48 или 136 бит. Передаются, также начиная со старших разрядов. Сперва начальный бит = "0". Затем "0" означающий, что это команда от карты. В содержимом может быть либо значение регистра, который мы хотели считать, стоит отметить, что регистр RCA не доступен в режиме SPI (R3), либо "зеркальный" код команды и информация о состоянии.

Data block - это 512 байт данных, которые мы хотели считать, после них идёт контрольная сумма (CRC) для проверки содержимого.

Команды

Теперь рассмотрим, какие команды доступны в режиме SPI, команда состоит из 6 бит и определяется её индексом, чтобы отправить SD карте команду CMD0 нужно передать "000000", для CMD39 это будет "100111" (передаётся, начиная со старшего разряда). Сразу скажу, что большинство команд для нас не имеет значения, если мы хотим только считать и записать несколько байт.

мусор R1 Перезагрузка карты памяти
Зарезервировано
HCS
Зарезервировано
R1 Карта отправляет хосту информацию о ёмкости и включает процесс инициализации.
HCS работает после команды
CMD8. Если хост поддерживает карты SDHC и SDXC выставить "1", иначе "0".
Зарезервированные биты должны быть выставлены в '0'.
Режим
0:Проверить функцию
1:Изменить функцию
Зарезервировано
(все '0')
функциональная группа 2 для системных команд
функциональная группа 2 для режима доступа
R1 Смотреть в даташите.
Зарезервировано
(все '0')
Напряжение питания (VHS)
проверочный образец
R7 Отправляет карте напряжение питания и спрашивает может ли она работать при таком питании.
мусор R1 Спрашивает у карты её информацию "о карте" (CSD) .
мусор R1 Спрашивает у карты её ID (CID).
мусор R1b Заставляет карту прекратить передавать данные в режиме считывания нескольких блоков.
мусор R2 Просит карту отправить её статус.
Длина блока R1 Для карт SDSC, длина блока выставляется этой командой. Для SDHC и SDXC карт, длина блока фиксирована и равна 512 байт. Длина команды CMD42 выставляется этой командой.
адрес данных R1 Считывает блок размером выставленным командой CMD16.
адрес данных R1 Передача блоков данных из карты хосту до тех пор, пока хост не отправит команду
CMD12.
адрес данных R1 Записывает блок данных размером выставленным командой CMD16.
адрес данных R1 Непрерывно записывает блоки данных до тех пор пока карта не отправит байт "stop tran"
мусор R1 Программирует биты регистра CSD.
адрес данных R1b Если у карты есть функции защиты от записи, эта команда выставляет бит защиты для выбранной адресной группы,. Свойства защиты от записи прописаны в данных карты (WP_GRP_SIZE).
SDHC и SDXC карты не поддерживают эту команду.
адрес данных R1b Если у карты есть функции защиты от записи, эта команда очищает бит защиты выбранной адресной группы.
SDHC и SDXC карты не поддерживают эту команду.
адрес для защиты от записи R1 Если у карты есть функции защиты от записи, эта команда просит карту отправить бит защиты выбранной адресной группы. SDHC и SDXC карты не поддерживают эту команду.
адрес данных R1 Выставляет адрес первого блока, который нужно стереть.
адрес данных R1 Выставляет адрес последнего блока, который нужно стереть. 
мусор R1b очистка всех блоков от первого до последнего выбранных предыдущими командами.
Зарезервировано
(все '0')
R1 Используется для выставления/сброса пароля или блокировки/разблокировки карты. Размер блока определяется командой CMD16.
мусор R1 Сообщает карте что следующая команда, это команда особого назначения.
мусор
: RD/WR
R1 Используется для  записи или считывания блока данных для стандартных или дополнительных команд.
В случае SDSC карт, размер блока определяется командой
CMD16. Для SDHC и SDXC карт длина блока фиксирована и равна 512 байт.
мусор R3 Считывает регистр OCR.
CCS бит, выставлен в OCR.
мусор
CRC настройка
R1 Включает "1" или выключает "0" CRC.

CRC

Вместе с командой нам нужно отправлять CRC код для проверки, он вычисляется с помощью алгоритма. Если использовать библиотеки для работы с SD картами и FAT, то там это уже всё реализовано. Если работать с нуля, нужно для каждой команды вычислять CRC код. Разберёмся, как это делать.

В SD картах используются CRC7 и CRC16 проверки, 16 редко используется, но смысл там тот же что и в 7, так что рассмотрим её, если нет желания возиться с CRC кодами их можно отключить командой CMD59.

В алгоритме используется что-то похожее на деление многочленов столбиком. Нам нужно взять содержимое посылки и бит определяющий от кого идёт передача (хост- карта или наоборот), у нас есть двоичное число из 39 бит, это число сдвигаем влево 7 раз (дописываем 7 нулей справа), т.к. CRC7. В различных версиях CRC нужно сдвигать на разное число бит. Теперь у нас есть число из 46 бит, его нужно разделить (по правилам двоичной арифметики) на полином данной CRC версии. У CRC это x^7 + x^3 + 1.  В двоичном коде - "10001001". Полученный после деления остаток и будет нашим CRC7 кодом, который нужно передать вместе с сообщением.

Для того чтобы проверить результат нельзя использовать стандартный калькулятор Windows. Если перевести в десятичный код, то он даёт правильный ответ, но это не по правилам двоичной арифметики. Для проверки можно использовать, к примеру, этот калькулятор.

Подсчитаем CRC код для команды CMD0:

  • берём содержимое команды вместе с её индексом и битом, обозначающим от кого передача (0 в данном случае) получаем (индекс команды 0, аргумент 0):                                                          1 000000 00000000000000000000000000000000 
  • Сдвигаем число на 7 разрядов влево, получаем                                                                                                      1 000000 00000000000000000000000000000000 0000000
  • Полученное число делим на CRC7 полином "10001001" и берём остаток:                           1 000000 00000000000000000000000000000000 0000000 % 10001001 = 1001010

Согласно даташиту именно такой CRC код у команды CMD0.

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

Нам нужно записать наше число, сдвинуть его на 7 разрядов влево, затем сдвинуть наш полином таким образом, чтобы его крайняя левая "1" была под крайней левой "1" нашего большого числа. Затем произвести между двумя числами XOR (если разные значения в 1 разряде выставить 1, иначе 0). С полученным числом проделать то же самое (сдвинуть под крайнюю единицу полином, XOR) до тех пор пока у изначального числа (пока мы его не сдвигали влево на 7 разрядов) не будут все 0, иначе до тех пор пока биты не будут равны "0". Оставшиеся 7 бит и есть наш остаток.

Рассмотрим это на примере:

CRC-7 полином =
Сообщение (после сдвига на 7 разрядов) = 0 0 0 0 0 0 0

sd mmc
Рис.7 Подсчёт остатка

Остаток 0x17.

Можно найти готовый код для подсчёта CRC7 значений, есть довольно много реализаций, к примеру: вот и вот.

Ответы "Responce"

Теперь рассмотрим, какие есть форматы ответов SD карты на команды (Responce).

Чаще всего используется ответ R1, он состоит из 8 бит, старший бит всегда выставлен в "0". Ошибка обозначается "1" в соответствующем бите. Структура R1 выглядит следующим образом:

sd mmc
Рис.8 Формат ответа R1
  • (0 бит) in idle state - карта в состоянии ожидания и проводит процесс инициализации.
  • (1) erase reset - команда отмены удаления данных из памяти пришла до того как удаление началось.
  • (2) illegal command - неизвестный код команды.
  • (3) com crc error - ошибка проверки CRC кода.
  • (4) erase sequence error - ошибка в последовательных командах удаления.
  • (5) address error - неверный адрес.
  • (6) parameter error - неверный параметр.

R1b формат такой же, как R1, но с дополнительной информацией о готовности карты, это информация может быть произвольного размера. "0" означает что карта "занята", любое значение отличное от 0 означает, что карта готова к следующей команде.

В ответ на CMD13, карта отправляет R2, в дополнении к ошибкам в R1 здесь добавлено несколько новых:

sd mmc
Рис.9 Формат ответа R2
  • (0 бит) Card is locked - карта заблокирована пользователем.
  • (1) Write protect erase skip | lock/unlock command failed - была попытка удалить блок, защищённый от записи, либо был введён неправильный пароль при блокировке/разблокировке карты.
  • (2) Error - стандартная или неизвестная ошибка произошла во время операции.
  • (3) CC error - ошибка контроллера карты.
  • (4) Card ECC failed - ECC код был использован, но не получилось восстановить данные.
  • (5) Write protect violation - была попытка записи в блок, защищенный от записи.
  • (6) Erase param - неправильно выбраны адреса для очистки блоков.
  • (7) Out of range - параметр выходит за границы карты.

Формат R3 состоит из 40 бит, первый байт это формат R1, затем следует значение регистра OCR.

Формат R7 используется когда мы меняем напряжение, но SPI может работать только при 3.3 В. В отличие от SD интерфейса, так что R7 можно не рассматривать.

При работе с блоками данных используются особые "маркеры" (token) для сообщении о ходе передачи данных.

sd mmc
Рис.10 Запись нескольких блоков в карту

На каждый записанный блок карта посылает ответный маркер:

Рис.11 Маркер записи блока данных

Значение битов "Status" следующее:

  • "010" - данные приняты.
  • "101" - данные отклонены из-за ошибки в CRC коде.
  • "110" - данные отклонены из-за ошибки в процессе записи.

Также есть маркеры определяющие начало и конец записи:

Рис.12 Маркер начала записи/считывания 1 блока, считывания нескольких блоков
Рис.13 Маркер начала записи нескольких блоков

При работе с несколькими блоками маркер посылается каждый раз перед передачей очередного блока данных.

Рис.14 Маркер обозначающий конец записи.

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

CMD12 .

Если карта не сможет прочитать блок данных, она отправит маркер ошибки, там обозначены те же биты, что и в R2:

sd mmc
Рис.15 Маркер ошибки считывания.

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

Внутренние регистры

В режиме SPI мы можем считать 3 регистра

OCR CID и

CSD . Рассмотрим, что в них хранится.

Регистр OCR отвечает за доступные режимы питания карты:

sd mmc
Рис.16 Содержимое регистра OCR.

В битах единица означает, что карта поддерживает данное напряжение.

Регистр CID хранит информацию от производителя:

sd mmc
Рис.17 Содержимое регистра OCR

Регистр CSD состоит из 127 бит и хранит техническую информацию, максимальный ток, скорость записи, размер максимального блока для работы и т.д. Он может отличаться от карты к карте в зависимости от размера. Не буду его расписывать в документации на это потратили 11 страниц.

У карты больше регистров, но они не доступны в режиме SPI.

Заключение

Этой информации должно хватить, чтобы понять, как работать с SD картой. Но я рекомендую использовать готовые библиотеки для работы с FAT файловой системой, конечно нужно больше памяти и RAM, но зато не нужно разбираться с работой на низком уровне, остаётся лишь использовать готовые функции.

Популярная библиотека FatFs. Также у них есть версия меньшего размера для 8 битных МК Petit FAT.

Источники:

en.wikipedia.orgru.wikipedia.orgsdcard.org -- Документация

my-cool-projects.blogspot.com

 -- CRC7

users.ece.cmu.edu/~koopman

 -- CRC7

www.pololu.com

 -- CRC7

Текущая версия страницы пока

не проверялась

опытными участниками и может значительно отличаться от

версии

, проверенной 10 января 2015; проверки требуют

19 правок

.

Текущая версия страницы пока

не проверялась

опытными участниками и может значительно отличаться от

версии

, проверенной 10 января 2015; проверки требуют

19 правок

.

MultiMedia Card (MMC) — портативная флеш-карта памяти, использующаяся для многократной записи и хранения информации в портативных электронных устройствах: цифровых фотоаппаратах, мобильных телефонах и т. д.

Существует также разработанная в 1997 году компаниями Siemens AG и SanDisk Siemens SIMATIC S7, MICRO Memory Card (MMC), конструктивно идентичная карте MultiMedia Card, однако отличающаяся по логической разметке и предназначенная исключительно для использования в ПЛК SIMATIC S7-300/C7/ET 200 фирмы Siemens. Использование такой карты взамен Multimedia Card возможно, в отличие от использования Multimedia Card взамен Micro Memory Card.

Размер такой карты — 24×32×1,5 мм. Напряжение — 3,3 В. Ёмкость — от 64 кБ до 4 ГБ.

Модификации

Существует несколько модификаций карт памяти MultiMedia Card:

  1. MMC
  2. RS-MMC
  3. MMCplus
  4. MMCmobile
  5. MMCmicro.

С 2004 года выпускается также в уменьшенном 24×18×1,5 мм — RS-MMC (англ. Reduced size MMC). С помощью простого механического адаптера карты RS-MMC можно использовать с оборудованием, рассчитанным на MMC. Выпускаются также Dual Voltage Reduced Size MMC (MMCmobile), которые могут работать не только на стандартном напряжении питания 3 В, но и на 1,8 В.

MMC по большей части совместима с разработанной чуть позднее SD-картой и может использоваться вместо SD. В обратном направлении замена чаще всего невозможна, так как SD-карты толще MMC и просто механически могут не войти в слот для MMC-карты. MMC поддерживает относительно простой открытый интерфейс передачи данных SPI.

Существуют стандарты MMCplus (высокая скорость передачи данных и поддержка 8-битной шины данных (в SD и MMC используются 4-битная шина данных), для чего была добавлена дополнительная группа контактов, и MMCmicro (размером 12 x 14 x 1,1 мм). MMCplus полностью совместимы с SD/MMC устройствами, в устройствах без полной поддержки MMCplus эта карта работает как стандартная MMC.

Существует MMCplus HC (размер 24 x 32 x 1,4 мм) объёмом 64 и более Гб.

Версии стандарта

Изначальная версия стандарта MMC была разработана в 1996 компаниями Siemens и SanDisk. MMC 2.0 появился в 1999, 3.0 — в 2001 году. На базе MMC был разработан стандарт Secure Digital; SD 1.0 был официально совместим с MMC 2.11.

В MMC 4.0 (2003 год) были введены режимы с 4-разрядной и 8-разрядной шинами, значительно увеличившие возможные скорости, однако 8-битная шина поддерживается крайне редко.

В 2008 году контроль над стандартом MMC полностью получила организация EIA JEDEC. В версии MMC 4.3 был представлен новый вариант eMMC (embedded MMC – встроенная ММС), предназначенный для применений, когда модуль памяти припаивается к печатной плате устройства. Несмотря на измененный форм-фактор, протокол и возможности у eMMC и MMC совпадают.

В марте 2009 года компания JEDEC опубликовала версию 4.4.

В марте следующего года JEDEC представила версию 4.41.

15 июня 2011 года компания JEDEC опубликовала версию 4.5.

В июне 2012 года компания JEDEC представила стандарт 4.51.

1 октября 2013 года JEDEC опубликовала стандарт 5.0.

24 февраля 2015 года компания JEDEC представила новый стандарт носителя 5.1.

Спецификации

MMC

RS-MMC

MMCplus

MMCmobile

MMCmicro

eMMC

eMMC(embedded Multimedia Memory Card – встроенная мультимедийная карта памяти) – это одночиповый накопитель, чаще всего применяемый в смартфонах, планшетах, нетбуках и других компактных устройствах. В нем контроллер совмещен с флэш-памятью. Главные недостатки такого решения, в сравнении с SSD, это полудуплексный режим обмена данными и большие задержки. А главные преимущества – компактность, низкое энергопотребление и цена.

Примечания

Литература

  • MultiMediaCard (MMC) Electrical Standard, High Capacity (MMCA, 4.2) JESD84-B42 // JEDEC, JULY 2007 (англ.)

Ссылки

  • MultiMediaCard Association (англ.)
  • Спецификация MultiMediaCard (на английском) (англ.) (недоступная ссылка с 12-10-2016 )
  • e.MMC v5.01 // JEDEC

И ИП Попов Валентин Евгеньевич

  • Категория Аудиотехника, Продать
  • Тип Музыкальные центры
  • Производитель Другой
  • Состояние Б/у
  • Возможен обмен Нет

Описание Универсальный проигрыватель виниловых пластинок, компакт-дисков и кассет. Функция записи и записи с входа AUX на флешку или SD / MMC карты памяти. Кроме того есть CD-проигрыватель и кассетная дека, USB и SD / MMC слоты позволяют прямое воспроизведение песен в формате MP3 с любых накопителей и карты памяти. Возможно подключение внешних источников воспроизведения таких, как MP3-плеер, смартфон или ноутбук. Абсолютной изюминкой является функция декодирования - воспроизводимая музыка записывается и хранится на флэш-диске USB или SD / MMC карты в формате MP3. Это позволяет оцифровывать ваши любимые винилы, компакт-диски и кассеты, программы радиовещания или аудио сигнал с AUX – входа.
Характеристики:
соединения: 1 х USB-слот, 1 х SD / MMC слот, 1 х 3,5 мм разъем для ввода AUX, 1 х 3,5 мм разъем для наушников выход, 1 х стерео RCA выход линии
вращение скорость: 33 и 45 оборотов в минуту
поддерживает USB накопители до 8 Гб
поддерживаемые CD форматы: MP3 CD CD, CD-R, CD-RW,
функция удаления для USB / SD / MMC
mute
функция таймера
sleep
тюнер Радио
автоматический / ручной поиск каналов
удобное управление с помощью пульта дистанционного управления
отображение времени
антенна
светодиодный индикатор
пылезащита
большая кнопка Пуск / Стоп
большой рычаг извлечения для выброса кассеты
ЖК дисплей с подсветкой
мощность дистанционного управления: 1 х 3V CR2025 батареи клетка кнопки
питание: 230 В, 50 Гц с помощью шнура питания
размеры 45 х 16 х 43,5 / 38 см (ШхВхГ)
вес: около 4,9 кг
 
Состояние: подержанный, дефект крепления крышки, потертости.

Посмотреть это объявление на сайте продавца

Подробнее о продавце

УНП: 291384393, Ссылка на интернет-магазин: Адрес торговой точки: пункт выдачи товара: Брест, Волгоградская 19, Юридический адрес/Адрес регистрации: Брест, Волгоградская 19 (звоните заранее)

Kufar не несет ответственности за предлагаемый товар

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (No ratings yet)
Загрузка...
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

+ 36 = 40

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: