Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру

Глава 12. Интерфейс SPI 335 Capacity - SDHC, емкостью выше 2 Гбайт, которая, в отличие от ММС и «просто­ го» SD, имеет не побайтовую, а блочную адресацию) совместима с ММС по основ­ ным семи контактам, но имеет на 2 контакта больше, что, вместе с зарезервирован­ ным в протоколе ММС седьмым контактом, образует три лишних линии для пере­ дачи данных. В SРI-режиме SD, как и ММС, работают через одну линию, что делает их физически совместимыми. Протоколы доступа по SPI для SD и ММС практически не различаются, однако есть некоторые нюансы, которые не позволя­ ют без доработки программы подключать SD вместо ММС. Если захотите попро­ бовать - в публикации [ 1 8] очень подробно и доходчиво рассказывается о доступе к SD-картам через SPI (с примерами, правда, на Arduino, а не на ассемблере), и, ру­ ководствуясь сведениями оттуда, программу можно будет доработать. ЗАМЕТКИ НА ПОЛЯХ Хочу сразу подчеркнуть , что с помощью методики , излагаемой, как здесь, так и в пуб­ ликации [1 8] , доступ к картам производится на низком уровне, т. е. минуя файловую систему (а если карта была отформатирована, то ее файловая система может ока­ заться испорченной, и карту придется форматировать заново) . Карты здесь использу­ ются , как расширенная версия энергонезависимой флеш-памяти , которую мы рас­ сматривали в предыдущем разделе , - карточку нельзя будет вставить в компьютер и считать с нее данные обычным способом, через Проводник , для этого придется пи­ сать специальную программу. Понятно, что такое ограничение резко сужает область применения карт какими-нибудь особыми случаями . Я использовал эту методику для изготовления секретных ключей доступа к электронным замкам или закрытым от постороннего использования про­ граммам - тут невозможность прочесть карту стандартным способом играет на руку. Вы записываете в произвольную область карты ключ любой желаемой длины, а если его еще и зашифровать , то разобраться будет непросто даже специалистам. Можно даже записать на карту для маскировки какую-нибудь музыку обычным способом , а ключ записать по одному из последних адресов карты , чтобы не нарушать имею­ щуюся файловую систему. Если вы хотите узнать, как можно своими руками реализовать файловую систему, то отсылаю вас к публикации [1 9] . Возможно , ознакомление с этой статьей убедит вас в том , что самостоятельно ковыряться в недрах системы FAT1 6 (а она ведь еще и са­ мая простая из применяемых сегодня) не имеет смысла, тем более, что там опять же приведены примеры для Aгduino, а мы имеем в виду ассемблер. Для любой работы должен быть адек.ватный инструмент, и если возня с этим инструментом усложняет, а не облегчает вам жизнь , значит его нужно сменить . В Aгduino есть стандартная биб­ лиотека SD (далеко не идеальная , но пригодная для практических целей) , которая по­ зволяет писать на SD-карту в нормальном режиме, так что эти данные потом можно будет прочесть где угодно. А в профессиональной области таких библиотек еще больше. Мы остановимся на оригинальной 7-контактной ММС с достаточно простым ин­ терфейсом, полное техническое описание которой можно разыскать по ссылкам в статье «MultiMediaCard» английской «Википедии». П одключение карт ММС Выводы карты ММС отсчитывают от скоса на корпусе (для 1 3-контактных карт это ряд, ближний к краю) - если расположить ее контактами к себе и вверх, то первый вывод будет слева. Назначение контактов в режиме SPI приведено в табл. 1 2 .2.

RkJQdWJsaXNoZXIy MTExODQxMg==