Реализации работы с SD картой с помощью ресурсов платы DE2-115




ОБРАЗЕЦ ОФОРМЛЕНИЯ СТАТЬИ, ЕСЛИ АВТОРЫИЗ ОДНОЙ ОРГАНИЗАЦИИ (ФИО УКАЗЫВАЕТСЯ ТАК, КАК ПРИНЯТО В ДАННОЙ СТРАНЕ)

УДК 004.932; ГРНТИ 89.57.35

РЕАЛИЗАЦИЯ РаботЫс SD картой на базе FPGA

фирмы Altera с применением Nios II процессора

Д. Лазэр, Т. Шестакова

Технический Университет Молдовы,

Республика Молдова, Кишинэу, diane.lazar@yahoo.com

Аннотация. В данной работе описана реализация работы с SD картой на базе ресурсов FPGA фирмы Altera с применением как аппаратного модуля (IP core) работы с SD картой, так и программных библиотек для сгенерированного на FPGA Nios II процессора. Проводится сравнительный анализ реализации обмена данными с SD картой в SD режиме и SPI режиме.

Ключевые слова. SD карта, FPGA, процессор Nios II, IP Core, система хранения изображений

IMPLEMENTATION OF SD card INTERFACING BASED ON

ALTERA’S FPGA AND USING NIOS II PROCESSOR

D. Lazar, T. Shestakova

Technical University of Moldova,

Republic of Moldova, Chisinau, diane.lazar@yahoo.com

Abstract. This paper deals with the implementation of SD card interfacing based on Altera’s FPGA resources using hardware module – SD card IP Core and using software libraries for Nios II processor generated on FPGA. A comparative analysis of SD card data exchange implementation via SD mode and SPI mode is carried out.

Keywords. SD card, FPGA, Nios II processor, IP Core, image storage system

 

Введение

Изображения, принятые со спутника, характеризуются значительными искажениями и требуют существенной обработки. Наиболее эффективные методы обработки требуют значительных аппаратных и временных ресурсов, так что обработка их на ПК оказывается нецелесообразной. Поэтому в основе наземной станции используются FPGA, позволяющие за счет распараллеливания операций резко увеличить скорость обработки информации.

В Техническом Университете Молдовы реализуется проект по разработке студенческого спутника SATUM. В качестве наземной станции спутника SATUM используется отладочная плата DE2-115 на базе FPGA фирмы Altera. Таким образом, возникает задача реализации системы хранения изображений на основе ресурсов данной отладочной платы.

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

Принципы чтения/записи на SD карту

SD карта имеет встроенный микроконтроллер, а все средства управления flash-памятью (стирание, чтение, запись и защита от ошибок) полностью сосредоточены внутри карты [5].

 


Распиновка SD карты представлена ниже на рис. 1.

Рис. 1. Распиновка SD карты [5]

 

Назначение контактов SD карты представлено ниже в табл. 1 [5].

 

Таблица 1. Назначение контактов SD карты

Контакт SD режим SPI режим
Название Описание Название Описание
  CD/DATA3 Наличие SD карты / 3-я линия данных CS Выбор устройства
  CMD Команда / Линия ответа DI Вход данных
  Vss1 GND VSS GND
  Vdd Питание Vdd Питание
  CLK Тактирование SCLK Тактирование
  Vss2 GND Vss2 GND
  DAT0 0-вая линия данных DO Выход данных
  DAT1 1-я линия данных    
  DAT2 2-я линия данных    

 

Существуют два метода реализации обмена данными с SD картой:

1) SD режим;

2) SPI режим.

SD режим позволяет использовать передачу данных параллельно по 4 линиям данных, обеспечивая таким образом максимальную скорость обмена данными (до 100Мбит/с).

Режим SPI является альтернативным режимом работы с SD картой и является упрощенным интерфейсом обмена данными с SD картой. Данный режим уступает в скорости в 4 раза за счет последовательной передачи данных [1].

Реализации работы с SD картой с помощью ресурсов платы DE2-115

Для работы с SD картой на базе отладочной платы DE2-115 существуют следующие ресурсы:

1. Реализация SD режима на базе Nios II процессора с помощью разработанных фирмой производителем библиотек на языке С.

2. Secure Data Card Intellectual Property Core (IP Core) – разработанный фирмой производителем на языке Verilog и VHDL в рамках университетской программы – University Program модуль для работы с SD картой в SPI режиме [2].

1. Реализация интерфейса на базе Nios II процессора с помощью разработанных фирмой производителем библиотек на языке С

Для реализации данного метода необходимо создать систему на базе процессора Nios II в среде Quartus II. Для подключения SD карты используется порт ввода-вывода, выходы которого подключаются к контактам SD карты. Интерфейс работы с SD картой реализуется на процессоре на языке С++.

Для Nios процессора фирмой производителем были разработаны библиотеки работы с SD картой на языке С. Данные библиотеки позволяют реализовать интерфейс чтения с SD карты по 4-битному SD режиму с возможностью работы через файловую систему FAT16 или FAT32. Иерархия обращения к SD карту через файловую систему представлена на рис. 2.

Рис. 2. Программный стек для работы с SD картой через файловую систему [2]

 

Ниже представлено подключение применяемых библиотек для Nios II процессора.

#include <stdio.h>

#include ".\terasic_lib\terasic_includes.h"

