Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Осн. часть 2.docx
Скачиваний:
2
Добавлен:
06.07.2019
Размер:
411.14 Кб
Скачать
  • Команды mmc в режиме spi

Команда имеет длину 6 байт, передача всегда начинается со старшего бита. Пакет команды имеет формат, представленный на рисунке 1.16.

Рисунок 1.16

При работе MMC в режиме SPI доступно около 15 команд, позволяющих, во-первых, получить полную информацию о типе и текущем состоянии карты, во-вторых, производить запись и

чтение данных. В плеере используются всего 4 команды, с помощью которых можно лишь читать данные с MMC блоками размером 1÷512 байт. Они представлены на рисунке 1.17.

Рисунок 1.17

Все числа, аргументы передаются, начиная со старшего бита, а адрес блока - адрес первого байта блока.

Ответ на любую из вышеприведённых команд состоит из одного байта, старший байт всегда равен 0. Другие биты - флаги ошибок.

Рисунок 1.18

На рисунке 1.18 представлены ошибки:

  • в спящем режиме - карта находится в спящем режиме и выполняется процесс инициализации;

  • еrase reset - стирание не выполнено, т.к. операция прервана до исполнения;

  • недопустимая команда - обнаружен недопустимый номер команды;

  • ошибка CRC - последняя принятая команда не прошла проверку CRC;

  • еrase_seq_error - ошибка в команде стирания;

  • ошибка адреса - блок пересекает границу физического сектора;

  • ошибка параметра - аргумент команды вне допустимых пределов для данной карты.

Ошибки еrase reset, CRC и ошибка параметра встречаться в плеере не должны. Для операции чтения CMD17 считываемый блок должен быть в пределах одного физического сектора: его размер не должен превышать 512 байт, а начало и конец располагаться в одном и том же секторе. Если это не выполнено, то появится ошибка №6. Блок данных имеет длину от 4 до N+3 байт, где N - число, указанное в аргументе CMD16. Первый байт при передаче от MMC к МК равен 0xFE, далее следуют N байт запрашиваемой информации, а в конце - 2 байта CRC (их содержимое можно игнорировать, но прочесть нужно обязательно). Если же при чтении произошел сбой и карта не может предоставить данные, то вместо указанного блока передаётся 1 байт с флагом ошибки (рисунок 1.19)

На рисунке 1.19 приведены следующие ошибки:

  • неизвестная ошибка - сбой по неизвестной причине;

  • ошибка СС - сбой внутреннего контроллера;

  • сбой ЕСС - алгоритм ЕСС не смог восстановить данные;

  • выход за границу - аргумент команды вне допустимых пределов;

  • карта блокирована - доступ не разрешён, т.к. карта защищена паролем.

Рисунок 1.1 9

  • Инициализация карты

После включения карта находится в режиме Multimedia Card protocol. Для перевода её в режим SPI надо отправить команду Сброс (CMD0). В режиме SPI проверка CRC отключена по умолчанию, поэтому содержимое поля CRC7 игнорируется. Однако для CMD0 поле CRC7 нужно указать правильно. Поскольку команда не имеет меняющихся в процессе работы аргументов, то и специально вычислять это поле не обязательно. Далее карту необходимо проинициализировать. Для этого посылаем команду CMD1 до тех пор, пока в ответе карты бит 0 (в спящем режиме) не сменится с 1 на 0. Это будет означать, что карта готова к работе. Теперь можно посылать команды CMD16 и CMD17.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]