Final Presentation - High Speed Digital Systems Lab

Download Report

Transcript Final Presentation - High Speed Digital Systems Lab

USB to SD
By:
Nadav Haklai & Noam Rabinovici
Supervisors: Mike Sumszyk & Roni Lavi
Semester:
Spring 2010




Create a prototype for file transfer system.
Implement a stand alone bridge between
USB and SD-Card interfaces.
Design a platform for future file transfer
developments.
Learn the USB and SD-Card protocols.







Copy files between USB and SD card devices.
Stand-alone device.
Support FAT file systems.
Easy to use user interface.
Low power – self powered (battery) .
Fast transfer rates - USB 2.0.
Low cost product.

Altera DE-3 Development Board
 High power – Power supply.
 Large dimensions.
 Lower transfer rates – generic FPGA.
 Very expensive.

Short development time and resources
 Using open-source code (FAT).
 Using Altera examples as skeleton.
DE3 Board
ISP1761
(USB Controller)
USB 2.0
Port
Stratix III
Leds and
switches
PIO
Controller
ISP1761
Controller
Nios II Soft
Processor
Avalon Switch Fabric
Console
SD Card
Connector
JTAG
PIO
Controller
On Chip
Memory

Software:
 Quartus II 10.0
 SOPC Builder
 NIOS II IDE 10.0

Hardware:
 Altera DE3 Board
▪ Stratix III FPGA
▪ Soft NIOS II Core
▪ USB Controller - ISP1761
 Signal Analyzer
 USB Analyzer
Control
Layer
Main Program – User Interface
Files
Layer
FAT File System
USB mass storage
device Driver
512 Bytes
Blocks
Layer
USB Protocol
SD-Card Driver
USB HOST Controller
ISP 1761 HAL
Physical
Layer
NIOS II PIO

USB 2.0- Standard for peripheral devices
 The USB mass storage device class
 ISP1761 - single-chip Hi-Speed Universal Serial
Bus (USB) On-The-Go (OTG) Controller

SD-Card - Non-Volatile memory card format
 Very popular and common
(Cameras, Embedded Systems)

Fat - File System
Definition: A specification to establish communication
between devices and a host controller.
 Main Uses
 Device Classes

 Mass Storage Device
 Human Interface Device (HID)
Physical Layer
 Host/Device Topology


USB Protocol - UFI Layer
 USB Floppy Interface
 USB method for file transfers
 Based on SCSI Commands
 Data packet encapsulation
 Uses USB low level driver

USB UFI level Implementation main commands:
 Write Command:
 Read Command:

USB Bulk level :
 Command/Data/Status Flow:
 Command Status/Block Wrapper
 Packet structure:

USB Write Function Structure
Request from the file
system to write 512B logical
block
USBDISK_WriteBlock512
 This function writes
512Bytes block using the
USB.
Changing
datagram
with the
device
Request from the file system to write
a physical block (equal or less than
512B)
USBDISK_ BOT_Write10
Sending the command to the device,
same to read & write
execute_USBDISK_ BOT
Port_BulkI
N
Port_BulkOut
Port_AltIn
Port_AltOut

USB 2.0- Standard for peripheral devices
 The USB mass storage device class
 ISP1761 - single-chip Hi-Speed Universal Serial
Bus (USB) On-The-Go (OTG) Controller

SD-Card - Non-Volatile memory card format
 Very popular and common
(Cameras, Embedded Systems)

Fat - File System

SD-Card Protocol
 SD Mode (1 or 4bits) vs. SPI Mode
 Bus Protocol basic operation:
▪ Command Packet Format
▪ Data Packet Format

SD-Card Implementation:
 Initialization flow:

SD-Card Implementation:
 Write Flow:
 Read Flow:

SD-Card Write Function Structure:
Request from the file system
to write 512B logical block
SD_write_block
LOW_SD_DAT0
SD_DAT0_HIGH
Sending the command
send_cmd
SD_CLK_HIGH
LOW_SD_CLK
SD_CMD_HIGH
executing the
command
LOW_SD_CMD

USB 2.0- Standard for peripheral devices
 The USB mass storage device class
 ISP1761 - single-chip Hi-Speed Universal Serial
Bus (USB) On-The-Go (OTG) Controller

SD-Card - Non-Volatile memory card format
 Very popular and common
(Cameras, Embedded Systems)

Fat - File System
A method of storing and organizing computer files and their data
 FAT Fundamentals:

 Sectors and Clusters
 Volume Structure:
 MBR:

Implementation – Open Source File System
 Support for:
▪ SD-Card
▪ USB – Mass Storage Device
 Application Interface:
▪ f_mount - Register/Unregister a work area
▪ f_open - Open/Create a file
▪ f_write - Write file
▪ f_read - Read file
▪ f_opendir - Open a directory
▪ f_getfree - Get free clusters

Files organization on storage device
 Cluster Chains example

USB 2.0- Standard for peripheral devices
 The USB mass storage device class
 ISP1761 - single-chip Hi-Speed Universal Serial
Bus (USB) On-The-Go (OTG) Controller

SD-Card - Non-Volatile memory card format
 Very popular and common
(Cameras, Embedded Systems)

Fat - File System

SD Card:
 Signals Timing issues – Driver development.

USB:
 Software bugs in the Terasic DE-3 examples code.

FAT:
 Had to search for reliable open source code.
 Complex integration of the FAT and the interfaces.









ASIC vs. FPGA
Board Design
Increase SD Card throughput
Support for different memory cards
USB 3.0
NTFS File system support
Low power design considerations
User interface
Product package

Questions?