Технология Secure Digital для карт памяти
Классификация, устройство и интерфейс карт памяти стандарта SD
В январе 2000 года группа ведущих компаний — производителей электроники (Panasonic, SanDisk и Toshiba) основала организацию SD Association, основной деятельностью которой является создание и продвижение стандарта Secure Digital (SD) для портативных карт памяти на основе энергонезависимой Flash-памяти. Уже через год была представлена первая версия стандарта (стандарт Physical Layer Specification, version 1.01), описывающая карты памяти объемом до 2 Гбайт, со скоростью передачи данных до 10 Мбайт/с и скоростью обмена по SD-шине до 12,5 Мбайт/с (Default Speed bus mode, DS). Со временем в организацию вступали новые члены (стоимость вступления на общих основаниях сегодня составляет $2000, а для эксклюзивных правообладателей она увеличена до $4500). На данный момент в SD Association входят более 1000 участников.
Развитием стандарта стала версия 1.10, выпущенная в октябре 2004 года, в которой был введен высокоскоростной режим обмена (High Speed bus mode, HS), обеспечивающий обмен данными и командами по SD-шине со скоростью до 25 Мбайт/с и минимальная скорость чтения/записи 10 Мбайт/с. В мае 2006 года появилась версия 2.0 стандарта, основным отличием которой стало введение нового класса SD-карт памяти с увеличенным объемом хранимой информации до 32 Гбайт включительно (Secure Digital High Capacity, SDHC). Текущая версия стандарта (Physical Layer Specification, version 3.01) описывает SD-карты объемом до 2 Тбайт включительно (Secure Digital eXtended Capacity, SDXC), обеспечивающие защиту хранимой информации от несанкционированного доступа и копирования (по технологии Content Protection for Recordable Media, CPRM); также были введены новые высокоскоростные режимы работы SD-шины (Ultra High Speed I bus mode), обеспечивающие скорость обмена до 104 Мбайт/c. Продолжением стандарта будет разрабатываемая в данный момент 4-я версия (Physical Layer Specification, version 4.0), согласно которой скорость обмена по SD-шине может достигать уже 312 Мбайт/с (UHS-II bus mode).
Современные SD-карты памяти выпускаются в трех форм-факторах (табл. 1) — полноразмерные карты (full-size SD), miniSD и microSD. Полноразмерные карты нашли применение в цифровых фото- и видеокамерах, электронных книгах и навигаторах; microSD наиболее часто используют в мобильных телефонах и смартфонах, а miniSD является переходным вариантом между двумя предыдущими. На сегодня уже тысячи моделей устройств поддерживают стандарт SD.
Таблица 1. Конструктивное исполнение карт памяти стандарта SD
Внешний вид | |||
Форм-фактор | full-size SD | miniSD | microSD |
Размеры, мм | 32×24×2,1 | 21,5×20×1,4 | 15×11×1 |
Количество контактов | 9 | 11 | 8 |
Механическая защита от записи | Есть | Нет | Нет |
Вес, г | ~2 | ~1 | ~0,5 |
По объему хранимой информации карты подразделяются на:
- Standard Capacity SD Memory Card (SDSC): до 2 Гбайт (включительно);
- High Capacity SD Memory Card (SDHC): от 2 до 32 Гбайт (включительно);
- Extended Capacity SD Memory Card (SDXC): от 32 Гбайт до 2 Тбайт (включительно).
Следует отличать скорость обмена данными по шине и скорость чтения/записи в карту памяти: первая характеризует скорость обмена служебной информацией по SD-шине (в которую входят не только пользовательские данные, но и различная служебная информация), а вторая — реальную скорость чтения/записи пользовательских данных во встроенную энергонезависимую Flash-память. Для классификации скорости чтения/записи пользовательских данных стандартом вводится порог, указывающий на минимальную скорость чтения/записи. Также имеются два принципиально разных типа SD-карт памяти — стандартных классов (SD Class 2, 4, 6, 10) и высокоскоростные (UHS-I) с различными требованиями по скорости обмена по шине (рис. 1).
Стандартные классы SD-карт классифицируются следующим образом (в скобках указаны требования по режиму работы SD-шины):
- SD Class 2: скорость чтения/записи не ниже 2 Мбайт/с (Default Speed bus mode);
- SD Class 4: скорость чтения/записи не ниже 4 Мбайт/с (Default Speed bus mode);
- SD Class 6: скорость чтения/записи не ниже 6 Мбайт/с (Default Speed bus mode);
- SD Class 10: скорость чтения/записи не ниже 10 Мбайт/с (High Speed bus mode) — опциональный режим.
Следует отметить, что размерность скорости передачи данных [Мбайт/с] определяется как [1000×1000 байт/с], в то время как размер памяти [Мбайт] эквивалентен [1024×1024 байт]. Это связано с тем, что скорость передачи данных определяется максимальной частотой работы SD-шины (25 Мбайт/с = 25 000 000 байт/с при частоте шины 50 МГц), а размер памяти определяется степенью 2.
Существуют также высокоскоростные SD-карты, требующие более быстрых режимов работы SD-шины (Ultra High Speed bus mode, UHS-I) и пониженного уровня сигналов (1,8 В вместо 3,3 В в стандартных классах). В таких картах скорость обмена по шине может достигать 104 Мбайт/c, а скорость чтения/записи — порядка 95 Мбайт/с. Помимо стандартных скоростных режимов работы шины (DS, HS) в SD UHS-I введено еще 5 режимов:
- SDR12 (Single Data Rate): скорость обмена по SD-шине до 12,5 Мбайт/c.
- SDR25 (Single Data Rate): скорость обмена по SD-шине до 25 Мбайт/c.
- SDR50 (Single Data Rate): скорость обмена по SD-шине до 50 Мбайт/c.
- SDR104 (Single Data Rate): скорость обмена по SD-шине до 104 Мбайт/c.
- DDR50 (Double Data Rate): скорость обмена по SD-шине до 50 Мбайт/c — опциональный режим (обязателен только для карт памяти microSD UHS-I).
Максимальные скорости обмена по SD-шине и соответствующая им частота работы шины для карт памяти класса UHS-I показаны на рис. 2 и 3 соответственно.
Сравнительные характеристики и классификация различных видов карт памяти представлены в таблице 2.
Таблица 2. Основные параметры SD-карт памяти
Виды карт | SD | SDHC | SDXC |
Размер памяти | SD ≤ 2 Гбайт | 2 Гбайт < SDHC ≤ 32 Гбайт | 32 Гбайт < SDXC ≤ 2 Тбайт |
Файловая система | FAT 12, FAT 16 | FAT 32 | exFAT |
Конструктивное исполнение | SD, miniSD, microSD | SD, miniSD, microSD | SD, microSD |
Скорость обмена по шине | DS | DS, HS, UHS-I | DS, HS, UHS-I |
Скорость передачи данных | SD class 2, 4, 6 | SDHC class 2, 4, 6, 10, SDHC UHS-I | SDXC class 2, 4, 6, 10, SDXC UHS-I |
Защита данных | CPRM | CPRM | CPRM |
Следует отметить тот факт, что в картах памяти SDXC используется проприетарная файловая система exFAT, разработанная и запатентованная корпорацией Microsoft, вследствие чего возникает вопрос о возможности использования таких карт в операционных системах, отличных от семейства Windows.
SD-карты поддерживают три различных режима обмена с хостом: однобитный SPI-режим, скорость обмена по которому не превышает 3,125 Мбайт/с (при максимальной частоте работы шины 25 МГц), однобитный и четырехбитный SD-режимы обмена (тактовый сигнал, вывод команд, 4 вывода данных и 3 вывода цепей питания/«земли»). Назначение выводов карты памяти в режиме SPI (табл. 3) и SD (табл. 4) показано на рис. 4 (здесь и далее рассматриваются только полноразмерные карты памяти).
Таблица 3. Назначение выводов в SPI-режиме
Номер | Обозначение | Тип | Описание |
1 | CS | IN | Выбор микросхемы |
2 | DI | IN | Входные данные |
3 | VSS1 | PWR | «Земля» |
4 | VDD | PWR | Питание 2,7–3,6 В |
5 | SCLK | IN | Тактовый сигнал |
6 | VSS2 | PWR | «Земля» |
7 | DO | OUT | Выходные данные |
8 | RSV | Не используется | |
9 | RSV | Не используется |
Примечание. IN — вход; OUT — выход; PWR — цепи питания; IN/OUT — тристабильная шина.
Таблица 4. Назначение выводов в SD-режиме
Номер | Обозначение | Тип | Описание |
1 | CD/DAT3 | IN/OUT | Сигнал обнаружения карты, данные 3-го канала |
2 | CMD | IN/OUT | Команды |
3 | VSS1 | PWR | «Земля» |
4 | VDD | PWR | Питание 2,7–3,6 В |
5 | CLK | IN | Тактовый сигнал |
6 | VSS2 | PWR | «Земля» |
7 | DAT0 | IN/OUT | Данные 0-го канала |
8 | DAT1 | IN/OUT | Данные 1-го канала |
9 | DAT2 | IN/OUT | Данные 2-го канала |
Примечание. IN — вход; OUT — выход; PWR — цепи питания; IN/OUT — тристабильная шина.
Типовое устройство SD-карты памяти показано на рис. 5. В состав карты входит контроллер интерфейса SD, блок специализированных регистров, процессорный блок с контроллером прямого доступа памяти, супервизор питания со стабилизатором напряжения питания и устройством формирования сброса схемы, контроллер интерфейса Flash-памяти с блоком коррекции ошибок и микросхемы энергонезависимой Flash-памяти.
В задачи контроллера интерфейса SD входит декодирование команд, поступающих от хоста, генерирование определенных видов ответов на эти команды (набор команд и ответов стандартизирован) и задачи приема и передачи данных. Целостность данных и команд контролируется алгоритмом подсчета и проверки контрольной суммы пакета.
Стандарт на SD-карты также требует наличия служебных регистров, доступ к которым осуществляется по специальным командам, декодируемым в контроллере интерфейса SD. Список служебных регистров и их краткое описание показаны в таблице 5.
Таблица 5. Служебные регистры SD-карты
Регистр | Разрядность | Описание |
CID | 128 | Card Identification Number — содержит уникальные идентификаторы карты и производителя |
RCA | 16 | Relative Card Address — содержит текущий системный адрес карты, динамически присвоенный хостом во время инициализации |
DSR | 16 | Driver Stage Register — определяет параметры нагрузочной способности выводов карты (опционально) |
CSD | 128 | Card Cpecific Data — определяет параметры, характеризующие формат хранения данных, время доступа и другую служебную информацию, необходимую для организации доступа к карте |
SCR | 64 | SD Configuration Register — указывает на поддержку картой специальных режимов работы и команд |
OCR | 32 | Operating Condition Register — содержит информацию о допустимом диапазоне напряжения питания карты |
SSR | 512 | SD Status Register — информация о проприетарных функциях |
CSR | 32 | Card Status Register — различные биты статуса выполнения команд и флаги ошибок |
Блоки энергонезависимой Flash-памяти осуществляют обмен данными с контроллером SD-карты через контроллер интерфейса Flash-памяти, в котором также имеется блок коррекции ошибок, возникающих в процессе чтения и записи данных во Flash-память. На сегодня в качестве основного кода коррекции ошибок используется код БЧХ, исправляющая способность которого в наиболее продвинутых устройствах достигает 60 битовых ошибок на 512 байт пользовательской информации.
В карте также имеется супервизор питания со встроенными стабилизаторами напряжения питания 3,3 и 1,8 В и схемой формирования сигнала начального сброса блоков контроллера SD.
Настройку и организацию обмена данными между блоками осуществляет процессорный блок. Также в его задачи входит реализация программного алгоритма контроля равномерного использования блоков Flash-памяти (в процессе записи информации) для повышения износостойкости карты.
Для увеличения скорости чтения/записи информации используют канал прямого доступа к памяти из интерфейса Flash-памяти напрямую в интерфейс SD, минуя процессорную шину.
Более подробную информацию о режимах работы карты и ее блоках, а также о реализации обмена данными в различных режимах можно будет найти в следующих статьях.
Литература
- http://www.sdcard.org
- SD Specifications Part 1 Physical Layer Simplified Specification. Version 3.01. May 18, 2010.
- SanDisk SD Card Product Manual. Version 2.2. Nov. 2004.