#include ".\terasic_fat\FatFileSystem.h"

«FatFileSystem.h» – это библиотека работы с файловой системой. Она использует внутреннюю библиотеку «FatInternal.h», которая, в свою очередь, подключает библиотеки работы с SD картой – «sd_lib.h» -> «sd_protocol.h» -> «crc7.h» и «sd_hal.h».

Ниже представлен пример использования библиотек на примере чтения текстового файла с SD карты:

if (Fat_FileRead(hFile, szRead, nReadSize)){ // Если чтение выполнилось успешно,

int i;

for(i=0;i<nReadSize;i++){ // цикл по символам текстового файла

printf("%c", szRead[i]); // вывод на экран текста из файла

}

nTotalReadSize += nReadSize; }

На рис. 3 представлен результат работы программы, выполняющей чтение изображения в формате bmp, преобразованного в текстовый файл, и передача его на компьютер на консоль среды программирования Eclipse.

 

Рис. 3.Чтение с SD карты текстового файла с помощью отладочной платы DE2-115

 

Для чтения с SD карты напрямую используется функция SDLIB_ReadBlock512(SD_Addr, Read_buf), где через переменную SD_Addr указывается физический сектор карты памяти.

Данный метод осуществляет работу в 4-битном SD режиме, что позволяет поднять скорость обмена данными, однако она также ограничивается скоростью работы портов ввода-вывода Nios процессора. Кроме этого, данная реализация позволяет осуществлять только чтение данных без возможности записи результата. Данный метод целесообразно использовать при проигрывании музыки или при выводе на экран изображений без возможности их редактировать. Для нашего случая больше подходит использование Secure Data Card IP Core.

2. Модуль Secure Data Card Intellectual Property (IP) Core

IP Core для работы с SD картой можно сгенерировать на языке Verilog или VHDL. При этом управление данным блоком может выполняться как через FPGA (на языке Verilog или VHDL), так и с помощью Nios II процессора, для которого разработаны библиотеки фирмой производителем на языке С [3].

Пример создания системы на основе Nios процессора и интерфейса работы с SD картой показан на рис. 4. Система может быть создана в программе SOPC Builder или в более новой версии – Qsys.

 

Рис. 4. Создание системы для работы с SD картой на базе Nios процессора

 

Доступ к SD карте можно осуществить как через файловую систему FAT16, так и напрямую. Пример выполнения инициализации SD карты с помощью библиотек Altera University Program показан ниже:

#include <altera_up_sd_card_avalon_interface.h>

<…>

alt_up_sd_card_dev *sd_card_dev =

alt_up_sd_card_open_dev(ALTERA_UP_SD_CARD_AVALON_INTERFACE_0_NAME);

if(sd_card_dev!= 0) {

if(alt_up_sd_card_is_Present()) {

<…>

int index = 0;

while (buffer[0]!= '\0')

{

alt_up_sd_card_write(sd_fileh, buffer[index]); // запись файла на SD карту

index = index + 1; }

alt_up_sd_card_fclose(sd_fileh);

Функция “alt_up_sd_card_open_dev” отвечает за инициализацию драйвера SD карты, а параметром этой функции является имя компоненты Altera UP SD Card IP Core в системе SOPC Builder или Qsys. При корректном создании процессорной системы в качестве результата данная функция выдает адрес этой компоненты в системе [3].

На основе данного примера реализации предполагается разработка системы чтения изображений, их обработки и последующей записи результата на SD карту.

Выводы

Наиболее эффективным решением задачи хранения и передачи на ПК фотографий является использование SD карты. Существуют два метода реализации системы обмена данными с SD картой на основе ресурсов FPGA отладочной платы наземной станции, а именно, метод на основе SD режима или использование упрощенного SPI режима. Так, SD режим позволяет получать более высокие скорости обмена данными (до 100Мбит/с), однако для ресурсов на наземной станции спутника SATUM реализованы библиотеки, выполняющие лишь чтение с SD карты. Данный метод целесообразно использовать при проигрывании музыки или при выводе на экран изображений без возможности их редактировать [4]. Для осуществления как чтения, так и записи используется Secure Data Card IP Core, работающий в SPI режиме, управление которым выполняется через Nios процессор.

Применение SD карты для хранения и передачи данных позволяет использовать ресурсы отладочной платы для реализации высокоскоростной обработки любых цифровых данных, что в сотни раз сократит скорость обработки по сравнению с ПК. Реализация чтения и записи изображений на SD карту при помощи FPGA позволяет использовать данную систему для реализации любой обработки изображений, загруженных с компьютера или другого устройства.

 

Библиографический список

1. SD Specifications. Part 1. Physical Layer Simplified Specification. SD Group (Panasonic, SanDisk, Toshiba) and SD Card Association. 2013.

2. DE2-115 User Manual. Terasic Technologies Inc. 2012.

3. Secure Data Card IP Core. Altera Corporation - University Program. 2014.

4. S. Moslehpour, K. Jenab, E. H. Siliveri, Design and Implementation of NIOS II System for Audio Application, IACSIT International Journal of Engineering and Technology, Vol. 5, No. 5, October 2013.

5. SD/MMC карта памяти и микроконтроллер AVR [Электронный ресурс], URL: https://avrlab.com/node/156 (дата обращения 16.11.15).

 

 




Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-01-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: