Разделы сайта

Описание алгоритма программы

, пауза, ответ карты 0х00, и блок данных (так как контрольная сумма не проверяется, то ее поле можно заполнить случайно). Далее следует ответ карты про прием блока данных.

После чего busy

состояние, когда карта записывает полученные данные. Временная диаграмма операции записи приведена ниже.

Исходная карта памяти может быть отформатирована в FAT16

или в FAT32для FatFs это не имеет разницы, она умеет работать с обоими. Нам потребуется написать функции взаимодействия с носителем, в данном случае их будет шесть:

1) DSTATUS disk_initialize (BYTE Drive);

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

В случае удачного вызова возвращает 0. В случае, если носитель не инициализировался, возвращает STA_NOINIT, а если носитель отсутствует - STA_NODISK.

2) DSTATUS disk_status (BYTE Drive);

Узнает статус носителя Drive. Возвращает STA_NOINIT если диск не инициализирован, а если носитель отсутствует - STA_NODISK. Также в случае, если носитель защищен от записи, то возвращается STA_PROTECTED.

3) DRESULT disk_read (BYTE Drive, BYTE* Buffer, DWORD SectorNumber, BYTE SectorCount);

Читает SectorCount из носителя Drive в буфер, на который указывает указатель Buffer начиная с сектора SectorNumber в LBA адресации. Возвращает DRESULT:

enum

{ //Статус дисковой операции_OK = 0, //Операция успешно завершена_ERROR, //Ошибка носителя_NOTRDY, //Носитель не готов

RES_PARERR //Ошибочный аргумент

} DRESULT;

Буфер должен иметь размер количество секторов для чтения * размер сектора в байтах. Количество считываемых за раз секторов SectorCount должно быть о 1 до 128.

4) DRESULT disk_write (BYTE Drive, const BYTE* Buffer, DWORD SectorNumber, BYTE SectorCount);

Полный аналог disk_read, только не считывает данные, а пишет их на карточку.

5) DRESULT disk_ioctl (BYTE Drive, BYTE Command, void* Buffer);

Довольно интересная функция, которая передает носителю Drive команду Command, а ответ на команду пишет в буфер, на который указывает Buffer. Таблица необходимых команд приведена ниже. Проконтролировать результат позволяет возвращаемое значение DRESULT.

6) DWORD get_fattime (void);

Возвращает текущее дату и время, представленное в виде двойного слова DWORD следующим образом::25 - года, начиная с 1980 (0 127):21 - месяца (1 12):16 - дни месяца (1 31):11 - часы (0 23):5 - минуты (0 59):0 - секунды деленные на 2 (0 29)

Если в системе не поддерживаются часы с реальным временем, то нужно возвращать какую-то реальную дату и время, потому что они нужны для маркировки времени изменения/создания файлов.

Заключение

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

Приложение

ATmega128, ATmega128L 8-разрядный AVR-микроконтроллер с внутрисистемно программируемой флэш-памятью емкостью 128 кбайт

Отличительные особенности:

- Высокопроизводительный, маломощный 8-разрядный AVR-микроконтроллер

133 мощных инструкций, большинство из которых выполняются за один машинный цикл

Перейти на страницу: 1 2 3 4 5 6 7

Интересное из раздела

Проектирование зеркальных антенн для индивидуального приема спутниковых программ
Наибольший интерес в настоящее время представляет прием телевидения в диапазоне 11…12 ГГц, для которого наиболее применимы параболические антенны, так как п ...

Однофазный инвертор напряжения
В данном курсовом проекте проектируется полупроводниковый преобразователь электрической энергии - автономный инвертор напряжения. Вначале преобразователи выпол ...

Проектирование генератора гармонических колебаний
Генераторы гармонических колебаний представляют собой электронные устройства, формирующие на своем выходе периодические гармонические колебания при отсутств ...