Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





В самодельных устройствах чтения и записи лучше всего подходят flash-карты двух разновидностей: Smart Media (SM) и Multi Media Card (MMC). У Них достаточно простой интерфейс и к ним не очень сложно разыскать в Сети документацию— для многих других изделий детальные технические спецификации представляют собой коммерческий секрет. У SM интерфейс параллельный (побайтный), кроме того, у них достаточно сложный для самостоятельного изготовления разъем. К тому же эти карты постепенно выходят из употребления: простота интерфейса сыграла в данном случае отрицательную роль. Разработчики SM решили заимствовать первоначальную идею интерфейса IDE (перенести контроллер из накопителя на карту адаптера, что резко удешевило жесткие диски на тот момент), и предоставили почти "голый" интерфейс доступа к flash-микросхеме без промежуточного контроллера. Поэтому при развитии стандарта возникли проблемы с совместимостью карт разного объема, со скоростью доступа, и сейчас стандарт Smart Media уже не развивается, "застряв" на накопителях емкостью 128-256 Мбайт. Так что, несмотря на простоту, есть опасность того, что через несколько лет такую карту просто не удастся разыскать в продаже.

Поэтому мы остановимся на картах типа ММС, имеющих последовательный интерфейс, совместимый с SPI. Существует несколько разновидностей ММС. Кроме оригинальных карт длиной 32 мм, изготавливают специальные укороченные (длиной 18 мм, их часто называют RS-MMC) — за исключением размера корпуса, они ничем не отличаются от обычных. Кроме простых 7-контактных ММС, в последнее время чаще выпускают высокоскоростные High Speed ММС, у которых не 7, а 13 контактов. Эти выводы служат дополнительными линиями обмена данными (фактически превращая интерфейс из последовательного в параллельный), в режиме доступа по SPI они игнорируются.
Оригинальная ММС работает при напряжении питания от 2,7 до 3,6 В, но в последнее время также появились карты с добавкой DV (Dual Voltage) в названии, которые могут работать при напряжении питания 1,8 и 3,3 В. Карты с добавками к названию Plus и Mobile являются одновременно High Speed и DV (и отличаются друг от друга размером).

Подключение карт ММС
Мы остановимся на оригинальной 7-контактной ММС, полное техническое описание которой можно разыскать, покопавшись в специализированных форумах или по ссылкам в английской "Википедии". Более точных указаний, к сожалению, дать не могу, т. к. официально свободный доступ к документации на ММС отсутствует и большинство старых ссылок не работает. Одна из версий описания карт фирмы Sandisk, гуляющего по Сети, называется ProdManualMMCv5.2.pdf, так что можно поискать по этому названию. Некоторые сведения для работы с картами ММС и пример программы чтения для PIC-контроллеров можно найти в [13].

Заметки на полях
SD представляет собой по сути расширенную версию ММС, хотя и производители всячески от этого открещиваются (например устройства, совместимые с SD, могут читать ММС, а вот наоборот— не всегда, SD, кроме всего прочего, сделана толще). SD ориентированы на шифрование контента, подобно тому, как это делается на DVD, и необоснованные требования секретности привели к закрытию этого стандарта для публики (не стоит и говорить, что примененная там система шифрования CPRM/CPPM была сломана хакерами так быстро, что ее даже толком не успели опробовать на практике). SD (кроме версии Secure Digital High Capacity — SDHC, емкостью выше 2 Гбайт, которая, в отличие от ММС и "простого" SD, имеет не побайтную, а блочную адресацию) совместима с ММС по основным семи контактам, но имеет на два контакта больше, что, вместе с зарезервированным в протоколе ММС седьмым контактом, образует три лишних линии для передачи данных. В SPI-режиме SD, как и ММС, работают через одну линию, что делает их физически совместимыми. Протокол доступа по SPI для SD и ММС практически не различается, однако есть некоторые нюансы, которые не позволяют без доработки программы подключать SD вместо ММС. Хотя почему-то все технические описания flash-карт с фирменных сайтов в последние годы исчезли, разыскать оригинальное техническое описание SD, как и ММС, не очень сложно.

Выводы карты ММС отсчитывают от скоса на корпусе (для 13-контактных карт это ряд, ближний к краю), если расположить ее контактами к себе и вверх, то первый вывод будет слева. Назначение контактов в режиме SPI приведено в табл. 11.2. Кроме SPI, карты ММС могут работать с более "продвинутым" протоколом MultiMediaCard Protocol, который отличается, в частности, тем, что линия /CS (вывод 1) в работе не участвует. В основной 7-контактной версии эта линия оказывается зарезервированной, в 13-контактной вместе с дополнительными линиями служит для передачи данных. Режима SPI все эти усовершенствования не касаются.

Таблица 11.2. Назначение выводов ММС в режиме SPI
Номер вывода Название Назначение
1 /CS Выбор карты
2 Dl (Dataln) Вход данных
3 GND "Земля"
4 VCC Питание
5 CLK Тактовые импульсы
6 GND "Земля"
7 DO (DataOut) Выход данных

Предельно допустимая тактовая частота SPI-интерфейса ММС (по крайней мере по стандартам версий 2.x и 3.x) — 20 МГц, что находится далеко за пределами возможностей нашего контроллера. Максимально допустимое напряжение питания карты составляет 3,6 В, с напряжениями питания от 2,7 В работают все современные карты, ниже 2,7 В — только некоторые. Заметим, что имеется механизм, позволяющий установить возможность работы карты с конкретным напряжением питания: специальный 32-битовый регистр OCR (Operation Conditions Register) содержит сведения об этом. Его можно прочесть специальной командой (READOCR С КОДОМ 58 — о том, как посылать команды в ММС см. далее) и по таблице, имеющейся в фирменном руководстве, установить рабочее напряжение питания карты: старший и младший байты могут принимать любое значение, а биты двух средних байт, начиная со старшего, обозначают допустимые напряжения питания с разбросом 0,1 В, начиная с 3,6 В (например, бит номер 24 регистра, установленный в 1, означает допустимое напряжение питания в пределах 3,5-3,6 В). Биты с 15 по 24, установленные в 1, сигнализируют о том, что рабочее напряжение питания не менее 2,7 В. Чем ниже допустимый минимум напряжения питания, тем больше младших битов установлено в состояние 1.



     
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru