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?